{
  "openapi": "3.0.1",
  "info": {
    "title": "ProfitSolv LCS API Gateway",
    "version": "v1"
  },
  "paths": {
    "/api/admin/logs": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "Retrieves API logs using optional filters.",
        "parameters": [
          {
            "name": "Methods",
            "in": "query",
            "description": "Gets or sets the collection of HTTP methods to match.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "Paths",
            "in": "query",
            "description": "Gets or sets the collection of path fragments to match.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "Users",
            "in": "query",
            "description": "Gets or sets the collection of user identifiers or emails to match.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "StatusCodes",
            "in": "query",
            "description": "Gets or sets the collection of HTTP status codes to match.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "DurationMinMs",
            "in": "query",
            "description": "Gets or sets the minimum duration filter in milliseconds.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "DurationMaxMs",
            "in": "query",
            "description": "Gets or sets the maximum duration filter in milliseconds.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "Start",
            "in": "query",
            "description": "Gets or sets the optional UTC start timestamp filter.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "End",
            "in": "query",
            "description": "Gets or sets the optional UTC end timestamp filter.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "description": "Gets or sets the requested page number (1-based).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Gets or sets the requested page size (capped at 20).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Application.Models.PagedResult`1[[Application.Models.ApiCallLogSummary, Application, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Application.Models.PagedResult`1[[Application.Models.ApiCallLogSummary, Application, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Application.Models.PagedResult`1[[Application.Models.ApiCallLogSummary, Application, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/logs/{id}": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "Retrieves the full details for a specific API log entry.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The log identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Application.Models.ApiCallLogDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Application.Models.ApiCallLogDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Application.Models.ApiCallLogDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/logs/{id}/analysis": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "Generates an AI-powered assessment for the specified API log.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The log identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          },
          {
            "name": "additionalPrompt",
            "in": "query",
            "description": "An optional prompt to answer alongside the core analysis.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ApiLogAnalysisResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ApiLogAnalysisResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ApiLogAnalysisResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/rate-limits": {
      "post": {
        "tags": [
          "Admin"
        ],
        "summary": "Creates or updates a rate limit rule scoped to a user, application, or role.",
        "requestBody": {
          "description": "The rate limit payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.RateLimitUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.RateLimitUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.RateLimitUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The created or updated rate limit rule.",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RateLimitRuleResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RateLimitRuleResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RateLimitRuleResponse"
                }
              }
            }
          },
          "400": {
            "description": "Validation failed — invalid role, missing/zero/negative limits, non-existent tenant, or missing scope.",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "Retrieves all configured rate limit rules.",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.RateLimitRuleResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.RateLimitRuleResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.RateLimitRuleResponse"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/tenants": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "Retrieves tenants for admin lookups (e.g., rate limit scope dropdown).\r\nSupports optional search filter, role filter, and pagination.",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "description": "Optional name filter (case-insensitive contains match). Max 200 characters.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "role",
            "in": "query",
            "description": "Optional role filter (e.g., Customer, ThirdPartyDeveloper).",
            "schema": {
              "$ref": "#/components/schemas/Domain.Enums.UserRole"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number (1-based, default 1).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Items per page (default 50, max 50).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.TenantPagedResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.TenantPagedResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.TenantPagedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/rate-limits/{id}": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "Retrieves a rate limit rule by identifier.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The rate limit identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RateLimitRuleResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RateLimitRuleResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RateLimitRuleResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Admin"
        ],
        "summary": "Updates a rate limit rule by identifier.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The rate limit identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The updated rate limit definition.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.RateLimitUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.RateLimitUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.RateLimitUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RateLimitRuleResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RateLimitRuleResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RateLimitRuleResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Admin"
        ],
        "summary": "Deletes a rate limit rule by identifier.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The rate limit identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/impersonate": {
      "post": {
        "tags": [
          "Admin"
        ],
        "summary": "Begins an impersonation session for the specified user.",
        "requestBody": {
          "description": "The impersonation payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.ImpersonationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.ImpersonationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.ImpersonationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ImpersonationResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ImpersonationResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ImpersonationResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/users": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "Retrieves all users for administrative management.",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.AdminUserResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.AdminUserResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.AdminUserResponse"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Admin"
        ],
        "summary": "Creates a new managed user.",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "Email",
                  "Name",
                  "Password",
                  "Role"
                ],
                "type": "object",
                "properties": {
                  "Name": {
                    "type": "string",
                    "description": "Gets or sets the display name for the user."
                  },
                  "Email": {
                    "type": "string",
                    "description": "Gets or sets the email used for login.",
                    "format": "email"
                  },
                  "PhoneNumber": {
                    "type": "string",
                    "description": "Gets or sets the optional phone number for the user."
                  },
                  "Country": {
                    "type": "string",
                    "description": "Gets or sets the optional country for the user."
                  },
                  "Password": {
                    "type": "string",
                    "description": "Gets or sets the plain text password used during creation or reset operations."
                  },
                  "Organization": {
                    "type": "string",
                    "description": "Gets or sets the optional organization name when creating a customer account."
                  },
                  "Company": {
                    "type": "string",
                    "description": "Gets or sets the optional company name when creating a third-party developer."
                  },
                  "Product": {
                    "type": "string",
                    "description": "Gets or sets the optional product name when creating a third-party developer."
                  },
                  "Notes": {
                    "type": "string",
                    "description": "Gets or sets notes captured during registration."
                  },
                  "WebsiteUrl": {
                    "type": "string",
                    "description": "Gets or sets the user's website URL."
                  },
                  "ApplicationDescription": {
                    "type": "string",
                    "description": "Gets or sets the description or request reason."
                  },
                  "TechnicalContactName": {
                    "type": "string",
                    "description": "Gets or sets the technical contact name."
                  },
                  "TechnicalContactEmail": {
                    "type": "string",
                    "description": "Gets or sets the technical contact email."
                  },
                  "TechnicalContactPhone": {
                    "type": "string",
                    "description": "Gets or sets the technical contact phone."
                  },
                  "BusinessContactName": {
                    "type": "string",
                    "description": "Gets or sets the business contact name."
                  },
                  "BusinessContactEmail": {
                    "type": "string",
                    "description": "Gets or sets the business contact email."
                  },
                  "BusinessContactPhone": {
                    "type": "string",
                    "description": "Gets or sets the business contact phone."
                  },
                  "PartnerAgreement": {
                    "type": "string",
                    "description": "Gets or sets the optional partner agreement file.",
                    "format": "binary"
                  },
                  "Role": {
                    "$ref": "#/components/schemas/Domain.Enums.UserRole"
                  }
                }
              },
              "encoding": {
                "Name": {
                  "style": "form"
                },
                "Email": {
                  "style": "form"
                },
                "PhoneNumber": {
                  "style": "form"
                },
                "Country": {
                  "style": "form"
                },
                "Password": {
                  "style": "form"
                },
                "Organization": {
                  "style": "form"
                },
                "Company": {
                  "style": "form"
                },
                "Product": {
                  "style": "form"
                },
                "Notes": {
                  "style": "form"
                },
                "WebsiteUrl": {
                  "style": "form"
                },
                "ApplicationDescription": {
                  "style": "form"
                },
                "TechnicalContactName": {
                  "style": "form"
                },
                "TechnicalContactEmail": {
                  "style": "form"
                },
                "TechnicalContactPhone": {
                  "style": "form"
                },
                "BusinessContactName": {
                  "style": "form"
                },
                "BusinessContactEmail": {
                  "style": "form"
                },
                "BusinessContactPhone": {
                  "style": "form"
                },
                "PartnerAgreement": {
                  "style": "form"
                },
                "Role": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AdminUserResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AdminUserResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AdminUserResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/users/{id}": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "Retrieves a specific user by identifier.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AdminUserResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AdminUserResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AdminUserResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Admin"
        ],
        "summary": "Updates an existing managed user.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "Name": {
                    "type": "string",
                    "description": "Gets or sets the display name for the user."
                  },
                  "Email": {
                    "type": "string",
                    "description": "Gets or sets the email used for login.",
                    "format": "email"
                  },
                  "PhoneNumber": {
                    "type": "string",
                    "description": "Gets or sets the phone number for the user."
                  },
                  "Country": {
                    "type": "string",
                    "description": "Gets or sets the country for the user."
                  },
                  "Organization": {
                    "type": "string",
                    "description": "Gets or sets the organization name (customer accounts)."
                  },
                  "Company": {
                    "type": "string",
                    "description": "Gets or sets the company name (third-party developers)."
                  },
                  "Product": {
                    "type": "string",
                    "description": "Gets or sets the product name (third-party developers)."
                  },
                  "Notes": {
                    "type": "string",
                    "description": "Gets or sets notes captured during registration."
                  },
                  "WebsiteUrl": {
                    "type": "string",
                    "description": "Gets or sets the user's website URL."
                  },
                  "ApplicationDescription": {
                    "type": "string",
                    "description": "Gets or sets the description or request reason."
                  },
                  "TechnicalContactName": {
                    "type": "string",
                    "description": "Gets or sets the technical contact name."
                  },
                  "TechnicalContactEmail": {
                    "type": "string",
                    "description": "Gets or sets the technical contact email."
                  },
                  "TechnicalContactPhone": {
                    "type": "string",
                    "description": "Gets or sets the technical contact phone."
                  },
                  "BusinessContactName": {
                    "type": "string",
                    "description": "Gets or sets the business contact name."
                  },
                  "BusinessContactEmail": {
                    "type": "string",
                    "description": "Gets or sets the business contact email."
                  },
                  "BusinessContactPhone": {
                    "type": "string",
                    "description": "Gets or sets the business contact phone."
                  }
                }
              },
              "encoding": {
                "Name": {
                  "style": "form"
                },
                "Email": {
                  "style": "form"
                },
                "PhoneNumber": {
                  "style": "form"
                },
                "Country": {
                  "style": "form"
                },
                "Organization": {
                  "style": "form"
                },
                "Company": {
                  "style": "form"
                },
                "Product": {
                  "style": "form"
                },
                "Notes": {
                  "style": "form"
                },
                "WebsiteUrl": {
                  "style": "form"
                },
                "ApplicationDescription": {
                  "style": "form"
                },
                "TechnicalContactName": {
                  "style": "form"
                },
                "TechnicalContactEmail": {
                  "style": "form"
                },
                "TechnicalContactPhone": {
                  "style": "form"
                },
                "BusinessContactName": {
                  "style": "form"
                },
                "BusinessContactEmail": {
                  "style": "form"
                },
                "BusinessContactPhone": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AdminUserResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AdminUserResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AdminUserResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Admin"
        ],
        "summary": "Deletes a user and associated credentials.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/users/invite-admin": {
      "post": {
        "tags": [
          "Admin"
        ],
        "summary": "Invites a new administrator with a temporary password.",
        "requestBody": {
          "description": "The invitation payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.InviteAdminRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.InviteAdminRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.InviteAdminRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AdminUserResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AdminUserResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AdminUserResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/users/{id}/status": {
      "post": {
        "tags": [
          "Admin"
        ],
        "summary": "Updates the review status for a customer or third-party developer.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.UserStatusUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.UserStatusUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.UserStatusUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AdminUserResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AdminUserResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AdminUserResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/users/{id}/partner-agreement": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "Downloads the partner agreement for the specified user when available.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/region-schedules": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "Retrieves all region peak-hour schedules.",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.RegionScheduleResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.RegionScheduleResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.RegionScheduleResponse"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/region-schedules/{region}": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "Retrieves the peak-hour schedule for a specific region.",
        "parameters": [
          {
            "name": "region",
            "in": "path",
            "description": "The region name (e.g., \"Americas\").",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RegionScheduleResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RegionScheduleResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RegionScheduleResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Admin"
        ],
        "summary": "Updates the peak window and days for a region's schedule.",
        "parameters": [
          {
            "name": "region",
            "in": "path",
            "description": "The region name (e.g., \"Americas\").",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The updated schedule configuration.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.UpdateRegionScheduleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.UpdateRegionScheduleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.UpdateRegionScheduleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RegionScheduleResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RegionScheduleResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RegionScheduleResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/region-schedules/{region}/holidays": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "Lists all holidays for a region's schedule.",
        "parameters": [
          {
            "name": "region",
            "in": "path",
            "description": "The region name.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.RegionHolidayResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.RegionHolidayResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.RegionHolidayResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Admin"
        ],
        "summary": "Adds a public holiday to a region's schedule.",
        "parameters": [
          {
            "name": "region",
            "in": "path",
            "description": "The region name.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The holiday details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.CreateHolidayRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.CreateHolidayRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.CreateHolidayRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RegionHolidayResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RegionHolidayResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RegionHolidayResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/region-schedules/{region}/holidays/{id}": {
      "delete": {
        "tags": [
          "Admin"
        ],
        "summary": "Removes a holiday from a region's schedule.",
        "parameters": [
          {
            "name": "region",
            "in": "path",
            "description": "The region name.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The holiday identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/endpoint-rate-limits": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "Retrieves all endpoint rate limit rules.",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitResponse"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Admin"
        ],
        "summary": "Creates a new endpoint rate limit rule.",
        "requestBody": {
          "description": "The endpoint rate limit definition.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/endpoint-rate-limits/region/{region}": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "Retrieves endpoint rate limit rules for a specific region.",
        "parameters": [
          {
            "name": "region",
            "in": "path",
            "description": "The region name (e.g., \"Americas\").",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/endpoint-rate-limits/{id}": {
      "put": {
        "tags": [
          "Admin"
        ],
        "summary": "Updates an existing endpoint rate limit rule.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The rule identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The updated rule definition.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Admin"
        ],
        "summary": "Deletes an endpoint rate limit rule.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The rule identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/endpoint-rate-limits/{id}/toggle": {
      "post": {
        "tags": [
          "Admin"
        ],
        "summary": "Toggles the enabled state of an endpoint rate limit rule.\r\nWhen no body is provided the current state is flipped.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The rule identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.ToggleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.ToggleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.ToggleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.EndpointRateLimitResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/admin/available-endpoints": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "Returns all available API endpoints from the integrations OpenAPI spec.",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.AvailableEndpointResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.AvailableEndpointResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.AvailableEndpointResponse"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/apps/{appId}/api-keys": {
      "get": {
        "tags": [
          "ApiKeys"
        ],
        "summary": "Lists API keys owned by the specified app.",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "description": "The application identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.ApiKeyResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.ApiKeyResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.ApiKeyResponse"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "ApiKeys"
        ],
        "summary": "Creates a new API key for the specified app.",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "description": "The application identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The API key creation payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.ApiKeyCreateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.ApiKeyCreateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.ApiKeyCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ApiKeyResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ApiKeyResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ApiKeyResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/apps/{appId}/api-keys/{id}": {
      "delete": {
        "tags": [
          "ApiKeys"
        ],
        "summary": "Deletes an API key owned by the specified app.",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "description": "The application identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The API key identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/apps": {
      "get": {
        "tags": [
          "Apps"
        ],
        "summary": "Lists all applications associated with the authenticated user's tenant.",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.AppSummaryResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.AppSummaryResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.AppSummaryResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Apps"
        ],
        "summary": "Creates a new application for the authenticated user's tenant.",
        "requestBody": {
          "description": "The app creation payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.AppCreateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.AppCreateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.AppCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AppCredentialsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AppCredentialsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AppCredentialsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/apps/{appId}/client-secret": {
      "get": {
        "tags": [
          "Apps"
        ],
        "summary": "Returns the client credentials for the specified application.",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "description": "The application identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ClientSecretResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ClientSecretResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ClientSecretResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/apps/{appId}/support-url": {
      "put": {
        "tags": [
          "Apps"
        ],
        "summary": "Updates the support URL for the specified application.",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "description": "The application identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The support URL payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.AppSupportUrlUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.AppSupportUrlUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.AppSupportUrlUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AppSupportUrlResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AppSupportUrlResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AppSupportUrlResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/apps/{appId}/icon": {
      "put": {
        "tags": [
          "Apps"
        ],
        "summary": "Updates the icon for the specified application.",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "description": "The application identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The icon payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.AppIconUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.AppIconUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.AppIconUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AppIconResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AppIconResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AppIconResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/apps/{appId}/website-url": {
      "put": {
        "tags": [
          "Apps"
        ],
        "summary": "Updates the website URL for the specified application.",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "description": "The application identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The website URL payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.AppWebsiteUrlUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.AppWebsiteUrlUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.AppWebsiteUrlUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AppWebsiteUrlResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AppWebsiteUrlResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AppWebsiteUrlResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/apps/{appId}/description": {
      "put": {
        "tags": [
          "Apps"
        ],
        "summary": "Updates the description for the specified application.",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "description": "The application identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The description payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.AppDescriptionUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.AppDescriptionUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.AppDescriptionUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AppDescriptionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AppDescriptionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AppDescriptionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/apps/{appId}/redirect-uri": {
      "put": {
        "tags": [
          "Apps"
        ],
        "summary": "Updates the redirect URI for the specified application.",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "description": "The application identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The redirect URI payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.RedirectUriUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.RedirectUriUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.RedirectUriUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RedirectUriResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RedirectUriResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RedirectUriResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/apps/{appId}/client-credentials/regenerate": {
      "post": {
        "tags": [
          "Apps"
        ],
        "summary": "Regenerates the client identifier and secret for the specified application.",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "description": "The application identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ClientSecretResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ClientSecretResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ClientSecretResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/apps/{appId}/api-key/rotate": {
      "post": {
        "tags": [
          "Apps"
        ],
        "summary": "Rotates the API key for the specified application, revoking prior keys.",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "description": "The application identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ApiKeyResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ApiKeyResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ApiKeyResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/apps/{appId}": {
      "delete": {
        "tags": [
          "Apps"
        ],
        "summary": "Deletes the specified application and its credentials.",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "description": "The application identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/apps/{appId}/scopes": {
      "get": {
        "tags": [
          "Apps"
        ],
        "summary": "Returns the scopes granted to the specified application.",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "description": "The application identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AppScopeResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AppScopeResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AppScopeResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/auth/register": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Registers a new customer or third-party developer.",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "Type": {
                    "type": "string",
                    "description": "Gets or sets the registration type. Supported values: \"customer\" or \"third-party\"."
                  },
                  "Name": {
                    "type": "string",
                    "description": "Gets or sets the registrant's name."
                  },
                  "Email": {
                    "type": "string",
                    "description": "Gets or sets the registrant's email."
                  },
                  "PhoneNumber": {
                    "type": "string",
                    "description": "Gets or sets the registrant's phone number."
                  },
                  "Country": {
                    "type": "string",
                    "description": "Gets or sets the registrant's country."
                  },
                  "Organization": {
                    "type": "string",
                    "description": "Gets or sets the optional organization name (for customers)."
                  },
                  "Company": {
                    "type": "string",
                    "description": "Gets or sets the company name (for third-party developers)."
                  },
                  "Product": {
                    "type": "string",
                    "description": "Gets or sets the product or solution name (for third-party developers)."
                  },
                  "WebsiteUrl": {
                    "type": "string",
                    "description": "Gets or sets the registrant's website URL."
                  },
                  "ApplicationDescription": {
                    "type": "string",
                    "description": "Gets or sets the description or reason for requesting access."
                  },
                  "TechnicalContactName": {
                    "type": "string",
                    "description": "Gets or sets the technical contact name."
                  },
                  "TechnicalContactEmail": {
                    "type": "string",
                    "description": "Gets or sets the technical contact email."
                  },
                  "TechnicalContactPhone": {
                    "type": "string",
                    "description": "Gets or sets the technical contact phone."
                  },
                  "BusinessContactName": {
                    "type": "string",
                    "description": "Gets or sets the business contact name."
                  },
                  "BusinessContactEmail": {
                    "type": "string",
                    "description": "Gets or sets the business contact email."
                  },
                  "BusinessContactPhone": {
                    "type": "string",
                    "description": "Gets or sets the business contact phone."
                  },
                  "Notes": {
                    "type": "string",
                    "description": "Gets or sets any additional notes supplied by the registrant."
                  },
                  "PartnerAgreement": {
                    "type": "string",
                    "description": "Gets or sets the optional supporting document for verification.",
                    "format": "binary"
                  },
                  "Region": {
                    "type": "string",
                    "description": "Gets or sets the preferred geographic region for peak-hour scheduling (e.g., \"Americas\")."
                  },
                  "Password": {
                    "type": "string",
                    "description": "Gets or sets the registrant's password."
                  }
                }
              },
              "encoding": {
                "Type": {
                  "style": "form"
                },
                "Name": {
                  "style": "form"
                },
                "Email": {
                  "style": "form"
                },
                "PhoneNumber": {
                  "style": "form"
                },
                "Country": {
                  "style": "form"
                },
                "Organization": {
                  "style": "form"
                },
                "Company": {
                  "style": "form"
                },
                "Product": {
                  "style": "form"
                },
                "WebsiteUrl": {
                  "style": "form"
                },
                "ApplicationDescription": {
                  "style": "form"
                },
                "TechnicalContactName": {
                  "style": "form"
                },
                "TechnicalContactEmail": {
                  "style": "form"
                },
                "TechnicalContactPhone": {
                  "style": "form"
                },
                "BusinessContactName": {
                  "style": "form"
                },
                "BusinessContactEmail": {
                  "style": "form"
                },
                "BusinessContactPhone": {
                  "style": "form"
                },
                "Notes": {
                  "style": "form"
                },
                "PartnerAgreement": {
                  "style": "form"
                },
                "Region": {
                  "style": "form"
                },
                "Password": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AuthenticationResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AuthenticationResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AuthenticationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/password-reset/request": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Issues a password reset code to the email address on file.",
        "requestBody": {
          "description": "Email address requesting a reset.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.PasswordResetRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.PasswordResetRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.PasswordResetRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/password-reset/confirm": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Applies a new password using a reset code sent to the user.",
        "requestBody": {
          "description": "Payload containing email, code, and new password.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.PasswordResetConfirmRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.PasswordResetConfirmRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.PasswordResetConfirmRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/change-password": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Changes the password for the authenticated user after validating the current password and strength requirements.",
        "requestBody": {
          "description": "Payload containing the current and new passwords.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.PasswordChangeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.PasswordChangeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.PasswordChangeRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/auth/login": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Authenticates any user role using email and password.",
        "requestBody": {
          "description": "The login payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.LoginRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.LoginRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.LoginRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AuthenticationResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AuthenticationResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AuthenticationResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/token-login": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Authenticates a user using a one-time login token.",
        "requestBody": {
          "description": "The token payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.TokenLoginRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.TokenLoginRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.TokenLoginRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AuthenticationResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AuthenticationResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.AuthenticationResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/login-activity": {
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "Retrieves login activity for the portal. Restricted to administrators.",
        "parameters": [
          {
            "name": "Email",
            "in": "query",
            "description": "Gets or sets the optional email filter. Partial matches are supported.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "AuthenticationMethod",
            "in": "query",
            "description": "Gets or sets the authentication method label to filter on.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Role",
            "in": "query",
            "description": "Gets or sets the role filter.",
            "schema": {
              "$ref": "#/components/schemas/Domain.Enums.UserRole"
            }
          },
          {
            "name": "StartUtc",
            "in": "query",
            "description": "Gets or sets the optional UTC start timestamp.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndUtc",
            "in": "query",
            "description": "Gets or sets the optional UTC end timestamp.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "IsSuccessful",
            "in": "query",
            "description": "Gets or sets the optional success filter. When null, all login attempts are included.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "description": "Gets or sets the requested page (1-based).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Gets or sets the requested page size. Values are capped at 50.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Application.Models.PagedResult`1[[Application.Models.LoginActivityEntry, Application, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Application.Models.PagedResult`1[[Application.Models.LoginActivityEntry, Application, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Application.Models.PagedResult`1[[Application.Models.LoginActivityEntry, Application, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/auth/client-secret": {
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "Returns the decrypted client secret for the authenticated user.",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ClientSecretResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ClientSecretResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ClientSecretResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/auth/redirect-uri": {
      "put": {
        "tags": [
          "Auth"
        ],
        "summary": "Updates the redirect URI for the authenticated user.",
        "requestBody": {
          "description": "The redirect URI payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.RedirectUriUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.RedirectUriUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.RedirectUriUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RedirectUriResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RedirectUriResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.RedirectUriResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/auth/client-credentials/regenerate": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Regenerates the client identifier and secret for the authenticated user.",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ClientSecretResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ClientSecretResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.ClientSecretResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/auth/sso": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Issues a one-time token for SSO login for customers or third-party developers.",
        "requestBody": {
          "description": "The SSO request payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.SsoRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.SsoRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.SsoRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.OneTimeTokenResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.OneTimeTokenResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.OneTimeTokenResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/auth/external-sso": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Issues a one-time SSO token for an external application once client credentials are verified.",
        "requestBody": {
          "description": "The external application SSO request payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.ExternalAppSsoRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.ExternalAppSsoRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.ExternalAppSsoRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.OneTimeTokenResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.OneTimeTokenResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.OneTimeTokenResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/mcp": {
      "get": {
        "tags": [
          "Mcp"
        ],
        "summary": "Handles MCP JSON-RPC requests over HTTP.",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          }
        }
      },
      "options": {
        "tags": [
          "Mcp"
        ],
        "summary": "Handles browser and MCP pre-flight requests.",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Mcp"
        ],
        "summary": "Handles MCP JSON-RPC requests over HTTP.",
        "requestBody": {
          "description": "Incoming JSON-RPC request.",
          "content": {
            "application/json": {
              "schema": { }
            },
            "text/json": {
              "schema": { }
            },
            "application/*+json": {
              "schema": { }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          }
        }
      }
    },
    "/api/reports/usage": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Returns aggregated API usage metrics for the requested date range.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "description": "Optional start date; defaults to the beginning of time.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "end",
            "in": "query",
            "description": "Optional end date; defaults to 1/1/3000.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Application.Models.ApiUsageReport"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Application.Models.ApiUsageReport"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Application.Models.ApiUsageReport"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/nextgen/sandbox-accounts/configs": {
      "get": {
        "tags": [
          "SandboxAccounts"
        ],
        "summary": "Returns all sandbox brand configurations and indicates whether the current tenant already has a sandbox account for each brand.",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxAccountConfigsResponseDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxAccountConfigsResponseDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxAccountConfigsResponseDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerOrApiKey": [ ]
          }
        ]
      }
    },
    "/api/nextgen/sandbox-accounts/register": {
      "post": {
        "tags": [
          "SandboxAccounts"
        ],
        "summary": "Creates a sandbox account for the requested brand by proxying to the configured sandbox register-thirdparty endpoint.",
        "requestBody": {
          "description": "The requested brand code.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SandboxBrandActionRequestDto"
              },
              "example": {
                "brandCode": "BRAND1"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SandboxBrandActionRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SandboxBrandActionRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxAccountCreateResponseDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxAccountCreateResponseDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxAccountCreateResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerOrApiKey": [ ]
          }
        ]
      }
    },
    "/api/nextgen/sandbox-accounts/test-data/create": {
      "post": {
        "tags": [
          "SandboxAccounts"
        ],
        "summary": "Creates mock test data in sandbox for a brand that already has a created sandbox account for the current tenant.",
        "requestBody": {
          "description": "The requested brand code.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SandboxBrandActionRequestDto"
              },
              "example": {
                "brandCode": "BRAND1"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SandboxBrandActionRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SandboxBrandActionRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxBrandActionResponseDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxBrandActionResponseDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxBrandActionResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerOrApiKey": [ ]
          }
        ]
      }
    },
    "/api/nextgen/sandbox-accounts/test-data/restore": {
      "post": {
        "tags": [
          "SandboxAccounts"
        ],
        "summary": "Restores mock test data in sandbox for a brand that already has a created sandbox account for the current tenant.",
        "requestBody": {
          "description": "The requested brand code.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SandboxBrandActionRequestDto"
              },
              "example": {
                "brandCode": "BRAND1"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SandboxBrandActionRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SandboxBrandActionRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxBrandActionResponseDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxBrandActionResponseDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxBrandActionResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerOrApiKey": [ ]
          }
        ]
      }
    },
    "/api/nextgen/sandbox-accounts/rate-limit-config": {
      "get": {
        "tags": [
          "SandboxAccounts"
        ],
        "summary": "Returns the current sandbox rate limit configuration for the authenticated tenant.",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.SandboxRateLimitConfigResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.SandboxRateLimitConfigResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.SandboxRateLimitConfigResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerOrApiKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "SandboxAccounts"
        ],
        "summary": "Sets a custom sandbox rate limit for the authenticated tenant. This flat-rate limit overrides all other rate limits.",
        "requestBody": {
          "description": "The desired rate limit configuration.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.UpdateSandboxRateLimitConfigRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.UpdateSandboxRateLimitConfigRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.UpdateSandboxRateLimitConfigRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.SandboxRateLimitConfigResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.SandboxRateLimitConfigResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.SandboxRateLimitConfigResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerOrApiKey": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "SandboxAccounts"
        ],
        "summary": "Resets the sandbox rate limit to production defaults by disabling the custom override.",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.SandboxRateLimitConfigResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.SandboxRateLimitConfigResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.SandboxRateLimitConfigResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerOrApiKey": [ ]
          }
        ]
      }
    },
    "/api/scopes": {
      "get": {
        "tags": [
          "Scopes"
        ],
        "summary": "Lists all available scope definitions grouped by resource.",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.ScopeResourceResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.ScopeResourceResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.ScopeResourceResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/terms": {
      "get": {
        "tags": [
          "Terms"
        ],
        "summary": "Returns the active terms and conditions HTML.",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.TermsAndConditionsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.TermsAndConditionsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.TermsAndConditionsResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Terms"
        ],
        "summary": "Updates the active terms and conditions entry.",
        "requestBody": {
          "description": "The terms update payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.TermsAndConditionsUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.TermsAndConditionsUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.TermsAndConditionsUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.TermsAndConditionsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.TermsAndConditionsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.TermsAndConditionsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/users/{id}": {
      "put": {
        "tags": [
          "Users"
        ],
        "summary": "Updates the name and email address for a user.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier of the user being updated.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The updated profile details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.UserUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.UserUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.UserUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.UserProfileResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.UserProfileResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.UserProfileResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/users/me": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Returns details about the authenticated user.",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.UserMeResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.UserMeResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.UserMeResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/users/me/accept-terms": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Marks the authenticated user as having accepted the latest terms.",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.UserTermsAcceptanceResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.UserTermsAcceptanceResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.UserTermsAcceptanceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/webhooks/subscriptions": {
      "post": {
        "tags": [
          "WebhookSubscriptions"
        ],
        "summary": "Creates a webhook subscription for the specified application.",
        "description": "The gateway performs a challenge/response handshake by issuing a POST request to the target URL.\r\nEvent topics must match the server-supported catalog (created/updated/deleted for supported resources).\r\nThe request includes the following headers:\r\n<list type=\"bullet\"><item><description>`X-Webhook-Event` = `webhook.subscription.challenge`</description></item><item><description>`X-Webhook-Id` = the subscription identifier</description></item><item><description>`X-Webhook-Timestamp` = UNIX timestamp used for signing</description></item><item><description>`X-Webhook-Signature` = HMAC SHA-256 signature of `{timestamp}.{payload}`</description></item></list>\r\nThe endpoint must respond with HTTP 200 and echo the `challenge` value in the response body.",
        "requestBody": {
          "description": "The subscription payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.WebhookSubscriptionCreateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.WebhookSubscriptionCreateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.WebhookSubscriptionCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.WebhookSubscriptionCreateResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.WebhookSubscriptionCreateResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.WebhookSubscriptionCreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "WebhookSubscriptions"
        ],
        "summary": "Lists webhook subscriptions visible to the authenticated user.",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.WebhookSubscriptionSummaryResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.WebhookSubscriptionSummaryResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.WebhookSubscriptionSummaryResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/webhooks/subscriptions/{id}": {
      "delete": {
        "tags": [
          "WebhookSubscriptions"
        ],
        "summary": "Deletes the specified webhook subscription.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The subscription identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "WebhookSubscriptions"
        ],
        "summary": "Updates the specified webhook subscription.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The subscription identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The update payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.WebhookSubscriptionUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.WebhookSubscriptionUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.DTOs.WebhookSubscriptionUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.WebhookSubscriptionUpdateResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.WebhookSubscriptionUpdateResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.DTOs.WebhookSubscriptionUpdateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    },
    "/api/webhooks/topics": {
      "get": {
        "tags": [
          "WebhookTopics"
        ],
        "summary": "Lists the supported webhook topics.",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.WebhookTopicResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.WebhookTopicResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.DTOs.WebhookTopicResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests allowed in the current window (peak or off-peak).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp (seconds) indicating when the current rate-limit window resets.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "Authorization": [ ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "Api.DTOs.AdminUserResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the database identifier for the user. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the display name.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Gets or sets the email address.",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "description": "Gets or sets the phone number.",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Gets or sets the country.",
            "nullable": true
          },
          "organization": {
            "type": "string",
            "description": "Gets or sets the organization for customers.",
            "nullable": true
          },
          "company": {
            "type": "string",
            "description": "Gets or sets the company for developers.",
            "nullable": true
          },
          "product": {
            "type": "string",
            "description": "Gets or sets the product for developers.",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "description": "Gets or sets any additional notes captured during registration.",
            "nullable": true
          },
          "websiteUrl": {
            "type": "string",
            "description": "Gets or sets the website URL.",
            "nullable": true
          },
          "applicationDescription": {
            "type": "string",
            "description": "Gets or sets the description or reason provided for access.",
            "nullable": true
          },
          "technicalContactName": {
            "type": "string",
            "description": "Gets or sets the technical contact name.",
            "nullable": true
          },
          "technicalContactEmail": {
            "type": "string",
            "description": "Gets or sets the technical contact email.",
            "nullable": true
          },
          "technicalContactPhone": {
            "type": "string",
            "description": "Gets or sets the technical contact phone.",
            "nullable": true
          },
          "businessContactName": {
            "type": "string",
            "description": "Gets or sets the business contact name.",
            "nullable": true
          },
          "businessContactEmail": {
            "type": "string",
            "description": "Gets or sets the business contact email.",
            "nullable": true
          },
          "businessContactPhone": {
            "type": "string",
            "description": "Gets or sets the business contact phone.",
            "nullable": true
          },
          "hasPartnerAgreement": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether a partner agreement is present."
          },
          "partnerAgreementFileName": {
            "type": "string",
            "description": "Gets or sets the partner agreement filename.",
            "nullable": true
          },
          "partnerAgreementContentType": {
            "type": "string",
            "description": "Gets or sets the partner agreement content type.",
            "nullable": true
          },
          "role": {
            "$ref": "#/components/schemas/Domain.Enums.UserRole"
          },
          "status": {
            "$ref": "#/components/schemas/Domain.Enums.UserStatus"
          },
          "requirePasswordChange": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the user must change their password at next login."
          }
        },
        "additionalProperties": false,
        "description": "Response describing a managed user record."
      },
      "Api.DTOs.ApiKeyCreateRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Gets or sets the human-friendly name for the API key being created.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the payload for creating a new API key."
      },
      "Api.DTOs.ApiKeyResponse": {
        "type": "object",
        "properties": {
          "appId": {
            "type": "string",
            "description": "Gets or sets the app identifier that owns the key. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "id": {
            "type": "string",
            "description": "Gets or sets the unique identifier for the API key. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the display name of the API key.",
            "nullable": true
          },
          "key": {
            "type": "string",
            "description": "Gets or sets the generated API key value.",
            "nullable": true
          },
          "createdAtUtc": {
            "type": "string",
            "description": "Gets or sets the UTC timestamp when the key was created.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Represents a saved API key entry."
      },
      "Api.DTOs.ApiLogAnalysisResponse": {
        "type": "object",
        "properties": {
          "logId": {
            "type": "string",
            "description": "Gets or sets the analyzed log identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "overview": {
            "type": "string",
            "description": "Gets or sets the overview summarizing the analysis and health of the full data flow.",
            "nullable": true
          },
          "codeComments": {
            "type": "string",
            "description": "Gets or sets reflections from reviewing the relevant code paths and translations.",
            "nullable": true
          },
          "missingFields": {
            "type": "string",
            "description": "Gets or sets a field-by-field rundown of which gateway or upstream fields were missing along the way.",
            "nullable": true
          },
          "dataMismatches": {
            "type": "string",
            "description": "Gets or sets mismatches between gateway-facing and upstream data.",
            "nullable": true
          },
          "recommendations": {
            "type": "string",
            "description": "Gets or sets actionable recommendations for improving DTO clarity and translations.",
            "nullable": true
          },
          "additionalObservations": {
            "type": "string",
            "description": "Gets or sets developer-focused notes that highlight likely failure points and how to troubleshoot them.",
            "nullable": true
          },
          "codexPromptToFixIssues": {
            "type": "string",
            "description": "Gets or sets a ready-to-copy prompt developers can paste into Codex/Copilot to fix the identified issues.",
            "nullable": true
          },
          "testCoverageGaps": {
            "type": "string",
            "description": "Gets or sets guidance on where automated tests need to be expanded.",
            "nullable": true
          },
          "headerPropagationNotes": {
            "type": "string",
            "description": "Gets or sets notes about authorization, tracing, and other headers as they move through the gateway.",
            "nullable": true
          },
          "additionalPromptResponse": {
            "type": "string",
            "description": "Gets or sets the AI's response to an optional, caller-provided prompt about this API call.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the AI-generated assessment of an API call log."
      },
      "Api.DTOs.AppCreateRequest": {
        "required": [
          "name",
          "redirectUri"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the application display name."
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the application description.",
            "nullable": true
          },
          "supportUrl": {
            "type": "string",
            "description": "Gets or sets the support URL for the application.",
            "nullable": true
          },
          "iconBase64": {
            "type": "string",
            "description": "Gets or sets the base64-encoded icon for the application.",
            "nullable": true
          },
          "redirectUri": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the redirect URI to register for the app."
          },
          "websiteUrl": {
            "type": "string",
            "description": "Gets or sets the website URL associated with the app.",
            "nullable": true
          },
          "technicalContactEmail": {
            "type": "string",
            "description": "Gets or sets the technical contact email for the app.",
            "nullable": true
          },
          "scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Api.DTOs.AppScopeRequest"
            },
            "description": "Gets or sets the scopes requested for the app.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Payload for creating a new application within a tenant."
      },
      "Api.DTOs.AppCredentialsResponse": {
        "type": "object",
        "properties": {
          "appId": {
            "type": "string",
            "description": "Gets or sets the app identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the app display name.",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the app description.",
            "nullable": true
          },
          "supportUrl": {
            "type": "string",
            "description": "Gets or sets the support URL for the app.",
            "nullable": true
          },
          "iconBase64": {
            "type": "string",
            "description": "Gets or sets the base64-encoded icon for the app.",
            "nullable": true
          },
          "clientId": {
            "type": "string",
            "description": "Gets or sets the client identifier for the app.",
            "nullable": true
          },
          "clientSecret": {
            "type": "string",
            "description": "Gets or sets the plaintext client secret for the app.",
            "nullable": true
          },
          "redirectUri": {
            "type": "string",
            "description": "Gets or sets the registered redirect URI.",
            "nullable": true
          },
          "apiKey": {
            "type": "string",
            "description": "Gets or sets the API key value for the app.",
            "nullable": true
          },
          "isDefault": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the app is the tenant default."
          },
          "scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Api.DTOs.AppScopeRequest"
            },
            "description": "Gets or sets the scopes assigned to the app.",
            "nullable": true
          },
          "hasSeenClientSecret": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the current user has already viewed the client secret."
          }
        },
        "additionalProperties": false,
        "description": "Represents full credentials for an application."
      },
      "Api.DTOs.AppDescriptionResponse": {
        "type": "object",
        "properties": {
          "appId": {
            "type": "string",
            "description": "Gets or sets the app identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description for the app.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a description response for an app."
      },
      "Api.DTOs.AppDescriptionUpdateRequest": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Gets or sets the description for the app.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a description update request for an app."
      },
      "Api.DTOs.AppIconResponse": {
        "type": "object",
        "properties": {
          "appId": {
            "type": "string",
            "description": "Gets or sets the app identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "iconBase64": {
            "type": "string",
            "description": "Gets or sets the base64-encoded icon for the app.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents an icon response for an app."
      },
      "Api.DTOs.AppIconUpdateRequest": {
        "type": "object",
        "properties": {
          "iconBase64": {
            "type": "string",
            "description": "Gets or sets the base64-encoded icon for the app.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents an icon update request for an app."
      },
      "Api.DTOs.AppScopeRequest": {
        "type": "object",
        "properties": {
          "resource": {
            "type": "string",
            "description": "Gets or sets the resource key for the scope.",
            "nullable": true
          },
          "operation": {
            "type": "string",
            "description": "Gets or sets the operation allowed for the scope.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a scope selection in app requests."
      },
      "Api.DTOs.AppScopeResponse": {
        "type": "object",
        "properties": {
          "appId": {
            "type": "string",
            "description": "Gets or sets the application identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Api.DTOs.AppScopeRequest"
            },
            "description": "Gets or sets the scopes assigned to the app.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the scopes assigned to an application."
      },
      "Api.DTOs.AppSummaryResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the app identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the app display name.",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the app description.",
            "nullable": true
          },
          "supportUrl": {
            "type": "string",
            "description": "Gets or sets the support URL for the app.",
            "nullable": true
          },
          "iconBase64": {
            "type": "string",
            "description": "Gets or sets the base64-encoded icon for the app.",
            "nullable": true
          },
          "redirectUri": {
            "type": "string",
            "description": "Gets or sets the registered redirect URI.",
            "nullable": true
          },
          "clientId": {
            "type": "string",
            "description": "Gets or sets the client identifier for the app.",
            "nullable": true
          },
          "clientSecretHint": {
            "type": "string",
            "description": "Gets or sets a masked hint of the client secret.",
            "nullable": true
          },
          "websiteUrl": {
            "type": "string",
            "description": "Gets or sets the website URL associated with the app.",
            "nullable": true
          },
          "technicalContactEmail": {
            "type": "string",
            "description": "Gets or sets the technical contact email for the app.",
            "nullable": true
          },
          "isDefault": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the app is the default for the tenant."
          },
          "apiKeyCount": {
            "type": "integer",
            "description": "Gets or sets the number of API keys associated with the app.",
            "format": "int32"
          },
          "createdAtUtc": {
            "type": "string",
            "description": "Gets or sets the UTC timestamp when the app was created.",
            "format": "date-time"
          },
          "hasSeenClientSecret": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the current user has already viewed the client secret."
          }
        },
        "additionalProperties": false,
        "description": "Represents an application summary for listing endpoints."
      },
      "Api.DTOs.AppSupportUrlResponse": {
        "type": "object",
        "properties": {
          "appId": {
            "type": "string",
            "description": "Gets or sets the app identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "supportUrl": {
            "type": "string",
            "description": "Gets or sets the support URL for the app.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a support URL response for an app."
      },
      "Api.DTOs.AppSupportUrlUpdateRequest": {
        "type": "object",
        "properties": {
          "supportUrl": {
            "type": "string",
            "description": "Gets or sets the support URL for the app.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a support URL update request for an app."
      },
      "Api.DTOs.AppWebsiteUrlResponse": {
        "type": "object",
        "properties": {
          "appId": {
            "type": "string",
            "description": "Gets or sets the app identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "websiteUrl": {
            "type": "string",
            "description": "Gets or sets the website URL for the app.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a website URL response for an app."
      },
      "Api.DTOs.AppWebsiteUrlUpdateRequest": {
        "type": "object",
        "properties": {
          "websiteUrl": {
            "type": "string",
            "description": "Gets or sets the website URL for the app.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a website URL update request for an app."
      },
      "Api.DTOs.AuthenticationResponse": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "Gets or sets the issued JWT.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the display name of the authenticated user.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Gets or sets the email of the authenticated user.",
            "nullable": true
          },
          "role": {
            "type": "string",
            "description": "Gets or sets the user's role.",
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "Gets or sets the user's account status.",
            "nullable": true
          },
          "requirePasswordChange": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the user must change their password on next login."
          }
        },
        "additionalProperties": false,
        "description": "Response contract returned after successful authentication."
      },
      "Api.DTOs.AvailableEndpointResponse": {
        "type": "object",
        "properties": {
          "httpMethod": {
            "type": "string",
            "description": "Gets or sets the HTTP method (GET, POST, PUT, PATCH, DELETE).",
            "nullable": true
          },
          "endpointPath": {
            "type": "string",
            "description": "Gets or sets the endpoint route template.",
            "nullable": true
          },
          "summary": {
            "type": "string",
            "description": "Gets or sets the operation summary from the OpenAPI spec.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents an available API endpoint from the OpenAPI specification."
      },
      "Api.DTOs.ClientSecretResponse": {
        "type": "object",
        "properties": {
          "appId": {
            "type": "string",
            "description": "Gets or sets the app identifier associated with the credentials. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid",
            "nullable": true
          },
          "clientId": {
            "type": "string",
            "description": "Gets or sets the OAuth client identifier.",
            "nullable": true
          },
          "clientSecret": {
            "type": "string",
            "description": "Gets or sets the plaintext client secret.",
            "nullable": true
          },
          "redirectUri": {
            "type": "string",
            "description": "Gets or sets the registered redirect URI.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Exposes decrypted client credentials for the authenticated user."
      },
      "Api.DTOs.CreateHolidayRequest": {
        "required": [
          "date",
          "name"
        ],
        "type": "object",
        "properties": {
          "date": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the holiday date (ISO 8601 format, e.g., \"2026-07-04\")."
          },
          "name": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the holiday name (e.g., \"Independence Day\")."
          }
        },
        "additionalProperties": false,
        "description": "Request payload for creating a region holiday."
      },
      "Api.DTOs.EndpointRateLimitRequest": {
        "required": [
          "endpointPath",
          "httpMethod",
          "region"
        ],
        "type": "object",
        "properties": {
          "region": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the region name (e.g., \"Americas\")."
          },
          "httpMethod": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the HTTP method (GET, POST, PUT, PATCH, DELETE)."
          },
          "endpointPath": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the endpoint route template."
          },
          "peakRequestsPerMinute": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "Gets or sets the allowed requests per minute during peak hours.",
            "format": "int32"
          },
          "offPeakRequestsPerMinute": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "Gets or sets the allowed requests per minute during off-peak hours.\r\nWhen null, off-peak falls back to default user/role limits.",
            "format": "int32",
            "nullable": true
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Gets or sets whether this rule is enabled."
          }
        },
        "additionalProperties": false,
        "description": "Request body for creating or updating an endpoint rate limit rule."
      },
      "Api.DTOs.EndpointRateLimitResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the rule identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "region": {
            "type": "string",
            "description": "Gets or sets the region name.",
            "nullable": true
          },
          "httpMethod": {
            "type": "string",
            "description": "Gets or sets the HTTP method.",
            "nullable": true
          },
          "endpointPath": {
            "type": "string",
            "description": "Gets or sets the endpoint route template.",
            "nullable": true
          },
          "peakRequestsPerMinute": {
            "type": "integer",
            "description": "Gets or sets the allowed requests per minute during peak hours.",
            "format": "int32"
          },
          "offPeakRequestsPerMinute": {
            "type": "integer",
            "description": "Gets or sets the allowed requests per minute during off-peak hours.\r\nNull means off-peak falls back to default user/role limits.",
            "format": "int32",
            "nullable": true
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Gets or sets whether this rule is active."
          },
          "createdAtUtc": {
            "type": "string",
            "description": "Gets or sets the UTC creation timestamp.",
            "format": "date-time"
          },
          "updatedAtUtc": {
            "type": "string",
            "description": "Gets or sets the UTC last-updated timestamp.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Response body representing an endpoint rate limit rule."
      },
      "Api.DTOs.ExternalAppSsoRequest": {
        "required": [
          "email",
          "userGlobalId"
        ],
        "type": "object",
        "properties": {
          "userGlobalId": {
            "type": "string",
            "description": "Gets or sets the global user identifier supplied by the external application. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "firmId": {
            "type": "string",
            "description": "Gets or sets the firm identifier used to associate the user with a firm.",
            "nullable": true
          },
          "firmName": {
            "type": "string",
            "description": "Gets or sets the firm name used to populate the gateway application registration payload.",
            "nullable": true
          },
          "email": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the user's email address."
          },
          "firstName": {
            "type": "string",
            "description": "Gets or sets the user's first name.",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "Gets or sets the user's last name.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request contract for external applications to request a one-time SSO token.",
        "example": {
          "UserGlobalId": "7fcb6e10-6bd7-4a20-9d9c-0f1a69a2c5a4",
          "FirmId": "firm-123",
          "FirmName": "Example Firm",
          "Email": "case.manager@profitsolv.com",
          "FirstName": "Case",
          "LastName": "Manager"
        }
      },
      "Api.DTOs.ImpersonationRequest": {
        "type": "object",
        "properties": {
          "targetUserId": {
            "type": "string",
            "description": "Gets or sets the target user identifier to impersonate. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "reason": {
            "type": "string",
            "description": "Gets or sets the audit reason.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request to initiate an admin impersonation session."
      },
      "Api.DTOs.ImpersonationResponse": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "Gets or sets the issued JWT for impersonation.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the display name of the impersonated user.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Gets or sets the email of the impersonated user.",
            "nullable": true
          },
          "role": {
            "type": "string",
            "description": "Gets or sets the role of the impersonated user.",
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "Gets or sets the account status of the impersonated user.",
            "nullable": true
          },
          "appId": {
            "type": "string",
            "description": "Gets or sets the default app identifier for the impersonated user. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid",
            "nullable": true
          },
          "clientId": {
            "type": "string",
            "description": "Gets or sets the OAuth client identifier assigned to the default app.",
            "nullable": true
          },
          "clientSecretHint": {
            "type": "string",
            "description": "Gets or sets the masked hint of the client secret for the default app.",
            "nullable": true
          },
          "clientSecret": {
            "type": "string",
            "description": "Gets or sets the decrypted client secret for the default app.",
            "nullable": true
          },
          "redirectUri": {
            "type": "string",
            "description": "Gets or sets the default redirect URI registered for the default app.",
            "nullable": true
          },
          "requirePasswordChange": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the impersonated user must change their password on next login."
          },
          "apiKeys": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Api.DTOs.ApiKeyResponse"
            },
            "description": "Gets or sets the API keys owned by the impersonated user.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Response returned after an admin impersonates a user."
      },
      "Api.DTOs.InviteAdminRequest": {
        "required": [
          "email",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 200,
            "minLength": 2,
            "type": "string",
            "description": "Gets or sets the display name for the invited administrator."
          },
          "email": {
            "maxLength": 320,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the email address for the invited administrator.",
            "format": "email"
          }
        },
        "additionalProperties": false,
        "description": "Request payload for inviting a new administrator."
      },
      "Api.DTOs.LoginRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Gets or sets the email used for login.",
            "nullable": true
          },
          "password": {
            "type": "string",
            "description": "Gets or sets the plain text password.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request contract for authenticating a user."
      },
      "Api.DTOs.OneTimeTokenResponse": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "Gets or sets the opaque token value.",
            "nullable": true
          },
          "expiresAtUtc": {
            "type": "string",
            "description": "Gets or sets the UTC expiration timestamp for the token.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Response contract for a newly issued one-time token.",
        "example": {
          "Token": "4F2A9C6D1E8B4B5C9D2E0F3A7C8B9D0E",
          "ExpiresAtUtc": "2026-10-03T13:17:34.6916062Z"
        }
      },
      "Api.DTOs.PasswordChangeRequest": {
        "type": "object",
        "properties": {
          "currentPassword": {
            "type": "string",
            "description": "Gets or sets the current password for verification.",
            "nullable": true
          },
          "newPassword": {
            "type": "string",
            "description": "Gets or sets the new password that meets strength requirements.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request payload for changing an authenticated user's password."
      },
      "Api.DTOs.PasswordResetConfirmRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Gets or sets the email associated with the account.",
            "nullable": true
          },
          "code": {
            "type": "string",
            "description": "Gets or sets the reset code sent to the user.",
            "nullable": true
          },
          "newPassword": {
            "type": "string",
            "description": "Gets or sets the desired new password.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Payload for redeeming a password reset code."
      },
      "Api.DTOs.PasswordResetRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Gets or sets the email for which to issue a reset code.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Payload for requesting a password reset code."
      },
      "Api.DTOs.RateLimitRuleResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the unique rule identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "tenantId": {
            "type": "string",
            "description": "Gets or sets the tenant identifier targeted by this rule when tenant-scoped. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid",
            "nullable": true
          },
          "tenantName": {
            "type": "string",
            "description": "Gets or sets the tenant display name. Populated for tenant-scoped rules.",
            "nullable": true
          },
          "role": {
            "$ref": "#/components/schemas/Domain.Enums.UserRole"
          },
          "peakRequestsPerMinute": {
            "type": "integer",
            "description": "Gets or sets the peak-hour requests-per-minute value.",
            "format": "int32"
          },
          "offPeakRequestsPerMinute": {
            "type": "integer",
            "description": "Gets or sets the off-peak requests-per-minute value.",
            "format": "int32"
          },
          "createdAtUtc": {
            "type": "string",
            "description": "Gets or sets when this rule was created.",
            "format": "date-time"
          },
          "updatedAtUtc": {
            "type": "string",
            "description": "Gets or sets when this rule was last updated. Null if never updated.",
            "format": "date-time",
            "nullable": true
          },
          "warning": {
            "type": "string",
            "description": "Gets or sets an optional warning message (e.g., when off-peak defaulted to peak).\r\nOmitted from JSON when null.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Response contract for a persisted rate-limit rule.",
        "example": {
          "id": "11111111-2222-3333-4444-555555555555",
          "tenantId": null,
          "role": 1,
          "peakRequestsPerMinute": 60,
          "offPeakRequestsPerMinute": 150,
          "createdAtUtc": "2026-03-13T18:05:00Z"
        }
      },
      "Api.DTOs.RateLimitUpdateRequest": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "description": "Gets or sets the optional tenant id target.\r\nWhen set, the limit applies to all users/API keys within that tenant. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid",
            "nullable": true
          },
          "role": {
            "$ref": "#/components/schemas/Domain.Enums.UserRole"
          },
          "peakRequestsPerMinute": {
            "type": "integer",
            "description": "Gets or sets the peak-hour requests-per-minute value.",
            "format": "int32",
            "nullable": true
          },
          "offPeakRequestsPerMinute": {
            "type": "integer",
            "description": "Gets or sets the off-peak requests-per-minute value.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request contract for creating or updating a rate limit rule.",
        "example": {
          "tenantId": null,
          "role": 1,
          "peakRequestsPerMinute": 60,
          "offPeakRequestsPerMinute": 150
        }
      },
      "Api.DTOs.RedirectUriResponse": {
        "type": "object",
        "properties": {
          "appId": {
            "type": "string",
            "description": "Gets or sets the app identifier associated with the redirect URI. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid",
            "nullable": true
          },
          "redirectUri": {
            "type": "string",
            "description": "Gets or sets the registered redirect URI.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the updated redirect URI for a user."
      },
      "Api.DTOs.RedirectUriUpdateRequest": {
        "type": "object",
        "properties": {
          "redirectUri": {
            "type": "string",
            "description": "Gets or sets the redirect URI to register for the user.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Payload for updating a user's redirect URI."
      },
      "Api.DTOs.RegionHolidayResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the holiday identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "date": {
            "type": "string",
            "description": "Gets or sets the holiday date.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the holiday name.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a public holiday within a region schedule."
      },
      "Api.DTOs.RegionScheduleResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the schedule identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "region": {
            "type": "string",
            "description": "Gets or sets the region name.",
            "nullable": true
          },
          "peakStartTime": {
            "type": "string",
            "description": "Gets or sets the peak window start time (e.g., \"09:00\").",
            "nullable": true
          },
          "peakEndTime": {
            "type": "string",
            "description": "Gets or sets the peak window end time (e.g., \"20:00\").",
            "nullable": true
          },
          "timeZoneId": {
            "type": "string",
            "description": "Gets or sets the IANA timezone identifier.",
            "nullable": true
          },
          "peakDays": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the peak days.",
            "nullable": true
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Gets or sets whether the schedule is active."
          },
          "holidays": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Api.DTOs.RegionHolidayResponse"
            },
            "description": "Gets or sets the holidays for this region.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a region peak-hour schedule."
      },
      "Api.DTOs.SandboxRateLimitConfigResponse": {
        "type": "object",
        "properties": {
          "isEnabled": {
            "type": "boolean",
            "description": "Gets or sets whether a custom sandbox rate limit is currently active."
          },
          "customRateLimitPerMinute": {
            "type": "integer",
            "description": "Gets or sets the custom rate limit in requests per minute (only meaningful when IsEnabled is true).",
            "format": "int32",
            "nullable": true
          },
          "maxAllowedRateLimitPerMinute": {
            "type": "integer",
            "description": "Gets the maximum allowed custom rate limit per minute.",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Response DTO for sandbox rate limit configuration."
      },
      "Api.DTOs.ScopeOperationResponse": {
        "type": "object",
        "properties": {
          "operation": {
            "type": "string",
            "description": "Gets or sets the operation key.",
            "nullable": true
          },
          "label": {
            "type": "string",
            "description": "Gets or sets the display label for the operation.",
            "nullable": true
          },
          "scopeKey": {
            "type": "string",
            "description": "Gets or sets the combined scope key.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a scope option for a specific operation."
      },
      "Api.DTOs.ScopeResourceResponse": {
        "type": "object",
        "properties": {
          "resource": {
            "type": "string",
            "description": "Gets or sets the resource key.",
            "nullable": true
          },
          "resourceLabel": {
            "type": "string",
            "description": "Gets or sets the display label for the resource.",
            "nullable": true
          },
          "groupName": {
            "type": "string",
            "description": "Gets or sets the optional group name for the resource.",
            "nullable": true
          },
          "operations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Api.DTOs.ScopeOperationResponse"
            },
            "description": "Gets or sets the operations available for the resource.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a resource scope group for UI selection."
      },
      "Api.DTOs.SsoRequest": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "description": "Gets or sets the user's first name.",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "Gets or sets the user's last name.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Gets or sets the user's email address.",
            "nullable": true
          },
          "firmId": {
            "type": "string",
            "description": "Gets or sets the firm identifier associated with the user when applicable.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request contract for issuing a one-time SSO token for any non-admin user,\r\nincluding third-party users and customers."
      },
      "Api.DTOs.TenantPagedResponse": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "description": "Gets or sets the current page number (1-based).",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "Gets or sets the number of items per page.",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "Gets or sets the total number of matching tenants.",
            "format": "int32"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Api.DTOs.TenantSummaryResponse"
            },
            "description": "Gets or sets the tenant items for the current page.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Paginated response for tenant listings."
      },
      "Api.DTOs.TenantSummaryResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the tenant identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the tenant display name.",
            "nullable": true
          },
          "role": {
            "$ref": "#/components/schemas/Domain.Enums.UserRole"
          }
        },
        "additionalProperties": false,
        "description": "Lightweight tenant summary for admin dropdowns and lookups."
      },
      "Api.DTOs.TermsAndConditionsResponse": {
        "type": "object",
        "properties": {
          "termsHtml": {
            "type": "string",
            "description": "Gets or sets the terms and conditions HTML.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the active terms and conditions HTML."
      },
      "Api.DTOs.TermsAndConditionsUpdateRequest": {
        "type": "object",
        "properties": {
          "termsHtml": {
            "type": "string",
            "description": "Gets or sets the terms and conditions HTML.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a terms and conditions update payload."
      },
      "Api.DTOs.ToggleRequest": {
        "type": "object",
        "properties": {
          "isEnabled": {
            "type": "boolean",
            "description": "Gets or sets whether the target should be enabled."
          }
        },
        "additionalProperties": false,
        "description": "Request body for toggling a boolean state."
      },
      "Api.DTOs.TokenLoginRequest": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "Gets or sets the one-time login token.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request contract for exchanging a one-time token for a JWT."
      },
      "Api.DTOs.UpdateRegionScheduleRequest": {
        "required": [
          "peakDays",
          "peakEndTime",
          "peakStartTime"
        ],
        "type": "object",
        "properties": {
          "peakStartTime": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the peak window start time (e.g., \"09:00\")."
          },
          "peakEndTime": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the peak window end time (e.g., \"20:00\")."
          },
          "peakDays": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the peak days (e.g., [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\"])."
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Gets or sets whether the schedule is active."
          }
        },
        "additionalProperties": false,
        "description": "Request payload for updating a region schedule's peak window and days."
      },
      "Api.DTOs.UpdateSandboxRateLimitConfigRequest": {
        "required": [
          "customRateLimitPerMinute"
        ],
        "type": "object",
        "properties": {
          "customRateLimitPerMinute": {
            "maximum": 1000,
            "minimum": 1,
            "type": "integer",
            "description": "Gets or sets the desired rate limit in requests per minute. Must be between 1 and 1000.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Request DTO for setting a custom sandbox rate limit."
      },
      "Api.DTOs.UserMeResponse": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Gets or sets the user's email.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the user's display name.",
            "nullable": true
          },
          "role": {
            "type": "string",
            "description": "Gets or sets the user's role.",
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "Gets or sets the user's account status.",
            "nullable": true
          },
          "userAcceptedTerms": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the user has accepted the latest terms."
          },
          "termsAndConditions": {
            "type": "string",
            "description": "Gets or sets the terms and conditions HTML when acceptance is required.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the current user profile details."
      },
      "Api.DTOs.UserProfileResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the database identifier for the user. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "firstName": {
            "type": "string",
            "description": "Gets or sets the user's first name.",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "Gets or sets the user's last name.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the user's display name.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Gets or sets the email address for the user.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Response contract describing the basic user profile details."
      },
      "Api.DTOs.UserStatusUpdateRequest": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/Domain.Enums.UserStatus"
          }
        },
        "additionalProperties": false,
        "description": "Payload for updating a user's review status."
      },
      "Api.DTOs.UserTermsAcceptanceResponse": {
        "type": "object",
        "properties": {
          "userAcceptedTerms": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the user has accepted the latest terms."
          }
        },
        "additionalProperties": false,
        "description": "Represents the response for a terms acceptance update."
      },
      "Api.DTOs.UserUpdateRequest": {
        "required": [
          "email",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the user's full name."
          },
          "email": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the email address for the user.",
            "format": "email"
          }
        },
        "additionalProperties": false,
        "description": "Payload for updating basic user profile details."
      },
      "Api.DTOs.WebhookSubscriptionCreateRequest": {
        "required": [
          "appId",
          "eventTopics",
          "targetUrl"
        ],
        "type": "object",
        "properties": {
          "appId": {
            "type": "string",
            "description": "Gets or sets the application identifier that owns the subscription. Required. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "targetUrl": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the HTTPS endpoint that should receive webhook events. Required; must be an absolute HTTPS URL."
          },
          "eventTopics": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the event topics to subscribe to. Required; must contain at least one topic.\r\nTopics must match the server-supported catalog (created/updated/deleted per supported resource)."
          },
          "secret": {
            "type": "string",
            "description": "Gets or sets the shared secret used to sign webhook deliveries.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a webhook subscription creation request."
      },
      "Api.DTOs.WebhookSubscriptionCreateResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the subscription identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "appId": {
            "type": "string",
            "description": "Gets or sets the owning application identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "targetUrl": {
            "type": "string",
            "description": "Gets or sets the delivery endpoint URL.",
            "nullable": true
          },
          "eventTopics": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the subscribed event topics.",
            "nullable": true
          },
          "secret": {
            "type": "string",
            "description": "Gets or sets the shared secret used to sign webhook deliveries.",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/Domain.Enums.WebhookSubscriptionStatus"
          },
          "createdAtUtc": {
            "type": "string",
            "description": "Gets or sets the creation timestamp in UTC.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Represents a webhook subscription creation response."
      },
      "Api.DTOs.WebhookSubscriptionSummaryResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the subscription identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "appId": {
            "type": "string",
            "description": "Gets or sets the owning application identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "targetUrl": {
            "type": "string",
            "description": "Gets or sets the delivery endpoint URL.",
            "nullable": true
          },
          "eventTopics": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the subscribed event topics.",
            "nullable": true
          },
          "secret": {
            "type": "string",
            "description": "Gets or sets the shared secret used to sign webhook deliveries.\r\nThis value is read-only after creation.",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/Domain.Enums.WebhookSubscriptionStatus"
          },
          "createdAtUtc": {
            "type": "string",
            "description": "Gets or sets the creation timestamp in UTC.",
            "format": "date-time"
          },
          "updatedAtUtc": {
            "type": "string",
            "description": "Gets or sets the last update timestamp in UTC.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a webhook subscription summary response."
      },
      "Api.DTOs.WebhookSubscriptionUpdateRequest": {
        "type": "object",
        "properties": {
          "targetUrl": {
            "type": "string",
            "description": "Gets or sets the HTTPS endpoint that should receive webhook events.",
            "nullable": true
          },
          "eventTopics": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the event topics to subscribe to.\r\nTopics must match the server-supported catalog (created/updated/deleted per supported resource).",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a webhook subscription update request."
      },
      "Api.DTOs.WebhookSubscriptionUpdateResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the subscription identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "appId": {
            "type": "string",
            "description": "Gets or sets the application identifier that owns the subscription. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "targetUrl": {
            "type": "string",
            "description": "Gets or sets the HTTPS endpoint that should receive webhook events.",
            "nullable": true
          },
          "eventTopics": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the event topics subscribed to.",
            "nullable": true
          },
          "secret": {
            "type": "string",
            "description": "Gets or sets the shared secret used to sign webhook deliveries.\r\nThis value is read-only after creation.",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/Domain.Enums.WebhookSubscriptionStatus"
          },
          "createdAtUtc": {
            "type": "string",
            "description": "Gets or sets the creation timestamp in UTC.",
            "format": "date-time"
          },
          "updatedAtUtc": {
            "type": "string",
            "description": "Gets or sets the last update timestamp in UTC.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a webhook subscription update response."
      },
      "Api.DTOs.WebhookTopicResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Gets or sets the full topic name (e.g. client.created).",
            "nullable": true
          },
          "resource": {
            "type": "string",
            "description": "Gets or sets the resource name for the topic (camelCase).",
            "nullable": true
          },
          "action": {
            "type": "string",
            "description": "Gets or sets the action name for the topic (created, updated, deleted).",
            "nullable": true
          },
          "active": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the topic is active."
          }
        },
        "additionalProperties": false,
        "description": "Represents a webhook topic definition exposed by the gateway."
      },
      "Application.Models.ApiCallLogDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets the unique log identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "userId": {
            "type": "string",
            "description": "Gets the user identifier associated with the request, when available. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid",
            "nullable": true
          },
          "userEmail": {
            "type": "string",
            "description": "Gets the email or username of the caller, when available.",
            "nullable": true
          },
          "method": {
            "type": "string",
            "description": "Gets the HTTP method used for the request.",
            "nullable": true
          },
          "path": {
            "type": "string",
            "description": "Gets the path that was requested.",
            "nullable": true
          },
          "requestQueryString": {
            "type": "string",
            "description": "Gets the query string submitted with the request, when present.",
            "nullable": true
          },
          "requestCurl": {
            "type": "string",
            "description": "Gets a ready-to-run curl command that replicates the inbound request.",
            "nullable": true
          },
          "requestBody": {
            "type": "string",
            "description": "Gets the sanitized request body.",
            "nullable": true
          },
          "requestHeaders": {
            "type": "string",
            "description": "Gets the request headers associated with the call.",
            "nullable": true
          },
          "upstreamRequestHeaders": {
            "type": "string",
            "description": "Gets the serialized headers that were forwarded upstream.",
            "nullable": true
          },
          "upstreamRequestBody": {
            "type": "string",
            "description": "Gets the serialized body that was forwarded upstream.",
            "nullable": true
          },
          "upstreamRequestQueryString": {
            "type": "string",
            "description": "Gets the query string that was forwarded upstream, when present.",
            "nullable": true
          },
          "upstreamRequestCurl": {
            "type": "string",
            "description": "Gets a ready-to-run curl command that replicates the upstream request.",
            "nullable": true
          },
          "upstreamUrl": {
            "type": "string",
            "description": "Gets the fully-qualified upstream URL that was called.",
            "nullable": true
          },
          "upstreamResponseHeaders": {
            "type": "string",
            "description": "Gets the serialized headers returned by NextGen.",
            "nullable": true
          },
          "upstreamResponseBody": {
            "type": "string",
            "description": "Gets the serialized body returned by NextGen.",
            "nullable": true
          },
          "responseBody": {
            "type": "string",
            "description": "Gets the sanitized response body.",
            "nullable": true
          },
          "responseHeaders": {
            "type": "string",
            "description": "Gets the response headers associated with the call.",
            "nullable": true
          },
          "statusCode": {
            "type": "integer",
            "description": "Gets the HTTP status code returned to the caller.",
            "format": "int32"
          },
          "correlationId": {
            "type": "string",
            "description": "Gets the correlation identifier used to join related request and response events.",
            "nullable": true
          },
          "durationMs": {
            "type": "number",
            "description": "Gets the total duration of the request in milliseconds.",
            "format": "double"
          },
          "upstreamDurationMs": {
            "type": "number",
            "description": "Gets the duration of the upstream NextGen request in milliseconds, when available.",
            "format": "double",
            "nullable": true
          },
          "requestedAtUtc": {
            "type": "string",
            "description": "Gets the UTC timestamp when the request started processing.",
            "format": "date-time"
          },
          "respondedAtUtc": {
            "type": "string",
            "description": "Gets the UTC timestamp when the response was returned.",
            "format": "date-time"
          },
          "impersonatedByAdminId": {
            "type": "string",
            "description": "Gets the admin user identifier when the request was made via impersonation. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the detailed view of an API call log."
      },
      "Application.Models.ApiCallLogSummary": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets the unique log identifier. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "userId": {
            "type": "string",
            "description": "Gets the user identifier associated with the request, when available. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid",
            "nullable": true
          },
          "userEmail": {
            "type": "string",
            "description": "Gets the email or username of the caller, when available.",
            "nullable": true
          },
          "method": {
            "type": "string",
            "description": "Gets the HTTP method used for the request.",
            "nullable": true
          },
          "path": {
            "type": "string",
            "description": "Gets the path that was requested.",
            "nullable": true
          },
          "requestQueryString": {
            "type": "string",
            "description": "Gets the query string submitted with the request, when present.",
            "nullable": true
          },
          "upstreamUrl": {
            "type": "string",
            "description": "Gets the fully-qualified upstream URL that was called when forwarding the request.",
            "nullable": true
          },
          "statusCode": {
            "type": "integer",
            "description": "Gets the HTTP status code returned to the caller.",
            "format": "int32"
          },
          "correlationId": {
            "type": "string",
            "description": "Gets the correlation identifier used to join related request and response events.",
            "nullable": true
          },
          "durationMs": {
            "type": "number",
            "description": "Gets the total duration of the request in milliseconds.",
            "format": "double"
          },
          "upstreamDurationMs": {
            "type": "number",
            "description": "Gets the duration of the upstream NextGen request in milliseconds, when available.",
            "format": "double",
            "nullable": true
          },
          "requestedAtUtc": {
            "type": "string",
            "description": "Gets the UTC timestamp when the request started processing.",
            "format": "date-time"
          },
          "respondedAtUtc": {
            "type": "string",
            "description": "Gets the UTC timestamp when the response was returned.",
            "format": "date-time"
          },
          "impersonatedByAdminId": {
            "type": "string",
            "description": "Gets the admin user identifier when the request was made via impersonation. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the lightweight fields returned when listing API call logs."
      },
      "Application.Models.ApiUsageReport": {
        "type": "object",
        "properties": {
          "startUtc": {
            "type": "string",
            "description": "Gets the normalized start date used for the report.",
            "format": "date-time"
          },
          "endUtc": {
            "type": "string",
            "description": "Gets the normalized end date used for the report.",
            "format": "date-time"
          },
          "current": {
            "$ref": "#/components/schemas/Application.Models.ApiUsageReportWindow"
          },
          "previous": {
            "$ref": "#/components/schemas/Application.Models.ApiUsageReportWindow"
          },
          "rateLimitRules": {
            "$ref": "#/components/schemas/Application.Models.RateLimitRuleBreakdown"
          }
        },
        "additionalProperties": false,
        "description": "Represents the API usage report for the current request along with comparisons."
      },
      "Application.Models.ApiUsageReportWindow": {
        "type": "object",
        "properties": {
          "rangeStartUtc": {
            "type": "string",
            "description": "Gets the inclusive UTC start of the reporting window.",
            "format": "date-time"
          },
          "rangeEndUtc": {
            "type": "string",
            "description": "Gets the inclusive UTC end of the reporting window.",
            "format": "date-time"
          },
          "totalApiCalls": {
            "type": "integer",
            "description": "Gets the total number of API calls captured in the window.",
            "format": "int32"
          },
          "statusCodeCounts": {
            "type": "object",
            "additionalProperties": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Gets the count of responses grouped by HTTP status code.",
            "nullable": true
          },
          "requestsByMethod": {
            "type": "object",
            "additionalProperties": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Gets the count of requests grouped by HTTP method.",
            "nullable": true
          },
          "averageDurationMs": {
            "type": "number",
            "description": "Gets the average request duration in milliseconds for the window.",
            "format": "double"
          },
          "topPaths": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Application.Models.PathCallCount"
            },
            "description": "Gets the most frequently accessed paths for the window.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents aggregated usage data for a specific time window."
      },
      "Application.Models.LoginActivityEntry": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the database identifier for the activity entry. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid"
          },
          "userId": {
            "type": "string",
            "description": "Gets or sets the identifier of the user who logged in, when available. 3f2504e0-4f89-41d3-9a0c-0305e82c3301",
            "format": "uuid",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Gets or sets the email used to authenticate.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the display name of the user, when available.",
            "nullable": true
          },
          "role": {
            "$ref": "#/components/schemas/Domain.Enums.UserRole"
          },
          "authenticationMethod": {
            "type": "string",
            "description": "Gets or sets the authentication method label used to log in.",
            "nullable": true
          },
          "ipAddress": {
            "type": "string",
            "description": "Gets or sets the observed IP address for the request.",
            "nullable": true
          },
          "userAgent": {
            "type": "string",
            "description": "Gets or sets the user agent supplied by the client.",
            "nullable": true
          },
          "loggedInAtUtc": {
            "type": "string",
            "description": "Gets or sets the UTC timestamp when the login was recorded.",
            "format": "date-time"
          },
          "isSuccessful": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the login was successful."
          },
          "failureReason": {
            "type": "string",
            "description": "Gets or sets the failure reason when Application.Models.LoginActivityEntry.IsSuccessful is `false`.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a login activity entry returned to administrators."
      },
      "Application.Models.PagedResult`1[[Application.Models.ApiCallLogSummary, Application, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "description": "Gets or sets the current page number (1-based).",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "Gets or sets the requested page size.",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "Gets or sets the optional total count if provided by the upstream API.",
            "format": "int32",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Application.Models.ApiCallLogSummary"
            },
            "description": "Gets or sets the items contained in this page.",
            "nullable": true
          },
          "totalPages": {
            "type": "integer",
            "description": "Gets the total number of pages when the total count is available.",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a paged collection with optional total count metadata."
      },
      "Application.Models.PagedResult`1[[Application.Models.LoginActivityEntry, Application, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "description": "Gets or sets the current page number (1-based).",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "Gets or sets the requested page size.",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "Gets or sets the optional total count if provided by the upstream API.",
            "format": "int32",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Application.Models.LoginActivityEntry"
            },
            "description": "Gets or sets the items contained in this page.",
            "nullable": true
          },
          "totalPages": {
            "type": "integer",
            "description": "Gets the total number of pages when the total count is available.",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a paged collection with optional total count metadata."
      },
      "Application.Models.PathCallCount": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "description": "The request path.",
            "nullable": true
          },
          "count": {
            "type": "integer",
            "description": "The number of times the path was requested.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Identifies how often a specific path was called."
      },
      "Application.Models.RateLimitRuleBreakdown": {
        "type": "object",
        "properties": {
          "totalRules": {
            "type": "integer",
            "description": "Gets the total number of configured rules.",
            "format": "int32"
          },
          "userSpecificRules": {
            "type": "integer",
            "description": "Gets the number of rules scoped to individual users.",
            "format": "int32"
          },
          "roleRules": {
            "type": "object",
            "additionalProperties": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Gets the number of role-based rules keyed by role name.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the breakdown of rate limit rules configured in the system."
      },
      "Domain.Enums.UserRole": {
        "enum": [
          "customer",
          "thirdPartyDeveloper",
          "admin"
        ],
        "type": "string",
        "description": "Represents the supported roles within the ProfitSolv API Gateway."
      },
      "Domain.Enums.UserStatus": {
        "enum": [
          "pending",
          "approved",
          "rejected"
        ],
        "type": "string",
        "description": "Represents the review status for a user account."
      },
      "Domain.Enums.WebhookSubscriptionStatus": {
        "enum": [
          "active",
          "disabled"
        ],
        "type": "string",
        "description": "Represents the current status of a webhook subscription."
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "SandboxAccountConfigsResponseDto": {
        "type": "object",
        "properties": {
          "isSandboxEnvironment": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the API is running in a sandbox environment."
          },
          "brands": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SandboxBrandConfigurationDto"
            },
            "description": "Gets or sets the sandbox brands available for the authenticated tenant.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the response payload returned by sandbox brand configuration endpoint."
      },
      "SandboxAccountCreateResponseDto": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether sandbox registration was successful."
          },
          "message": {
            "type": "string",
            "description": "Gets or sets the message returned by the sandbox upstream API.",
            "nullable": true
          },
          "username": {
            "type": "string",
            "description": "Gets or sets the created sandbox username.",
            "nullable": true
          },
          "password": {
            "type": "string",
            "description": "Gets or sets the created sandbox password.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the register-thirdparty response mapped for gateway consumers."
      },
      "SandboxBrandActionRequestDto": {
        "type": "object",
        "properties": {
          "brandCode": {
            "type": "string",
            "description": "Gets or sets the brand code configured under SandBoxConfigs.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the sandbox brand payload used by create, test-data create, and test-data restore operations.",
        "example": {
          "BrandCode": "BRAND1"
        }
      },
      "SandboxBrandActionResponseDto": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the upstream action completed successfully."
          },
          "message": {
            "type": "string",
            "description": "Gets or sets the upstream status message.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the response payload for test-data create and restore actions."
      },
      "SandboxBrandConfigurationDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Gets or sets the brand display name.",
            "nullable": true
          },
          "code": {
            "type": "string",
            "description": "Gets or sets the unique brand code used by sandbox APIs.",
            "nullable": true
          },
          "sandboxApiUrl": {
            "type": "string",
            "description": "Gets or sets the sandbox base API URL for the brand.",
            "nullable": true
          },
          "sandboxUrl": {
            "type": "string",
            "description": "Gets or sets the sandbox base URL for the brand.",
            "nullable": true
          },
          "hasSandboxAccount": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the tenant already has a sandbox account for the brand."
          },
          "sandboxUsername": {
            "type": "string",
            "description": "Gets or sets the stored sandbox username when an account has already been registered.",
            "nullable": true
          },
          "sandboxLoginUrl": {
            "type": "string",
            "description": "Gets or sets the direct login URL for sandbox, including the username query string when available.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a configured sandbox brand and the tenant-specific account status."
      }
    },
    "securitySchemes": {
      "Authorization": {
        "type": "apiKey",
        "description": "Provide either a JWT as 'Bearer {token}' or an API key as 'ApiKey <key>' in the Authorization header.",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "tags": [
    {
      "name": "Admin",
      "description": "Provides administrative management endpoints."
    },
    {
      "name": "ApiKeys",
      "description": "Manages API keys for tenant applications."
    },
    {
      "name": "Apps",
      "description": "Manages tenant applications and their credentials."
    },
    {
      "name": "Auth",
      "description": "Handles registration and authentication flows for all user types."
    },
    {
      "name": "Mcp",
      "description": "Minimal MCP JSON-RPC endpoint that exposes NextGen Swagger operations as tools."
    },
    {
      "name": "Reports",
      "description": "Provides reporting endpoints for API usage insights."
    },
    {
      "name": "Scopes",
      "description": "Provides available scope options for app registration."
    },
    {
      "name": "Terms",
      "description": "Provides endpoints for managing terms and conditions."
    },
    {
      "name": "Users",
      "description": "Provides endpoints for managing individual user profile details."
    },
    {
      "name": "WebhookSubscriptions",
      "description": "Manages webhook subscriptions for application events."
    },
    {
      "name": "WebhookTopics",
      "description": "Exposes the webhook topic catalog."
    },
    {
      "name": "SandboxAccounts",
      "description": "Exposes sandbox account operations for configured brands in sandbox environments."
    }
  ]
}