openapi: 3.1.0 info: title: Apinizer Management APIs description: "As an alternative to managing your Apinizer with the management UI,\ \ you can manage it using Management APIs." license: name: Apache 2.0 url: https://docs.apinizer.com version: 1.0.1 servers: - url: http://167.86.118.166:32080 description: Generated server url tags: - name: EnvironmentVariable description: "Set of endpoints for Creating, Retrieving, Updating and Deleting EnvironmentVariable." - name: PromotionCertificate description: Cross-instance certificate transfer for API Promotion. - name: AiPromptDecoratorPresetProject description: Set of endpoints for Managing a project's AI Gateway prompt-decorator presets. - name: Transfer (v2) description: "Versioned export / import between installations: preview → digest-bound\ \ run" - name: AiDlpPreset description: Set of endpoints for Managing AI Gateway DLP (secret/credential) presets. - name: LimitAssignment description: "Single limit assignments: list, read, create, update, activate, end,\ \ validate." - name: AiPrivacyPresetProject description: Set of endpoints for Managing a project's AI Gateway privacy (PII) presets. - name: Keystore description: "Set of endpoints for Creating, Retrieving, Updating and Deleting Keystores." - name: AiPromptGuardPresetProject description: Set of endpoints for Managing a project's AI Gateway prompt-guard presets. - name: UsageRanking description: "Period rankings by consumption, and the API breakdown of one consumer\ \ or application." - name: Consumer Role description: "Consumer roles by name: list, read, create, update, delete." - name: GlobalPolicy description: "Set of endpoints for Creating, Retrieving, Updating and Deleting a\ \ project's global policies." - name: IPGroups description: "Set of endpoints for Creating, Retrieving, Updating and Deleting IP\ \ Groups." - name: AiPromptTemplate description: Set of endpoints for Managing AI Gateway prompt templates. - name: UsageReport description: "Consumption and remaining budget of an organization, consumer, application,\ \ API client or API proxy." - name: CredentialOrganization description: Deprecated — use /consumer-organizations. Consumer organizations addressed by code. - name: LlmProvider description: "Set of endpoints for Creating, Retrieving, Updating and Deleting AI\ \ Gateway LLM providers." - name: LimitAssignmentRun description: "Bulk limit assignment runs: preview, start, monitor, cancel, roll\ \ back, retry." - name: Credential description: Deprecated — use /consumers. Consumers (credentials) addressed by username. - name: ProjectReports description: "Project-scoped analytics reports: identities and endpoints that produced\ \ no traffic in a period." - name: Environment description: Set of endpoints for Listing Environments. - name: Application description: "Applications: list, read, suspend/resume, and their API clients and\ \ limit assignments." - name: Auth description: Set of endpoints for Creating and Retrieving Authorization Tokens. - name: ApiClient description: "API clients: list, read, create (active, with its first secret), edit,\ \ suspend/resume/revoke, secret generations." - name: DB2API description: Set of endpoints for listing and promoting DB2API (DbToApi) creators. - name: ApiProxy description: "Set of endpoints for Creating, Retrieving, Updating and Deleting ApiProxy." - name: Promotion description: Promotion execution endpoints - create and query executions - name: Project description: Set of endpoints for Listing Projects. - name: ExportImport description: "Generic export/import for every supported object type (proxy group,\ \ global policy, credential, environment variable, IP group, LLM provider, MCP/A2A\ \ server, knowledge base, report, test collection, ...)." - name: AiPromptDecoratorPreset description: Set of endpoints for Managing AI Gateway prompt-decorator presets. - name: VectorDb description: "Set of endpoints for Creating, Retrieving, Updating, Deleting and\ \ Testing AI Gateway Vector DB connections." - name: TrafficLogSettings description: Set of endpoints for Managing API Proxy Traffic Log Settings. - name: KnowledgeBase description: "Set of endpoints for Creating, Retrieving, Updating and Deleting AI\ \ Gateway Knowledge Bases and their documents." - name: ApiProxyGroup description: "Set of endpoints for Creating, Retrieving, Updating and Deleting Api\ \ Proxy Group." - name: RLCL description: "Set of endpoints for Creating, Retrieving, Updating and Deleting Rate\ \ Limit Control Lists." - name: Policy description: "Set of endpoints for Creating, Retrieving, Updating and Deleting the\ \ policies of an ApiProxy. Permission: API_MANAGEMENT; on an AI, MCP or A2A proxy,\ \ API_MANAGEMENT or AI_DEVELOPMENT. A deploy=true request also needs DEPLOY_UNDEPLOY:\ \ AI_DEVELOPMENT on an AI, MCP or A2A proxy, API_MANAGEMENT on every other proxy." - name: Utility description: Set of utility endpoints for retrieving basic resource information by ID. - name: AiTopicCategoryPresetProject description: Set of endpoints for Managing a project's AI Gateway content-safety category presets. - name: LifecyclePurge description: "Data lifecycle purges: preview a manifest, approve it as a second\ \ pair of eyes, run it, follow it and cancel it." - name: Script2API description: Set of endpoints for listing and promoting Script2API (ScriptToApi) creators. - name: JWK description: "Set of endpoints for Creating, Retrieving, Updating, Deleting and\ \ Generating JWKs." - name: AiPrivacyPreset description: Set of endpoints for Managing AI Gateway privacy (PII) presets. - name: IdentitySyncRun description: "Identity synchronization runs of an LDAP / database / API / OIDC source:\ \ queue, read, issues, approve reconcile." - name: AuthenticationOidcProvider description: Set of endpoints for managing OIDC identity providers. - name: AiTopicCategoryPreset description: Set of endpoints for Managing AI Gateway content-safety category presets. - name: AiDlpPresetProject description: Set of endpoints for Managing a project's AI Gateway DLP (secret/credential) presets. - name: AiPromptGuardPreset description: Set of endpoints for Managing AI Gateway prompt-guard presets. - name: Consumer description: "Consumers: list, read, create, update, enable, disable, delete, password,\ \ access, secret-material references, token settings, their API clients and limit\ \ assignments, the organization transfer action, and consumer organizations." - name: Key description: "Set of endpoints for Creating, Retrieving, Updating and Deleting Keys." - name: AiGatewaySetting description: Set of endpoints for Managing AI Gateway global Settings. - name: GeoLocation description: Set of endpoints for Managing Geolocation Settings. - name: MockAPI description: Set of endpoints for listing and promoting MockAPI creators. - name: LimitPlan description: "Limit plans: descriptive metadata, rule body, activate, deactivate." - name: Test description: Test endpoints - name: Connection description: "Set of endpoints for Creating, Retrieving, Updating and Deleting ConnectionConfig." - name: AiPromptTemplateProject description: Set of endpoints for Managing a project's AI Gateway prompt templates. - name: PolicyGroup description: "Set of endpoints for Creating, Retrieving, Updating and Deleting a\ \ project's policy groups." - name: LegalHold description: "Legal holds: list, place and release the block that refuses every\ \ destructive operation on a subject." paths: /apiops/settings/geolocation/mmdb: put: tags: - GeoLocation summary: Upload MMDB file for Geolocation description: Uploads MMDB file for Geolocation Settings operationId: uploadMMDBFile requestBody: content: multipart/form-data: schema: type: object properties: file: type: string format: binary description: MMDB file to be uploaded fileName: type: string description: File name required: - file responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/settings/geolocation/enable: put: tags: - GeoLocation summary: Enable Geolocation description: Enables Geolocation Settings operationId: enableGeolocation responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/settings/geolocation/disable: put: tags: - GeoLocation summary: Disable Geolocation description: Disables Geolocation Settings operationId: disableGeolocation responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/settings/ai-topic-category-presets/{entryName}/: get: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Gets one of the AI content-safety category presets by name operationId: getTopicCategoryPresets parameters: - name: entryName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiTopicCategoryPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Updates one of the AI content-safety category presets operationId: updateTopicCategoryPresets parameters: - name: entryName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiTopicCategoryPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Adds one of the AI content-safety category presets (upsert by name) description: Adds an entry. If one with the same name exists in this scope it is updated instead. operationId: addTopicCategoryPresets parameters: - name: entryName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiTopicCategoryPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Deletes one of the AI content-safety category presets by name description: "Deletes an entry. A shipped (built-in) entry can be deleted too,\ \ and the deletion is permanent: seed changesets are deduplicated by id and\ \ none of them run again, so a deleted entry does NOT come back on a later\ \ version upgrade. It returns only if a future release ships an explicit re-seed\ \ changeset." operationId: deleteTopicCategoryPresets parameters: - name: entryName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/settings/ai-prompt-templates/{entryName}/: get: tags: - AiTopicCategoryPreset - AiPromptTemplate - AiPromptGuardPreset - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Gets one of the AI prompt templates by name operationId: getPromptTemplates parameters: - name: entryName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiPromptTemplate" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - AiTopicCategoryPreset - AiPromptTemplate - AiPromptGuardPreset - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Updates one of the AI prompt templates operationId: updatePromptTemplates parameters: - name: entryName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiPromptTemplateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - AiTopicCategoryPreset - AiPromptTemplate - AiPromptGuardPreset - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Adds one of the AI prompt templates (upsert by name) description: Adds an entry. If one with the same name exists in this scope it is updated instead. operationId: addPromptTemplates parameters: - name: entryName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiPromptTemplateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - AiTopicCategoryPreset - AiPromptTemplate - AiPromptGuardPreset - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Deletes one of the AI prompt templates by name description: "Deletes an entry. A shipped (built-in) entry can be deleted too,\ \ and the deletion is permanent: seed changesets are deduplicated by id and\ \ none of them run again, so a deleted entry does NOT come back on a later\ \ version upgrade. It returns only if a future release ships an explicit re-seed\ \ changeset." operationId: deletePromptTemplates parameters: - name: entryName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/settings/ai-prompt-guard-presets/{presetName}/: get: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Gets an AI prompt-guard preset by name operationId: getPromptGuardPreset parameters: - name: presetName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiPromptGuardPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Updates an existing AI prompt-guard preset description: Updates a custom AI prompt-guard preset. Built-in presets are read-only and reject this call. operationId: updatePromptGuardPreset parameters: - name: presetName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiPromptGuardPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Adds an AI prompt-guard preset (upsert by name) description: Adds a custom AI prompt-guard preset. If one with the same name exists it is updated. Built-in presets are read-only. operationId: addPromptGuardPreset parameters: - name: presetName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiPromptGuardPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Deletes an AI prompt-guard preset by name description: Deletes a custom AI prompt-guard preset. Built-in presets are read-only and reject this call. operationId: deletePromptGuardPreset parameters: - name: presetName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/settings/ai-prompt-decorator-presets/{presetName}/: get: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Gets an AI prompt-decorator preset by name operationId: getPromptDecoratorPreset parameters: - name: presetName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiPromptDecoratorPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Updates an existing AI prompt-decorator preset description: Updates a custom AI prompt-decorator preset. Built-in presets are read-only and reject this call. operationId: updatePromptDecoratorPreset parameters: - name: presetName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiPromptDecoratorPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Adds an AI prompt-decorator preset (upsert by name) description: Adds a custom AI prompt-decorator preset. If one with the same name exists it is updated. Built-in presets are read-only. content is required; role must be system/user/assistant and position PREPEND/APPEND (blank values normalize to system/PREPEND). operationId: addPromptDecoratorPreset parameters: - name: presetName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiPromptDecoratorPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Deletes an AI prompt-decorator preset by name description: Deletes a custom AI prompt-decorator preset. Built-in presets are read-only and reject this call. Blocks previously imported into policies are snapshots and keep working. operationId: deletePromptDecoratorPreset parameters: - name: presetName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/settings/ai-privacy-presets/{presetName}/: get: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Gets an AI privacy preset by name operationId: getPrivacyPreset parameters: - name: presetName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Updates an existing AI privacy preset description: Updates a custom AI privacy preset. Built-in presets are read-only and reject this call. operationId: updatePrivacyPreset parameters: - name: presetName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiPrivacyPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Adds an AI privacy preset (upsert by name) description: Adds a custom AI privacy preset. If one with the same name exists it is updated. Built-in presets are read-only. operationId: addPrivacyPreset parameters: - name: presetName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiPrivacyPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Deletes an AI privacy preset by name description: Deletes a custom AI privacy preset. Built-in presets are read-only and reject this call. operationId: deletePrivacyPreset parameters: - name: presetName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/settings/ai-gateway: get: tags: - AiGatewaySetting summary: Get AI Gateway Settings description: "Returns the global AI Gateway settings (singleton document, system-admin\ \ only)" operationId: getAiGatewaySetting responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiGatewaySetting" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - AiGatewaySetting summary: Update AI Gateway Settings description: "Updates the global AI Gateway settings (singleton document, system-admin\ \ only). Only non-null fields in the request body are applied — existing values\ \ are preserved for omitted fields." operationId: updateAiGatewaySetting requestBody: content: application/json: schema: $ref: "#/components/schemas/AiGatewaySettingDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiGatewaySetting" "400": description: bad request! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/settings/ai-dlp-presets/{presetName}/: get: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Gets an AI DLP preset by name operationId: getDlpPreset parameters: - name: presetName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiDlpPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Updates an existing AI DLP preset description: Updates a custom AI DLP preset. Built-in presets are read-only and reject this call. operationId: updateDlpPreset parameters: - name: presetName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiDlpPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Adds an AI DLP preset (upsert by name) description: Adds a custom AI DLP preset. If one with the same name exists it is updated. Built-in presets are read-only. operationId: addDlpPreset parameters: - name: presetName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiDlpPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Deletes an AI DLP preset by name description: Deletes a custom AI DLP preset. Built-in presets are read-only and reject this call. operationId: deleteDlpPreset parameters: - name: presetName in: path required: true schema: type: string - name: projectId in: query required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/vector-dbs/{vectorDbName}/: get: tags: - VectorDb summary: Gets a Vector DB connection by name description: Gets a Vector DB connection by name. Secret fields (jdbc password / http apiKey+apiSecret / redis password) are masked. operationId: getVectorDb parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: vectorDbName in: path description: Vector DB connection name required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseVectorDb" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - VectorDb summary: Updates an existing Vector DB connection at specified project description: "Updates an existing Vector DB connection (jdbc password / http\ \ apiKey+apiSecret / redis password). ABSENT vs EMPTY semantics apply to secret\ \ fields (2026-08-04): if a field is ABSENT from the payload (null) the stored\ \ value is PRESERVED; if the field is sent EMPTY (\"\") the secret is DELETED.\ \ In CI/CD templates, the intent \"do not change\" must be expressed by OMITTING\ \ the field — do NOT send an empty string." operationId: updateVectorDb parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: vectorDbName in: path description: Vector DB connection name required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ConnectionConfigVectorDb" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - VectorDb summary: Add a Vector DB connection to specified project description: "Adds a Vector DB connection to specified project. If a connection\ \ with the same name exists, it is updated (upsert)." operationId: addVectorDb parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: vectorDbName in: path description: Vector DB connection name required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ConnectionConfigVectorDb" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - VectorDb summary: Deletes an existing Vector DB connection from specified project description: Deletes an existing Vector DB connection from specified project and undeploys it from workers. operationId: deleteVectorDb parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: vectorDbName in: path description: Vector DB connection name required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/rlcl/{rlclName}/endpoints/: put: tags: - RLCL summary: Update API endpoints in an RLCL description: "RETIRED (APNZ-6652 R4): rate limit lists are no longer enforced\ \ by the gateway — they were migrated to typed limit plans and assignments\ \ at upgrade. This write operation now answers 400 with errorKey credentialRateLimit.retired.\ \ Original: Updates API endpoints in an existing RLCL" operationId: updateEndpoints parameters: - name: projectName in: path required: true schema: type: string - name: rlclName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/EndpointRateLimitListDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "400": description: "Retired: rate limit lists are read-only (errorKey credentialRateLimit.retired)" content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true post: tags: - RLCL summary: Add API endpoints to an RLCL description: "RETIRED (APNZ-6652 R4): rate limit lists are no longer enforced\ \ by the gateway — they were migrated to typed limit plans and assignments\ \ at upgrade. This write operation now answers 400 with errorKey credentialRateLimit.retired.\ \ Original: Adds API endpoints to an existing RLCL" operationId: addEndpoints parameters: - name: projectName in: path required: true schema: type: string - name: rlclName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/EndpointRateLimitListDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "400": description: "Retired: rate limit lists are read-only (errorKey credentialRateLimit.retired)" content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true delete: tags: - RLCL summary: Delete API endpoints from an RLCL description: "RETIRED (APNZ-6652 R4): rate limit lists are no longer enforced\ \ by the gateway — they were migrated to typed limit plans and assignments\ \ at upgrade. This write operation now answers 400 with errorKey credentialRateLimit.retired.\ \ Original: Deletes API endpoints from an existing RLCL" operationId: deleteEndpoints parameters: - name: projectName in: path required: true schema: type: string - name: rlclName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/EndpointRateLimitListDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "400": description: "Retired: rate limit lists are read-only (errorKey credentialRateLimit.retired)" content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/rlcl/{rlclName}/credentials/: put: tags: - RLCL summary: Update credentials in an RLCL description: "RETIRED (APNZ-6652 R4): rate limit lists are no longer enforced\ \ by the gateway — they were migrated to typed limit plans and assignments\ \ at upgrade. This write operation now answers 400 with errorKey credentialRateLimit.retired.\ \ Original: Updates credentials in an existing RLCL" operationId: updateCredentials parameters: - name: projectName in: path required: true schema: type: string - name: rlclName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/CredentialNameDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "400": description: "Retired: rate limit lists are read-only (errorKey credentialRateLimit.retired)" content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true post: tags: - RLCL summary: Add credentials to an RLCL description: "RETIRED (APNZ-6652 R4): rate limit lists are no longer enforced\ \ by the gateway — they were migrated to typed limit plans and assignments\ \ at upgrade. This write operation now answers 400 with errorKey credentialRateLimit.retired.\ \ Original: Adds credentials to an existing RLCL" operationId: addCredentials parameters: - name: projectName in: path required: true schema: type: string - name: rlclName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/CredentialNameDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "400": description: "Retired: rate limit lists are read-only (errorKey credentialRateLimit.retired)" content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true delete: tags: - RLCL summary: Delete credentials from an RLCL description: "RETIRED (APNZ-6652 R4): rate limit lists are no longer enforced\ \ by the gateway — they were migrated to typed limit plans and assignments\ \ at upgrade. This write operation now answers 400 with errorKey credentialRateLimit.retired.\ \ Original: Deletes credentials from an existing RLCL" operationId: deleteCredentials parameters: - name: projectName in: path required: true schema: type: string - name: rlclName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/CredentialNameDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "400": description: "Retired: rate limit lists are read-only (errorKey credentialRateLimit.retired)" content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/rlcl/{rlclName}/condition/: put: tags: - RLCL summary: Update condition in an RLCL description: "RETIRED (APNZ-6652 R4): rate limit lists are no longer enforced\ \ by the gateway — they were migrated to typed limit plans and assignments\ \ at upgrade. This write operation now answers 400 with errorKey credentialRateLimit.retired.\ \ Original: Updates condition in an existing RLCL" operationId: updateCondition parameters: - name: projectName in: path required: true schema: type: string - name: rlclName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/PolicyConditionDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "400": description: "Retired: rate limit lists are read-only (errorKey credentialRateLimit.retired)" content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true post: tags: - RLCL summary: Add condition to an RLCL description: "RETIRED (APNZ-6652 R4): rate limit lists are no longer enforced\ \ by the gateway — they were migrated to typed limit plans and assignments\ \ at upgrade. This write operation now answers 400 with errorKey credentialRateLimit.retired.\ \ Original: Adds condition to an existing RLCL" operationId: addCondition parameters: - name: projectName in: path required: true schema: type: string - name: rlclName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/PolicyConditionDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "400": description: "Retired: rate limit lists are read-only (errorKey credentialRateLimit.retired)" content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true delete: tags: - RLCL summary: Delete condition from an RLCL description: "RETIRED (APNZ-6652 R4): rate limit lists are no longer enforced\ \ by the gateway — they were migrated to typed limit plans and assignments\ \ at upgrade. This write operation now answers 400 with errorKey credentialRateLimit.retired.\ \ Original: Deletes condition from an existing RLCL" operationId: deleteCondition parameters: - name: projectName in: path required: true schema: type: string - name: rlclName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "400": description: "Retired: rate limit lists are read-only (errorKey credentialRateLimit.retired)" content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/rlcl/{rlclName}/: get: tags: - RLCL summary: Get an RLCL description: "Returns the full configuration of a single RLCL: metadata, attached\ \ credential usernames, endpoint rate limits and condition. The result has\ \ the same shape the create/update endpoints accept." operationId: getRLCL parameters: - name: projectName in: path required: true schema: type: string - name: rlclName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseRLCL" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - RLCL summary: Update an RLCL with metadata description: "RETIRED (APNZ-6652 R4): rate limit lists are no longer enforced\ \ by the gateway — they were migrated to typed limit plans and assignments\ \ at upgrade. This write operation now answers 400 with errorKey credentialRateLimit.retired.\ \ Original: Updates an RLCL with metadata information" operationId: updateRLCL parameters: - name: projectName in: path required: true schema: type: string - name: rlclName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/RLCLMetadataDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "400": description: "Retired: rate limit lists are read-only (errorKey credentialRateLimit.retired)" content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true delete: tags: - RLCL summary: Delete an RLCL description: Deletes an RLCL by name operationId: deleteRLCL parameters: - name: projectName in: path required: true schema: type: string - name: rlclName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/policyGroups/{policyGroupName}/: get: tags: - PolicyGroup summary: Get a policy group of a project by name description: "Returns the id, name and pipeline of the named policy group." operationId: getPolicyGroup parameters: - name: projectName in: path required: true schema: type: string - name: policyGroupName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponsePolicyGroup" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - PolicyGroup summary: Update a policy group in a project description: Updates the named policy group from the supplied policy group body. The existing record's id is preserved (global stays false). Every proxy/proxy-group that embeds this policy group is updated to match (same cascade as the classic policy group update) — embedded snapshots would otherwise go stale. operationId: updatePolicyGroup parameters: - name: projectName in: path required: true schema: type: string - name: policyGroupName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/PolicyGroup" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponsePolicyGroup" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - PolicyGroup summary: Delete a policy group from a project description: "Deletes the named policy group: undeploys it from every running\ \ environment, updates every proxy/proxy-group that embeds it (cascade-detach,\ \ not an in-use guard), then removes the record." operationId: deletePolicyGroup parameters: - name: projectName in: path required: true schema: type: string - name: policyGroupName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/oidc-providers/{name}/: get: tags: - AuthenticationOidcProvider description: Gets an OIDC identity provider by name. clientSecret is masked (clientSecretSet presence flag only). operationId: get parameters: - name: projectName in: path required: true schema: type: string - name: name in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/AuthenticationOidcProviderDTO" put: tags: - AuthenticationOidcProvider description: "Updates an OIDC identity provider by name. ABSENT vs EMPTY semantics\ \ apply to clientSecret (2026-08-04 decision, same as ApiOpsLlmProvider):\ \ omit the field entirely to PRESERVE the stored value; send it as an empty\ \ string to CLEAR it. It is never round-tripped through GET." operationId: update parameters: - name: projectName in: path required: true schema: type: string - name: name in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AuthenticationOidcProviderDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/AuthenticationOidcProviderDTO" delete: tags: - AuthenticationOidcProvider description: Deletes an OIDC identity provider by name. operationId: delete parameters: - name: projectName in: path required: true schema: type: string - name: name in: path required: true schema: type: string responses: "200": description: OK /apiops/projects/{projectName}/llm-providers/{providerName}/: get: tags: - LlmProvider summary: Gets an LLM provider by name description: Gets an LLM provider by name. Secret fields (apiKey/apiSecret) are masked. operationId: getLlmProvider parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: providerName in: path description: LLM provider name required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLlmProvider" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - LlmProvider summary: Updates an existing LLM provider at specified project description: "Updates an existing LLM provider. ABSENT vs EMPTY semantics apply\ \ to secret fields (2026-08-04): if a field is ABSENT from the payload (null)\ \ the stored value is PRESERVED; if the field is sent EMPTY (\"\") the secret\ \ is DELETED. In CI/CD templates, the intent \"do not change\" must be expressed\ \ by OMITTING the field — do NOT send an empty string. The health fields (healthStatus,\ \ lastHealthCheckAt, lastLatencyMs) are read-only: the health check job writes\ \ them and an update keeps the stored values. NOTE on 'endpoint': provide\ \ the BASE address only (e.g. https://api.openai.com/v1). The request path\ \ (/chat/completions, /embeddings, /audio/transcriptions, /audio/speech, /images/generations,\ \ /responses) is appended automatically per request type — do not put it in\ \ 'endpoint'. To override a path, set the connection's own defaultChatCompletionPath\ \ / defaultEmbeddingPath / ... fields. A query string embedded in 'endpoint'\ \ is relocated after the resolved path, so it no longer breaks the URL. NOTE\ \ on 'apiVersion': for AZURE_OPENAI connections it is appended to the real\ \ request URL as an 'api-version' query parameter (skipped when one is already\ \ present). For ANTHROPIC it is sent as the 'anthropic-version' header instead\ \ and never reaches the URL. AWS Bedrock and Google Vertex AI build their\ \ address entirely in provider-specific code, so neither note applies to them." operationId: updateLlmProvider parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: providerName in: path description: LLM provider name required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/LlmProvider" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - LlmProvider summary: Add an LLM provider to specified project description: "Adds an LLM provider to specified project. If a provider with\ \ the same name exists, it is updated (upsert). The health fields (healthStatus,\ \ lastHealthCheckAt, lastLatencyMs) are read-only: the health check job writes\ \ them and an update keeps the stored values. NOTE on 'endpoint': provide\ \ the BASE address only (e.g. https://api.openai.com/v1). The request path\ \ (/chat/completions, /embeddings, /audio/transcriptions, /audio/speech, /images/generations,\ \ /responses) is appended automatically per request type — do not put it in\ \ 'endpoint'. To override a path, set the connection's own defaultChatCompletionPath\ \ / defaultEmbeddingPath / ... fields. A query string embedded in 'endpoint'\ \ is relocated after the resolved path, so it no longer breaks the URL. NOTE\ \ on 'apiVersion': for AZURE_OPENAI connections it is appended to the real\ \ request URL as an 'api-version' query parameter (skipped when one is already\ \ present). For ANTHROPIC it is sent as the 'anthropic-version' header instead\ \ and never reaches the URL. AWS Bedrock and Google Vertex AI build their\ \ address entirely in provider-specific code, so neither note applies to them." operationId: addLlmProvider parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: providerName in: path description: LLM provider name required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/LlmProvider" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - LlmProvider summary: Deletes an existing LLM provider from specified project description: Deletes an existing LLM provider from specified project and undeploys it from workers. operationId: deleteLlmProvider parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: providerName in: path description: LLM provider name required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/limit-plans/{planKey}: get: tags: - LimitPlan summary: Get one limit plan description: "The plan, its active flag and its rule body (targets named)." operationId: getPlan parameters: - name: projectName in: path required: true schema: type: string - name: planKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitPlan" put: tags: - LimitPlan summary: Update a limit plan's metadata description: "Name, description and labels; family and key are immutable. The\ \ body's version must match the stored one." operationId: updatePlan parameters: - name: projectName in: path required: true schema: type: string - name: planKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLimitPlanUpdateDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitPlan" delete: tags: - LimitPlan summary: Delete an unused plan description: Removes a plan no assignment and no creation default references (204); a referenced plan is 409 lifecycleConflict with reason limit.plan.inUseByBinding. operationId: deletePlan parameters: - name: projectName in: path required: true schema: type: string - name: planKey in: path required: true schema: type: string responses: "200": description: OK /apiops/projects/{projectName}/limit-plans/{planKey}/rule-spec: put: tags: - LimitPlan summary: Save a plan's rule body description: "Replaces the plan's limits; when the plan is active every assignment\ \ that references it is re-pushed at once. Optional version: a plan changed\ \ meanwhile is 409 lifecycleConflict with reason limit.plan.staleVersion.\ \ Targeted limits name their targets by name; an unknown name is 400 malformedRequest\ \ with reason limit.plan.targetNotFound. An AI token limit below 1 or a USD\ \ limit of 0 or less is 400 malformedRequest with reason limit.plan.ceilingNotPositive." operationId: saveRuleSpec parameters: - name: projectName in: path required: true schema: type: string - name: planKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLimitRuleSpecUpdateDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitPlan" /apiops/projects/{projectName}/limit-plans/{planKey}/draft-revisions/{revision}: put: tags: - LimitPlan summary: Replace a draft revision's rule spec (deprecated) description: "Plans keep no revisions: saves the rule body like PUT rule-spec\ \ (it applies at once); the revision number is ignored." operationId: updateDraftRevision parameters: - name: projectName in: path required: true schema: type: string - name: planKey in: path required: true schema: type: string - name: revision in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLimitRuleSpecUpdateDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitPlan" deprecated: true /apiops/projects/{projectName}/limit-assignments/{bindingKey}: get: tags: - LimitAssignment summary: Get one limit assignment description: "One assignment by its key, references answered portably." operationId: getAssignment parameters: - name: projectName in: path required: true schema: type: string - name: bindingKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitAssignment" put: tags: - LimitAssignment summary: Update a limit assignment's content description: "Replaces the editable content (plan keys or custom rule, posture,\ \ validity) of a DRAFT or ACTIVE assignment; subject, family and target are\ \ immutable. The body's version must match the stored one." operationId: updateAssignment parameters: - name: projectName in: path required: true schema: type: string - name: bindingKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLimitAssignmentCreateDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitAssignment" /apiops/projects/{projectName}/knowledge-bases/{name}/: get: tags: - KnowledgeBase summary: Gets a knowledge base by name description: Gets a knowledge base by name. operationId: getKnowledgeBase parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: name in: path description: Knowledge base name required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseKnowledgeBase" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - KnowledgeBase summary: Updates an existing knowledge base at specified project description: "Updates an existing knowledge base. Counter and status fields\ \ remain server-controlled. The VectorDB and embedding provider connections\ \ are named by vectorDbName and embeddingProviderName (own project, then admin\ \ project); a sent name sets vectorDbRef / embeddingProviderRef." operationId: updateKnowledgeBase parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: name in: path description: Knowledge base name required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiKnowledgeBaseDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - KnowledgeBase summary: Add a knowledge base to specified project description: "Adds a knowledge base to specified project. If a knowledge base\ \ with the same name exists, it is updated (upsert). The VectorDB and embedding\ \ provider connections are named by vectorDbName and embeddingProviderName\ \ (own project, then admin project); a sent name sets vectorDbRef / embeddingProviderRef." operationId: addKnowledgeBase parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: name in: path description: Knowledge base name required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiKnowledgeBaseDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - KnowledgeBase summary: Deletes an existing knowledge base from specified project description: "Deletes an existing knowledge base, cascade-deletes its documents\ \ and purges its VectorDB collection." operationId: deleteKnowledgeBase parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: name in: path description: Knowledge base name required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/keystores/{keystoreName}/: get: tags: - Keystore summary: Get a Keystore description: Get a Keystore by name operationId: getKeystore parameters: - name: projectName in: path required: true schema: type: string - name: keystoreName in: path description: Name of keystore required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseKeystore" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - Keystore summary: Update an existing Keystore description: Updates an existing Keystore and deploys it to environments. operationId: updateKeystore parameters: - name: projectName in: path required: true schema: type: string - name: keystoreName in: path description: Name of keystore required: true schema: type: string - name: jwkUpdateAction in: query description: Action to take on referenced JWKs (NULLIFY or UPDATE). Defaults to NULLIFY if not provided. required: false allowEmptyValue: true schema: type: string enum: - NULLIFY - UPDATE - name: updateScope in: query description: Scope for updating JWKs (SAME_PROJECT or ALL_PROJECTS) required: false allowEmptyValue: true schema: type: string enum: - SAME_PROJECT - ALL_PROJECTS requestBody: content: application/json: schema: $ref: "#/components/schemas/KeystoreUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseKeystore" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - Keystore summary: Delete an existing Keystore description: Deletes an existing Keystore and undeploys it from environments. operationId: deleteKeystore parameters: - name: projectName in: path required: true schema: type: string - name: keystoreName in: path description: Name of keystore required: true schema: type: string - name: jwkDeleteAction in: query description: Action to take on referenced JWKs (NULLIFY or DELETE). Defaults to NULLIFY if not provided. required: false allowEmptyValue: true schema: type: string enum: - NULLIFY - DELETE responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseKeystore" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/keys/{keyName}/: get: tags: - Key summary: Get a Key description: Get a Key by name operationId: getKey parameters: - name: projectName in: path required: true schema: type: string - name: keyName in: path description: Name of key required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseKey" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - Key summary: Update an existing Key description: Updates an existing Key and deploys it to environments. operationId: updateKey parameters: - name: projectName in: path required: true schema: type: string - name: keyName in: path description: Name of key required: true schema: type: string - name: jwkUpdateAction in: query description: Action to take on referenced JWKs (NULLIFY or UPDATE). Defaults to NULLIFY if not provided. required: false allowEmptyValue: true schema: type: string enum: - NULLIFY - UPDATE - name: updateScope in: query description: Scope for updating JWKs (SAME_PROJECT or ALL_PROJECTS) required: false allowEmptyValue: true schema: type: string enum: - SAME_PROJECT - ALL_PROJECTS requestBody: content: application/json: schema: $ref: "#/components/schemas/KeyUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseKey" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - Key summary: Delete an existing Key description: Deletes an existing Key and undeploys it from environments. operationId: deleteKey parameters: - name: projectName in: path required: true schema: type: string - name: keyName in: path description: Name of key required: true schema: type: string - name: jwkDeleteAction in: query description: Action to take on referenced JWKs (NULLIFY or DELETE). Defaults to NULLIFY if not provided. required: false allowEmptyValue: true schema: type: string enum: - NULLIFY - DELETE responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseKey" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/jwks/{jwkName}/: get: tags: - JWK summary: Get a JWK description: Get a JWK by name operationId: getJwk parameters: - name: projectName in: path required: true schema: type: string - name: jwkName in: path description: Name of JWK required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseJwk" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - JWK summary: Update an existing JWK description: Updates an existing JWK and deploys it to environments. operationId: updateJwk parameters: - name: projectName in: path required: true schema: type: string - name: jwkName in: path description: Name of JWK required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/JwkUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - JWK summary: Delete an existing JWK description: Deletes an existing JWK and undeploys it from environments. operationId: deleteJwk parameters: - name: projectName in: path required: true schema: type: string - name: jwkName in: path description: Name of JWK required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/ipGroups/{ipGroupName}/ips/: put: tags: - IPGroups summary: Update IPs in an IP Group description: Updates IPs in an existing IP Group operationId: updateIPs parameters: - name: projectName in: path required: true schema: type: string - name: ipGroupName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/IPGroupUpdateIPsDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - IPGroups summary: Add IPs to an IP Group description: Adds IPs to an existing IP Group operationId: addIPs parameters: - name: projectName in: path required: true schema: type: string - name: ipGroupName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/IPGroupUpdateIPsDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - IPGroups summary: Delete IPs from an IP Group description: Deletes IPs from an existing IP Group operationId: deleteIPs parameters: - name: projectName in: path required: true schema: type: string - name: ipGroupName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/IPGroupUpdateIPsDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/ipGroups/{ipGroupName}/: get: tags: - IPGroups summary: Get an IP Group description: Returns a single IP Group with its IP list operationId: getIPGroup parameters: - name: projectName in: path required: true schema: type: string - name: ipGroupName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseIPGroups" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - IPGroups summary: Update an IP Group with metadata description: Updates an IP Group with metadata information operationId: updateIPGroup parameters: - name: projectName in: path required: true schema: type: string - name: ipGroupName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/IPGroupMetadataDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - IPGroups summary: Delete an IP Group description: Deletes an IP Group by name operationId: deleteIPGroup parameters: - name: projectName in: path required: true schema: type: string - name: ipGroupName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/globalPolicies/{policyName}/: get: tags: - GlobalPolicy summary: Get a global policy of a project by name description: "Returns the id, name and type of the named global policy." operationId: getGlobalPolicy parameters: - name: projectName in: path required: true schema: type: string - name: policyName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseGlobalPolicy" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - GlobalPolicy summary: Update a global policy in a project description: "Updates the named global policy from the supplied policy snapshot\ \ JSON (the '_class' discriminator selects the concrete policy type, which\ \ must match the existing policy's type). The existing record's id, projectId\ \ and global flag are preserved. Every proxy/policy-group that embeds this\ \ policy is updated to match (same cascade as the classic global policy update)\ \ — embedded snapshots would otherwise go stale. Secret (@SecretData) fields\ \ are PLAINTEXT in the request and are encrypted before persist — same contract\ \ as the classic per-type policy update. MCP Tool Call/Invoke and A2A Agent\ \ Call/Invoke policies are updated like the policy screen: an absent inline\ \ server block or secret keeps the stored one, and tool/skill catalog, pin,\ \ health and drift fields in the body are ignored. The update goes through\ \ the policy type's own service and gets that service's checks (a rejected\ \ policy returns 400); the few types without such a service keep the generic\ \ path. An AI policy needs the AI Development permission, the others API Management." operationId: updateGlobalPolicy parameters: - name: projectName in: path required: true schema: type: string - name: policyName in: path required: true schema: type: string requestBody: content: application/json: schema: type: object additionalProperties: {} required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseGlobalPolicy" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - GlobalPolicy summary: Delete a global policy from a project description: "Deletes the named global policy. Every proxy/policy-group that\ \ embeds this policy has the embedded copy removed (same cascade as the classic\ \ global policy delete) — this is a cascade-detach, not an in-use guard. An\ \ AI policy needs the AI Development permission, the others API Management." operationId: deleteGlobalPolicy parameters: - name: projectName in: path required: true schema: type: string - name: policyName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/environmentVariables/{name}/: get: tags: - EnvironmentVariable summary: Gets environment variable by name description: Gets environment variable by name. All values are stored encrypted at rest. Values that are NOT marked secret (visible=true) are returned decrypted so a CI/CD pipeline can read the real configuration; values marked secret (visible=false) are always returned as null and can never be read back. operationId: getEnvironmentVariable parameters: - name: projectName in: path required: true schema: type: string - name: name in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseEnvironmentVariable" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - EnvironmentVariable summary: Updates an existing environment variable at specified project description: "Updates an existing environment variable at specified project.\ \ Send values as plain text; every value is encrypted before it is stored.\ \ Value semantics: omitting a value (null) KEEPS the stored value — this is\ \ how a secret value survives an update, since read endpoints never return\ \ it; sending an empty string CLEARS it." operationId: updateEnvironmentVariable parameters: - name: projectName in: path required: true schema: type: string - name: name in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/EnvironmentVariableDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - EnvironmentVariable summary: Add an environment variable to specified project description: "Adds an environment variable to specified project. Send values\ \ as plain text; every value is encrypted before it is stored, whether or\ \ not it is marked secret (visible=false). Marking a value secret makes it\ \ permanently unreadable — it is never returned by any read endpoint or shown\ \ in the UI." operationId: addEnvironmentVariable parameters: - name: projectName in: path required: true schema: type: string - name: name in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/EnvironmentVariableDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - EnvironmentVariable summary: Deletes an existing environment variable from specified project description: Deletes an existing environment variable from specified project operationId: deleteEnvironmentVariable parameters: - name: projectName in: path required: true schema: type: string - name: name in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/credentials/{username}/truststore/{keystoreName}/: put: tags: - Credential summary: Set Truststore for Credential description: Sets truststore for credential specified by username and deploys it to environments operationId: setTruststore parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string - name: keystoreName in: path description: Name of truststore (keystore) required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/credentials/{username}/token/: put: tags: - Credential summary: Set Token Settings for Credential description: Sets token settings for credential specified by username and deploys it to environments operationId: setTokenSettings parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/TokenSettingsDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true delete: tags: - Credential summary: Reset Token Settings for Credential description: Resets token settings to default values for credential specified by username and deploys it to environments operationId: resetTokenSettings parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/credentials/{username}/secretKey/{secretKeyName}/: put: tags: - Credential summary: Set SecretKey for Credential description: Sets secret key for credential specified by username and deploys it to environments operationId: setSecretKey parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string - name: secretKeyName in: path description: Name of secret key required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/credentials/{username}/publicKey/{keyName}/: put: tags: - Credential summary: Set PublicKey for Credential description: Sets public key for credential specified by username and deploys it to environments operationId: setPublicKey parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string - name: keyName in: path description: Name of public key required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/credentials/{username}/privateKey/{keyName}/: put: tags: - Credential summary: Set PrivateKey for Credential description: Sets private key for credential specified by username and deploys it to environments operationId: setPrivateKey parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string - name: keyName in: path description: Name of private key required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/credentials/{username}/keystore/{keystoreName}/: put: tags: - Credential summary: Set Keystore for Credential description: Sets keystore for credential specified by username and deploys it to environments operationId: setKeystore parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string - name: keystoreName in: path description: Name of keystore required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/credentials/{username}/jwk/validation/{jwkName}/: put: tags: - Credential summary: Set JWK for Validation and Sign for Credential description: Sets JWK for validation and sign for credential specified by username and deploys it to environments operationId: setJwkValidation parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string - name: jwkName in: path description: Name of JWK for validation and sign required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/credentials/{username}/jwk/encryption/{jwkName}/: put: tags: - Credential summary: Set JWK for Decryption and Encryption for Credential description: Sets JWK for decryption and encryption for credential specified by username and deploys it to environments operationId: setJwkEncryption parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string - name: jwkName in: path description: Name of JWK for decryption and encryption required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/credentials/{username}/certificate/{certificateName}/: put: tags: - Credential summary: Set Certificate for Credential description: Sets certificate for credential specified by username and deploys it to environments operationId: setCertificate parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string - name: certificateName in: path description: Name of certificate required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/credentials/{username}/access/: get: tags: - Credential summary: Get Granted Access List of Credential description: Gets api proxy name or api proxy group name lists which this credential can access operationId: listAcl parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseCredentialAccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true put: tags: - Credential summary: Grant Access for Credential description: Grants access to credential for api proxy or api proxy group operationId: grantAccess parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/CredentialAccessListDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true delete: tags: - Credential summary: Revoke Access from Credential description: Revokes access from credential for api proxy or api proxy group operationId: revokeAccess parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/CredentialAccessListDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/credentials/: get: tags: - Credential summary: Get All Credentials for Specified Project description: Get All Credentials for Specified Project operationId: find parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseCredential" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true put: tags: - Credential summary: Update Credential description: Updates credential specified by username and deploys it to environments operationId: update_1 parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/CredentialDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true post: tags: - Credential summary: Create Credential description: Creates credential for specific project or global and deploys it to environments operationId: create parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/CredentialDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/credential-organizations/{code}: get: tags: - CredentialOrganization summary: Get Credential Organization description: Deprecated — use /consumer-organizations. operationId: get_1 parameters: - name: projectName in: path required: true schema: type: string - name: code in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/CredentialOrganizationDTO" deprecated: true put: tags: - CredentialOrganization summary: Update Credential Organization description: Deprecated — use /consumer-organizations. operationId: update_2 parameters: - name: projectName in: path required: true schema: type: string - name: code in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/CredentialOrganizationDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/CredentialOrganizationDTO" deprecated: true delete: tags: - CredentialOrganization summary: Delete Credential Organization description: Deprecated — use /consumer-organizations. operationId: delete_1 parameters: - name: projectName in: path required: true schema: type: string - name: code in: path required: true schema: type: string responses: "200": description: OK deprecated: true /apiops/projects/{projectName}/consumers/{consumerKey}: get: tags: - Consumer summary: Get one consumer description: "The consumer addressed by its consumer key, with its ipList, role\ \ names and metadata; no secret material is ever included. A secret metadata\ \ entry carries no value: sending the list back on PUT stores that entry empty\ \ unless the value is sent again." operationId: getConsumer parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseConsumer" put: tags: - Consumer summary: Update a consumer description: "Updates the consumer and redeploys it. A field the body omits\ \ (null) keeps its stored value; send an empty list or an empty string to\ \ clear one; send \"expireDate\": null to remove the expiry. A consumer a\ \ live identity source manages cannot be edited (400); actions/enable and\ \ actions/disable still apply. username and consumerKey cannot change (400\ \ immutableField). The password changes only through actions/change-password\ \ and the organization only through actions/transfer-organization. metadata,\ \ when sent, replaces the stored list; secret values are write-only, so a\ \ secret entry sent without a value is stored empty — send the value to keep\ \ it." operationId: updateConsumer parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsConsumerWriteDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" delete: tags: - Consumer summary: Delete a consumer description: "Deletes the consumer and undeploys it; runtimeDeployment reports\ \ the undeploy. A consumer that still owns API clients or is otherwise blocked\ \ is 409 dependencyConflict, with the blocker in params.reason." operationId: deleteConsumer parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/truststore/{keystoreName}: put: tags: - Consumer summary: Set a consumer's truststore description: "Points the consumer at the named object of the project (or, when\ \ the project has none by that name, of the administration project) and redeploys\ \ it. An unknown name is 404." operationId: setTruststore_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string - name: keystoreName in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/token-settings: get: tags: - Consumer summary: Get a consumer's token settings description: "The token settings the consumer has now: the fields PUT /token-settings\ \ writes." operationId: getTokenSettings parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/TokenSettingsDTO" put: tags: - Consumer summary: Set a consumer's token settings description: "Sets the token settings the body carries (a null field keeps its\ \ stored value), switches the consumer to secret-manager authentication and\ \ redeploys it." operationId: setTokenSettings_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/TokenSettingsDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" delete: tags: - Consumer summary: Reset a consumer's token settings description: "Restores the default token settings (password grant, tokens never\ \ expire, no refresh tokens, RS256) and redeploys the consumer." operationId: resetTokenSettings_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/secret-key/{secretKeyName}: put: tags: - Consumer summary: Set a consumer's secret key description: "Points the consumer at the named object of the project (or, when\ \ the project has none by that name, of the administration project) and redeploys\ \ it. An unknown name is 404." operationId: setSecretKey_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string - name: secretKeyName in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/public-key/{keyName}: put: tags: - Consumer summary: Set a consumer's public key description: "Points the consumer at the named object of the project (or, when\ \ the project has none by that name, of the administration project) and redeploys\ \ it. An unknown name is 404." operationId: setPublicKey_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string - name: keyName in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/private-key/{keyName}: put: tags: - Consumer summary: Set a consumer's private key description: "Points the consumer at the named object of the project (or, when\ \ the project has none by that name, of the administration project) and redeploys\ \ it. An unknown name is 404." operationId: setPrivateKey_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string - name: keyName in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/keystore/{keystoreName}: put: tags: - Consumer summary: Set a consumer's keystore description: "Points the consumer at the named object of the project (or, when\ \ the project has none by that name, of the administration project) and redeploys\ \ it. An unknown name is 404." operationId: setKeystore_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string - name: keystoreName in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/jwk/validation/{jwkName}: put: tags: - Consumer summary: Set a consumer's JWK for validation and signing description: "Points the consumer at the named object of the project (or, when\ \ the project has none by that name, of the administration project) and redeploys\ \ it. An unknown name is 404." operationId: setJwkValidation_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string - name: jwkName in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/jwk/encryption/{jwkName}: put: tags: - Consumer summary: Set a consumer's JWK for decryption and encryption description: "Points the consumer at the named object of the project (or, when\ \ the project has none by that name, of the administration project) and redeploys\ \ it. An unknown name is 404." operationId: setJwkEncryption_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string - name: jwkName in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/certificate/{certificateName}: put: tags: - Consumer summary: Set a consumer's certificate description: "Points the consumer at the named object of the project (or, when\ \ the project has none by that name, of the administration project) and redeploys\ \ it. An unknown name is 404." operationId: setCertificate_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string - name: certificateName in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/access/proxy-groups/{proxyGroupName}: put: tags: - Consumer summary: Edit a consumer's access to an API proxy group description: "Edits the consumer's direct grant (not one an API product subscription\ \ made): expireTime when sent; each listed environment's enabled flag (an\ \ unlisted one keeps its value); the restriction list when sent (it replaces\ \ the stored one). Everything by name; an unknown name is 404, a target the\ \ consumer has no direct grant to is 404 (reason accessNotGranted). Redeploys\ \ the grant. Restriction: disallowedApiProxies [name], each an API proxy of\ \ the group." operationId: updateProxyGroupAccess parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string - name: proxyGroupName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsConsumerAccessDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsConsumerAccessDTO" /apiops/projects/{projectName}/consumers/{consumerKey}/access/api-proxies/{apiProxyName}: put: tags: - Consumer summary: Edit a consumer's access to an API proxy description: "Edits the consumer's direct grant (not one an API product subscription\ \ made): expireTime when sent; each listed environment's enabled flag (an\ \ unlisted one keeps its value); the restriction list when sent (it replaces\ \ the stored one). Everything by name; an unknown name is 404, a target the\ \ consumer has no direct grant to is 404 (reason accessNotGranted). Redeploys\ \ the grant. Restriction: disallowedEndpoints [{name, httpMethod}]." operationId: updateApiProxyAccess parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsConsumerAccessDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsConsumerAccessDTO" /apiops/projects/{projectName}/consumer-roles/{roleName}: get: tags: - Consumer Role summary: Get one consumer role description: The role addressed by its name in the project. operationId: getRole parameters: - name: projectName in: path required: true schema: type: string - name: roleName in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseConsumerRole" put: tags: - Consumer Role summary: Update a consumer role description: Updates the role and redeploys it. A null field keeps its stored value; an empty oauthScope removes it; a different name renames the role (consumers keep it). Same name and OAuth scope rules as create. operationId: updateRole parameters: - name: projectName in: path required: true schema: type: string - name: roleName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsConsumerRoleWriteDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumerRole" delete: tags: - Consumer Role summary: Delete a consumer role description: "Deletes the role. A role that consumers, applications or API proxy\ \ authorization settings still hold is 409 dependencyConflict (reason roleInUse;\ \ params consumerCount, applicationCount, apiProxyCount) and nothing changes.\ \ With force=true the role is deleted the way the Consumer Roles screen deletes\ \ it: removed from those consumers, applications and API proxies, then undeployed.\ \ runtimeDeployment reports the gateway undeploy." operationId: deleteRole parameters: - name: projectName in: path required: true schema: type: string - name: roleName in: path required: true schema: type: string - name: force in: query required: false schema: type: boolean responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumerRole" /apiops/projects/{projectName}/consumer-organizations/{code}: get: tags: - Consumer summary: Get one consumer organization description: The organization addressed by its code; secret metadata values are omitted. operationId: getOrganization parameters: - name: projectName in: path required: true schema: type: string - name: code in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseConsumerOrganization" put: tags: - Consumer summary: Update a consumer organization description: "Updates the organization. An omitted (or blank) name or parent\ \ code and an omitted metadata keep the stored value; metadata, when sent,\ \ replaces the stored list (a secret entry sent without a value is stored\ \ empty — send the value to keep it). code cannot change (400 immutableField).\ \ On an organization an identity source manages, the fields the source owns\ \ keep the source's values." operationId: updateOrganization parameters: - name: projectName in: path required: true schema: type: string - name: code in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsConsumerOrganizationWriteDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumerOrganization" delete: tags: - Consumer summary: Delete a consumer organization description: "Deletes the organization. One that still has child organizations,\ \ consumers, applications or portal accounts is 409 dependencyConflict; one\ \ an identity source manages is refused (400)." operationId: deleteOrganization parameters: - name: projectName in: path required: true schema: type: string - name: code in: path required: true schema: type: string responses: "200": description: OK /apiops/projects/{projectName}/connections/{connectionName}/: get: tags: - Connection summary: Gets connection by name description: Gets connection by name operationId: getConnection parameters: - name: projectName in: path required: true schema: type: string - name: connectionName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseConnection" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - Connection summary: Updates an existing connection at specified project description: "Updates an existing connection at specified project. Secret fields\ \ (password, passphrases, API keys, certificate/keystore files): a field that\ \ is ABSENT from the payload (null) keeps the stored value, a field sent EMPTY\ \ (\"\") clears it, and a non-empty value replaces it. Secrets are never returned\ \ by GET, so a GET→PUT round-trip keeps them unchanged; to rotate a secret\ \ send the new value explicitly." operationId: updateConnection parameters: - name: projectName in: path required: true schema: type: string - name: connectionName in: path required: true schema: type: string requestBody: content: application/json: schema: description: connection value to be updated oneOf: - $ref: "#/components/schemas/ConnectionConfigApacheActiveMqDTO" - $ref: "#/components/schemas/ConnectionConfigElasticsearchDTO" - $ref: "#/components/schemas/ConnectionConfigEmailDTO" - $ref: "#/components/schemas/ConnectionConfigFtpDTO" - $ref: "#/components/schemas/ConnectionConfigGraylogDTO" - $ref: "#/components/schemas/ConnectionConfigKafkaDTO" - $ref: "#/components/schemas/ConnectionConfigLinuxScriptDTO" - $ref: "#/components/schemas/ConnectionConfigLogbackDTO" - $ref: "#/components/schemas/ConnectionConfigRabbitMqDTO" - $ref: "#/components/schemas/ConnectionConfigSNMPDTO" - $ref: "#/components/schemas/ConnectionConfigSyslogDTO" - $ref: "#/components/schemas/ConnectionConfigWebhookDTO" - $ref: "#/components/schemas/ConnectionPoolDefDbDTO" - $ref: "#/components/schemas/ConnectionPoolDefLdapDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - Connection summary: Add a connection to specified project description: "Adds a connection to specified project. If a connection of the\ \ same type and name already exists it is updated instead (upsert). Secret\ \ fields (password, passphrases, API keys, certificate/keystore files): on\ \ an upsert a field that is ABSENT from the payload (null) keeps the stored\ \ value, a field sent EMPTY (\"\") clears it, and a non-empty value replaces\ \ it. Secrets are never returned by GET, so a GET→POST round-trip keeps them\ \ unchanged." operationId: addConnection parameters: - name: projectName in: path required: true schema: type: string - name: connectionName in: path required: true schema: type: string requestBody: content: application/json: schema: description: connection value to be added oneOf: - $ref: "#/components/schemas/ConnectionConfigApacheActiveMqDTO" - $ref: "#/components/schemas/ConnectionConfigElasticsearchDTO" - $ref: "#/components/schemas/ConnectionConfigEmailDTO" - $ref: "#/components/schemas/ConnectionConfigFtpDTO" - $ref: "#/components/schemas/ConnectionConfigGraylogDTO" - $ref: "#/components/schemas/ConnectionConfigKafkaDTO" - $ref: "#/components/schemas/ConnectionConfigLinuxScriptDTO" - $ref: "#/components/schemas/ConnectionConfigLogbackDTO" - $ref: "#/components/schemas/ConnectionConfigRabbitMqDTO" - $ref: "#/components/schemas/ConnectionConfigSNMPDTO" - $ref: "#/components/schemas/ConnectionConfigSyslogDTO" - $ref: "#/components/schemas/ConnectionConfigWebhookDTO" - $ref: "#/components/schemas/ConnectionPoolDefDbDTO" - $ref: "#/components/schemas/ConnectionPoolDefLdapDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - Connection summary: Deletes an existing connection from specified project description: Deletes an existing connection from specified project operationId: deleteConnection parameters: - name: projectName in: path required: true schema: type: string - name: connectionName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/certificates/{certificateName}/: get: tags: - ApiProxy summary: Get an existing Certificate description: Get an existing Certificate. operationId: getCertificate parameters: - name: projectName in: path required: true schema: type: string - name: certificateName in: path description: Name of certificate required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - ApiProxy summary: Update an existing Certificate description: Updates an existing Certificate and deploys it to environments. operationId: updateCertificate parameters: - name: projectName in: path required: true schema: type: string - name: certificateName in: path description: Name of certificate required: true schema: type: string - name: alias in: query description: Alias of certificate required: true schema: type: string - name: certificateDescription in: query required: true schema: type: string - name: environmentList in: query description: comma seperated environment name values required: true schema: type: array items: type: string - name: jwkUpdateAction in: query description: Action to take on referenced JWKs (NULLIFY or UPDATE). Defaults to NULLIFY if not provided. required: false allowEmptyValue: true schema: type: string enum: - NULLIFY - UPDATE - name: updateScope in: query description: Scope for updating JWKs (SAME_PROJECT or ALL_PROJECTS) required: false allowEmptyValue: true schema: type: string enum: - SAME_PROJECT - ALL_PROJECTS requestBody: content: multipart/form-data: schema: type: object properties: pemEncodedFile: type: string format: binary required: - pemEncodedFile responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - ApiProxy summary: Delete an existing Certificate description: Deletes an existing Certificate and undeploys it from environments. operationId: deleteCertificate parameters: - name: projectName in: path required: true schema: type: string - name: certificateName in: path description: Name of certificate required: true schema: type: string - name: jwkDeleteAction in: query description: Action to take on referenced JWKs (NULLIFY or DELETE). Defaults to NULLIFY if not provided. required: false allowEmptyValue: true schema: type: string enum: - NULLIFY - DELETE responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxyGroups/promotion: put: tags: - ApiProxyGroup summary: Save Proxy Group for Promotion description: "Creates a Proxy Group on the target instance for Promotion. If\ \ a group with the same name already exists, returns the existing one." operationId: saveProxyGroupForPromotion parameters: - name: projectName in: path required: true schema: type: string - name: deployEnvironmentIds in: query description: Comma-separated environment settings IDs to deploy after save required: false schema: type: array items: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyGroupInfoDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiProxyGroupInfoDTO" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxyGroups/: get: tags: - ApiProxyGroup summary: Get All API Proxy Groups for Specified Project description: Get All API Proxy Groups for Specified Project operationId: listApiProxiesOfProject parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApiProxyGroup" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - ApiProxyGroup summary: Update API Proxy Group description: Update API Proxy Group operationId: updateApiProxyGroup parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyGroupInfoDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - ApiProxyGroup summary: Create API Proxy Group description: Create API Proxy Group operationId: createApiProxyGroup parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyGroupInfoDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" ? /apiops/projects/{projectName}/apiProxies/{apiProxyName}/trafficLogSettings/{environmentName}/connectors/{connectorType}/methodOverride/ : put: tags: - TrafficLogSettings summary: Update Method-Level Traffic Log Override description: Adds or updates a method-level connector override for traffic log settings operationId: updateMethodOverride parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: environmentName in: path required: true schema: type: string - name: methodName in: query required: true schema: type: string - name: connectorType in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ConnectorLogSettings" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - TrafficLogSettings summary: Delete Method-Level Traffic Log Override description: Deletes a method-level connector override for traffic log settings operationId: deleteMethodOverride parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: environmentName in: path required: true schema: type: string - name: methodName in: query required: true schema: type: string - name: connectorType in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/trafficLogSettings/{environmentName}/: get: tags: - TrafficLogSettings summary: Get Traffic Log Settings for Specific Environment description: Returns traffic log settings for a specific environment of the specified API Proxy operationId: findByEnvironment parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: environmentName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseTrafficLogSettings" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - TrafficLogSettings summary: Update Traffic Log Settings for Specific Environment description: Partially updates traffic log settings for a specific environment of the specified API Proxy and deploys. Only the fields present in the request body are applied; an omitted (or null) field keeps its stored value. Settings are created with the product defaults if they do not exist yet. operationId: update_3 parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: environmentName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsTrafficLogSettingsPatchDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseTrafficLogSettings" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/spec/: get: tags: - ApiProxy summary: Get Spec API of API Proxy description: Retrieves the Spec API (OpenAPI specification) associated with the given API Proxy operationId: getApiProxySpec parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/SpecApi" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - ApiProxy summary: Update Spec API of API Proxy description: "Updates the Spec API (OpenAPI specification) of the given API\ \ Proxy. If the API Proxy does not have a Spec API yet, a new one will be\ \ created and linked." operationId: updateApiProxySpec parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/SpecApi" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/SpecApi" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/policies/{policyName}/: put: tags: - Policy summary: Updates an existing policyInfo at specified API Proxy description: Updates an existing policyInfo at specified API Proxy operationId: updatePolicy parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: policyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/PolicyOperationDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - Policy summary: Add a policy to specified API Proxy description: Adds a policy to specified API Proxy operationId: addPolicy parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: policyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/PolicyOperationDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - Policy summary: Deletes an existing policy from specified API Proxy description: Deletes an existing policy from specified API Proxy operationId: deletePolicy parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: policyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/PolicyOperationDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/mcp-routing/: put: tags: - ApiProxy summary: Update the MCP Routing config of an MCP API Proxy description: "Permission: API_MANAGEMENT or AI_DEVELOPMENT × MANAGE. Replaces\ \ the McpRouting config of an MCP proxy. The backend target is given inline\ \ via backendServers[] — each entry needs a non-blank endpoint; entries without\ \ one are ignored. Deployed environments are marked redeploy-required." operationId: updateMcpRouting parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: apiProxyName in: path description: MCP API Proxy name required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/McpRouting" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/import/: put: tags: - ApiProxy summary: Import an API Proxy by overriding existing one description: "Imports an API Proxy, by overriding existing one if there is,\ \ if there is not creates a new API Proxy with provided configuration." operationId: importApiProxy parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: withDependencies in: query description: "Optional; if true, the dependencies carried in the package are\ \ resolved against the target project: if an object with the SAME NAME exists\ \ in the target project it is bound to that object, otherwise it is imported\ \ as new. If false or omitted, the package is imported as-is (default, current\ \ behaviour). If the package carries no dependencies, this parameter has\ \ no effect." required: false schema: type: boolean default: false - name: X-Apinizer-Package-Passphrase in: header description: Optional; the passphrase required to decrypt the package if it is encrypted (Base64 UTF-8). Ignored if the package is not encrypted. required: false schema: type: string requestBody: content: multipart/form-data: schema: type: object properties: metadata: type: string description: metadata value has the metadata needed to create API Proxy and it is optional apiProxyExportFile: type: string format: binary environmentMapping: type: string description: "Optional JSON: environment name in the package ->\ \ environment name in this installation (example: {\"UAT\":\"\ Production\"}). An empty value means that environment is deliberately\ \ not transferred. If omitted, the current behaviour is preserved:\ \ environments with the same name are matched, unmatched ones\ \ are dropped." certEnvironmentMergeMethod: type: string description: "Optional; environment matching method when override=true:\ \ MATCH_BY_NAME (default) or OVERWRITE_ALL." certEnvironmentUncoveredAction: type: string description: "Optional; for target environments not covered by the\ \ package when override=true: FILL_FROM_PACKAGE (fill from the\ \ package) or REMOVE_FROM_TARGET (remove from the target). If\ \ omitted and an uncovered environment exists, the import is rejected\ \ with 400 (INV-36)." required: - apiProxyExportFile - metadata responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/ai-routing/: put: tags: - ApiProxy summary: Update the AI Routing config of an AI API Proxy description: "Permission: API_MANAGEMENT or AI_DEVELOPMENT × MANAGE. Replaces\ \ the AiRouting config of an AI proxy (name-based). Provider references may\ \ be given by name in all six provider slots: llmProviderRefName on the routing,\ \ semanticEmbeddingProviderRefName for the semantic-embedding provider, classifierProviderRefName\ \ for the LLM route classifier, and llmProviderRefName on the conditional-route\ \ variants, the N-primary pool entries and the failover entries — each resolved\ \ to an id within the project. When a name sidecar is blank the raw provider\ \ id in the body is preserved (null-safe). Deployed environments are marked\ \ redeploy-required." operationId: updateAiRouting parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: apiProxyName in: path description: AI API Proxy name required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiRouting" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/a2a-routing/: put: tags: - ApiProxy summary: Update the A2A Routing config of an A2A API Proxy description: "Permission: API_MANAGEMENT or AI_DEVELOPMENT × MANAGE. Replaces\ \ the A2aRouting config of an A2A proxy. The backend target is given inline\ \ via backendServers[] — each entry needs a non-blank endpoint; entries without\ \ one are ignored. Deployed environments are marked redeploy-required." operationId: updateA2aRouting parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: apiProxyName in: path description: A2A API Proxy name required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/A2aRouting" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/url/: put: tags: - ApiProxy summary: Create or update an API Proxy from URL description: "Create or updates an API Proxy from Spec URL of OpenAPI, Swagger,\ \ WSDL or create Reverse Proxy" operationId: createApiProxyFromUrlPut parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyParseFromURLDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - ApiProxy summary: Create an API Proxy from URL description: "Create an API Proxy from Spec URL of OpenAPI, Swagger, WSDL or\ \ create a Reverse Proxy or a No-Spec API. For REVERSE_PROXY and EMPTY_API\ \ (No-Spec API) specUrl is not required. An EMPTY_API proxy is created as\ \ a REST API with an empty specification; its endpoints are added afterwards\ \ with POST /apiProxies/{apiProxyName}/endpoints/. The backend address of\ \ a request is routingInfo.routingAddressList address + endpoint backendResourceUrl,\ \ so the routing address must carry the host only and backendResourceUrl must\ \ carry the path only." operationId: createApiProxyFromUrl parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyParseFromURLDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/promotion: put: tags: - ApiProxy summary: Save API Proxy for Promotion description: Saves the given API Proxy entity directly to the database for Promotion feature. Returns the saved ApiProxy entity on success. Fails if an API Proxy with the same name already exists in the target project. operationId: saveApiProxyForPromotion parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: deployEnvironmentIds in: query description: Comma-separated environment settings IDs to deploy after save required: false schema: type: array items: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxy" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiProxy" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/file/: put: tags: - ApiProxy summary: Create or update an API Proxy from File description: "Create or update an API Proxy from Spec File of OpenAPI, Swagger,\ \ WSDL or create Reverse Proxy. Note: Use zip file for WSDLs that contain\ \ many xsds." operationId: createApiProxyFromFilePut parameters: - name: projectName in: path required: true schema: type: string requestBody: content: multipart/form-data: schema: type: object properties: metadata: type: string description: metadata value has the metadata needed to create API Proxy and it is required specFile: type: array items: type: string format: binary required: - metadata - specFile responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - ApiProxy summary: Create an API Proxy from File description: "Create an API Proxy from Spec File of OpenAPI, Swagger, WSDL or\ \ create Reverse Proxy. Note: Use zip file for WSDLs that contain many xsds." operationId: createApiProxyFromFile parameters: - name: projectName in: path required: true schema: type: string requestBody: content: multipart/form-data: schema: type: object properties: metadata: type: string description: ApiProxy ParseObject value has the metadata needed to create API Proxy and it is required specFile: type: array items: type: string format: binary required: - metadata - specFile responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/api-clients/{apiClientKey}: get: tags: - ApiClient summary: Get one API client description: The API client addressed by its api client key; no secret material is ever included. operationId: getApiClient parameters: - name: projectName in: path required: true schema: type: string - name: apiClientKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApiClient" put: tags: - ApiClient summary: Update an API client description: "Replaces the editable half of a client; the api client key and\ \ the client id are immutable. The body's version must match the stored one.\ \ A revoked client is read-only (409 lifecycleConflict, reason apiClientRevokedReadOnly)." operationId: updateApiClient parameters: - name: projectName in: path required: true schema: type: string - name: apiClientKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsApiClientCreateDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApiClientMutation" /apiops/projects/{projectName}/ai-topic-category-presets/{entryName}/: get: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Gets a AI content-safety category preset by name operationId: getTopicCategoryPresets_1 parameters: - name: projectName in: path required: true schema: type: string - name: entryName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiTopicCategoryPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Updates a AI content-safety category preset owned by specified project description: A row this project does not own (built-in/admin-shared/another project's) reports not-found. operationId: updateTopicCategoryPresets_1 parameters: - name: projectName in: path required: true schema: type: string - name: entryName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiTopicCategoryPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Adds a AI content-safety category preset to specified project (upsert by name) description: Creates a project-owned entry. If the project already owns one with this name it is updated; a visible-but-not-owned row (built-in/admin-shared) does NOT block creation — the project gets its own copy. operationId: addTopicCategoryPresets_1 parameters: - name: projectName in: path required: true schema: type: string - name: entryName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiTopicCategoryPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Deletes a AI content-safety category preset owned by specified project description: A row this project does not own reports not-found. operationId: deleteTopicCategoryPresets_1 parameters: - name: projectName in: path required: true schema: type: string - name: entryName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/ai-prompt-templates/{entryName}/: get: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPromptTemplateProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiDlpPresetProject summary: Gets a AI prompt template by name operationId: getPromptTemplates_1 parameters: - name: projectName in: path required: true schema: type: string - name: entryName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiPromptTemplate" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPromptTemplateProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiDlpPresetProject summary: Updates a AI prompt template owned by specified project description: A row this project does not own (built-in/admin-shared/another project's) reports not-found. operationId: updatePromptTemplates_1 parameters: - name: projectName in: path required: true schema: type: string - name: entryName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiPromptTemplateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPromptTemplateProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiDlpPresetProject summary: Adds a AI prompt template to specified project (upsert by name) description: Creates a project-owned entry. If the project already owns one with this name it is updated; a visible-but-not-owned row (built-in/admin-shared) does NOT block creation — the project gets its own copy. operationId: addPromptTemplates_1 parameters: - name: projectName in: path required: true schema: type: string - name: entryName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiPromptTemplateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPromptTemplateProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiDlpPresetProject summary: Deletes a AI prompt template owned by specified project description: A row this project does not own reports not-found. operationId: deletePromptTemplates_1 parameters: - name: projectName in: path required: true schema: type: string - name: entryName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/ai-prompt-guard-presets/{presetName}/: get: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPromptGuardPresetProject - AiPrivacyPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Gets an AI prompt-guard preset by name operationId: getPromptGuardPreset_1 parameters: - name: projectName in: path required: true schema: type: string - name: presetName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiPromptGuardPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPromptGuardPresetProject - AiPrivacyPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Updates an existing AI prompt-guard preset owned by specified project description: Updates a custom AI prompt-guard preset this project owns. A row this project does not own (built-in/admin-shared/another project's) reports not-found. Built-in presets are read-only and reject this call. operationId: updatePromptGuardPreset_1 parameters: - name: projectName in: path required: true schema: type: string - name: presetName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiPromptGuardPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPromptGuardPresetProject - AiPrivacyPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Adds an AI prompt-guard preset to specified project (upsert by name) description: Adds a custom AI prompt-guard preset owned by this project. If this project already owns a preset with the same name it is updated. A name that only resolves to a built-in/admin-shared preset is NOT treated as existing here — create() is attempted and rejects the collision. Built-in presets are read-only. operationId: addPromptGuardPreset_1 parameters: - name: projectName in: path required: true schema: type: string - name: presetName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiPromptGuardPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPromptGuardPresetProject - AiPrivacyPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Deletes an AI prompt-guard preset owned by specified project description: Deletes a custom AI prompt-guard preset this project owns. Built-in/admin-shared/another project's preset reports not-found. operationId: deletePromptGuardPreset_1 parameters: - name: projectName in: path required: true schema: type: string - name: presetName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/ai-prompt-decorator-presets/{presetName}/: get: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Gets an AI prompt-decorator preset by name operationId: getPromptDecoratorPreset_1 parameters: - name: projectName in: path required: true schema: type: string - name: presetName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiPromptDecoratorPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Updates an existing AI prompt-decorator preset owned by specified project description: Updates a custom AI prompt-decorator preset this project owns. A row this project does not own (built-in/admin-shared/another project's) reports not-found. Built-in presets are read-only and reject this call. operationId: updatePromptDecoratorPreset_1 parameters: - name: projectName in: path required: true schema: type: string - name: presetName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiPromptDecoratorPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Adds an AI prompt-decorator preset to specified project (upsert by name) description: Adds a custom AI prompt-decorator preset owned by this project. If this project already owns a preset with the same name it is updated. A name that only resolves to a built-in/admin-shared preset is NOT treated as existing here — create() is attempted and rejects the collision. Built-in presets are read-only. operationId: addPromptDecoratorPreset_1 parameters: - name: projectName in: path required: true schema: type: string - name: presetName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiPromptDecoratorPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Deletes an AI prompt-decorator preset owned by specified project description: Deletes a custom AI prompt-decorator preset this project owns. Built-in/admin-shared/another project's preset reports not-found. Blocks previously imported into policies are snapshots and keep working. operationId: deletePromptDecoratorPreset_1 parameters: - name: projectName in: path required: true schema: type: string - name: presetName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/ai-privacy-presets/{presetName}/: get: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Gets an AI privacy preset by name operationId: getPrivacyPreset_1 parameters: - name: projectName in: path required: true schema: type: string - name: presetName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Updates an existing AI privacy preset owned by specified project description: Updates a custom AI privacy preset this project owns. A row this project does not own (built-in/admin-shared/another project's) reports not-found. Built-in presets are read-only and reject this call. operationId: updatePrivacyPreset_1 parameters: - name: projectName in: path required: true schema: type: string - name: presetName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiPrivacyPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Adds an AI privacy preset to specified project (upsert by name) description: Adds a custom AI privacy preset owned by this project. If this project already owns a preset with the same name it is updated. A name that only resolves to a built-in/admin-shared preset is NOT treated as existing here — create() is attempted and rejects the collision. Built-in presets are read-only. operationId: addPrivacyPreset_1 parameters: - name: projectName in: path required: true schema: type: string - name: presetName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiPrivacyPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Deletes an AI privacy preset owned by specified project description: Deletes a custom AI privacy preset this project owns. Built-in/admin-shared/another project's preset reports not-found. operationId: deletePrivacyPreset_1 parameters: - name: projectName in: path required: true schema: type: string - name: presetName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/ai-dlp-presets/{presetName}/: get: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Gets an AI DLP preset by name operationId: getDlpPreset_1 parameters: - name: projectName in: path required: true schema: type: string - name: presetName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiDlpPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" put: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Updates an existing AI DLP preset owned by specified project description: Updates a custom AI DLP preset this project owns. A row this project does not own (built-in/admin-shared/another project's) reports not-found. Built-in presets are read-only and reject this call. operationId: updateDlpPreset_1 parameters: - name: projectName in: path required: true schema: type: string - name: presetName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiDlpPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Adds an AI DLP preset to specified project (upsert by name) description: Adds a custom AI DLP preset owned by this project. If this project already owns a preset with the same name it is updated. A name that only resolves to a built-in/admin-shared preset is NOT treated as existing here — create() is attempted and rejects the collision. Built-in presets are read-only. operationId: addDlpPreset_1 parameters: - name: projectName in: path required: true schema: type: string - name: presetName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AiDlpPresetDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Deletes an AI DLP preset owned by specified project description: Deletes a custom AI DLP preset this project owns. Built-in/admin-shared/another project's preset reports not-found. operationId: deleteDlpPreset_1 parameters: - name: projectName in: path required: true schema: type: string - name: presetName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/utility/proxyGroups/batch-names: post: tags: - Utility summary: Batch resolve Proxy Group names by IDs description: Accepts a list of Proxy Group MongoDB IDs and returns their id-name pairs. Used by Promotion for batch name resolution. operationId: getProxyGroupNamesByIds requestBody: content: application/json: schema: type: array items: type: string required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseNameBatch" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/utility/projects/batch-names: post: tags: - Utility summary: Batch resolve Project names by IDs description: Accepts a list of Project MongoDB IDs and returns their id-name pairs. Used by Promotion for batch name resolution. operationId: getProjectNamesByIds requestBody: content: application/json: schema: type: array items: type: string required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseNameBatch" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/utility/environments/batch-names: post: tags: - Utility summary: Batch resolve Environment names by IDs description: Accepts a list of EnvironmentSettings MongoDB IDs and returns their id-name pairs. Used by Promotion for batch name resolution. operationId: getEnvironmentNamesByIds requestBody: content: application/json: schema: type: array items: type: string required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseNameBatch" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/utility/creators/batch-names: post: tags: - Utility summary: Batch resolve Creator names by IDs description: "Accepts a list of Creator MongoDB IDs and a type parameter (db2api,\ \ script2api, mockapi). Returns their id-name pairs. Used by Promotion for\ \ batch name resolution." operationId: getCreatorNamesByIds parameters: - name: type in: query required: true schema: type: string requestBody: content: application/json: schema: type: array items: type: string required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseNameBatch" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/utility/connections/batch-names: post: tags: - Utility summary: Batch resolve Connection names by IDs description: Accepts a list of Connection MongoDB IDs and returns their id-name pairs. Used by Promotion for batch name resolution. operationId: getConnectionNamesByIds requestBody: content: application/json: schema: type: array items: type: string required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseNameBatch" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/utility/apiProxies/batch-names: post: tags: - Utility summary: Batch resolve API Proxy names by IDs description: Accepts a list of API Proxy MongoDB IDs and returns their id-name pairs. Used by Promotion for batch name resolution. operationId: getApiProxyNamesByIds requestBody: content: application/json: schema: type: array items: type: string required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseNameBatch" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/promotion/executions: post: tags: - Promotion summary: Create execution(s) by mapping names description: Creates promotion executions for each mapping identified by mappingNames array. Accepts one or more mapping names. Returns an acknowledgement response. Requires API token authentication. operationId: createExecution requestBody: content: application/json: schema: type: object additionalProperties: {} required: true responses: "200": description: successful operation! content: application/json: schema: type: string "400": description: bad request! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/vector-dbs/{vectorDbName}/test-connection/: post: tags: - VectorDb summary: Tests a Vector DB connection description: "Tests a Vector DB connection Manager-side (in-process, does not\ \ persist the configuration). Unlike add/update, this does NOT preserve a\ \ blank secret from an existing stored connection — the body must carry the\ \ full, real transport credentials to test." operationId: testVectorDbConnection parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: vectorDbName in: path description: Vector DB connection name required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ConnectionConfigVectorDb" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/transfer-import-runs: post: tags: - Transfer (v2) summary: Run a transfer import description: "Applies the package under the preflight digest (409 transfer.preflightDrift\ \ when the target changed since) — requires the Idempotency-Key header. Synchronous,\ \ 200 with the engine's advisories; an empty advisory list is a complete transfer." operationId: runImport parameters: - name: projectName in: path required: true schema: type: string - name: X-Apinizer-Package-Passphrase in: header required: false schema: type: string requestBody: content: multipart/form-data: schema: type: object properties: exportFile: type: string format: binary options: type: string description: "JSON text: {formatVersion, type, preflightDigest,\ \ conflictPolicy NEW|REPLACE, environmentMapping, certEnvironmentMergeMethod,\ \ certEnvironmentUncoveredAction, acknowledgeChecksumMismatch}" required: - exportFile - options responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseTransferImportResult" "409": description: preflight drift / idempotency conflict content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/transfer-import-preflights: post: tags: - Transfer (v2) summary: Preflight a transfer import description: "Analyses the uploaded package against this project: objects, dependency\ \ resolution, replace targets, environments, manifest blockers and the preflightDigest\ \ the run must repeat. Writes nothing." operationId: preflightImport parameters: - name: projectName in: path required: true schema: type: string - name: type in: query description: Export/import type of the package required: true schema: type: string - name: X-Apinizer-Package-Passphrase in: header required: false schema: type: string requestBody: content: multipart/form-data: schema: type: object properties: exportFile: type: string format: binary required: - exportFile responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseTransferImportPreflight" /apiops/projects/{projectName}/transfer-export-runs: post: tags: - Transfer (v2) summary: Run a transfer export description: "Recomputes the export digest from the live selection (409 transfer.exportDigestMismatch\ \ when it differs from expectedExportDigest) and streams the package — synchronous,\ \ 200, body = the ZIP. Encryption is optional: encrypt=true with the passphrase\ \ header." operationId: runExport parameters: - name: projectName in: path required: true schema: type: string - name: encrypt in: query required: false schema: type: boolean default: false - name: X-Apinizer-Package-Passphrase in: header required: false schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsTransferExportRequestDTO" required: true responses: "200": description: The package (application/zip) content: '*/*': schema: type: object "409": description: exportDigest drift content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/transfer-export-previews: post: tags: - Transfer (v2) summary: Preview a transfer export description: "Resolves the named selection and the dependencies a withDependencies\ \ package would carry, states how the type's secrets travel, and returns the\ \ exportDigest the run must repeat. Writes nothing." operationId: previewExport parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsTransferExportRequestDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseTransferExportPreview" "400": description: bad request! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/script2apis/{script2ApiName}/: get: tags: - Script2API summary: Gets a Script2API creator by name description: Gets a single Script2API (ScriptToApi) creator by name for the specified project. operationId: getScript2Api parameters: - name: projectName in: path required: true schema: type: string - name: script2ApiName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: type: object "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - Script2API summary: Creates or updates a Script2API creator (promotion) description: Creates or updates a Script2API (ScriptToApi) creator for promotion purposes. operationId: saveScript2Api parameters: - name: projectName in: path required: true schema: type: string - name: script2ApiName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ScriptToApi" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/rlcl/: get: tags: - RLCL summary: List RLCLs description: "Lists all RLCLs of the project. By default only summary information\ \ (name, description, enabled) is returned; pass withDetails=true to get the\ \ full configuration of every RLCL." operationId: listRLCLs parameters: - name: projectName in: path required: true schema: type: string - name: withDetails in: query description: "Returns the full configuration (credentials, endpoint rate limits,\ \ condition) of every RLCL when true" required: false allowEmptyValue: true schema: type: boolean default: false responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseRLCL" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - RLCL summary: Create an RLCL with metadata description: "RETIRED (APNZ-6652 R4): rate limit lists are no longer enforced\ \ by the gateway — they were migrated to typed limit plans and assignments\ \ at upgrade. This write operation now answers 400 with errorKey credentialRateLimit.retired.\ \ Original: Creates an RLCL with metadata information" operationId: createRLCL parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/RLCLMetadataDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "400": description: "Retired: rate limit lists are read-only (errorKey credentialRateLimit.retired)" content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/reports/saved-queries/{queryName}/search: post: tags: - ProjectReports summary: Runs a saved Query on the traffic log description: "Runs the saved Query (Analytics > Queries) called queryName on\ \ the traffic log of the given environment and returns the matching records,\ \ newest first by default. The Query is looked up by name inside the project\ \ in the path; the search covers the project's API and AI gateway traffic.\ \ A Query shared by the whole installation (global) is allowed and still sees\ \ only this project's traffic. A personal Query is not available through this\ \ API and answers 404 like an unknown name. The records carry the traffic\ \ list's columns only; request and response bodies, headers and credentials\ \ are never returned. Paged: size defaults to 20, at most 200, and page *\ \ size + size must stay within resultWindow (10,000); totalElements is the\ \ exact count of matching records, so narrow from/to when it is larger than\ \ resultWindow. An unreadable traffic log answers 503, never an empty list." operationId: searchSavedQuery parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: queryName in: path description: Name of the saved Query to run. required: true schema: type: string - name: page in: query description: Zero-based page index. required: false schema: type: integer format: int32 - name: size in: query description: "Rows per page. Default 20, at most 200." required: false schema: type: integer format: int32 - name: sort in: query description: "timestamp[,asc|desc]. Default timestamp,desc." required: false schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsSavedQuerySearchRequestDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsPagedSavedQueryResponse" "400": description: bad request! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/promotion-certificates: post: tags: - PromotionCertificate summary: Create a certificate from a promoted source certificate description: "Creates the certificate (any kind) in the target project from\ \ the source payload, remapping environment names to the local environment\ \ ids and re-encrypting the secret material." operationId: createCertificate parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: type: object additionalProperties: {} required: true responses: "200": description: OK content: application/json: schema: type: string /apiops/projects/{projectName}/policyGroups/: get: tags: - PolicyGroup summary: Get all policy groups of a project description: "Returns the id, name and pipeline of every policy group in the\ \ project." operationId: getAllPolicyGroups parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponsePolicyGroup" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - PolicyGroup summary: Create a policy group in a project description: "Creates a new policy group from the supplied policy group snapshot\ \ JSON. Used by cross-instance promotion to materialize a source proxy's embedded\ \ policy group on the target as a standalone, reusable group." operationId: createPolicyGroup parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: type: object additionalProperties: {} required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponsePolicyGroup" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/oidc-providers/: get: tags: - AuthenticationOidcProvider description: Lists OIDC identity providers of the specified project. clientSecret is masked (clientSecretSet presence flag only). operationId: list parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/AuthenticationOidcProviderDTO" post: tags: - AuthenticationOidcProvider description: Creates an OIDC identity provider. operationId: create_1 parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/AuthenticationOidcProviderDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/AuthenticationOidcProviderDTO" /apiops/projects/{projectName}/mockapis/{mockApiName}/: get: tags: - MockAPI summary: Gets a MockAPI creator by name description: Gets a single MockAPI creator by name for the specified project. operationId: getMockApi parameters: - name: projectName in: path required: true schema: type: string - name: mockApiName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: type: object "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - MockAPI summary: Creates or updates a MockAPI creator (promotion) description: Creates or updates a MockAPI creator for promotion purposes. operationId: saveMockApi parameters: - name: projectName in: path required: true schema: type: string - name: mockApiName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/MockApi" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/llm-providers/{providerName}/test-connection/: post: tags: - LlmProvider summary: Tests an LLM provider connection description: "Tests an LLM provider connection Manager-side (in-process, does\ \ not persist the configuration). Unlike ApiOpsVectorDb's test-connection,\ \ the request body is OPTIONAL here: if omitted, the stored provider (resolved\ \ by name) is tested as-is; if supplied, blank apiKey/apiSecret/serviceAccountJson\ \ fields are backfilled from the stored provider — but only when the connection\ \ target (endpoint/authScheme/authHeaderName/providerType/deploymentType)\ \ is unchanged, otherwise the credential must be re-supplied." operationId: testLlmProviderConnection parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: providerName in: path description: LLM provider name required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/LlmProvider" responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/limit-plans: get: tags: - LimitPlan summary: List limit plans description: "The scope's plans, by name by default; sortable by name, family,\ \ active. includePlatform=true adds the platform's shared plans to a project\ \ listing (read-only there). includeManaged=true also lists the read-only\ \ profiles owned by portal subscription plans, which are hidden by default." operationId: listPlans parameters: - name: projectName in: path required: true schema: type: string - name: family in: query required: false schema: type: string enum: - REQUEST_RATE - AI_TOKEN_BUDGET - name: includePlatform in: query required: false schema: type: boolean - name: includeManaged in: query required: false schema: type: boolean - name: page in: query required: false schema: type: integer format: int32 - name: size in: query required: false schema: type: integer format: int32 - name: sort in: query required: false schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsPagedResponseApiOpsResponseLimitPlan" post: tags: - LimitPlan summary: Create a limit plan description: "Creates the plan with its rule body, active (201 + Location);\ \ it limits nobody until it is assigned. Requires the Idempotency-Key header." operationId: createPlan parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLimitPlanCreateDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitPlan" /apiops/projects/{projectName}/limit-plans/{planKey}/revisions/{revision}/actions/publish: post: tags: - LimitPlan summary: Publish a revision (deprecated) description: "Plans keep no revisions and a body save applies at once: answers\ \ the plan as it is; the revision number is ignored." operationId: publish parameters: - name: projectName in: path required: true schema: type: string - name: planKey in: path required: true schema: type: string - name: revision in: path required: true schema: type: integer format: int64 responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitPlan" deprecated: true /apiops/projects/{projectName}/limit-plans/{planKey}/draft-revisions: post: tags: - LimitPlan summary: Open a draft revision (deprecated) description: "Plans keep no revisions: saves the rule body like PUT rule-spec\ \ (it applies at once) and answers 200 with the plan." operationId: createDraftRevision parameters: - name: projectName in: path required: true schema: type: string - name: planKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLimitRuleSpecUpdateDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitPlan" deprecated: true /apiops/projects/{projectName}/limit-plans/{planKey}/actions/undeploy: post: tags: - LimitPlan summary: Undeploy a plan (deprecated) description: Alias of actions/deactivate. operationId: undeploy parameters: - name: projectName in: path required: true schema: type: string - name: planKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitPlan" deprecated: true /apiops/projects/{projectName}/limit-plans/{planKey}/actions/retire: post: tags: - LimitPlan summary: Retire a plan (removed) description: "Retire is no longer supported: always 400 malformedRequest with\ \ reason limit.plan.retireRemoved. Deactivate the plan instead." operationId: retire parameters: - name: projectName in: path required: true schema: type: string - name: planKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitPlan" deprecated: true /apiops/projects/{projectName}/limit-plans/{planKey}/actions/deploy: post: tags: - LimitPlan summary: Deploy a plan (deprecated) description: Alias of actions/activate. operationId: deploy parameters: - name: projectName in: path required: true schema: type: string - name: planKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitPlan" deprecated: true /apiops/projects/{projectName}/limit-plans/{planKey}/actions/deactivate: post: tags: - LimitPlan summary: Deactivate a plan description: "Stops enforcing the plan on every gateway for all of its assignments.\ \ The rule body, the assignments and the counters are kept; activate brings\ \ the enforcement back. An inactive plan is left as it is." operationId: deactivate parameters: - name: projectName in: path required: true schema: type: string - name: planKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitPlan" /apiops/projects/{projectName}/limit-plans/{planKey}/actions/activate: post: tags: - LimitPlan summary: Activate a plan description: The gateways enforce the plan again for every assignment that references it. An active plan is left as it is. operationId: activate parameters: - name: projectName in: path required: true schema: type: string - name: planKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitPlan" /apiops/projects/{projectName}/limit-assignments: get: tags: - LimitAssignment summary: List limit assignments description: "The project's assignments, newest first by default; filterable\ \ by family, status, subject type and subject key; sortable by assignedAt,\ \ status, family." operationId: listAssignments parameters: - name: projectName in: path required: true schema: type: string - name: family in: query required: false schema: type: string enum: - REQUEST_RATE - AI_TOKEN_BUDGET - name: status in: query required: false schema: type: string enum: - DRAFT - ACTIVE - ENDED - name: subjectType in: query required: false schema: type: string enum: - PLATFORM - PROJECT - ORGANIZATION - CONSUMER - APPLICATION - API_CLIENT - API_PROXY - AUDIENCE_RULE - name: subjectKey in: query required: false schema: type: string - name: page in: query required: false schema: type: integer format: int32 - name: size in: query required: false schema: type: integer format: int32 - name: sort in: query required: false schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsPagedResponseApiOpsResponseLimitAssignment" post: tags: - LimitAssignment summary: Create a limit assignment description: Binds a subject to a plan or a custom rule on a target (201 + Location). Requires the Idempotency-Key header; status DRAFT or ACTIVE (default ACTIVE per the service). operationId: createAssignment parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLimitAssignmentCreateDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitAssignment" /apiops/projects/{projectName}/limit-assignments/{bindingKey}/actions/end: post: tags: - LimitAssignment summary: End a limit assignment description: Moves an ACTIVE assignment to ENDED (final) and withdraws it from the running environments; the body's version must match. operationId: end parameters: - name: projectName in: path required: true schema: type: string - name: bindingKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLimitAssignmentActionDTO" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitAssignment" /apiops/projects/{projectName}/limit-assignments/{bindingKey}/actions/activate: post: tags: - LimitAssignment summary: Activate a limit assignment description: Moves a DRAFT assignment to ACTIVE and pushes it to the running environments; the body's version must match. operationId: activate_1 parameters: - name: projectName in: path required: true schema: type: string - name: bindingKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLimitAssignmentActionDTO" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitAssignment" /apiops/projects/{projectName}/limit-assignments/actions/validate: post: tags: - LimitAssignment summary: Validate a limit assignment description: "Runs the create-time validation on the body without writing anything:\ \ 200 when it would be accepted, 400 with the reason otherwise." operationId: validate parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLimitAssignmentCreateDTO" required: true responses: "200": description: OK /apiops/projects/{projectName}/limit-assignment-runs: get: tags: - LimitAssignmentRun summary: List bulk limit assignment runs description: "The project's runs, newest first by default; sortable by startedAt,\ \ status, kind." operationId: listRuns parameters: - name: projectName in: path required: true schema: type: string - name: page in: query required: false schema: type: integer format: int32 - name: size in: query required: false schema: type: integer format: int32 - name: sort in: query required: false schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsPagedResponseApiOpsResponseLimitAssignmentRun" post: tags: - LimitAssignmentRun summary: Start a bulk limit assignment run description: Queues a run over the selected population (202 + Location). Requires the Idempotency-Key header; one run may be active per project at a time. operationId: start parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLimitAssignmentRequestDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitAssignmentRunAccepted" /apiops/projects/{projectName}/limit-assignment-runs/{runId}/actions/rollback: post: tags: - LimitAssignmentRun summary: Roll a run back description: Queues a NEW run that ends every assignment the given run created and re-creates what it replaced as new rows (counters restart). Requires Idempotency-Key. operationId: rollback parameters: - name: projectName in: path required: true schema: type: string - name: runId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitAssignmentRunAccepted" /apiops/projects/{projectName}/limit-assignment-runs/{runId}/actions/retry-failed: post: tags: - LimitAssignmentRun summary: Retry the failed rows of a run description: Queues a NEW run over only the subjects the given run failed on (KEEP_EXISTING). Requires Idempotency-Key. operationId: retryFailed parameters: - name: projectName in: path required: true schema: type: string - name: runId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitAssignmentRunAccepted" /apiops/projects/{projectName}/limit-assignment-runs/{runId}/actions/cancel: post: tags: - LimitAssignmentRun summary: Cancel a run description: Asks a queued or running run to stop at its next chunk boundary (200 with the run). operationId: cancel parameters: - name: projectName in: path required: true schema: type: string - name: runId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitAssignmentRun" /apiops/projects/{projectName}/limit-assignment-previews: post: tags: - LimitAssignmentRun summary: Preview a bulk limit assignment description: "Classifies the selected population without writing anything: how\ \ many assignments would be created, skipped or replaced, and the selector\ \ fingerprint a run must repeat." operationId: preview parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLimitAssignmentRequestDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitAssignmentPreview" /apiops/projects/{projectName}/lifecycle-purge-runs: get: tags: - LifecyclePurge summary: List purge runs description: "The project's runs, newest first by default; sortable by createdAt,\ \ status, mode." operationId: listRuns_1 parameters: - name: projectName in: path required: true schema: type: string - name: page in: query required: false schema: type: integer format: int32 - name: size in: query required: false schema: type: integer format: int32 - name: sort in: query required: false schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsPagedResponseApiOpsResponseLifecyclePurgeRun" post: tags: - LifecyclePurge summary: Run an approved purge description: Queues the approved run and returns 202 + Location. Requires the Idempotency-Key header; the run itself is asynchronous and its first mutation is the point of no return. operationId: run parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLifecyclePurgeRequestDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLifecyclePurgeRunAccepted" /apiops/projects/{projectName}/lifecycle-purge-runs/{runId}/actions/cancel: post: tags: - LifecyclePurge summary: Cancel a purge run description: Cancels a run that has not started changing data yet; 409 once the point of no return has been passed. operationId: cancel_1 parameters: - name: projectName in: path required: true schema: type: string - name: runId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLifecyclePurgeRun" /apiops/projects/{projectName}/lifecycle-purge-runs/{runId}/actions/approve: post: tags: - LifecyclePurge summary: Approve a previewed run description: Binds the approval to the previewed manifestDigest. The approver must be a different user than the previewer; a system admin may approve their own preview. operationId: approve parameters: - name: projectName in: path required: true schema: type: string - name: runId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLifecyclePurgeRequestDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLifecyclePurgeRun" /apiops/projects/{projectName}/lifecycle-purge-previews: post: tags: - LifecyclePurge summary: Preview a purge description: "Builds the manifest and its digest without writing anything to\ \ the subject. Refused while a legal hold is active, while another run targets\ \ the subject, or when the mode does not apply." operationId: preview_1 parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLifecyclePurgeRequestDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLifecyclePurgeRun" /apiops/projects/{projectName}/legal-holds: get: tags: - LegalHold summary: List legal holds description: "The project's holds, newest first. Narrow with status (ACTIVE\ \ / RELEASED) and with a subject; a subjectKey requires its subjectType." operationId: list_1 parameters: - name: projectName in: path required: true schema: type: string - name: status in: query required: false schema: type: string - name: subjectType in: query required: false schema: type: string enum: - ORGANIZATION - CONSUMER - APPLICATION - API_CLIENT - name: subjectKey in: query required: false schema: type: string - name: page in: query required: false schema: type: integer format: int32 - name: size in: query required: false schema: type: integer format: int32 responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsPagedResponseApiOpsResponseLegalHold" post: tags: - LegalHold summary: Place a legal hold description: Blocks every destructive operation on the subject until the hold is released. 409 while one is already active on that subject. operationId: place parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLegalHoldRequestDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLegalHold" /apiops/projects/{projectName}/legal-holds/{holdId}/actions/release: post: tags: - LegalHold summary: Release a legal hold description: Lifts an active hold (the row is kept as evidence). 409 when it is not active any more. operationId: release parameters: - name: projectName in: path required: true schema: type: string - name: holdId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLegalHoldRequestDTO" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLegalHold" /apiops/projects/{projectName}/knowledge-bases/{name}/reindex/: post: tags: - KnowledgeBase summary: Triggers a full reindex of a knowledge base description: "Drops the VectorDB collection, resets all documents to PENDING\ \ and fires the async index job." operationId: reindexKnowledgeBase parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: name in: path description: Knowledge base name required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/knowledge-bases/{kbName}/documents/{documentId}/reindex/: post: tags: - KnowledgeBase summary: Triggers a reindex of a single document description: "Removes only this document's vectors, resets it to PENDING and\ \ fires the async index job. The other documents in the knowledge base are\ \ untouched." operationId: reindexDocument parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: kbName in: path description: Knowledge base name required: true schema: type: string - name: documentId in: path description: Document id required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/knowledge-bases/{kbName}/documents/: get: tags: - KnowledgeBase summary: Lists documents of a knowledge base description: Lists documents of the named knowledge base. operationId: listDocuments parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: kbName in: path description: Knowledge base name required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseKnowledgeDocument" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - KnowledgeBase summary: Uploads a document to a knowledge base description: Uploads a document (multipart) to the named knowledge base. Indexing is async — the returned document has status=PENDING. operationId: uploadDocument parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: kbName in: path description: Knowledge base name required: true schema: type: string requestBody: content: multipart/form-data: schema: type: object properties: file: type: string format: binary description: Document file to be uploaded required: - file responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseKnowledgeDocument" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/keystores/import/: post: tags: - Keystore summary: Import a Keystore description: Imports a Keystore from a ZIP produced by the export endpoint. When override=true an existing keystore with the same name is overwritten; otherwise a new keystore is created (an '-imported' suffix is added on name conflict). operationId: importKeystore parameters: - name: projectName in: path required: true schema: type: string - name: override in: query description: "When true, overrides an existing keystore with the same name.\ \ Defaults to false." required: false allowEmptyValue: true schema: type: boolean default: false - name: X-Apinizer-Package-Passphrase in: header description: Optional; the passphrase required to decrypt the package if it is encrypted (Base64 UTF-8). Ignored if the package is not encrypted. required: false schema: type: string requestBody: content: multipart/form-data: schema: type: object properties: keystoreExportFile: type: string format: binary description: ZIP file produced by the keystore export endpoint environmentMapping: type: string description: "Optional JSON: environment name in the package ->\ \ environment name in this installation (example: {\"UAT\":\"\ Production\"}). An empty value means that environment is deliberately\ \ not transferred. If omitted, the current behaviour applies:\ \ environments with the same name are matched, unmatched ones\ \ are dropped. Ignored when override=true." certEnvironmentMergeMethod: type: string description: "Optional; environment matching method when override=true:\ \ MATCH_BY_NAME (default) or OVERWRITE_ALL." certEnvironmentUncoveredAction: type: string description: "Optional; for target environments not covered by the\ \ package when override=true: FILL_FROM_PACKAGE (fill from the\ \ package) or REMOVE_FROM_TARGET (remove from the target). If\ \ omitted and an uncovered environment exists, the import is rejected\ \ with 400 (INV-36)." required: - keystoreExportFile responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/keystores/import-file/: post: tags: - Keystore summary: Create or update a Keystore from a raw keystore file description: Uploads a .jks / .p12 / .pfx file directly instead of Base64-encoding it into a JSON body. The same file is written to every environment named in environmentList. With override=true an existing keystore of that name is updated; otherwise a new one is created. operationId: importKeystoreFile parameters: - name: projectName in: path required: true schema: type: string - name: keystoreName in: query required: true schema: type: string - name: password in: query description: Keystore password required: true schema: type: string - name: environmentList in: query description: comma seperated environment name values. REQUIRED when a single file is uploaded; when the ZIP produced by export-file is uploaded the environments are read from the package and this field is ignored. required: false schema: type: string - name: keyStoreType in: query description: "JKS | PKCS12. If omitted, it is inferred from the file name." required: false schema: type: string - name: keystoreDescription in: query required: false schema: type: string - name: alias in: query required: false schema: type: string - name: override in: query description: "If true, the existing keystore with the same name is updated;\ \ if false or omitted, a new one is created." required: false schema: type: boolean default: false requestBody: content: multipart/form-data: schema: type: object properties: keystoreFile: type: string format: binary description: Raw keystore file (.jks / .p12 / .pfx) environmentMapping: type: string description: "Optional JSON: environment name in the package ->\ \ environment name in this installation. An empty value means\ \ that environment is deliberately not transferred. Only meaningful\ \ when a ZIP is uploaded." required: - keystoreFile responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "400": description: bad request! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/keystores/: get: tags: - Keystore summary: Get all Keystores description: Get all Keystores operationId: getAllKeystores parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseKeystore" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - Keystore summary: Create a Keystore description: Creates a Keystore and deploys it to environments. operationId: createKeystore parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/KeystoreCreateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseKeystore" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/keys/import/: post: tags: - Key summary: Import a Key description: Imports a Key (CryptoKeyInfo) from a ZIP produced by the export endpoint. When override=true an existing key with the same name is overwritten; otherwise a new key is created (an '-imported' suffix is added on name conflict). operationId: importKey parameters: - name: projectName in: path required: true schema: type: string - name: override in: query description: "When true, overrides an existing key with the same name. Defaults\ \ to false." required: false allowEmptyValue: true schema: type: boolean default: false - name: X-Apinizer-Package-Passphrase in: header description: Optional; the passphrase required to decrypt the package if it is encrypted (Base64 UTF-8). Ignored if the package is not encrypted. required: false schema: type: string requestBody: content: multipart/form-data: schema: type: object properties: keyExportFile: type: string format: binary description: ZIP file produced by the key export endpoint environmentMapping: type: string description: "Optional JSON: environment name in the package ->\ \ environment name in this installation (example: {\"UAT\":\"\ Production\"}). An empty value means that environment is deliberately\ \ not transferred. If omitted, the current behaviour is preserved:\ \ environments with the same name are matched, unmatched ones\ \ are dropped. Ignored when override=true." certEnvironmentMergeMethod: type: string description: "Optional; environment matching method when override=true:\ \ MATCH_BY_NAME (default) or OVERWRITE_ALL." certEnvironmentUncoveredAction: type: string description: "Optional; for target environments not covered by the\ \ package when override=true: FILL_FROM_PACKAGE (fill from the\ \ package) or REMOVE_FROM_TARGET (remove from the target). If\ \ omitted and an uncovered environment exists, the import is rejected\ \ with 400 (INV-36)." required: - keyExportFile responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/keys/import-file/: post: tags: - Key summary: Create or update a Key from a raw key file description: "Uploads the key material as a file (PEM, or Base64/DER which is\ \ normalized to PEM) instead of embedding it in a JSON body. The same file\ \ is written to every environment named in environmentList. With override=true\ \ an existing key of that name is updated; otherwise a new key is created." operationId: importKeyFile parameters: - name: projectName in: path required: true schema: type: string - name: keyName in: query required: true schema: type: string - name: keyType in: query description: SECRET_KEY | PRIVATE_KEY | PUBLIC_KEY required: true schema: type: string - name: algorithm in: query description: AES | DES | DESede | RSA — REQUIRED for SECRET_KEY required: false schema: type: string - name: environmentList in: query description: comma seperated environment name values. REQUIRED when a single file is uploaded; when the ZIP produced by export-file is uploaded the environments are read from the package and this field is ignored. required: false schema: type: string - name: keyDescription in: query required: false schema: type: string - name: alias in: query required: false schema: type: string - name: override in: query description: "If true, the existing key with the same name is updated; if\ \ false or omitted, a new one is created." required: false schema: type: boolean default: false requestBody: content: multipart/form-data: schema: type: object properties: keyFile: type: string format: binary description: Raw key file (PEM or Base64/DER) environmentMapping: type: string description: "Optional JSON: environment name in the package ->\ \ environment name in this installation (example: {\"UAT\":\"\ Production\"}). An empty value means that environment is deliberately\ \ not transferred. Only meaningful when a ZIP is uploaded." required: - keyFile responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "400": description: bad request! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/keys/: get: tags: - Key summary: Get all Keys description: Get all Keys operationId: getAllKeys parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseKey" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - Key summary: Create a Key description: Creates a Key and deploys it to environments. operationId: createKey parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/KeyCreateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseKey" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/jwks/parse-from-url: post: tags: - JWK summary: Parse JWK from URL description: Parses a JWK from URL and creates it. operationId: parseJwkFromUrl parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/JwkCreateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/jwks/parse-from-keystore: post: tags: - JWK summary: Parse JWK from Keystore description: Parses a JWK from Keystore and creates it. operationId: parseJwkFromKeystore parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/JwkCreateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/jwks/parse-from-key: post: tags: - JWK summary: Parse JWK from Key description: Parses a JWK from Key (Public/Private) and creates it. operationId: parseJwkFromKey parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/JwkCreateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/jwks/parse-from-clipboard: post: tags: - JWK summary: Parse JWK from Clipboard description: Parses a JWK from clipboard (JSON string) and creates it. operationId: parseJwkFromClipboard parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/JwkCreateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/jwks/parse-from-certificate: post: tags: - JWK summary: Parse JWK from Certificate description: Parses a JWK from Certificate and creates it. operationId: parseJwkFromCertificate parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/JwkCreateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/jwks/import-file/: post: tags: - JWK summary: Create a JWK from a raw JWK file description: Uploads a JWK or JWK Set JSON document as a file instead of pasting it into a JSON body. The document is parsed the same way the clipboard endpoint parses it. operationId: importJwkFile parameters: - name: projectName in: path required: true schema: type: string - name: jwkName in: query required: true schema: type: string - name: kid in: query description: Key id value of the key to be uploaded required: true schema: type: string - name: jwkDescription in: query required: false schema: type: string requestBody: content: multipart/form-data: schema: type: object properties: jwkFile: type: string format: binary description: Raw JWK / JWK Set JSON file required: - jwkFile responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "400": description: bad request! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/jwks/generate: post: tags: - JWK summary: Generate a JWK description: Generates a new JWK and deploys it to environments. operationId: generateJwk parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/JwkGenerateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/jwks/: get: tags: - JWK summary: Get all JWKs description: Get all JWKs operationId: getAllJwks parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseJwk" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - JWK summary: Create a JWK description: Creates a JWK and deploys it to environments. operationId: createJwk parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/JwkCreateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/ipGroups/: get: tags: - IPGroups summary: List IP Groups description: Lists all IP Groups of the project with their IP lists operationId: listIPGroups parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseIPGroups" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - IPGroups summary: Create an IP Group with metadata description: Creates an IP Group with metadata information operationId: createIPGroup parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/IPGroupMetadataDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/identity-sources/{sourceType}/{sourceName}/sync-runs: get: tags: - IdentitySyncRun summary: List a source's synchronization runs description: "The source's runs, newest first." operationId: listRuns_2 parameters: - name: projectName in: path required: true schema: type: string - name: sourceType in: path required: true schema: type: string - name: sourceName in: path required: true schema: type: string - name: page in: query required: false schema: type: integer format: int32 - name: size in: query required: false schema: type: integer format: int32 responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsPagedResponseApiOpsResponseIdentitySyncRun" post: tags: - IdentitySyncRun summary: Queue a synchronization run description: "Claims the source and queues a run (202 + Location). Body: optional\ \ mode (source-type dependent). Requires the Idempotency-Key header." operationId: queueRun parameters: - name: projectName in: path required: true schema: type: string - name: sourceType in: path required: true schema: type: string - name: sourceName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsIdentitySyncRunRequestDTO" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseIdentitySyncRunAccepted" /apiops/projects/{projectName}/identity-sources/{sourceType}/{sourceName}/sync-runs/{runId}/actions/cancel: post: tags: - IdentitySyncRun operationId: cancelRun parameters: - name: projectName in: path required: true schema: type: string - name: sourceType in: path required: true schema: type: string - name: sourceName in: path required: true schema: type: string - name: runId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseIdentitySyncRun" /apiops/projects/{projectName}/identity-sources/{sourceType}/{sourceName}/sync-runs/{runId}/actions/approve-reconcile: post: tags: - IdentitySyncRun summary: Approve a run's pending reconcile description: Approves the deactivations a run left awaiting approval and queues the apply run (202 + Location). operationId: approveReconcile parameters: - name: projectName in: path required: true schema: type: string - name: sourceType in: path required: true schema: type: string - name: sourceName in: path required: true schema: type: string - name: runId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseIdentitySyncRunAccepted" /apiops/projects/{projectName}/globalPolicies/: get: tags: - GlobalPolicy summary: Get all global policies of a project description: "Returns the id, name and type of every global policy in the project." operationId: getAllGlobalPolicies parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseGlobalPolicy" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - GlobalPolicy summary: Create a global policy in a project description: "Creates a new global policy from the supplied policy snapshot\ \ JSON. Used by cross-instance promotion to materialize a source proxy's global\ \ policy on the target as a standalone, reusable global policy. The policy\ \ is created through its policy type's own service and gets that service's\ \ checks (a rejected policy returns 400); MCP / A2A policies and the few types\ \ without such a service are stored as the import does. Secret fields may\ \ be sent as plaintext or as the encrypted value from an export/promotion\ \ snapshot: a plaintext value is encrypted before it is stored, an already-encrypted\ \ value (or a ${VAR} reference) is stored as is. An AI policy needs the AI\ \ Development permission, the others API Management." operationId: createGlobalPolicy parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: type: object additionalProperties: {} required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseGlobalPolicy" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/export-import/{type}/import/: post: tags: - ExportImport summary: Import objects of a type description: Imports a ZIP package produced by the export endpoint (or the UI wizard). Dependencies the package carries are bound to same-named objects in the target project and created when no such object exists. With override=false the objects are imported as new; with override=true a same-named object in the target project is replaced. Whatever the import could NOT carry is returned in 'unresolvedReferences'. operationId: importObjects parameters: - name: projectName in: path required: true schema: type: string - name: type in: path description: Export/import type (see /types/) required: true schema: type: string - name: override in: query description: "If true, the object with the same name in the target project\ \ is REPLACED; if false or omitted, the objects are imported as new (default)." required: false schema: type: boolean default: false - name: X-Apinizer-Package-Passphrase in: header description: Optional; the passphrase required to decrypt the package if it is encrypted (Base64 UTF-8). required: false schema: type: string - name: acknowledgeChecksumMismatch in: query description: "If true, every 'the package was modified after it was exported'\ \ verdict of the transfer manifest is accepted and the import proceeds:\ \ changed entry content (manifestChecksumMismatch), a file added to or removed\ \ from the package (manifestEntryCountMismatch), and a manifest that cannot\ \ be read or contradicts the payload, its declared type included (manifestMalformed).\ \ The response then carries a warn advisory 'transfer.checksumMismatchAcknowledged'\ \ and the acknowledging user is written to the audit log. COMPATIBILITY\ \ verdicts are NOT covered and stay hard regardless of this flag (manifestFormatVersionTooNew,\ \ manifestUnsupportedCriticalFeature, an unsupported checksum algorithm\ \ or canonicalization version), and neither is a package entry whose JSON\ \ cannot be deserialized (deserializationFailed) — that is an unreadable\ \ file, not a difference to accept. Default false: any of these verdicts\ \ is rejected with 400." required: false schema: type: boolean default: false requestBody: content: multipart/form-data: schema: type: object properties: exportFile: type: string format: binary description: ZIP package (produced by the export endpoint) environmentMapping: type: string description: "Optional JSON: environment name in the package ->\ \ environment name in this installation (example: {\"UAT\":\"\ Production\"}). An empty value means that environment is deliberately\ \ not transferred. If omitted, environments with the same name\ \ are matched, unmatched ones are dropped." certEnvironmentMergeMethod: type: string description: "Optional; for certificate/key family packages, the\ \ environment matching method when override=true: MATCH_BY_NAME\ \ (default) or OVERWRITE_ALL." certEnvironmentUncoveredAction: type: string description: "Optional; for target environments not covered by the\ \ package when override=true: FILL_FROM_PACKAGE (fill from the\ \ package) or REMOVE_FROM_TARGET (remove from the target). If\ \ omitted and an uncovered environment exists, the import is rejected\ \ with 400 (INV-36)." required: - exportFile responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "400": description: bad request! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/export-import/{type}/export/: post: tags: - ExportImport summary: Export objects of a type description: "Exports the named objects of this type as a ZIP package the import\ \ endpoint (or the UI wizard) can read back. With withDependencies=true the\ \ package also carries every object the selection references, which the import\ \ binds to same-named objects in the target project." operationId: exportObjects parameters: - name: projectName in: path required: true schema: type: string - name: type in: path description: Export/import type (see /types/) required: true schema: type: string - name: encrypt in: query description: "Optional; if true, the package is encrypted with the passphrase\ \ supplied in the X-Apinizer-Package-Passphrase header (the passphrase is\ \ then REQUIRED). If false or omitted, the package is produced unencrypted." required: false schema: type: boolean default: false - name: withDependencies in: query description: "Optional; if true, every dependency referenced by the selected\ \ objects is also placed in the package and, during import, bound to the\ \ objects with the same name in the target project. If false or omitted,\ \ ONLY the selected objects are exported (default)." required: false schema: type: boolean default: false - name: X-Apinizer-Package-Passphrase in: header description: Optional; the passphrase required to encrypt the package when encrypt=true (Base64 UTF-8). required: false schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsExportRequestDTO" required: true responses: "200": description: successful operation! content: '*/*': schema: type: string "400": description: bad request! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/db2apis/{db2ApiName}/: get: tags: - DB2API summary: Gets a DB2API creator by name description: Gets a single DB2API (DbToApi) creator by name for the specified project. operationId: getDb2Api parameters: - name: projectName in: path required: true schema: type: string - name: db2ApiName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: type: object "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - DB2API summary: Creates or updates a DB2API creator (promotion) description: Creates or updates a DB2API (DbToApi) creator for promotion purposes. operationId: saveDb2Api parameters: - name: projectName in: path required: true schema: type: string - name: db2ApiName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/DbToApi" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/credential-organizations/: post: tags: - CredentialOrganization summary: Create Credential Organization description: Deprecated — use /consumer-organizations. operationId: create_2 parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/CredentialOrganizationDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/CredentialOrganizationDTO" deprecated: true /apiops/projects/{projectName}/consumers: get: tags: - Consumer summary: List consumers description: "The project's consumers, by username by default; filterable by\ \ organization code, enabled flag and a username/full-name search; sortable\ \ by username, fullName, enabled." operationId: listConsumers parameters: - name: projectName in: path required: true schema: type: string - name: organizationCode in: query required: false schema: type: string - name: enabledOnly in: query required: false schema: type: boolean - name: search in: query required: false schema: type: string - name: page in: query required: false schema: type: integer format: int32 - name: size in: query required: false schema: type: integer format: int32 - name: sort in: query required: false schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsPagedResponseApiOpsResponseConsumer" post: tags: - Consumer summary: Create a consumer description: Creates a consumer in the project and deploys it (201 + Location). username and password are required; the consumer key is assigned by the installation and returned in the result. organizationCode files the consumer under an organization of the project. A taken username is 409 duplicateName. The password is stored encrypted and never returned. operationId: createConsumer parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsConsumerWriteDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/actions/transfer-organization: post: tags: - Consumer summary: Transfer a consumer to another organization description: "Moves the consumer under the organization addressed by code in\ \ the same project; the api clients, legacy access rows and tokens it owns\ \ follow and the consumer is redeployed. Refused with 409 for a sync-managed\ \ consumer, a target that is the current organization or has been merged away,\ \ and while a delete of the consumer or of either organization is in flight." operationId: transferOrganization parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsOwnerTransferRequestDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/actions/sync-match: post: tags: - Consumer summary: Match a consumer to an identity source user description: "Binds the consumer to a user of an identity source of the project,\ \ by the source's name (sourceType ldap, database or api, any other is 400;\ \ sourceName; username = the key the next sync reconciles on; optional email,\ \ fullName, ldapDn). The consumer becomes sync-managed: the source owns its\ \ identity fields from then on. An unknown source is 404; a source whose synchronization\ \ is disabled is 400 (reason syncProviderDisabled); a username another consumer\ \ holds is 400 (reason credentialUsernameTaken). The same step the Consumer\ \ screen's match flow runs; runtimeDeployment reports the gateway push." operationId: syncMatch parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsConsumerSyncMatchDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/actions/enable: post: tags: - Consumer summary: Enable a consumer description: "Enables the consumer and redeploys it; the API clients it owns\ \ follow. Also accepted on a consumer a live identity source manages, which\ \ PUT refuses. On such a consumer the enable holds until the source disables\ \ the account or the user leaves the sync scope; the next sync run then disables\ \ it again. runtimeDeployment reports the gateway push." operationId: enableConsumer parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/actions/disable: post: tags: - Consumer summary: Disable a consumer description: "Disables the consumer and redeploys it; the API clients it owns\ \ follow. Also accepted on a consumer a live identity source manages, which\ \ PUT refuses. The disable is recorded as a manual decision, so a sync run\ \ does not switch the consumer back on. runtimeDeployment reports the gateway\ \ push." operationId: disableConsumer parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/actions/change-password: post: tags: - Consumer summary: Change a consumer's password description: Sets a new password and redeploys the consumer. On a consumer whose identity was carried over to an API client this also rotates that client's secret. The password is stored encrypted and never returned. operationId: changePassword parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsConsumerPasswordDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/access: get: tags: - Consumer summary: List a consumer's access description: "The API proxies and API proxy groups of the project the consumer\ \ may call, by name." operationId: listAccess parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiOpsConsumerAccessDTO" post: tags: - Consumer summary: Grant access to a consumer description: "Grants every listed API proxy / API proxy group of the project\ \ (accessList, each with name, type API_PROXY or API_PROXY_GROUP and an optional\ \ expireTime; optionally environments [{environmentName, enabled}], disallowedEndpoints\ \ [{name, httpMethod}] on an API proxy and disallowedApiProxies [name] on\ \ a group — all by name, an unknown one is 404). An unknown target is 404;\ \ a target already granted is 409 lifecycleConflict (reason accessAlreadyGranted)\ \ — nothing is silently skipped. Targets are applied in order: a refusal leaves\ \ the targets before it granted, so a retry should send only the remaining\ \ ones." operationId: grantAccess_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsConsumerAccessListDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseListApiOpsConsumerAccessDTO" /apiops/projects/{projectName}/consumers/{consumerKey}/access/actions/revoke: post: tags: - Consumer summary: Revoke access from a consumer description: Revokes every listed API proxy / API proxy group of the project (same accessList body as the grant). A target that was not granted is left as it is; an unknown target is 404. An action rather than a DELETE because the targets travel in a body. operationId: revokeAccess_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsConsumerAccessListDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseListApiOpsConsumerAccessDTO" /apiops/projects/{projectName}/consumer-roles: get: tags: - Consumer Role summary: List consumer roles description: "The project's consumer roles, by name; searchable by name." operationId: listRoles parameters: - name: projectName in: path required: true schema: type: string - name: search in: query required: false schema: type: string - name: page in: query required: false schema: type: integer format: int32 - name: size in: query required: false schema: type: integer format: int32 - name: sort in: query required: false schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsPagedResponseApiOpsResponseConsumerRole" post: tags: - Consumer Role summary: Create a consumer role description: "Creates the role (name required, oauthScope optional) and deploys\ \ it. A name another role of the project or of the administration project\ \ holds is 409 duplicateName; an invalid or already used OAuth scope name\ \ is 400." operationId: createRole parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsConsumerRoleWriteDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumerRole" /apiops/projects/{projectName}/consumer-organizations: get: tags: - Consumer summary: List consumer organizations description: "The project's consumer organizations, by code by default; searchable\ \ by code / default name; sortable by code, nameDefault." operationId: listOrganizations parameters: - name: projectName in: path required: true schema: type: string - name: search in: query required: false schema: type: string - name: page in: query required: false schema: type: integer format: int32 - name: size in: query required: false schema: type: integer format: int32 - name: sort in: query required: false schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsPagedResponseApiOpsResponseConsumerOrganization" post: tags: - Consumer summary: Create a consumer organization description: Creates an organization in the project (201 + Location). code is required and unique in the project (409 duplicateName); parentOrganizationCode names an organization of the same project. operationId: createOrganization parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsConsumerOrganizationWriteDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumerOrganization" /apiops/projects/{projectName}/certificates/truststore/{environmentName}/import-file/: post: tags: - ApiProxy summary: Add a bundle of certificates to an environment's truststore description: "Uploads a ZIP of certificate files (or a single one) and registers\ \ each as a Certificate in this project for the given environment, which is\ \ what makes that environment trust them. Each entry's file name becomes the\ \ certificate name and alias. Entries that already exist under the same name\ \ are replaced for that environment; their other environments are untouched." operationId: importTruststoreFile parameters: - name: projectName in: path required: true schema: type: string - name: environmentName in: path required: true schema: type: string - name: namePrefix in: query description: "Optional; prepended to the names of the created certificates\ \ (example: partner-ca-)." required: false schema: type: string requestBody: content: multipart/form-data: schema: type: object properties: truststoreFile: type: string format: binary description: Certificate bundle (ZIP) or a single certificate file required: - truststoreFile responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "400": description: bad request! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/certificates/import-file/: post: tags: - ApiProxy summary: Create or update a Certificate from a raw certificate file description: "Uploads certificate material as a file and writes it to the environments\ \ you name. A single PEM/DER file goes to every environment in environmentList;\ \ the ZIP produced by the export endpoint restores each environment from its\ \ own entry. Unlike create/update, an environment that already carries this\ \ certificate is REPLACED rather than duplicated, and an environment this\ \ upload does not name keeps what it had." operationId: importCertificateFile parameters: - name: projectName in: path required: true schema: type: string - name: certificateName in: query required: true schema: type: string - name: alias in: query required: true schema: type: string - name: environmentList in: query description: comma seperated environment name values. REQUIRED when a single file is uploaded; when a ZIP is uploaded the environments are read from the package and this field is ignored. required: false schema: type: string - name: certificateDescription in: query required: false schema: type: string requestBody: content: multipart/form-data: schema: type: object properties: certificateFile: type: string format: binary description: "Raw certificate file (PEM/DER), or the ZIP produced\ \ by the export endpoint" environmentMapping: type: string description: "Optional JSON: environment name in the package ->\ \ environment name in this installation. An empty value means\ \ that environment is deliberately not transferred. Only meaningful\ \ when a ZIP is uploaded." required: - certificateFile responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "400": description: bad request! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/certificates/: get: tags: - ApiProxy summary: Get all Certificates description: Get all Certificates operationId: getAllCertificates parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - ApiProxy summary: Create a Certificate description: Creates a Certificate and deploys it to environments. operationId: createCertificate_1 parameters: - name: projectName in: path required: true schema: type: string - name: certificateName in: query description: Name of certificate required: true schema: type: string - name: alias in: query description: Alias of certificate required: true schema: type: string - name: certificateDescription in: query required: true schema: type: string - name: environmentList in: query description: comma seperated environment name values required: true schema: type: array items: type: string requestBody: content: multipart/form-data: schema: type: object properties: pemEncodedFile: type: string format: binary required: - pemEncodedFile responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/applications/{applicationKey}/actions/transfer-organization: post: tags: - Application summary: Transfer an application to another organization description: "Moves the application under the organization addressed by code\ \ in the same project (the administration project: its own organizations first,\ \ then a code only one project uses); the consumers it owns (with their api\ \ clients, legacy access rows and tokens) and its subscriptions follow, and\ \ its api clients are re-pushed. Refused with 409 for an application being\ \ deleted or archived, a target that is the current organization or has been\ \ merged away, and while a delete of the application or of either organization\ \ is in flight." operationId: transferOrganization_1 parameters: - name: projectName in: path required: true schema: type: string - name: applicationKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsOwnerTransferRequestDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApplication" /apiops/projects/{projectName}/applications/{applicationKey}/actions/suspend: post: tags: - Application summary: Suspend an application description: "Disables and withdraws the application's enabled credentials and\ \ re-pushes its API clients as suspended (idempotent). runtimeDeployment reports\ \ the pushes: DEGRADED means the status is stored but a gateway did not confirm\ \ it." operationId: suspend parameters: - name: projectName in: path required: true schema: type: string - name: applicationKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApplication" /apiops/projects/{projectName}/applications/{applicationKey}/actions/resume: post: tags: - Application summary: Resume a suspended application description: "Re-enables exactly the credentials the suspension disabled and\ \ re-pushes the application's API clients (idempotent). runtimeDeployment\ \ reports the pushes, as on suspend." operationId: resume parameters: - name: projectName in: path required: true schema: type: string - name: applicationKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApplication" /apiops/projects/{projectName}/apiProxyGroups/{apiProxyGroupName}/environments/{environmentName}/: post: tags: - ApiProxyGroup summary: Deploy API Proxy Group description: Deploy API Proxy Group operationId: deployApiProxyGroup parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyGroupName in: path required: true schema: type: string - name: environmentName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsDeployRequestDTO" responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - ApiProxyGroup summary: Undeploy API Proxy Group description: Undeploy API Proxy Group operationId: undeployApiProxyGroup parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyGroupName in: path required: true schema: type: string - name: environmentName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsDeployRequestDTO" responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxyGroups/{apiProxyGroupName}/apiProxies/{apiProxyName}/: post: tags: - ApiProxyGroup summary: Add ApiProxy to API Proxy Group description: Add ApiProxy to API Proxy Group operationId: addApiProxyToProxyGroup parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyGroupName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - ApiProxyGroup summary: Remove ApiProxy from API Proxy Group description: Remove ApiProxy from API Proxy Group operationId: removeApiProxyFromProxyGroup parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyGroupName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/policies/{policyName}/parse-tools/: post: tags: - Policy summary: Discover the live tools/list catalog of a policy-embedded inline MCP server description: "Preview-only MCP tool discovery for an EXISTING policy's inline\ \ mcpServer (PolicyAiMcpToolCall or PolicyAiMcpToolInvoke) — no persist, discoveredTools\ \ on the policy is unchanged. The request body is OPTIONAL: omitted, the persisted\ \ inline server is probed as-is (decrypted server-side); supplied, its fields\ \ OVERRIDE the persisted ones the same ABSENT-vs-EMPTY way a policy update\ \ does (omitted secret fields are preserved from the persisted server, never\ \ sent blank/anonymous)." operationId: parseToolsForPolicy parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: policyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ConnectionConfigMcp" responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseMcpParseTools" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/policies/{policyName}/parse-skills/: post: tags: - Policy summary: Discover the live AgentCard skill catalog of a policy-embedded inline A2A agent description: "Preview-only A2A skill discovery for an EXISTING policy's inline\ \ a2aAgent (PolicyAiA2aAgentCall or PolicyAiA2aAgentInvoke) — no persist,\ \ discoveredSkills on the policy is unchanged. The request body is OPTIONAL:\ \ omitted, the persisted inline agent is probed as-is (decrypted server-side);\ \ supplied, its fields OVERRIDE the persisted ones the same ABSENT-vs-EMPTY\ \ way a policy update does." operationId: parseSkillsForPolicy parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: policyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ConnectionConfigA2a" responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseA2aParseSkills" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/methods/policies/: post: tags: - ApiProxy summary: Get Method Policies description: "Gets all policies (request, response, error) for a specific method\ \ identified by name and HTTP method" operationId: getMethodPolicies parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyEndpointIdentifierDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiProxyEndpointDTO" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/mcp-gateway/: post: tags: - ApiProxy summary: Generate an MCP Gateway from an existing API Proxy description: "Permission: API_MANAGEMENT or AI_DEVELOPMENT × MANAGE. Creates\ \ a NEW MCP (Model Context Protocol) API Proxy next to an existing REST or\ \ SOAP API Proxy, exposing each of its endpoints as an MCP tool (routingMode\ \ TOOL_EXPOSE, looping back to the source proxy). The source proxy is left\ \ untouched: it is not retyped, not modified and not redeployed. The generated\ \ gateway is created UNDEPLOYED — deploy it with a separate call once the\ \ tool list has been reviewed. Body fields are optional: a blank name defaults\ \ to ' MCP' and a blank relativePath to '-mcp'.\ \ Only REST and SOAP source proxies are supported; a source with no endpoint\ \ is rejected." operationId: createMcpGatewayFromApiProxy parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: apiProxyName in: path description: Source REST/SOAP API Proxy name required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsMcpGatewayCreateDTO" responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseMcpGateway" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/environments/{environmentName}/: post: tags: - ApiProxy summary: Deploy API Proxy to the Environment description: Deploy API Proxy to the Environment operationId: deployApiProxy parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: environmentName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsDeployRequestDTO" responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - ApiProxy summary: Undeploy of API Proxy from Environment description: Undeploy of API Proxy from Environment operationId: undeployApiProxy parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: environmentName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsDeployRequestDTO" responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApiProxy" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/endpoints/policies/: post: tags: - ApiProxy summary: List Endpoint Policies description: "Lists all policies (request, response, error) for a specific endpoint/method" operationId: listEndpointPolicies parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyEndpointIdentifierDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiProxyEndpointDTO" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/endpoints/details/: post: tags: - ApiProxy summary: Get Endpoint Details description: Gets details of a specific endpoint/method operationId: getEndpoint parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyEndpointIdentifierDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiProxyEndpointDTO" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/endpoints/delete/: post: tags: - ApiProxy summary: Delete REST Endpoint description: Deletes a REST endpoint from the specified API Proxy (REST only) operationId: deleteEndpoint parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyEndpointIdentifierDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/endpoints/: get: tags: - ApiProxy summary: List All Endpoints description: Lists all endpoints/methods for the specified API Proxy operationId: listEndpoints parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseEndpoint" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" post: tags: - ApiProxy summary: Add REST Endpoint description: Adds a new REST endpoint to the specified API Proxy (REST only) operationId: addEndpoint parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyEndpointCreateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" patch: tags: - ApiProxy summary: Update Endpoint description: Updates endpoint/method details for the specified API Proxy operationId: updateEndpoint parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyEndpointUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/deploy-histories/{revision}/rollback/: post: tags: - ApiProxy summary: Rollback API Proxy to Deploy History description: "Rollback the API Proxy configuration to a specific deploy history\ \ snapshot. Permission: API_MANAGEMENT or AI_DEVELOPMENT × MANAGE; with environmentName\ \ also DEPLOY_UNDEPLOY, checked before the rollback is written." operationId: rollbackToDeployHistory parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: revision in: path required: true schema: type: integer format: int64 - name: environmentName in: query description: "If provided, deploy the rolled-back API Proxy to this environment\ \ after rollback" required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApiProxy" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/mcp/{apiProxyName}/: post: tags: - ApiProxy summary: Create an MCP API Proxy description: "Permission: API_MANAGEMENT or AI_DEVELOPMENT × MANAGE. Creates\ \ a name-based MCP (Model Context Protocol) API Proxy in a single call. The\ \ path apiProxyName overrides the body name. routingMode is required (TOOL_EXPOSE\ \ or PASSTHROUGH — no implicit default, same fail-closed contract mcp-routing/\ \ uses). protocolVersion is optional. For PASSTHROUGH the backend target is\ \ given inline via mcpRouting.backendServers[] (each entry needs a non-blank\ \ endpoint); referencing a separate connection is no longer supported." operationId: createMcpApiProxy parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: apiProxyName in: path description: MCP API Proxy name (overrides body name) required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsMcpApiProxyCreateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/import/: post: tags: - ApiProxy summary: Import an API Proxy by not overriding existing one description: "Imports API Proxy by adding imported suffix to name and relative\ \ path, to prevent conflicts. This method does not control if there is same\ \ API proxy exists or not." operationId: importApiProxyAndOverride parameters: - name: projectName in: path required: true schema: type: string - name: withDependencies in: query description: "Optional; if true, the dependencies carried in the package are\ \ resolved against the target project: if an object with the SAME NAME exists\ \ in the target project it is bound to that object, otherwise it is imported\ \ as new. If false or omitted, the package is imported as-is (default, current\ \ behaviour). If the package carries no dependencies, this parameter has\ \ no effect." required: false schema: type: boolean default: false - name: X-Apinizer-Package-Passphrase in: header description: Optional; the passphrase required to decrypt the package if it is encrypted (Base64 UTF-8). Ignored if the package is not encrypted. required: false schema: type: string requestBody: content: multipart/form-data: schema: type: object properties: apiProxyExportFile: type: string format: binary environmentMapping: type: string description: "Optional JSON: environment name in the package ->\ \ environment name in this installation (example: {\"UAT\":\"\ Production\"}). An empty value means that environment is deliberately\ \ not transferred. If omitted, the current behaviour is preserved:\ \ environments with the same name are matched, unmatched ones\ \ are dropped." required: - apiProxyExportFile responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/ai/{apiProxyName}/: post: tags: - ApiProxy summary: Create an AI API Proxy description: "Permission: API_MANAGEMENT or AI_DEVELOPMENT × MANAGE. Creates\ \ a name-based AI (LLM gateway) API Proxy. The path apiProxyName overrides\ \ the body name. Optional body fields llmProviderName/modelId/streaming wire\ \ the primary AiRouting config. llmProviderName is resolved to an LLM provider\ \ id within the project (name-based)." operationId: createAiApiProxy parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: apiProxyName in: path description: AI API Proxy name (overrides body name) required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsAiApiProxyCreateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/a2a/{apiProxyName}/: post: tags: - ApiProxy summary: Create an A2A API Proxy description: "Permission: API_MANAGEMENT or AI_DEVELOPMENT × MANAGE. Creates\ \ a name-based A2A (Agent-to-Agent) API Proxy in a single call. The path apiProxyName\ \ overrides the body name. routingMode defaults to AGENT_EXPOSE when omitted\ \ (PASSTHROUGH is also accepted). protocolVersion is optional. For PASSTHROUGH\ \ the backend target is given inline via a2aRouting.backendServers[] (each\ \ entry needs a non-blank endpoint); referencing a separate connection is\ \ no longer supported. For AGENT_EXPOSE an empty aiRouting is seeded automatically\ \ (required by validation) — configure it afterward via ai-routing/." operationId: createA2aApiProxy parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: apiProxyName in: path description: A2A API Proxy name (overrides body name) required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsA2aApiProxyCreateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/api-clients: get: tags: - ApiClient summary: List API clients description: "The project's API clients, by clientId by default; filterable\ \ by owner (type + key), lifecycle state and a clientId/description search;\ \ sortable by clientId, operationalState, expiresAt." operationId: listApiClients parameters: - name: projectName in: path required: true schema: type: string - name: ownerType in: query required: false schema: type: string enum: - CONSUMER - APPLICATION - name: ownerKey in: query required: false schema: type: string - name: state in: query required: false schema: type: string enum: - DRAFT - ACTIVE - SUSPENDED - REVOKED - name: search in: query required: false schema: type: string - name: page in: query required: false schema: type: integer format: int32 - name: size in: query required: false schema: type: integer format: int32 - name: sort in: query required: false schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsPagedResponseApiOpsResponseApiClient" post: tags: - ApiClient summary: Create an API client description: "Creates an ACTIVE client with its first secret and deploys it\ \ to the gateways (201 + Location). Requires the Idempotency-Key header; the\ \ client id is minted when the body leaves it blank. The first secret is the\ \ body's secret (the shape of POST .../secret-versions) or, when absent, a\ \ generated one; a GENERATED value is returned once, under no-store, and never\ \ again. A public client (tokenEndpointAuthMethod=none) is created active\ \ without a secret; a secret sent with it is refused." operationId: createApiClient parameters: - name: projectName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsApiClientCreateDTO" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApiClientCreated" /apiops/projects/{projectName}/api-clients/{apiClientKey}/secret-versions: post: tags: - ApiClient summary: Issue or rotate an API client secret description: "Adds a secret generation (201 + Location). Requires the Idempotency-Key\ \ header and the version query parameter; a GENERATED value is returned once,\ \ under no-store, and never again." operationId: issueSecretVersion parameters: - name: projectName in: path required: true schema: type: string - name: apiClientKey in: path required: true schema: type: string - name: version in: query required: false schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: "#/components/schemas/SecretVersionRequest" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSecretVersionIssued" /apiops/projects/{projectName}/api-clients/{apiClientKey}/secret-versions/{versionId}/actions/revoke: post: tags: - ApiClient summary: Revoke one secret generation description: "Destroys ONE generation of material now, including the ACTIVE\ \ one; authentication stops until a new secret is issued. The body's version\ \ must match." operationId: revokeSecretVersion parameters: - name: projectName in: path required: true schema: type: string - name: apiClientKey in: path required: true schema: type: string - name: versionId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLifecycleActionDTO" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApiClientMutation" /apiops/projects/{projectName}/api-clients/{apiClientKey}/actions/suspend: post: tags: - ApiClient summary: Suspend an API client description: Pauses an ACTIVE client without destroying its material or its issued tokens; the body's version must match. operationId: suspendApiClient parameters: - name: projectName in: path required: true schema: type: string - name: apiClientKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLifecycleActionDTO" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApiClientMutation" /apiops/projects/{projectName}/api-clients/{apiClientKey}/actions/revoke: post: tags: - ApiClient summary: Revoke an API client description: Ends a client permanently and destroys its material; irreversible. The body's version must match. operationId: revokeApiClient parameters: - name: projectName in: path required: true schema: type: string - name: apiClientKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLifecycleActionDTO" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApiClientMutation" /apiops/projects/{projectName}/api-clients/{apiClientKey}/actions/resume: post: tags: - ApiClient summary: Resume a suspended API client description: Returns a SUSPENDED client to service; a revoked client can never arrive here. The body's version must match. operationId: resumeApiClient parameters: - name: projectName in: path required: true schema: type: string - name: apiClientKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsLifecycleActionDTO" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApiClientMutation" /apiops/portal-apps/provision: post: tags: - api-ops-portal-app-provision operationId: provision requestBody: content: application/json: schema: $ref: "#/components/schemas/ProdProvisionRequestDTO" required: true responses: "200": description: OK content: application/json: schema: type: string /apiops/auth/token: post: tags: - Auth summary: Access Token description: Create Access Token operationId: find_1 requestBody: content: application/x-www-form-urlencoded: schema: type: object properties: grant_type: type: string description: client_credentials is allowed client_id: type: string description: client_id client_secret: type: string description: client_secret required: - client_id - client_secret - grant_type responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/TokenResponse" "400": description: bad request! content: application/json: schema: $ref: "#/components/schemas/TokenResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/TokenResponse" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/TokenResponse" /apiops/api-products/promote: post: tags: - api-ops-api-product operationId: promote requestBody: content: application/json: schema: $ref: "#/components/schemas/ProdProductPromoteRequestDTO" required: true responses: "200": description: OK content: application/json: schema: type: string /apiops/projects/{projectName}/credentials/{username}/: delete: tags: - Credential summary: Delete Credential description: Deletes credential specified by username and undeploys it from environments operationId: deleteCredential parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true patch: tags: - Credential summary: Change Credential Password description: Changes credential password specified by username and deploys it to environments operationId: changePassword_1 parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/CredentialDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/xml-error-template/: patch: tags: - ApiProxy summary: Update XML Error Response Template description: Updates XML Error Response Template for the specified API Proxy operationId: updateXmlErrorResponseTemplate parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyXmlErrorTemplateUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/websocket/: patch: tags: - ApiProxy summary: Update WebSocket Settings description: Updates WebSocket routing settings for the specified API Proxy operationId: updateWebsocketSettings parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyWebsocketSettingsUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/trace/: patch: tags: - ApiProxy summary: Update Trace Settings description: Updates trace settings for the specified API Proxy operationId: updateTraceSettings parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/TraceSettingsDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/spec-access-type/{specAccessType}/: patch: tags: - ApiProxy summary: Update API Definition File Access Setting description: Updates Spec Access Type setting for the specified API Proxy operationId: updateSpecAccessType parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: specAccessType in: path required: true schema: type: string enum: - PUBLIC - AUTHENTICATED - HIDDEN - BACKEND_PROXY - name: checkApiProxyPermission in: query required: false schema: type: boolean default: false requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiOpsDeployableRequest" responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/routing-status/: patch: tags: - ApiProxy summary: Update Routing Status description: Updates Routing Status for the specified API Proxy operationId: updateRoutingStatus parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyRoutingStatusUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/proxy-server/: patch: tags: - ApiProxy summary: Update Proxy Server Settings description: Updates Proxy Server settings for the specified API Proxy operationId: updateProxyServer parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyProxyServerUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/ntlm/: patch: tags: - ApiProxy summary: Update NTLM Settings description: Updates NTLM settings for the specified API Proxy operationId: updateNtlmSettings parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyNtlmSettingsUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/mtls/: patch: tags: - ApiProxy summary: Update mTLS Settings description: Updates mTLS settings for the specified API Proxy operationId: updateMtlsSettings parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/RoutingMTLSSettingsDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/metadata/: patch: tags: - ApiProxy summary: Update Metadata description: "Updates metadata (name, description, category, sharing type) for\ \ the specified API Proxy" operationId: updateMetadata parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyMetadataUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/maintenance-mode/: patch: tags: - ApiProxy summary: Update Maintenance Mode Settings description: Updates maintenance mode settings for the specified API Proxy operationId: updateMaintenanceMode parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/MaintenanceModeSettingDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/keys/: patch: tags: - ApiProxy summary: Update API Key and Secret Key description: Updates API Key and Secret Key for the specified API Proxy operationId: updateApiKeys parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyKeysUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/json-error-template/: patch: tags: - ApiProxy summary: Update JSON Error Response Template description: Updates JSON Error Response Template for the specified API Proxy operationId: updateJsonErrorResponseTemplate parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyJsonErrorTemplateUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/idempotency/: patch: tags: - ApiProxy summary: Update Idempotency Settings description: Updates Idempotency-Key settings for the specified API Proxy operationId: updateIdempotencySettings parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyIdempotencySettingsUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/grpc/: patch: tags: - ApiProxy summary: Update gRPC Settings description: Updates gRPC routing settings for the specified API Proxy operationId: updateGrpcSettings parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyGrpcSettingsUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/forwarded-ip-header/: patch: tags: - ApiProxy summary: Update Forwarded IP Header Parameter description: Updates Forwarded IP Header Parameter for the specified API Proxy operationId: updateForwardedIpHeaderParam parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyForwardedIpHeaderUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/error-handling/: patch: tags: - ApiProxy summary: Update Error Handling Settings description: Updates Error Handling Settings for the specified API Proxy routing operationId: updateErrorHandling parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyErrorHandlingUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/custom-message/: patch: tags: - ApiProxy summary: Update Custom Message Settings description: Updates Custom Message Builder Settings for the specified API Proxy routing operationId: updateCustomMessage parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyCustomMessageUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/cors/: patch: tags: - ApiProxy summary: Update CORS Settings description: Updates CORS settings for the specified API Proxy operationId: updateCorsSettings parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyCorsSettingsUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/connection/: patch: tags: - ApiProxy summary: Update Connection Settings description: Updates Connection settings for the specified API Proxy operationId: updateConnectionSettings parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyConnectionSettingsUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/client-route/: patch: tags: - ApiProxy summary: Update Client Route metadata description: Updates Client Route metadata for the specified API Proxy operationId: updateClientRoute parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyClientRouteUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/circuit-breaker/: patch: tags: - ApiProxy summary: Update Circuit Breaker Settings description: Updates Circuit Breaker settings for the specified API Proxy operationId: updateCircuitBreaker parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyCircuitBreakerUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/cache/: patch: tags: - ApiProxy summary: Update Cache Settings description: Updates Cache settings for the specified API Proxy operationId: updateCacheSettings parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyCacheSettingsUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/addresses/: patch: tags: - ApiProxy summary: Update Routing Addresses description: Updates Routing Addresses for the specified API Proxy operationId: updateAddresses parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyRoutingAddressListDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/endpoints/wsa/: patch: tags: - ApiProxy summary: Update SOAP Endpoint WSA Settings description: Updates WSA (WS-Addressing) settings for a SOAP endpoint/method (SOAP only) operationId: updateEndpointWsaSettings parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyEndpointWsaUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/endpoints/status/: patch: tags: - ApiProxy summary: Enable/Disable Endpoint description: Enables or disables an endpoint/method operationId: updateEndpointStatus parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyEndpointStatusUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/endpoints/cache/: patch: tags: - ApiProxy summary: Update Endpoint Cache Settings description: Updates cache settings for a specific endpoint/method operationId: updateEndpointCacheSettings parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiProxyEndpointCacheUpdateDTO" required: true responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /management/performance/slow-methods: get: tags: - performance-monitoring-resource operationId: getSlowMethods parameters: - name: limit in: query required: false schema: type: integer format: int32 default: 100 - name: thresholdMs in: query required: false schema: type: integer format: int32 default: 100 responses: "200": description: OK content: '*/*': schema: type: object additionalProperties: {} /management/performance/metrics: get: tags: - performance-monitoring-resource operationId: getPerformanceMetrics responses: "200": description: OK content: '*/*': schema: type: object additionalProperties: {} delete: tags: - performance-monitoring-resource operationId: clearMetrics responses: "200": description: OK content: '*/*': schema: type: object additionalProperties: type: string /apiops/utility/script2apis/{script2ApiId}: get: tags: - Utility summary: Get Script2API Name by ID description: Get Script2API (ScriptToApi) creator name by its MongoDB ObjectId. Used by Promotion to resolve creator ID to name. operationId: getScript2ApiById parameters: - name: script2ApiId in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseNameBatch" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/utility/proxyGroups/{proxyGroupId}: get: tags: - Utility summary: Get Proxy Group Name by ID description: Get Proxy Group Name by its MongoDB ObjectId. Used by Promotion to resolve proxy group ID to name. operationId: getProxyGroupById parameters: - name: proxyGroupId in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseNameBatch" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/utility/promotion-certificates/{certKind}/{id}/full: get: tags: - PromotionCertificate summary: Get a full certificate (with secret) by id for cross-instance promotion description: Loads the certificate of the given kind by id with decrypted secret material; environment ids are replaced with environment names so the target can rebind them. operationId: getFullCertificate parameters: - name: certKind in: path required: true schema: type: string - name: id in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: type: string /apiops/utility/projects/{projectId}: get: tags: - Utility summary: Get Project Name and Description by ID description: Get Project Name and Description by ID operationId: getProjectById parameters: - name: projectId in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseProject" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/utility/mockapis/{mockApiId}: get: tags: - Utility summary: Get MockAPI Name by ID description: Get MockAPI creator name by its MongoDB ObjectId. Used by Promotion to resolve creator ID to name. operationId: getMockApiById parameters: - name: mockApiId in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseNameBatch" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/utility/environments/{environmentId}: get: tags: - Utility summary: Get Environment Name by ID description: Get Environment Name and Description by its MongoDB ObjectId. Used by Promotion to resolve environmentSettingsId to a human-readable name. operationId: getEnvironmentById parameters: - name: environmentId in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseEnvironment" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/utility/db2apis/{db2ApiId}: get: tags: - Utility summary: Get DB2API Name by ID description: Get DB2API (DbToApi) creator name by its MongoDB ObjectId. Used by Promotion to resolve creator ID to name. operationId: getDb2ApiById parameters: - name: db2ApiId in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseNameBatch" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/utility/connections/{connectionId}: get: tags: - Utility summary: Get Connection Name and Description by ID description: Get Connection Name and Description by its MongoDB ObjectId. Used by Promotion to resolve connectionPoolDefId to a human-readable name. operationId: getConnectionById parameters: - name: connectionId in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseConnectionName" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/utility/connections/{connectionId}/full: get: tags: - Utility summary: Get Full Connection by ID description: Get full ConnectionDTO by its MongoDB ObjectId. Returns complete connection configuration including type-specific fields. operationId: getConnectionFullById parameters: - name: connectionId in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseConnection" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/utility/apiProxies/{apiProxyId}: get: tags: - Utility summary: Get API Proxy Name and Description by ID description: Get API Proxy Name and Description by ID operationId: getApiProxyById parameters: - name: apiProxyId in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApiProxyName" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/test/hello/{name}: get: tags: - Test summary: Secure Hello description: "Returns 'hello {param}' if the user is authorized!" operationId: hello parameters: - name: name in: path required: true schema: type: string responses: "200": description: successful operation! content: text/plain: schema: type: string "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/test/healthcheck: get: tags: - Test summary: Healthcheck description: Returns OK if the API is UP and accessible! operationId: health responses: "200": description: successful operation! content: text/plain: schema: type: string /apiops/settings/geolocation/: get: tags: - GeoLocation summary: Get Geolocation status description: "Returns whether Geolocation is enabled and which MMDB file is\ \ loaded (file name, upload date). The MMDB file content itself is never returned;\ \ mmdbFileUploaded tells whether the file data actually exists in the database." operationId: getGeolocationStatus responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseGeoLocation" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/settings/ai-topic-category-presets/: get: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Lists AI content-safety category presets description: Lists built-in + custom entries for the given scope (default admin/global). operationId: listTopicCategoryPresets parameters: - name: projectId in: query description: Scope project id (default admin/global) required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiTopicCategoryPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/settings/ai-prompt-templates/: get: tags: - AiTopicCategoryPreset - AiPromptTemplate - AiPromptGuardPreset - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Lists AI prompt templates description: Lists built-in + custom entries for the given scope (default admin/global). operationId: listPromptTemplates parameters: - name: projectId in: query description: Scope project id (default admin/global) required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiPromptTemplate" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/settings/ai-prompt-guard-presets/: get: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Lists AI prompt-guard presets description: Lists built-in + custom AI prompt-guard presets for the given scope (default admin/global). operationId: listPromptGuardPresets parameters: - name: projectId in: query required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiPromptGuardPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/settings/ai-prompt-decorator-presets/: get: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Lists AI prompt-decorator presets description: Lists built-in + custom AI prompt-decorator presets for the given scope (default admin/global). operationId: listPromptDecoratorPresets parameters: - name: projectId in: query description: Scope project id (default admin/global) required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiPromptDecoratorPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/settings/ai-privacy-presets/: get: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Lists AI privacy presets description: Lists built-in + custom AI privacy (PII) presets for the given scope (default admin/global). operationId: listPrivacyPresets parameters: - name: projectId in: query description: Scope project id (default admin/global) required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/settings/ai-dlp-presets/: get: tags: - AiTopicCategoryPreset - AiPromptGuardPreset - AiPromptTemplate - AiPromptDecoratorPreset - AiPrivacyPreset - AiDlpPreset summary: Lists AI DLP presets description: Lists built-in + custom AI DLP (secret/credential) presets for the given scope (default admin/global). operationId: listDlpPresets parameters: - name: projectId in: query description: Scope project id (default admin/global) required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiDlpPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/reports/organization-api-data-model-access: get: tags: - Project summary: Organization - API - Data Model Access Report description: Organization - API - Data Model Access Report operationId: find_2 responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseReportOrganizationACL" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/reports/api-proxies: get: tags: - Project summary: API Report description: Report of All API Proxy and API Proxy Groups with detailed metadata operationId: getApiProxyList parameters: - name: includeEndpoints in: query description: "Include the endpoints of every API proxy. Optional, false when\ \ omitted." required: false allowEmptyValue: true schema: type: boolean default: false responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseReportOrganizationACL" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/promotion/executions/{executionId}: get: tags: - Promotion summary: Get execution by executionId description: Returns execution details by executionId (e.g. EXC-007). operationId: getExecution parameters: - name: executionId in: path description: Execution ID (e.g. EXC-007) required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/PromotionExecution" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/vector-dbs/: get: tags: - VectorDb summary: Lists existing Vector DB connections of specified project description: Lists existing Vector DB connections of specified project. Secret fields (jdbc password / http apiKey+apiSecret / redis password) are masked. operationId: listVectorDbs parameters: - name: projectName in: path description: Project name required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseVectorDb" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/usage/top: get: tags: - UsageRanking summary: Ranks the period's biggest consumers description: "Orders one dimension (consumers, applications, api-clients, models\ \ or api-proxies) by one metric (tokens, cost or requests) and gives each\ \ row its share of the period total. The total is summed over EVERY matching\ \ row, including rows the limit cut off, so the shares of a truncated answer\ \ add up to less than 100 instead of being renormalised. Consumers, models\ \ and api-proxies are answered from the daily AI usage rollup; applications\ \ and api-clients from the traffic log, which is bounded by its retention.\ \ dataSource states which one was used." operationId: top parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: dimension in: query description: "What to rank: consumers, applications, api-clients, models or\ \ api-proxies." required: true schema: type: string - name: metric in: query description: "What to rank by: tokens (default), cost or requests." required: false schema: type: string - name: organization in: query description: Consumer organization code the ranking is narrowed to. required: false schema: type: string - name: from in: query description: "Start of the period, ISO-8601 UTC (2026-08-01, 2026-08-01T00:00:00Z\ \ or an offset date-time). Defaults to 30 days before 'to'." required: false schema: type: string - name: to in: query description: "End of the period, ISO-8601 UTC. Defaults to now. The period\ \ may not be inverted or wider than 366 days." required: false schema: type: string - name: model in: query description: Exact LLM model id (e.g. gpt-5). Narrows the answer to that model's requests. required: false schema: type: string - name: environmentName in: query description: Environment name. Defaults to every environment of the project. Applies to traffic-log answers only; filters.environmentApplied reports whether it took effect. required: false schema: type: string - name: limit in: query description: "Rows the answer may carry. Default 50, at most 500; truncated\ \ states whether rows were left out." required: false schema: type: integer format: int32 responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageRankingDTO" "400": description: "Unknown dimension or metric, invalid period, or the platform\ \ (admin) project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/usage/consumers/{consumerKey}/api-proxies: get: tags: - UsageRanking summary: API proxies one consumer used description: "Requests, failures, average gateway time and - for an AI proxy\ \ - tokens and cost, per API proxy the consumer called in the period. The\ \ traffic figures come from the traffic log and the token figures from the\ \ daily rollup, so a proxy whose traffic has aged out of the log still appears\ \ with its token and cost picture and requests=0." operationId: consumerApiProxies parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: consumerKey in: path description: Consumer key required: true schema: type: string - name: from in: query description: "Start of the period, ISO-8601 UTC (2026-08-01, 2026-08-01T00:00:00Z\ \ or an offset date-time). Defaults to 30 days before 'to'." required: false schema: type: string - name: to in: query description: "End of the period, ISO-8601 UTC. Defaults to now. The period\ \ may not be inverted or wider than 366 days." required: false schema: type: string - name: model in: query description: Exact LLM model id (e.g. gpt-5). Narrows the answer to that model's requests. required: false schema: type: string - name: environmentName in: query description: Environment name. Defaults to every environment of the project. Applies to traffic-log answers only; filters.environmentApplied reports whether it took effect. required: false schema: type: string - name: limit in: query description: "Rows the answer may carry. Default 50, at most 500; truncated\ \ states whether rows were left out." required: false schema: type: integer format: int32 responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageProxyBreakdownDTO" "400": description: "Invalid period, or the platform (admin) project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/usage/applications/{applicationKey}/api-proxies: get: tags: - UsageRanking summary: API proxies one application used description: "Requests, failures, average gateway time and - where the traffic\ \ carried a model - tokens and cost, per API proxy the application called\ \ in the period. An application has no rollup scope, so both halves are read\ \ from the traffic log and are bounded by its retention; traffic written before\ \ 2026.09.2 is attributable only through the application's own credentials." operationId: applicationApiProxies parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: applicationKey in: path description: Application key required: true schema: type: string - name: from in: query description: "Start of the period, ISO-8601 UTC (2026-08-01, 2026-08-01T00:00:00Z\ \ or an offset date-time). Defaults to 30 days before 'to'." required: false schema: type: string - name: to in: query description: "End of the period, ISO-8601 UTC. Defaults to now. The period\ \ may not be inverted or wider than 366 days." required: false schema: type: string - name: model in: query description: Exact LLM model id (e.g. gpt-5). Narrows the answer to that model's requests. required: false schema: type: string - name: environmentName in: query description: Environment name. Defaults to every environment of the project. Applies to traffic-log answers only; filters.environmentApplied reports whether it took effect. required: false schema: type: string - name: limit in: query description: "Rows the answer may carry. Default 50, at most 500; truncated\ \ states whether rows were left out." required: false schema: type: integer format: int32 responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageProxyBreakdownDTO" "400": description: "Invalid period, or the platform (admin) project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/script2apis/: get: tags: - Script2API summary: Lists Script2API creators for a project description: Lists all Script2API (ScriptToApi) creator definitions for the specified project. operationId: listScript2Apis parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: type: object "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/reports/inactive-endpoints: get: tags: - ProjectReports summary: Lists endpoints that received no requests description: "Every endpoint of the project's API proxies with the requests\ \ it served in the period, so the unused ones can be found. An endpoint carries\ \ its HTTP method, which is what tells GET /pet from POST /pet; SOAP operations\ \ and the method-less proxy kinds (reverse proxy, mirror, connector) answer\ \ httpMethod=null and endpoint=\"/\". Pass maxUsage=0 for the strictly unused\ \ ones. counts.total=0 means no request inside the retained traffic log, NOT\ \ necessarily never called - read coverage.dataAvailableFrom before retiring\ \ an API." operationId: getInactiveEndpoints parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: environmentName in: query description: Environment name whose traffic log is read. required: true schema: type: string - name: from in: query description: "Range start, ISO-8601 or Elasticsearch date math (for example\ \ now-30d)." required: false schema: type: string - name: to in: query description: "Range end, ISO-8601 or Elasticsearch date math (for example\ \ now)." required: false schema: type: string - name: apiProxyName in: query description: "Restricts the report to one API proxy, by name." required: false schema: type: string - name: minUsage in: query description: Lowest request count a row may have. Default 0. required: false schema: type: integer format: int32 - name: maxUsage in: query description: Highest request count a row may have. Pass 0 for the strictly unused endpoints. required: false schema: type: integer format: int32 - name: page in: query description: Zero-based page index. required: false schema: type: integer format: int32 - name: size in: query description: Rows per page. required: false schema: type: integer format: int32 - name: sort in: query description: "field[,asc|desc] over apiProxyName, httpMethod, endpoint, total,\ \ endpointRef." required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsPagedInactiveEndpointsResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/reports/inactive-clients: get: tags: - ProjectReports summary: Lists consumers and API clients that produced no traffic description: "Consumer identities and the API client keys they own, with their\ \ creation date, last request and status, for the given environment and period.\ \ A null lastUsedAt means no request inside the retained traffic log, NOT\ \ necessarily never used - read coverage.dataAvailableFrom before acting on\ \ it." operationId: getInactiveClients parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: environmentName in: query description: Environment name whose traffic log is read. required: true schema: type: string - name: from in: query description: "Range start, ISO-8601 or Elasticsearch date math (for example\ \ now-30d)." required: false schema: type: string - name: to in: query description: "Range end, ISO-8601 or Elasticsearch date math (for example\ \ now)." required: false schema: type: string - name: organizationCode in: query description: Consumer organization codes; repeat the parameter to pass more than one. required: false schema: type: array items: type: string - name: status in: query description: "Consumer status filter: ALL, ENABLED or DISABLED." required: false schema: type: string - name: includeApiClients in: query description: Whether API client (key) rows are included. Default true. required: false schema: type: boolean - name: identityType in: query description: "Restricts the answer to one row kind: CONSUMER or API_CLIENT." required: false schema: type: string - name: minUsage in: query description: Lowest request count a row may have. Default 0. required: false schema: type: integer format: int32 - name: maxUsage in: query description: Highest request count a row may have. required: false schema: type: integer format: int32 - name: page in: query description: Zero-based page index. required: false schema: type: integer format: int32 - name: size in: query description: Rows per page. required: false schema: type: integer format: int32 - name: sort in: query description: "field[,asc|desc] over lastUsedAt, createdAt, consumer, apiClientKey,\ \ status, identityType, total." required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsPagedInactiveClientsResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/mockapis/: get: tags: - MockAPI summary: Lists MockAPI creators for a project description: Lists all MockAPI creator definitions for the specified project. operationId: listMockApis parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: type: object "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/llm-providers/: get: tags: - LlmProvider summary: Lists existing LLM providers of specified project description: Lists existing LLM providers of specified project. Secret fields (apiKey/apiSecret) are masked. operationId: listLlmProviders parameters: - name: projectName in: path description: Project name required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLlmProvider" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/limit-assignment-runs/{runId}: get: tags: - LimitAssignmentRun summary: Get one bulk limit assignment run description: Progress and outcome of one run; the polling read behind the 202's Location. operationId: getRun parameters: - name: projectName in: path required: true schema: type: string - name: runId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLimitAssignmentRun" /apiops/projects/{projectName}/limit-assignment-runs/{runId}/issues: get: tags: - LimitAssignmentRun summary: List the issues of one run description: "The FAILED / SKIPPED rows the run recorded, in sequence order\ \ (at most 1000 are kept per run)." operationId: listIssues parameters: - name: projectName in: path required: true schema: type: string - name: runId in: path required: true schema: type: string - name: page in: query required: false schema: type: integer format: int32 - name: size in: query required: false schema: type: integer format: int32 responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsPagedResponseApiOpsResponseLimitAssignmentIssue" /apiops/projects/{projectName}/lifecycle-purge-runs/{runId}: get: tags: - LifecyclePurge summary: Get one purge run description: Progress and outcome of one run; the polling read behind the 202's Location. operationId: getRun_1 parameters: - name: projectName in: path required: true schema: type: string - name: runId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseLifecyclePurgeRun" /apiops/projects/{projectName}/lifecycle-purge-runs/{runId}/issues: get: tags: - LifecyclePurge summary: List the issues of one run description: "The FAILED / SKIPPED items the run recorded, in sequence order\ \ (at most 1000 are kept per run)." operationId: listIssues_1 parameters: - name: projectName in: path required: true schema: type: string - name: runId in: path required: true schema: type: string - name: page in: query required: false schema: type: integer format: int32 - name: size in: query required: false schema: type: integer format: int32 responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsPagedResponseApiOpsResponseLifecyclePurgeIssue" /apiops/projects/{projectName}/knowledge-bases/{kbName}/documents/{documentId}/: get: tags: - KnowledgeBase summary: Gets a single document of a knowledge base description: Gets a single document of the named knowledge base by document id. operationId: getDocument parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: kbName in: path description: Knowledge base name required: true schema: type: string - name: documentId in: path description: Document id required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseKnowledgeDocument" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - KnowledgeBase summary: Deletes a document from a knowledge base description: Deletes a document (by id) from the named knowledge base and purges its VectorDB chunks. operationId: deleteDocument parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: kbName in: path description: Knowledge base name required: true schema: type: string - name: documentId in: path description: Document id required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/knowledge-bases/: get: tags: - KnowledgeBase summary: Lists existing knowledge bases of specified project description: Lists existing knowledge bases of specified project. operationId: listKnowledgeBases parameters: - name: projectName in: path description: Project name required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseKnowledgeBase" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/keystores/{keystoreName}/export/: get: tags: - Keystore summary: Export an existing Keystore description: Exports an existing Keystore as a portable ExportFile JSON inside a ZIP. @SecretData fields (keystore file + password) are decrypted into the export so it is portable across instances; the import flow re-encrypts them. operationId: exportKeystore parameters: - name: projectName in: path required: true schema: type: string - name: keystoreName in: path description: Name of keystore required: true schema: type: string - name: encrypt in: query description: "Optional; if true, the package is encrypted with the passphrase\ \ supplied in the X-Apinizer-Package-Passphrase header (the passphrase is\ \ then REQUIRED). If false or omitted, the package is produced unencrypted." required: false schema: type: boolean default: false - name: X-Apinizer-Package-Passphrase in: header description: Optional; the passphrase required to encrypt the package when encrypt=true (Base64 UTF-8). Ignored when encrypt=false. required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/keystores/{keystoreName}/export-file/: get: tags: - Keystore summary: Download a Keystore as its raw file description: "Downloads the keystore file itself (.jks / .p12 / .pfx) instead\ \ of an Apinizer export package, so it can be handed straight to a JVM, a\ \ web server or another tool. Without environmentName every environment's\ \ keystore is returned in one ZIP; with it, that single file is returned directly." operationId: exportKeystoreFile parameters: - name: projectName in: path required: true schema: type: string - name: keystoreName in: path description: Name of keystore required: true schema: type: string - name: environmentName in: query description: "Optional; if given, only that environment's keystore file is\ \ returned. If omitted, all environments are returned in a single ZIP." required: false schema: type: string responses: "200": description: successful operation! content: '*/*': schema: type: string "400": description: bad request! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/keys/{keyName}/export/: get: tags: - Key summary: Export an existing Key description: Exports an existing Key (CryptoKeyInfo) as a portable ExportFile JSON inside a ZIP. @SecretData fields (key content + password) are decrypted into the export so it is portable across instances; the import flow re-encrypts them. operationId: exportKey parameters: - name: projectName in: path required: true schema: type: string - name: keyName in: path description: Name of key required: true schema: type: string - name: encrypt in: query description: "Optional; if true, the package is encrypted with the passphrase\ \ supplied in the X-Apinizer-Package-Passphrase header (the passphrase is\ \ then REQUIRED). If false or omitted, the package is produced unencrypted." required: false schema: type: boolean default: false - name: X-Apinizer-Package-Passphrase in: header description: Optional; the passphrase required to encrypt the package when encrypt=true (Base64 UTF-8). Ignored when encrypt=false. required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/keys/{keyName}/export-file/: get: tags: - Key summary: Download a Key as its raw file description: "Downloads the key material itself — PEM for asymmetric keys, the\ \ stored value for symmetric ones — instead of an Apinizer export package.\ \ Without environmentName every environment's material is returned in one\ \ ZIP; with it, that single environment's file is returned directly." operationId: exportKeyFile parameters: - name: projectName in: path required: true schema: type: string - name: keyName in: path description: Name of key required: true schema: type: string - name: environmentName in: query description: "Optional; if given, only that environment's key file is returned.\ \ If omitted, all environments are returned in a single ZIP." required: false schema: type: string responses: "200": description: successful operation! content: '*/*': schema: type: string "400": description: bad request! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/jwks/{jwkName}/export-file/: get: tags: - JWK summary: Download a JWK as its raw JSON document description: "Downloads the JWK Set document itself instead of an Apinizer export\ \ package, so it can be handed to a relying party or another system directly.\ \ By default the stored material is returned as-is; with publicOnly=true only\ \ the public members are written, which is what a published JWKS endpoint\ \ serves." operationId: exportJwkFile parameters: - name: projectName in: path required: true schema: type: string - name: jwkName in: path description: Name of JWK required: true schema: type: string - name: publicOnly in: query description: "If true, only the public members are written (for a JWKS to\ \ be published). If false or omitted, the stored material is returned as-is." required: false schema: type: boolean default: false responses: "200": description: successful operation! content: '*/*': schema: type: string "400": description: bad request! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/identity-sources/{sourceType}/{sourceName}/sync-runs/{runId}: get: tags: - IdentitySyncRun summary: Get one synchronization run description: Progress and outcome of one run of the source; the polling read behind the 202's Location. operationId: getRun_2 parameters: - name: projectName in: path required: true schema: type: string - name: sourceType in: path required: true schema: type: string - name: sourceName in: path required: true schema: type: string - name: runId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseIdentitySyncRun" /apiops/projects/{projectName}/identity-sources/{sourceType}/{sourceName}/sync-runs/{runId}/issues: get: tags: - IdentitySyncRun summary: List the issues of one run description: "The issue rows the run recorded, in sequence order." operationId: listIssues_2 parameters: - name: projectName in: path required: true schema: type: string - name: sourceType in: path required: true schema: type: string - name: sourceName in: path required: true schema: type: string - name: runId in: path required: true schema: type: string - name: page in: query required: false schema: type: integer format: int32 - name: size in: query required: false schema: type: integer format: int32 responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsPagedResponseApiOpsResponseIdentitySyncRunIssue" /apiops/projects/{projectName}/export-import/{type}/objects/: get: tags: - ExportImport summary: List the exportable objects of a type description: "Returns the objects of this type in the project: the name the\ \ export call expects in its 'names' body field, plus the kind for the types\ \ that cover several entities (CERTIFICATE, API_CREATOR, IDENTITY_SERVICE)\ \ where two objects may share a name." operationId: listObjects parameters: - name: projectName in: path required: true schema: type: string - name: type in: path description: Export/import type (see /types/) required: true schema: type: string - name: filter in: query description: Optional; filter by name (contains). required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseExportImportObject" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/export-import/types/: get: tags: - ExportImport summary: List the supported export/import types description: "Returns every object type this installation can export and import\ \ through the generic endpoints. Use one of these values as the {type} path\ \ variable." operationId: listSupportedTypes parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/environments/: get: tags: - Environment summary: Get all environments reachable from Project description: Get all environments reachable from Project. operationId: findForProject parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseEnvironment" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/environmentVariables/: get: tags: - EnvironmentVariable summary: Lists existing environment variables of specified project description: Lists existing environment variables of specified project. All values are stored encrypted at rest. Values that are NOT marked secret (visible=true) are returned decrypted so a CI/CD pipeline can read the real configuration; values marked secret (visible=false) are always returned as null and can never be read back. operationId: listEnvironmentVariables parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseEnvironmentVariable" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/db2apis/: get: tags: - DB2API summary: Lists DB2API creators for a project description: Lists all DB2API (DbToApi) creator definitions for the specified project. operationId: listDb2Apis parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: type: object "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/credential-organizations/{organizationCode}/usage/timeseries: get: tags: - UsageReport summary: Usage trend of one consumer organization description: "Token, cost and traffic figures of the subject, bucketed by day,\ \ week or month. Every bucket of the period is present: a quiet day is zero,\ \ while an unreadable source sets partial and names the environment. AI figures\ \ come from the same source the summary report declares." operationId: organizationTimeseries parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: organizationCode in: path description: Organization code required: true schema: type: string - name: from in: query description: "Start of the period, ISO-8601 UTC (2026-08-01, 2026-08-01T00:00:00Z\ \ or an offset date-time). Defaults to 30 days before 'to'." required: false schema: type: string - name: to in: query description: "End of the period, ISO-8601 UTC. Defaults to now. The period\ \ may not be inverted or wider than 366 days." required: false schema: type: string - name: granularity in: query description: "Bucket width: day (default), week (ISO, starting Monday) or\ \ month. All buckets are UTC." required: false schema: type: string - name: include in: query description: "Comma-separated blocks to fill: ai, traffic. Defaults to both.\ \ A block that was not requested is answered as null, not zero." required: false schema: type: string - name: model in: query description: Exact LLM model id (e.g. gpt-5). Narrows the whole report to that model's requests and keeps the scope-total budget rows. required: false schema: type: string - name: environmentName in: query description: Environment name. Defaults to every environment of the project. Applies to traffic-log blocks only; filters.environmentApplied reports whether it took effect. required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageTimeseriesDTO" "400": description: "Invalid period, granularity, include, or the platform (admin)\ \ project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/consumer-organizations/{organizationCode}/usage/timeseries: get: tags: - UsageReport summary: Usage trend of one consumer organization description: "Token, cost and traffic figures of the subject, bucketed by day,\ \ week or month. Every bucket of the period is present: a quiet day is zero,\ \ while an unreadable source sets partial and names the environment. AI figures\ \ come from the same source the summary report declares." operationId: organizationTimeseries_1 parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: organizationCode in: path description: Organization code required: true schema: type: string - name: from in: query description: "Start of the period, ISO-8601 UTC (2026-08-01, 2026-08-01T00:00:00Z\ \ or an offset date-time). Defaults to 30 days before 'to'." required: false schema: type: string - name: to in: query description: "End of the period, ISO-8601 UTC. Defaults to now. The period\ \ may not be inverted or wider than 366 days." required: false schema: type: string - name: granularity in: query description: "Bucket width: day (default), week (ISO, starting Monday) or\ \ month. All buckets are UTC." required: false schema: type: string - name: include in: query description: "Comma-separated blocks to fill: ai, traffic. Defaults to both.\ \ A block that was not requested is answered as null, not zero." required: false schema: type: string - name: model in: query description: Exact LLM model id (e.g. gpt-5). Narrows the whole report to that model's requests and keeps the scope-total budget rows. required: false schema: type: string - name: environmentName in: query description: Environment name. Defaults to every environment of the project. Applies to traffic-log blocks only; filters.environmentApplied reports whether it took effect. required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageTimeseriesDTO" "400": description: "Invalid period, granularity, include, or the platform (admin)\ \ project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/consumer-organizations/{organizationCode}/usage/hierarchy: get: tags: - UsageReport summary: Organization hierarchy with rolled-up consumption description: "The organization's sub-organization tree, each node carrying what\ \ its OWN consumers spent (direct) and what the whole subtree spent (rollup);\ \ at every node rollup equals direct plus the children's rollup. With level=consumer\ \ the consumers themselves are listed, paged. Read from the hourly token rollup,\ \ which has no environment dimension, so no environment filter applies." operationId: organizationHierarchy parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: organizationCode in: path description: Organization code required: true schema: type: string - name: from in: query description: "Start of the period, ISO-8601 UTC (2026-08-01, 2026-08-01T00:00:00Z\ \ or an offset date-time). Defaults to 30 days before 'to'." required: false schema: type: string - name: to in: query description: "End of the period, ISO-8601 UTC. Defaults to now. The period\ \ may not be inverted or wider than 366 days." required: false schema: type: string - name: level in: query description: "organization (default) for the sub-organization tree, or consumer\ \ for the paged consumer list." required: false schema: type: string - name: includeDescendants in: query description: "With level=consumer, also list the consumers of descendant organizations.\ \ Ignored for level=organization." required: false schema: type: boolean default: false - name: page in: query description: Zero-based page index. required: false schema: type: integer format: int32 - name: size in: query description: "Page size. Defaults to 20, capped at 200." required: false schema: type: integer format: int32 responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageHierarchyDTO" "400": description: "Invalid period or level, or the platform (admin) project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/credential-organizations/{organizationCode}/usage/hierarchy: get: tags: - UsageReport summary: Organization hierarchy with rolled-up consumption description: "The organization's sub-organization tree, each node carrying what\ \ its OWN consumers spent (direct) and what the whole subtree spent (rollup);\ \ at every node rollup equals direct plus the children's rollup. With level=consumer\ \ the consumers themselves are listed, paged. Read from the hourly token rollup,\ \ which has no environment dimension, so no environment filter applies." operationId: organizationHierarchy_1 parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: organizationCode in: path description: Organization code required: true schema: type: string - name: from in: query description: "Start of the period, ISO-8601 UTC (2026-08-01, 2026-08-01T00:00:00Z\ \ or an offset date-time). Defaults to 30 days before 'to'." required: false schema: type: string - name: to in: query description: "End of the period, ISO-8601 UTC. Defaults to now. The period\ \ may not be inverted or wider than 366 days." required: false schema: type: string - name: level in: query description: "organization (default) for the sub-organization tree, or consumer\ \ for the paged consumer list." required: false schema: type: string - name: includeDescendants in: query description: "With level=consumer, also list the consumers of descendant organizations.\ \ Ignored for level=organization." required: false schema: type: boolean default: false - name: page in: query description: Zero-based page index. required: false schema: type: integer format: int32 - name: size in: query description: "Page size. Defaults to 20, capped at 200." required: false schema: type: integer format: int32 responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageHierarchyDTO" "400": description: "Invalid period or level, or the platform (admin) project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/credential-organizations/{organizationCode}/usage/budget-board: get: tags: - UsageReport summary: Budget board of an organization's consumers description: "One row per consumer of the organization, carrying the live quota\ \ window closest to its limit: ceiling, consumed, remaining, percentage, reset\ \ time and status. Independent of any period - these are the windows the gateway\ \ is counting into right now." operationId: organizationBudgetBoard parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: organizationCode in: path description: Organization code required: true schema: type: string - name: page in: query description: Zero-based page index. required: false schema: type: integer format: int32 - name: size in: query description: "Page size. Defaults to 20, capped at 200." required: false schema: type: integer format: int32 - name: sort in: query description: "percent[,asc|desc]; defaults to percent,desc. name is always\ \ accepted as the tie-breaker." required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageBudgetBoardDTO" "400": description: "Invalid paging or sort, or the platform (admin) project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/consumer-organizations/{organizationCode}/usage/budget-board: get: tags: - UsageReport summary: Budget board of an organization's consumers description: "One row per consumer of the organization, carrying the live quota\ \ window closest to its limit: ceiling, consumed, remaining, percentage, reset\ \ time and status. Independent of any period - these are the windows the gateway\ \ is counting into right now." operationId: organizationBudgetBoard_1 parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: organizationCode in: path description: Organization code required: true schema: type: string - name: page in: query description: Zero-based page index. required: false schema: type: integer format: int32 - name: size in: query description: "Page size. Defaults to 20, capped at 200." required: false schema: type: integer format: int32 - name: sort in: query description: "percent[,asc|desc]; defaults to percent,desc. name is always\ \ accepted as the tie-breaker." required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageBudgetBoardDTO" "400": description: "Invalid paging or sort, or the platform (admin) project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/credential-organizations/{organizationCode}/usage: get: tags: - UsageReport summary: Usage of one consumer organization description: "Token, cost, traffic and live budget figures for the organization\ \ addressed by its code, plus the breakdown per consumer. Consumption is attributed\ \ to the organization's CURRENT members, so a consumer that was transferred\ \ is reported where it belongs today." operationId: organizationUsage parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: organizationCode in: path description: Organization code required: true schema: type: string - name: from in: query description: "Start of the period, ISO-8601 UTC (2026-08-01, 2026-08-01T00:00:00Z\ \ or an offset date-time). Defaults to 30 days before 'to'." required: false schema: type: string - name: to in: query description: "End of the period, ISO-8601 UTC. Defaults to now. The period\ \ may not be inverted or wider than 366 days." required: false schema: type: string - name: model in: query description: Exact LLM model id (e.g. gpt-5). Narrows the whole report to that model's requests and keeps the scope-total budget rows. required: false schema: type: string - name: environmentName in: query description: Environment name. Defaults to every environment of the project. Applies to traffic-log blocks only; filters.environmentApplied reports whether it took effect. required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageReportDTO" "400": description: "Invalid period, or the platform (admin) project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/consumer-organizations/{organizationCode}/usage: get: tags: - UsageReport summary: Usage of one consumer organization description: "Token, cost, traffic and live budget figures for the organization\ \ addressed by its code, plus the breakdown per consumer. Consumption is attributed\ \ to the organization's CURRENT members, so a consumer that was transferred\ \ is reported where it belongs today." operationId: organizationUsage_1 parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: organizationCode in: path description: Organization code required: true schema: type: string - name: from in: query description: "Start of the period, ISO-8601 UTC (2026-08-01, 2026-08-01T00:00:00Z\ \ or an offset date-time). Defaults to 30 days before 'to'." required: false schema: type: string - name: to in: query description: "End of the period, ISO-8601 UTC. Defaults to now. The period\ \ may not be inverted or wider than 366 days." required: false schema: type: string - name: model in: query description: Exact LLM model id (e.g. gpt-5). Narrows the whole report to that model's requests and keeps the scope-total budget rows. required: false schema: type: string - name: environmentName in: query description: Environment name. Defaults to every environment of the project. Applies to traffic-log blocks only; filters.environmentApplied reports whether it took effect. required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageReportDTO" "400": description: "Invalid period, or the platform (admin) project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/consumers/{consumerKey}/usage: get: tags: - UsageReport summary: Usage of one consumer description: "Token, cost, traffic and live budget figures for the consumer\ \ addressed by its consumer key." operationId: consumerUsage parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: consumerKey in: path description: Consumer key required: true schema: type: string - name: from in: query description: "Start of the period, ISO-8601 UTC (2026-08-01, 2026-08-01T00:00:00Z\ \ or an offset date-time). Defaults to 30 days before 'to'." required: false schema: type: string - name: to in: query description: "End of the period, ISO-8601 UTC. Defaults to now. The period\ \ may not be inverted or wider than 366 days." required: false schema: type: string - name: model in: query description: Exact LLM model id (e.g. gpt-5). Narrows the whole report to that model's requests and keeps the scope-total budget rows. required: false schema: type: string - name: environmentName in: query description: Environment name. Defaults to every environment of the project. Applies to traffic-log blocks only; filters.environmentApplied reports whether it took effect. required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageReportDTO" "400": description: "Invalid period, or the platform (admin) project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/consumers/{consumerKey}/usage/timeseries: get: tags: - UsageReport summary: Usage trend of one consumer description: "Token, cost and traffic figures of the subject, bucketed by day,\ \ week or month. Every bucket of the period is present: a quiet day is zero,\ \ while an unreadable source sets partial and names the environment. AI figures\ \ come from the same source the summary report declares." operationId: consumerTimeseries parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: consumerKey in: path description: Consumer key required: true schema: type: string - name: from in: query description: "Start of the period, ISO-8601 UTC (2026-08-01, 2026-08-01T00:00:00Z\ \ or an offset date-time). Defaults to 30 days before 'to'." required: false schema: type: string - name: to in: query description: "End of the period, ISO-8601 UTC. Defaults to now. The period\ \ may not be inverted or wider than 366 days." required: false schema: type: string - name: granularity in: query description: "Bucket width: day (default), week (ISO, starting Monday) or\ \ month. All buckets are UTC." required: false schema: type: string - name: include in: query description: "Comma-separated blocks to fill: ai, traffic. Defaults to both.\ \ A block that was not requested is answered as null, not zero." required: false schema: type: string - name: model in: query description: Exact LLM model id (e.g. gpt-5). Narrows the whole report to that model's requests and keeps the scope-total budget rows. required: false schema: type: string - name: environmentName in: query description: Environment name. Defaults to every environment of the project. Applies to traffic-log blocks only; filters.environmentApplied reports whether it took effect. required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageTimeseriesDTO" "400": description: "Invalid period, granularity, include, or the platform (admin)\ \ project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/consumers/{consumerKey}/secrets: get: tags: - Consumer summary: Get a consumer's secret-material references description: "The name and scope (PROJECT or ADMIN) of each certificate, key,\ \ keystore and JWK the consumer references — the names the PUT //{name}\ \ writes take. Never the material itself; an unset reference is absent." operationId: getSecretReferences parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseConsumerSecrets" /apiops/projects/{projectName}/consumers/{consumerKey}/limit-assignments: get: tags: - Consumer summary: List a consumer's limit assignments description: "Every limit assignment whose subject is the consumer, references\ \ answered portably." operationId: listLimitAssignments parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiOpsResponseLimitAssignment" /apiops/projects/{projectName}/consumers/{consumerKey}/api-clients: get: tags: - Consumer summary: List a consumer's API clients description: "Summary rows (key, client id, name, state, readiness, validity)\ \ of the clients owned by the consumer." operationId: listApiClients_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiOpsResponseApiClientSummary" /apiops/projects/{projectName}/connections/: get: tags: - Connection summary: Lists existing connections of specified project description: Lists existing connections of specified project filtered by connection type. operationId: listConnections parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: type in: query description: "Connection type. Valid values: email, kafka, elasticsearch,\ \ rabbitMq, ftp, graylog, syslog, webhook, logback, activeMq, snmp, linux-script,\ \ database, ldap" required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseConnection" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/certificates/{certificateName}/export/: get: tags: - ApiProxy summary: Export an existing Certificate description: Exports an existing Certificate in pem file format. operationId: exportCertificate parameters: - name: projectName in: path required: true schema: type: string - name: certificateName in: path description: Name of certificate required: true schema: type: string - name: environmentName in: query description: "Optional; if given, only that environment's certificate file\ \ is returned. If omitted, all environments are returned in a single ZIP\ \ (the long-standing behaviour)." required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/certificates/{certificateName}/export-file/: get: tags: - ApiProxy summary: Export an existing Certificate description: Exports an existing Certificate in pem file format. operationId: exportCertificate_1 parameters: - name: projectName in: path required: true schema: type: string - name: certificateName in: path description: Name of certificate required: true schema: type: string - name: environmentName in: query description: "Optional; if given, only that environment's certificate file\ \ is returned. If omitted, all environments are returned in a single ZIP\ \ (the long-standing behaviour)." required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/certificates/truststore/{environmentName}/export-file/: get: tags: - ApiProxy summary: Download an environment's whole truststore description: Downloads every certificate currently trusted by the given environment's workers as one ZIP of PEM files. The truststore is not a stored object — it is read live from the workers — so this is a snapshot of what that environment trusts right now. operationId: exportTruststoreFile parameters: - name: projectName in: path required: true schema: type: string - name: environmentName in: path required: true schema: type: string responses: "200": description: successful operation! content: '*/*': schema: type: string "400": description: bad request! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/certificates/truststore/{environmentName}/: get: tags: - ApiProxy summary: Get Certificates of Truststore of Environment description: Get Certificates of Truststore of Environment operationId: getTruststore parameters: - name: environmentName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/applications: get: tags: - Application summary: List applications description: "The project's INTERNAL applications (the administration project:\ \ its own and every portal application), by name by default; filterable by\ \ organization code, status and a name search; sortable by name, appStatus." operationId: listApplications parameters: - name: projectName in: path required: true schema: type: string - name: organizationCode in: query required: false schema: type: string - name: status in: query required: false schema: type: string enum: - ACTIVE - SUSPENDED - PENDING_DELETION - ARCHIVED - name: search in: query required: false schema: type: string - name: page in: query required: false schema: type: integer format: int32 - name: size in: query required: false schema: type: integer format: int32 - name: sort in: query required: false schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsPagedResponseApiOpsResponseApplication" /apiops/projects/{projectName}/applications/{applicationKey}: get: tags: - Application summary: Get one application description: The application addressed by its application key. operationId: getApplication parameters: - name: projectName in: path required: true schema: type: string - name: applicationKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApplication" /apiops/projects/{projectName}/applications/{applicationKey}/usage: get: tags: - UsageReport summary: Usage of one application description: "Token, cost, traffic and live budget figures for the application\ \ addressed by its application key, plus the breakdown per API client. Application\ \ consumption is read from the traffic log, so it is bounded by the log's\ \ retention and, for traffic written before 2026.09.2, attributable only through\ \ the application's own credentials." operationId: applicationUsage parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: applicationKey in: path description: Application key required: true schema: type: string - name: from in: query description: "Start of the period, ISO-8601 UTC (2026-08-01, 2026-08-01T00:00:00Z\ \ or an offset date-time). Defaults to 30 days before 'to'." required: false schema: type: string - name: to in: query description: "End of the period, ISO-8601 UTC. Defaults to now. The period\ \ may not be inverted or wider than 366 days." required: false schema: type: string - name: model in: query description: Exact LLM model id (e.g. gpt-5). Narrows the whole report to that model's requests and keeps the scope-total budget rows. required: false schema: type: string - name: environmentName in: query description: Environment name. Defaults to every environment of the project. Applies to traffic-log blocks only; filters.environmentApplied reports whether it took effect. required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageReportDTO" "400": description: "Invalid period, or the platform (admin) project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/applications/{applicationKey}/usage/timeseries: get: tags: - UsageReport summary: Usage trend of one application description: "Token, cost and traffic figures of the subject, bucketed by day,\ \ week or month. Every bucket of the period is present: a quiet day is zero,\ \ while an unreadable source sets partial and names the environment. AI figures\ \ come from the same source the summary report declares." operationId: applicationTimeseries parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: applicationKey in: path description: Application key required: true schema: type: string - name: from in: query description: "Start of the period, ISO-8601 UTC (2026-08-01, 2026-08-01T00:00:00Z\ \ or an offset date-time). Defaults to 30 days before 'to'." required: false schema: type: string - name: to in: query description: "End of the period, ISO-8601 UTC. Defaults to now. The period\ \ may not be inverted or wider than 366 days." required: false schema: type: string - name: granularity in: query description: "Bucket width: day (default), week (ISO, starting Monday) or\ \ month. All buckets are UTC." required: false schema: type: string - name: include in: query description: "Comma-separated blocks to fill: ai, traffic. Defaults to both.\ \ A block that was not requested is answered as null, not zero." required: false schema: type: string - name: model in: query description: Exact LLM model id (e.g. gpt-5). Narrows the whole report to that model's requests and keeps the scope-total budget rows. required: false schema: type: string - name: environmentName in: query description: Environment name. Defaults to every environment of the project. Applies to traffic-log blocks only; filters.environmentApplied reports whether it took effect. required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageTimeseriesDTO" "400": description: "Invalid period, granularity, include, or the platform (admin)\ \ project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/applications/{applicationKey}/usage/budget-board: get: tags: - UsageReport summary: Budget board of an application's API clients description: "One row per API client of the application, carrying the live quota\ \ window closest to its limit. A client migrated from a legacy credential\ \ is still matched through that credential's counters, so its board row does\ \ not go blank on the day of the migration." operationId: applicationBudgetBoard parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: applicationKey in: path description: Application key required: true schema: type: string - name: page in: query description: Zero-based page index. required: false schema: type: integer format: int32 - name: size in: query description: "Page size. Defaults to 20, capped at 200." required: false schema: type: integer format: int32 - name: sort in: query description: "percent[,asc|desc]; defaults to percent,desc. name is always\ \ accepted as the tie-breaker." required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageBudgetBoardDTO" "400": description: "Invalid paging or sort, or the platform (admin) project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/applications/{applicationKey}/limit-assignments: get: tags: - Application summary: List an application's limit assignments description: "Every limit assignment whose subject is the application, references\ \ answered portably." operationId: listLimitAssignments_1 parameters: - name: projectName in: path required: true schema: type: string - name: applicationKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiOpsResponseLimitAssignment" /apiops/projects/{projectName}/applications/{applicationKey}/api-clients: get: tags: - Application summary: List an application's API clients description: Summary rows of the clients owned by the application. operationId: listApiClients_2 parameters: - name: projectName in: path required: true schema: type: string - name: applicationKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiOpsResponseApiClientSummary" /apiops/projects/{projectName}/apiProxyGroups/{apiProxyGroupName}/proxies/forpromotion: get: tags: - ApiProxyGroup summary: Get All API Proxies in a Proxy Group for Promotion description: "Get All API Proxies that belong to the specified Proxy Group with\ \ full details (routing, creationType) for Promotion feature" operationId: listProxiesOfGroupForPromotion parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyGroupName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApiProxyForPromotion" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxyGroups/{apiProxyGroupName}/environments/: get: tags: - ApiProxyGroup summary: Get All Environments of API Proxy Group description: Get All Environments that API Proxy Group can be deployed or is already deployed operationId: listEnvironmentsOfApiProxyGroup parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyGroupName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseEnvironment" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxyGroups/{apiProxyGroupName}/deploy-histories/{revision}/: get: tags: - ApiProxyGroup summary: Get Proxy Group Deploy History Detail description: Returns a specific deploy history record of the specified API Proxy Group by revision operationId: getProxyGroupDeployHistoryDetail parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyGroupName in: path required: true schema: type: string - name: revision in: path required: true schema: type: integer format: int64 responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseProxyGroupDeployHistory" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - ApiProxyGroup summary: Delete Proxy Group Deploy History Record description: Deletes a specific deploy history record of the specified API Proxy Group by revision operationId: deleteProxyGroupDeployHistory parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyGroupName in: path required: true schema: type: string - name: revision in: path required: true schema: type: integer format: int64 responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxyGroups/{apiProxyGroupName}/deploy-histories/: get: tags: - ApiProxyGroup summary: Get Proxy Group Deploy History List description: Returns the deploy/undeploy history list of the specified API Proxy Group operationId: getProxyGroupDeployHistories parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyGroupName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseProxyGroupDeployHistory" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/trafficLogSettings/: get: tags: - TrafficLogSettings summary: Get Traffic Log Settings for All Environments description: Returns traffic log settings for all environments of the specified API Proxy operationId: findAll parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseTrafficLogSettings" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/policies/: get: tags: - Policy summary: Lists existing policies of specified API Proxy description: Lists existing policies of specified API Proxy operationId: listPolicies parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApiProxy" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/methods/: get: tags: - ApiProxy summary: List API Proxy Methods description: Lists all methods/endpoints of a specific API Proxy with optional policy details operationId: listMethods parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: withPolicies in: query required: false schema: type: boolean default: false responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseEndpoint" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/invoke-info/: get: tags: - ApiProxy summary: Get API Proxy Invoke Info description: "Returns the public invoke URL components (gateway base URL, apinizerRootContext,\ \ full path, accepted HTTP methods, supported schemes) for the API Proxy,\ \ per environment where it is deployed. Useful for preflight and E2E tests\ \ that need to call the gateway without hard-coding the URL prefix." operationId: getInvokeInfo parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseInvokeInfo" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/full: get: tags: - ApiProxy summary: Get full API Proxy JSON for promotion description: Returns the complete API Proxy object as JSON for promotion/mapping use. Used by Promotion to show diff and apply find/replace rules. operationId: getFullApiProxy parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: apiProxyName in: path description: API Proxy name required: true schema: type: string responses: "200": description: successful operation! content: application/json: {} "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/export/: get: tags: - ApiProxy summary: Export an API Proxy description: "Exports an API Proxy with its policies in ZIP format. With withDependencies=true\ \ the package also carries every object the proxy references (global policies,\ \ certificates, credentials, connections, AI providers, environment variables,\ \ ...), which the import binds to same-named objects in the target project.\ \ For an MCP gateway that also covers the API Proxies it exposes as tools;\ \ set includeReferencedProxies=false to leave those out and have the import\ \ resolve them by name in the target project instead." operationId: exportApiProxy parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: encrypt in: query description: "Optional; if true, the package is encrypted with the passphrase\ \ supplied in the X-Apinizer-Package-Passphrase header (the passphrase is\ \ then REQUIRED). If false or omitted, the package is produced unencrypted." required: false schema: type: boolean default: false - name: withDependencies in: query description: "Optional; if true, every dependency referenced by the proxy\ \ (global policy, policy group, certificate, credential, connection, LLM\ \ provider, MCP/A2A server, environment variable, etc.) is also placed in\ \ the package and, during import, bound to the objects with the same name\ \ in the target project. If false or omitted, ONLY the proxy itself is exported\ \ (default, current behaviour)." required: false schema: type: boolean default: false - name: includeReferencedProxies in: query description: "Optional; only meaningful together with withDependencies=true.\ \ If true (default), the API Proxies an MCP gateway exposes as tools are\ \ packaged with it, so the import can rebind the gateway's tools on its\ \ own. If false, those proxies are left out of the package together with\ \ their own dependencies, and the import binds each tool to the proxy of\ \ the same name and API type in the target project instead - the shape a\ \ pipeline that promotes its API Proxies separately wants, so each proxy\ \ travels exactly once." required: false schema: type: boolean default: true - name: X-Apinizer-Package-Passphrase in: header description: Optional; the passphrase required to encrypt the package when encrypt=true (Base64 UTF-8). Ignored when encrypt=false. required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/environments/{environmentName}/route-health/: get: tags: - ApiProxy summary: Get Worker Route Health description: "Returns whether the API Proxy is actively routable on the worker\ \ pods of the given environment. Each worker pod is probed against its in-memory\ \ ManagementConfig; the response aggregates routeActive across pods together\ \ with the served path, accepted HTTP methods, and the gateway apinizerRootContext\ \ prefix so a CI/CD or E2E caller can build the full invoke URL without a\ \ second hop. No real backend call is made." operationId: getRouteHealth parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: environmentName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseRouteHealth" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/environments/{environmentName}/deploy-status/: get: tags: - ApiProxy summary: Get Deploy Status of an API Proxy in an Environment description: "Returns whether the proxy is deployed in the given environment,\ \ plus last deploy time/revision and redeploy-required flag. Idempotent —\ \ no side effects. Useful for CI/CD preflight and E2E test setup." operationId: getDeployStatus parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: environmentName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseDeployStatus" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/environment-variables/: get: tags: - ApiProxy summary: Find Environment Variables by API Proxy description: "Returns all environment variable keys (e.g. ${API_BASE_URL}) used\ \ in the given API Proxy. Searches the entire API Proxy document as JSON for\ \ ${key} patterns." operationId: findEnvironmentVariablesByApiProxy parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: apiProxyName in: path description: API Proxy name required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseEnvironmentVariables" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/deploy-histories/{revision}/: get: tags: - ApiProxy summary: Get Deploy History Detail description: Returns the full detail of a specific deploy history record including the API Proxy snapshot operationId: getDeployHistoryDetail parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: revision in: path required: true schema: type: integer format: int64 responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseDeployHistory" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - ApiProxy summary: Delete Deploy History Record description: "Deletes a specific deploy history record. Permission: API_MANAGEMENT\ \ or AI_DEVELOPMENT × MANAGE." operationId: deleteDeployHistory parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: revision in: path required: true schema: type: integer format: int64 responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/deploy-histories/: get: tags: - ApiProxy summary: Get Deploy History List description: Returns the deploy/undeploy history list of the specified API Proxy operationId: getDeployHistories parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseDeployHistory" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/{apiProxyName}/: get: tags: - ApiProxy summary: Get API Proxy Details description: Gets detailed information of a specific API Proxy including endpoints and optionally policies operationId: getApiProxy parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string - name: withPolicies in: query required: false schema: type: boolean default: false responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApiProxy" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" delete: tags: - ApiProxy summary: Delete an API Proxy description: Deletes and undeploys API Proxy operationId: deleteApiProxy parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/forpromotion: get: tags: - ApiProxy summary: Get All API Proxies for Promotion description: "Get All API Proxies for Specified Project with full details (clientRoute,\ \ routing) for Promotion feature" operationId: listApiProxiesForPromotion parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApiProxyForPromotion" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/apiProxies/: get: tags: - ApiProxy summary: Get All API Proxies for Specified Project description: Get All API Proxies for Specified Project operationId: listApiProxiesOfProject_1 parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseApiProxy" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/api-proxies/{apiProxyName}/usage: get: tags: - UsageReport summary: Usage of one API proxy description: Traffic and live budget figures for the API proxy addressed by its name; an AI proxy additionally carries the token and cost picture. A non-AI proxy answers ai=null with the note not-ai-proxy. operationId: apiProxyUsage parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: apiProxyName in: path description: API proxy name required: true schema: type: string - name: from in: query description: "Start of the period, ISO-8601 UTC (2026-08-01, 2026-08-01T00:00:00Z\ \ or an offset date-time). Defaults to 30 days before 'to'." required: false schema: type: string - name: to in: query description: "End of the period, ISO-8601 UTC. Defaults to now. The period\ \ may not be inverted or wider than 366 days." required: false schema: type: string - name: model in: query description: Exact LLM model id (e.g. gpt-5). Narrows the whole report to that model's requests and keeps the scope-total budget rows. required: false schema: type: string - name: environmentName in: query description: Environment name. Defaults to every environment of the project. Applies to traffic-log blocks only; filters.environmentApplied reports whether it took effect. required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageReportDTO" "400": description: "Invalid period, or the platform (admin) project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/api-proxies/{apiProxyName}/usage/timeseries: get: tags: - UsageReport summary: Usage trend of one API proxy description: "Token, cost and traffic figures of the subject, bucketed by day,\ \ week or month. Every bucket of the period is present: a quiet day is zero,\ \ while an unreadable source sets partial and names the environment. AI figures\ \ come from the same source the summary report declares. A non-AI proxy answers\ \ a traffic series with zero tokens and the note not-ai-proxy." operationId: apiProxyTimeseries parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: apiProxyName in: path description: API proxy name required: true schema: type: string - name: from in: query description: "Start of the period, ISO-8601 UTC (2026-08-01, 2026-08-01T00:00:00Z\ \ or an offset date-time). Defaults to 30 days before 'to'." required: false schema: type: string - name: to in: query description: "End of the period, ISO-8601 UTC. Defaults to now. The period\ \ may not be inverted or wider than 366 days." required: false schema: type: string - name: granularity in: query description: "Bucket width: day (default), week (ISO, starting Monday) or\ \ month. All buckets are UTC." required: false schema: type: string - name: include in: query description: "Comma-separated blocks to fill: ai, traffic. Defaults to both.\ \ A block that was not requested is answered as null, not zero." required: false schema: type: string - name: model in: query description: Exact LLM model id (e.g. gpt-5). Narrows the whole report to that model's requests and keeps the scope-total budget rows. required: false schema: type: string - name: environmentName in: query description: Environment name. Defaults to every environment of the project. Applies to traffic-log blocks only; filters.environmentApplied reports whether it took effect. required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageTimeseriesDTO" "400": description: "Invalid period, granularity, include, or the platform (admin)\ \ project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/api-clients/{apiClientKey}/usage: get: tags: - UsageReport summary: Usage of one API client description: "Token, cost, traffic and live budget figures for the API client\ \ addressed by its api client key. A client migrated from a legacy credential\ \ also carries that credential's counters and traffic." operationId: apiClientUsage parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: apiClientKey in: path description: API client key required: true schema: type: string - name: from in: query description: "Start of the period, ISO-8601 UTC (2026-08-01, 2026-08-01T00:00:00Z\ \ or an offset date-time). Defaults to 30 days before 'to'." required: false schema: type: string - name: to in: query description: "End of the period, ISO-8601 UTC. Defaults to now. The period\ \ may not be inverted or wider than 366 days." required: false schema: type: string - name: model in: query description: Exact LLM model id (e.g. gpt-5). Narrows the whole report to that model's requests and keeps the scope-total budget rows. required: false schema: type: string - name: environmentName in: query description: Environment name. Defaults to every environment of the project. Applies to traffic-log blocks only; filters.environmentApplied reports whether it took effect. required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageReportDTO" "400": description: "Invalid period, or the platform (admin) project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/api-clients/{apiClientKey}/usage/timeseries: get: tags: - UsageReport summary: Usage trend of one API client description: "Token, cost and traffic figures of the subject, bucketed by day,\ \ week or month. Every bucket of the period is present: a quiet day is zero,\ \ while an unreadable source sets partial and names the environment. AI figures\ \ come from the same source the summary report declares." operationId: apiClientTimeseries parameters: - name: projectName in: path description: Project name required: true schema: type: string - name: apiClientKey in: path description: API client key required: true schema: type: string - name: from in: query description: "Start of the period, ISO-8601 UTC (2026-08-01, 2026-08-01T00:00:00Z\ \ or an offset date-time). Defaults to 30 days before 'to'." required: false schema: type: string - name: to in: query description: "End of the period, ISO-8601 UTC. Defaults to now. The period\ \ may not be inverted or wider than 366 days." required: false schema: type: string - name: granularity in: query description: "Bucket width: day (default), week (ISO, starting Monday) or\ \ month. All buckets are UTC." required: false schema: type: string - name: include in: query description: "Comma-separated blocks to fill: ai, traffic. Defaults to both.\ \ A block that was not requested is answered as null, not zero." required: false schema: type: string - name: model in: query description: Exact LLM model id (e.g. gpt-5). Narrows the whole report to that model's requests and keeps the scope-total budget rows. required: false schema: type: string - name: environmentName in: query description: Environment name. Defaults to every environment of the project. Applies to traffic-log blocks only; filters.environmentApplied reports whether it took effect. required: false schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsUsageTimeseriesDTO" "400": description: "Invalid period, granularity, include, or the platform (admin)\ \ project." content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/projects/{projectName}/api-clients/{apiClientKey}/limit-assignments: get: tags: - ApiClient summary: List an API client's limit assignments description: "Every limit assignment whose subject is the API client, references\ \ answered portably." operationId: listLimitAssignments_2 parameters: - name: projectName in: path required: true schema: type: string - name: apiClientKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/ApiOpsResponseLimitAssignment" /apiops/projects/{projectName}/ai-topic-category-presets/: get: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Lists AI content-safety category presets visible to specified project operationId: listTopicCategoryPresets_1 parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiTopicCategoryPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/ai-prompt-templates/: get: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPromptTemplateProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiDlpPresetProject summary: Lists AI prompt templates visible to specified project operationId: listPromptTemplates_1 parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiPromptTemplate" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/ai-prompt-guard-presets/: get: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPromptGuardPresetProject - AiPrivacyPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Lists AI prompt-guard presets of specified project description: Lists built-in + admin-shared + this project's own custom AI prompt-guard presets. operationId: listPromptGuardPresets_1 parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiPromptGuardPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/ai-prompt-decorator-presets/: get: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Lists AI prompt-decorator presets of specified project description: Lists built-in + admin-shared + this project's own custom AI prompt-decorator presets. operationId: listPromptDecoratorPresets_1 parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiPromptDecoratorPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/ai-privacy-presets/: get: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Lists AI privacy presets of specified project description: Lists built-in + admin-shared + this project's own custom AI privacy (PII) presets. operationId: listPrivacyPresets_1 parameters: - name: projectName in: path description: Project name required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/{projectName}/ai-dlp-presets/: get: tags: - AiPromptDecoratorPresetProject - AiTopicCategoryPresetProject - AiPrivacyPresetProject - AiPromptGuardPresetProject - AiPromptTemplateProject - AiDlpPresetProject summary: Lists AI DLP presets of specified project description: Lists built-in + admin-shared + this project's own custom AI DLP (secret/credential) presets. operationId: listDlpPresets_1 parameters: - name: projectName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseAiDlpPreset" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/projects/: get: tags: - Project summary: Get All Projects description: Get All Projects operationId: find_3 responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseProject" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/portal/usage: get: tags: - api-ops-portal-report operationId: usage parameters: - name: productRefIds in: query required: true schema: type: string - name: organizationRefId in: query required: false schema: type: string - name: appRefId in: query required: false schema: type: string - name: range in: query required: false schema: type: string responses: "200": description: OK content: application/json: schema: type: object /apiops/portal/traffic/summary: get: tags: - api-ops-portal-report operationId: trafficSummary parameters: - name: productRefIds in: query required: true schema: type: string - name: organizationRefId in: query required: false schema: type: string - name: appRefId in: query required: false schema: type: string - name: range in: query required: false schema: type: string responses: "200": description: OK content: application/json: schema: type: object /apiops/portal-apps/{referenceId}/usage-report: get: tags: - api-ops-portal-app-credential operationId: getUsageReportByReferenceId parameters: - name: referenceId in: path required: true schema: type: string - name: range in: query required: false schema: type: string responses: "200": description: OK content: application/json: schema: type: string /apiops/portal-apps/{referenceId}/credentials: get: tags: - api-ops-portal-app-credential operationId: getCredentialsByReferenceId parameters: - name: referenceId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: type: string /apiops/portal-apps/organizations: get: tags: - api-ops-portal-app-provision operationId: getOrganizations responses: "200": description: OK content: application/json: schema: type: string /apiops/environments/: get: tags: - Environment summary: Get All Environments description: Get All Environments. Only users which have admin role can use this method. operationId: find_4 responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseEnvironment" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" /apiops/auth/me: get: tags: - Auth summary: Current User description: Returns the Apinizer user that owns the personal API access token sent in the Authorization (Bearer) or apinizer-token header. operationId: me responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseCurrentUser" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsErrorResponse" /apiops/api-products: get: tags: - api-ops-api-product operationId: getApiProducts parameters: - name: portalId in: query required: false schema: type: string responses: "200": description: OK content: application/json: schema: type: string /apiops/api-products/{referenceId}/plans: get: tags: - api-ops-api-product operationId: getApiProductPlans parameters: - name: referenceId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: type: string /apiops/projects/{projectName}/credentials/{username}/truststore/: delete: tags: - Credential summary: Remove Truststore from Credential description: Removes truststore from credential specified by username and deploys it to environments operationId: removeTruststore parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/credentials/{username}/secretKey/: delete: tags: - Credential summary: Remove SecretKey from Credential description: Removes secret key from credential specified by username and deploys it to environments operationId: removeSecretKey parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/credentials/{username}/publicKey/: delete: tags: - Credential summary: Remove PublicKey from Credential description: Removes public key from credential specified by username and deploys it to environments operationId: removePublicKey parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/credentials/{username}/privateKey/: delete: tags: - Credential summary: Remove PrivateKey from Credential description: Removes private key from credential specified by username and deploys it to environments operationId: removePrivateKey parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/credentials/{username}/keystore/: delete: tags: - Credential summary: Remove Keystore from Credential description: Removes keystore from credential specified by username and deploys it to environments operationId: removeKeystore parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/credentials/{username}/jwk/validation/: delete: tags: - Credential summary: Remove JWK for Validation and Sign from Credential description: Removes JWK for validation and sign from credential specified by username and deploys it to environments operationId: removeJwkValidation parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/credentials/{username}/jwk/encryption/: delete: tags: - Credential summary: Remove JWK for Decryption and Encryption from Credential description: Removes JWK for decryption and encryption from credential specified by username and deploys it to environments operationId: removeJwkEncryption parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/credentials/{username}/certificate/: delete: tags: - Credential summary: Remove Certificate from Credential description: Removes certificate from credential specified by username and deploys it to environments operationId: removeCertificate parameters: - name: projectName in: path required: true schema: type: string - name: username in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" deprecated: true /apiops/projects/{projectName}/consumers/{consumerKey}/truststore: delete: tags: - Consumer summary: Remove a consumer's truststore description: Detaches the reference and redeploys the consumer. A consumer that has none is 404 (reason materialNotAssigned). operationId: removeTruststore_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/secret-key: delete: tags: - Consumer summary: Remove a consumer's secret key description: Detaches the reference and redeploys the consumer. A consumer that has none is 404 (reason materialNotAssigned). operationId: removeSecretKey_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/public-key: delete: tags: - Consumer summary: Remove a consumer's public key description: Detaches the reference and redeploys the consumer. A consumer that has none is 404 (reason materialNotAssigned). operationId: removePublicKey_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/private-key: delete: tags: - Consumer summary: Remove a consumer's private key description: Detaches the reference and redeploys the consumer. A consumer that has none is 404 (reason materialNotAssigned). operationId: removePrivateKey_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/keystore: delete: tags: - Consumer summary: Remove a consumer's keystore description: Detaches the reference and redeploys the consumer. A consumer that has none is 404 (reason materialNotAssigned). operationId: removeKeystore_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/jwk/validation: delete: tags: - Consumer summary: Remove a consumer's JWK for validation and signing description: Detaches the reference and redeploys the consumer. A consumer that has none is 404 (reason materialNotAssigned). operationId: removeJwkValidation_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/jwk/encryption: delete: tags: - Consumer summary: Remove a consumer's JWK for decryption and encryption description: Detaches the reference and redeploys the consumer. A consumer that has none is 404 (reason materialNotAssigned). operationId: removeJwkEncryption_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/consumers/{consumerKey}/certificate: delete: tags: - Consumer summary: Remove a consumer's certificate description: Detaches the reference and redeploys the consumer. A consumer that has none is 404 (reason materialNotAssigned). operationId: removeCertificate_1 parameters: - name: projectName in: path required: true schema: type: string - name: consumerKey in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ApiOpsMutationResponseApiOpsResponseConsumer" /apiops/projects/{projectName}/apiProxyGroups/{apiProxyGroupName}/: delete: tags: - ApiProxyGroup summary: Delete API Proxy Group description: Delete API Proxy Group operationId: deleteApiProxyGroup parameters: - name: projectName in: path required: true schema: type: string - name: apiProxyGroupName in: path required: true schema: type: string responses: "200": description: successful operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseSuccess" "401": description: not authorized for this operation! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" "500": description: internal error! content: application/json: schema: $ref: "#/components/schemas/ApiOpsResponseError" components: schemas: ApiOpsAdvisoryDTO: type: object properties: level: type: string key: type: string params: type: object additionalProperties: {} ApiOpsResponseSuccess: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: type: string resultCount: type: integer format: int32 deploymentResult: $ref: "#/components/schemas/DeploymentResult" unresolvedReferences: type: array items: type: string advisories: type: array items: $ref: "#/components/schemas/ApiOpsAdvisoryDTO" DeploymentResult: type: object properties: envName: type: string podName: type: string podIp: type: string success: type: boolean detail: type: string responseTime: type: integer format: int64 detailList: type: array items: {} firstFromApiResultList: {} ApiOpsResponseError: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: type: string resultCount: type: integer format: int32 AiTopicCategoryPresetDTO: type: object properties: id: type: string projectId: type: string name: type: string code: type: string displayName: type: string displayNameTr: type: string group: type: string topicText: type: string topicTextTr: type: string description: type: string descriptionTr: type: string llamaGuardCode: type: string gdprArticle9: type: boolean taxonomyVersion: type: string enabled: type: boolean builtIn: type: boolean AiPromptTemplateDTO: type: object properties: id: type: string projectId: type: string name: type: string description: type: string messages: type: array items: $ref: "#/components/schemas/AiPromptTemplateMessage" parameters: type: array items: $ref: "#/components/schemas/AiPromptTemplateParam" enabled: type: boolean builtIn: type: boolean AiPromptTemplateMessage: type: object properties: role: type: string content: type: string AiPromptTemplateParam: type: object properties: name: type: string required: type: boolean defaultValue: type: string AiPromptGuardPresetDTO: type: object properties: id: type: string projectId: type: string name: type: string ruleValue: type: string action: type: string enum: - BLOCK - FLAG - MASK category: type: string description: type: string enabled: type: boolean builtIn: type: boolean owaspLlmId: type: string mitreAtlasTechnique: type: string packageVersion: type: string AiPromptDecoratorPresetDTO: type: object properties: id: type: string projectId: type: string name: type: string content: type: string role: type: string position: type: string category: type: string description: type: string enabled: type: boolean builtIn: type: boolean AiPrivacyPresetDTO: type: object properties: id: type: string projectId: type: string name: type: string elementName: type: string patternType: type: string enum: - ELEMENT_NAME - REGEX - BUILTIN regexPattern: type: string operation: type: string enum: - MASK - DELETE - ENCRYPT - HASH - DETECT maskMode: type: string enum: - FIXED - KEEP_FIRST - KEEP_LAST - MASK_FIRST - PLACEHOLDER_SEQUENCE - SYNTHETIC maskPattern: type: string maskVisibleCharCount: type: integer format: int32 enabled: type: boolean builtIn: type: boolean AiGatewaySettingDTO: type: object properties: defaultConnectTimeoutSeconds: type: integer format: int32 defaultStreamTimeoutSeconds: type: integer format: int32 defaultRetryCount: type: integer format: int32 maxAiRequestBodyBytes: type: integer format: int32 maxAiBinaryRequestBodyBytes: type: integer format: int32 maxAiBinaryResponseBodyBytes: type: integer format: int32 maxToolTurns: type: integer format: int32 defaultConnectionPoolSize: type: integer format: int32 defaultIdleConnectionTimeoutSeconds: type: integer format: int32 ApiOpsResponseAiGatewaySetting: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/AiGatewaySettingDTO" resultCount: type: integer format: int32 AiDlpPresetDTO: type: object properties: id: type: string projectId: type: string name: type: string ruleValue: type: string action: type: string enum: - BLOCK - FLAG - MASK category: type: string description: type: string enabled: type: boolean builtIn: type: boolean overridden: type: boolean literalAnchors: type: array items: type: string ConnectionConfigVectorDb: type: object description: Vector DB connection value to be added. The internal '_class' discriminator is optional — it is derived automatically when omitted. properties: id: type: string projectId: type: string name: type: string description: type: string enabled: type: boolean projectName: type: string environmentId: type: string circuitBreakerEnabled: type: boolean errorThresholdValue: type: integer format: int32 sleepWindow: type: integer format: int32 dbType: type: string enum: - redis - pgvector - qdrant - weaviate - milvus - chroma - pinecone - other transport: oneOf: - $ref: "#/components/schemas/HttpTransport" - $ref: "#/components/schemas/JdbcTransport" - $ref: "#/components/schemas/RedisTransport" defaultCollectionName: type: string embeddingDimension: type: integer format: int32 distanceMetric: type: string enum: - COSINE - EUCLIDEAN - DOT_PRODUCT maxBatchSize: type: integer format: int32 builtIn: type: boolean builtInKey: type: string resolvedDefaultCollectionName: type: string HttpTransport: allOf: - $ref: "#/components/schemas/VectorDbTransport" - type: object properties: endpoint: type: string apiVersion: type: string authScheme: type: string enum: - BEARER - API_KEY_HEADER - BASIC - AWS_SIGV4 - OAUTH2 - NONE - CUSTOM authHeaderName: type: string apiKey: type: string apiSecret: type: string regionCode: type: string resolvedRegionCode: type: string resolvedEndpoint: type: string resolvedApiVersion: type: string resolvedAuthHeaderName: type: string JdbcTransport: allOf: - $ref: "#/components/schemas/VectorDbTransport" - type: object properties: jdbcUrl: type: string username: type: string password: type: string schema: type: string pool: $ref: "#/components/schemas/PoolSettings" resolvedUsername: type: string resolvedJdbcUrl: type: string resolvedSchema: type: string PoolSettings: type: object properties: minimumIdle: type: integer format: int32 maximumPoolSize: type: integer format: int32 connectionTimeoutMs: type: integer format: int32 idleTimeoutMs: type: integer format: int32 maxLifetimeMs: type: integer format: int32 RedisTransport: allOf: - $ref: "#/components/schemas/VectorDbTransport" - type: object properties: uri: type: string username: type: string password: type: string resolvedUsername: type: string resolvedUri: type: string VectorDbTransport: type: object discriminator: propertyName: family properties: connectTimeoutMs: type: integer format: int32 requestTimeoutMs: type: integer format: int32 family: type: string required: - family ConditionRule: type: object properties: conditionCriteria: type: string enum: - VALUE - NOT - AND - OR firstVariable: $ref: "#/components/schemas/Variable" variableDataType: type: string enum: - NUMERIC - STRING - DATE dateFormat: type: string valueComparisonOperator: type: string enum: - LT - LE - GT - GE - EQ - NE - EQ_IGNORE_CASE - NE_IGNORE_CASE - STARTS_WITH - NOT_STARTS_WITH - STARTS_WITH_IGNORE_CASE - NOT_STARTS_WITH_IGNORE_CASE - ENDS_WITH - NOT_ENDS_WITH - ENDS_WITH_IGNORE_CASE - NOT_ENDS_WITH_IGNORE_CASE - CONTAINS - NOT_CONTAINS - CONTAINS_IGNORE_CASE - NOT_CONTAINS_IGNORE_CASE - IS_EMPTY - IS_NOT_EMPTY - EXISTS_AND_EMPTY - IS_EXISTS - IS_NOT_EXISTS - IN - NOT_IN - IN_IGNORE_CASE - NOT_IN_IGNORE_CASE secondValueSource: type: string enum: - VALUE - VARIABLE secondValue: type: string secondVariable: $ref: "#/components/schemas/Variable" ConditionRuleDTO: type: object description: Condition rule configuration properties: conditionRuleList: description: List of nested condition rules conditionCriteria: type: string description: "Condition criteria (AND, OR, etc.)" enum: - VALUE - NOT - AND - OR firstVariable: $ref: "#/components/schemas/VariableDTO" description: First variable for comparison variableDataType: type: string description: Variable data type enum: - NUMERIC - STRING - DATE dateFormat: type: string description: Date format for date comparisons valueComparisonOperator: type: string description: Value comparison operator enum: - LT - LE - GT - GE - EQ - NE - EQ_IGNORE_CASE - NE_IGNORE_CASE - STARTS_WITH - NOT_STARTS_WITH - STARTS_WITH_IGNORE_CASE - NOT_STARTS_WITH_IGNORE_CASE - ENDS_WITH - NOT_ENDS_WITH - ENDS_WITH_IGNORE_CASE - NOT_ENDS_WITH_IGNORE_CASE - CONTAINS - NOT_CONTAINS - CONTAINS_IGNORE_CASE - NOT_CONTAINS_IGNORE_CASE - IS_EMPTY - IS_NOT_EMPTY - EXISTS_AND_EMPTY - IS_EXISTS - IS_NOT_EXISTS - IN - NOT_IN - IN_IGNORE_CASE - NOT_IN_IGNORE_CASE secondValueSource: type: string description: Second value source enum: - VALUE - VARIABLE secondValue: type: string description: Second value for comparison secondVariable: $ref: "#/components/schemas/VariableDTO" description: Second variable for comparison required: - conditionCriteria - firstVariable - secondValueSource - valueComparisonOperator - variableDataType EndpointRateLimitListDTO: type: object description: API endpoint rate limits to be deleted properties: endpointRateLimitList: type: array description: List of endpoint rate limits items: $ref: "#/components/schemas/PolicyEndpointRateLimitDTO" required: - endpointRateLimitList ErrorMessage: type: object properties: id: type: string errorType: type: string enum: - APIPROXY - APIPROXY_HIDDENSPEC - APIPROXY_SPEC_AUTH_REQUIRED - API_METHOD_NOTFOUND - DBTOAPI_DB_OPERATION_TYPE_NOTFOUND - DBTOAPI_DB_BATCH_ARRAY_LENGTH - APIPROXY_NOTFOUND - APIPROXY_ENDPOINT_MISMATCH - APIPROXY_ENDPOINT_MISSING_PATH_PARAM_DEFINITION - APIPROXYGROUP_ACCESS_DISABLED_FROM_PROXY - APIPROXY_BACKEND_ADDRESS_NOTFOUND - APIPROXY_BACKEND_MTLS_SETTINGS_NOTFOUND - APICRYPT_EX - NOTER_SETTINGS_NOTFOUND - KPS_SETTINGS_NOTFOUND - KPS_SECURITY_TOKEN_FAULT - KPS_SECURITY_TOKEN_NOT_VALID - SCRIPT_API_NOTFOUND - CONNECTION_CONFIG_DB_NOTFOUND - CONNECTION_CONFIG_DB_DISABLED - DATABASE_CONNECTION_EX - DB_API_NOTFOUND - JOB_API_NOTFOUND - KPS_EX - CONDITION_RULE_FORMAT_NUMERIC - CONDITION_RULE_FORMAT_DATE - CONDITION_RULE_CONFIGURATION - CONDITION_RULE_EX - POLICY_AUTH_EMPTYUSERNAMEORPSSWD - POLICY_AUTH_EMPTYUSERNAME - POLICY_AUTH_EMPTYPSSWD - POLICY_AUTH_USERNOTEXISTS - POLICY_AUTH_EX_LDAP - POLICY_AUTH_EX_API - POLICY_AUTH_TYPE - POLICY_AUTH_EX_DB - POLICY_AUTH_NOT_FOUND - POLICY_AUTH_BASIC_EX - POLICY_AUTH_BASE64_EX - POLICY_AUTH_DIGEST_EX - POLICY_AUTH_JWT3RD_EX - POLICY_AUTH_JWT3RD_MISSING_CONFIG - POLICY_AUTH_JWT3RD_NOT_VALID - POLICY_AUTH_JWT_EX - POLICY_AUTH_JWT_MISSING_CONFIG - POLICY_AUTH_JWT_NOT_VALID - POLICY_AUTH_OAUTH2_EX - POLICY_AUTH_OAUTH2_TOKEN_EXPIRED - POLICY_AUTH_OAUTH2_TOKEN_NOT_VALID - POLICY_AUTH_OIDC_PROTOCOL_EX - POLICY_AUTH_OIDC_AUTHENTICATION_EX - POLICY_AUTH_OIDC_STOP_FLOW - POLICY_AUTH_OIDC_REDIRECT - POLICY_AUTH_OIDC_INVALID_TOKEN - POLICY_AUTHORIZATION_EX - POLICY_AUTHORIZATION_METHOD_NOT_FOUND - POLICY_AUTHORIZATION_WRONG_SCOPE - POLICY_API_AUTHENTICATION - POLICY_API_AUTHENTICATION_NOTFOUND - POLICY_SAML - POLICY_SAML_SIGNATURENOTEXISTS - POLICY_SAML_SIGNATURENOTVALID - POLICY_SAML_KEYSTORENOTVALID - POLICY_SAML_SIGNERUNKNOWN - POLICY_CONTENTFILTER - POLICY_CONTENTFILTER_HEADER - POLICY_CONTENTFILTER_PARAM - POLICY_CONTENTFILTER_BODY - POLICY_CONTENTFILTER_BODY_PATH - POLICY_IPWHITE_FAILED - POLICY_IPWHITE_EX - POLICY_IPBLACK_FAILED - POLICY_IPBLACK_EX - POLICY_RESTRICTION_ALLOWEDHOUR_FAILED - POLICY_RESTRICTION_ALLOWEDHOUR_EX - POLICY_RESTRICTION_MINMESSAGESIZE_FAILED - POLICY_RESTRICTION_MAXMESSAGESIZE_FAILED - POLICY_JSONSCHEMAVALIDATION - POLICY_JSONSCHEMAVALIDATION_FAILED - POLICY_JSONSCHEMAVALIDATION_PATH - POLICY_XMLSCHEMAVALIDATION - POLICY_XMLSCHEMAVALIDATION_FAILED - POLICY_XMLSCHEMAVALIDATION_UNEXPECTEDBODY - POLICY_XMLSCHEMAVALIDATION_PATH - POLICY_XMLTRANSFORMATION - POLICY_JSONTRANSFORMATION - POLICY_APIBASEDTHROTTLING - POLICY_APIBASEDTHROTTLING_CACHE_SERVICE - POLICY_APIBASEDTHROTTLING_STOP - POLICY_APIBASEDQUOTA - POLICY_APIBASEDQUOTA_CACHE_SERVICE - POLICY_APIBASEDQUOTA_STOP - POLICY_REST2SOAP_TRANSFORMATION_REQUEST - POLICY_REST2SOAP_TRANSFORMATION_RESPONSE - POLICY_SCRIPT_USERSTOPPEDFLOW - POLICY_SCRIPT_USERSTOPPEDFLOW_SUCCESS - POLICY_SCRIPT - POLICY_WSSECURITY_FROMTARGET - POLICY_WSSECURITY_TOTARGET - POLICY_WSSECURITY_STSTOKEN - POLICY_WSSECURITY_STSTOKEN_NOTFOUND - POLICY_WSSECURITY_STSTOKEN_NOTVALID - POLICY_WSSECURITY_STSTOKEN_FAULT - CIRCUITBREAKEROPEN_EX - CIRCUITBREAKEROPEN_NO_ROUTE_EX - CLIENTFLOWBANNER_EX - POLICY_ROUTING_TIMEOUT - POLICY_ROUTING_UNKNOWNHOST - POLICY_ROUTING_MALFORMED - POLICY_ROUTING_CONNECTIONREFUSED - POLICY_ROUTING_CONNECTION - POLICY_ROUTING_ERRORHANDLINGCONDITION - POLICY_ROUTING_PROXY_EMPTY - POLICY_ROUTING_PROXY_AUTHORIZATION_EMPTY - POLICY_ROUTING_CONNECTION_CLOSED_CLIENT - POLICY_ROUTING_CONNECTION_CLOSED_SERVER - POLICY_ROUTING_SSE_CLIENT - POLICY_ROUTING_SSE_SERVER - POLICY_ROUTING_AI_PROVIDER_EXHAUSTED - POLICY_ROUTING_AI_PROVIDER_ERROR - POLICY_ROUTING_AI_NO_SUITABLE_PROVIDER - POLICY_ROUTING_AI_CONTEXT_WINDOW_EXCEEDED - POLICY_ROUTING_AI_MODEL_ACCESS_DENIED - POLICY_AI_TOKEN_QUOTA_EXCEEDED - POLICY_AI_TOKEN_COUNTER_UNAVAILABLE - POLICY_AI_ANONYMOUS_NOT_ALLOWED - MCP_INBOUND_BAD_REQUEST - MCP_INBOUND_SERVER_NOT_FOUND - MCP_INBOUND_METHOD_NOT_ALLOWED - MCP_INBOUND_UNAUTHORIZED - MCP_INBOUND_SESSION_LIMIT_EXCEEDED - MCP_INBOUND_PARSE_ERROR - MCP_INBOUND_METHOD_NOT_FOUND - MCP_INBOUND_TOOL_NOT_FOUND - MCP_INBOUND_TOOL_PROXY_UNAVAILABLE - MCP_INBOUND_TOOL_POLICY_GATE_BLOCKED - MCP_INBOUND_TOOL_EXECUTION_FAILED - MCP_INBOUND_CALL_QUOTA_EXCEEDED - MCP_INBOUND_TOOL_APPROVAL_REQUIRED - MCP_INBOUND_ELICITATION_UNSUPPORTED - A2A_INBOUND_BAD_REQUEST - A2A_INBOUND_AGENT_NOT_FOUND - A2A_INBOUND_METHOD_NOT_ALLOWED - A2A_INBOUND_UNAUTHORIZED - A2A_INBOUND_PARSE_ERROR - A2A_INBOUND_METHOD_NOT_FOUND - A2A_INBOUND_TASK_NOT_FOUND - A2A_INBOUND_TASK_EXECUTION_UNAVAILABLE - A2A_INBOUND_CONCURRENCY_LIMIT_EXCEEDED - A2A_INBOUND_CALL_QUOTA_EXCEEDED - POLICY_REDACTION - POLICY_REDACTION_VARIABLE_NOT_FOUND - POLICY_REDACTION_DATA_FORMAT - POLICY_ENCRYPTION - POLICY_ENCRYPTION_MISSING_CONFIG - POLICY_DECRYPTION - POLICY_DIGITALSIGN - POLICY_DIGITALSIGNVALIDATION - POLICY_DIGITALSIGNVALIDATION_FAILED - POLICY_RESTAPI_RESPONSE - POLICY_RESTAPI_CONNECTION - POLICY_RESTAPI - CACHE_AUTHREQUIREDTOREFRESH - POLICY_ROLE_GROUP_BASED_ACCESS - POLICY_ROLE_GROUP_BASED_IP_CHECK_ACCESS - POLICY_PROTOCOL_TRANSFORMATION - POLICY_BUSINESS_RULE - POLICY_BUSINESS_RULE_DATA_FORMAT - POLICY_BUSINESS_RULE_STOP - POLICY_BUSINESS_RULE_VARIABLE_NOT_FOUND - POLICY_MESSAGE_BUILDER - POLICY_LOG - APIPROXY_NOTFOUND_FORTOKEN - CREDENTIAL_NOTFOUND_FORTOKEN - CREDENTIAL_NOTVALID_FORTOKEN - URL_TOKEN_MANAGEMENT_TYPE_MISMATCH - TOKEN_POLICY_NOT_CONFIGURED - POLICY_ROUTING_SSLHANDSHAKE - POLICY_ROUTING_SSLEXPIRED - POLICY_AUTH_CREDENTIAL_NOTEXISTS - POLICY_AUTH_CREDENTIAL_PROXYNOTALLOWED - POLICY_AUTH_IDENTITY_AMBIGUOUS - API_CLIENT_NOT_VALID_AS_RESOURCE_OWNER - POLICY_AUTH_CREDENTIAL_METHODNOTALLOWED - POLICY_AUTH_CREDENTIAL_IPNOTALLOWED - POLICY_AUTH_CREDENTIAL_EXPIRED - POLICY_AUTH_CONTRACT_PROXY_EXPIRED - POLICY_AUTH_CONTRACT_CREDENTIAL_EXPIRED - POLICY_AUTH_CREDENTIAL_PSSWD - POLICY_AUTH_CREDENTIAL_ENVNOTALLOWED - POLICY_CLIENTBASEDTHROTTLING - POLICY_CLIENTBASEDTHROTTLING_CACHE_SERVICE - POLICY_CLIENTBASEDTHROTTLING_STOP - POLICY_CLIENTBASEDQUOTA - POLICY_CLIENTBASEDQUOTA_CACHE_SERVICE - POLICY_CLIENTBASEDQUOTA_STOP - POLICY_JOSE_IMPLEMENTATION_JWK_EMPTY_APIPROXY_VALIDATION - POLICY_JOSE_IMPLEMENTATION_JWK_NOT_FOUND_VALIDATION - POLICY_JOSE_IMPLEMENTATION_JWK_EMPTY_APIPROXY_ENCRYPTION - POLICY_JOSE_IMPLEMENTATION_JWK_NOT_FOUND_ENCRYPTION - POLICY_JOSE_IMPLEMENTATION_JWK_EMPTY_CREDENTIAL_VALIDATION - POLICY_JOSE_IMPLEMENTATION_JWK_NOT_FOUND_CREDENTIAL_VALIDATION - POLICY_JOSE_IMPLEMENTATION_JWK_EMPTY_CREDENTIAL_ENCRYPTION - POLICY_JOSE_IMPLEMENTATION_JWK_NOT_FOUND_CREDENTIAL_ENCRYPTION - POLICY_JOSE_IMPLEMENTATION_SIGN - POLICY_JOSE_IMPLEMENTATION_ENCRYPTION - POLICY_JOSE_IMPLEMENTATION_ENCRYPTION_NEED_SIGN - POLICY_JOSE_IMPLEMENTATION_EX - POLICY_JOSE_IMPLEMENTATION_TARGET_VALUE_NOT_FOUND - POLICY_JOSE_VALIDATION_JWK_EMPTY_APIPROXY_ENCRYPTION - POLICY_JOSE_VALIDATION_JWK_NOT_FOUND_ENCRYPTION - POLICY_JOSE_VALIDATION_JWK_EMPTY_APIPROXY_VALIDATE - POLICY_JOSE_VALIDATION_JWK_NOT_FOUND_VALIDATE - POLICY_JOSE_VALIDATION_JWK_EMPTY_CREDENTIAL_SIGN - POLICY_JOSE_VALIDATION_JWK_EMPTY_CREDENTIAL_ENC - POLICY_JOSE_VALIDATION_JWK_NOT_FOUND_CREDENTIAL_ENC - POLICY_JOSE_VALIDATION_JWK_NOT_FOUND_CREDENTIAL_SIGN - POLICY_JOSE_VALIDATION_TARGET_VALUE_EMPTY - POLICY_JOSE_VALIDATION_ISSUER_EMPTY - POLICY_JOSE_VALIDATION_PARSE_JWT - POLICY_JOSE_VALIDATION_DECRYPTION - POLICY_JOSE_VALIDATION_JWT_IS_NOT_ENCRYPTED - POLICY_JOSE_VALIDATION_SIGNVALIDATION - POLICY_JOSE_VALIDATION_JWT_IS_NOT_SIGNED - POLICY_JOSE_VALIDATION_CLAIMVALIDATION - POLICY_JOSE_VALIDATION_SIGNATUREINVALID - POLICY_JOSE_VALIDATION_EX - POLICY_MTLS_AUTHENTICATION_CERTIFICATE_MISSING - POLICY_MTLS_AUTHENTICATION_CERTIFICATE_NOTVALID - POLICY_MTLS_AUTHENTICATION_CERTIFICATE_ISSUER_MISSING - POLICY_MTLS_AUTHENTICATION_EX - POLICY_MTLS_AUTHENTICATION_ISSUER_MTLS_MISSING - POLICY_MTLS_AUTHENTICATION_ISSUER_CERT_NOT_MATCH - CONNECTOR_SETTINGS_NOTFOUND - CONNECTOR_SETTINGS_DISABLED - CONNECTOR_EX - POLICY_ROUTING_ILLEGAL_ARGUMENT - POLICY_ROUTING_CLIENT_PROTOCOL - POLICY_JOSE_IMPLEMENTATION_JWK_EXPIRED - POLICY_JOSE_VALIDATION_JWK_EXPIRED - POLICY_GROUP_EX - POLICY_ENDPOINTRATELIMIT - POLICY_ENDPOINTRATELIMIT_CACHE_SERVICE - POLICY_ENDPOINTRATELIMIT_STOP - POLICY_ENDPOINTRATELIMIT_TARGETNOTEXIST - POLICY_CLIENTBANNER_BANNED - POLICY_CLIENTBANNER_EX - POLICY_CLIENTBANNER_IDENTITYNOTFOUND - POLICY_WSSECURITY_SIGN - POLICY_WSSECURITY_SIGN_VALIDATION - POLICY_WSSECURITY_ENCRYPT - POLICY_WSSECURITY_DECRYPT - POLICY_WSSECURITY_USERNAME - POLICY_WSSECURITY_TIMESTAMP - POLICY_AUTH_EX - POLICY_AUTH_CREDENTIALS_MISSING - JOSE_VAL_CONFIG_ERROR - JOSE_VAL_EX - JOSE_VAL_TOKEN_INVALID - POLICY_JOSE_VALIDATION_DPOP_INVALID - POLICY_JOSE_VALIDATION_DPOP_BINDING_MISMATCH - JOSE_IMPL_CONFIG_ERROR - APIPROXY_CONFIG_ERROR - APIPROXY_EX - CONTENTFILTER_VIOLATION - THROTTLING_STOP - THROTTLING_EX - THROTTLING_CACHE_SERVICE - QUOTA_STOP - QUOTA_EX - QUOTA_CACHE_SERVICE - ROUTING_CIRCUITBREAKER - ROUTING_CLIENT_ERROR - ROUTING_CONFIG_ERROR - ROUTING_MTLS_CONFIG_FAILED - ROUTING_SSE_EX - ENDPOINT_RATELIMIT_EX - ENDPOINT_RATELIMIT_EXCEEDED - ENDPOINT_RATELIMIT_IDENTITY_NOT_ALLOWED - ENDPOINT_RATELIMIT_IDENTITY_NOT_RESOLVED - RLCL_AUTHENTICATION_POLICY_REQUIRED - REST2SOAP_EX - REDACTION_EX - BUSINESS_RULE_EX - MTLS_CERTIFICATE_MISSING - MTLS_CERTIFICATE_NOTVALID - KPS_TOKEN_EX - JSON_SCHEMA_VALIDATION_FAILED - XML_SCHEMA_VALIDATION_FAILED - WSSECURITY_STSTOKEN_NOTVALID - RESTAPI_EX - CONDITION_EX - POLICY_CACHE_EX - POLICY_CACHE_INVALID_CONFIG - POLICY_AI_MCP_TOOL_CALL_CONFIG_MISSING - POLICY_AI_A2A_AGENT_CALL_CONFIG_MISSING - POLICY_AI_A2A_AGENT_INVOKE_CONFIG_MISSING - POLICY_AI_A2A_AGENT_INVOKE_INVOCATION_FAILED - POLICY_AI_MCP_TOOL_INVOKE_CONFIG_MISSING - POLICY_AI_MCP_TOOL_INVOKE_INVOCATION_FAILED - POLICY_AI_PROMPT_GUARD_BLOCKED - POLICY_AI_SEMANTIC_CACHE_ERROR - POLICY_AI_RAG_INJECTION_NO_MATCH - POLICY_AI_RAG_INJECTION_RETRIEVAL_ERROR - POLICY_AI_DLP_BLOCKED - POLICY_AI_PII_ENCODED_BLOCKED - POLICY_AI_PII_MASK_FAILED - POLICY_AI_LOOP_DETECTED - POLICY_AI_OFF_TOPIC - POLICY_AI_TOPIC_JUDGE_BLOCKED - POLICY_AI_PII_JUDGE_BLOCKED - POLICY_AI_CONTEXT_INTEGRITY_BLOCKED - POLICY_AI_PROMPT_DECORATOR_LIMIT_EXCEEDED - POLICY_AI_DENIED_TOPIC - POLICY_AI_PROMPT_TEMPLATE_UNKNOWN_TEMPLATE - POLICY_AI_PROMPT_TEMPLATE_MISSING_PARAM - POLICY_AI_PROMPT_TEMPLATE_LIMIT_EXCEEDED - POLICY_AI_GROUNDEDNESS_VIOLATION parentErrorType: type: string enum: - API_PROXY - APICREATOR - FAKE_API - KPS_API - CONDITION_ERR - CONDITION_EX - POLICY_GROUP - POLICY_AUTHENTICATION - POLICY_OIDC - POLICY_AUTHORIZATION - POLICY_API_AUTHENTICATION - POLICY_THROTTLING_PER_CLIENT - POLICY_APIBASEDTHROTTLING - POLICY_ENDPOINTRATELIMIT - POLICY_APIBASEDQUOTA - POLICY_CLIENTBASEDTHROTTLING - POLICY_CLIENTBASEDQUOTA - POLICY_CLIENTBANNER - POLICY_QUOTA_PER_CLIENT - POLICY_SCRIPT - POLICY_OAUTH2 - POLICY_SAML - POLICY_JOSE_IMPLEMENTATION - POLICY_JOSE_VALIDATION - POLICY_MTLS_AUTHENTICATION - POLICY_CONTENTFILTER - POLICY_IPWHITE - POLICY_IPBLACK - POLICY_ALLOWEDHOUR - POLICY_MINMESSAGESIZE - POLICY_MAXMESSAGESIZE - POLICY_JSONSCHEMAVALIDATION - POLICY_XMLSCHEMAVALIDATION - POLICY_JSONTRANSFORMATION - POLICY_XMLTRANSFORMATION - POLICY_JSONRESPONSEMESSAGETRANS - POLICY_XMLRESPONSEMESSAGETRANS - POLICY_REST2SOAP_TRANSFORMATION - POLICY_CACHE - POLICY_ROUTING - POLICY_REDACTION - POLICY_CORS - POLICY_ENCRYPTION - POLICY_DECRYPTION - POLICY_ROLE_GROUP - POLICY_DIGITALSIGN - POLICY_DIGITALSIGNVALIDATION - POLICY_RESTAPI - POLICY_WSSECURITY - POLICY_WSSECURITY_ENCRYPT - POLICY_WSSECURITY_DECRYPT - POLICY_WSSECURITY_USERNAME - POLICY_WSSECURITY_TIMESTAMP - POLICY_WSSECURITY_SIGN - POLICY_WSSECURITY_SIGN_VALIDATION - POLICY_WSSECURITY_STSTOKEN - POLICY_BUSINESS_RULE - POLICY_MESSAGE_BUILDER - POLICY_LOG - POLICY_AI_PII_MASK - POLICY_AI_PROMPT_GUARD - POLICY_AI_TOKEN_RATE_LIMIT - POLICY_AI_SEMANTIC_CACHE - POLICY_AI_MCP_TOOL_CALL - POLICY_AI_A2A_AGENT_CALL - POLICY_AI_RAG_INJECTION - POLICY_AI_DLP_GUARD - POLICY_AI_LOOP_GUARD - POLICY_AI_TOPIC_GUARD - POLICY_AI_CONTEXT_INTEGRITY - POLICY_AI_ROUTING - POLICY_AI_A2A_AGENT_INVOKE - POLICY_AI_MCP_TOOL_INVOKE - POLICY_AI_PROMPT_DECORATOR - POLICY_AI_PROMPT_TEMPLATE - POLICY_AI_GROUNDEDNESS_GUARD - LICENSE httpStatusCode: type: integer format: int32 errorCode: type: string originalMessage: type: string customizedHttpStatusCode: type: integer format: int32 customizedErrorCode: type: string customizedMessage: type: string buildCustomMessage: type: boolean customMessageTemplate: type: string customMessageContentType: type: string customMessageHttpStatusCode: type: integer format: int32 errorResponseRules: type: array items: $ref: "#/components/schemas/ErrorResponseRule" customized: type: boolean ErrorResponseRule: type: object properties: name: type: string order: type: integer format: int32 active: type: boolean builtIn: type: boolean condition: $ref: "#/components/schemas/PolicyCondition" template: type: string contentType: type: string httpStatusCode: type: integer format: int32 PolicyCondition: type: object properties: conditionRuleList: type: array items: $ref: "#/components/schemas/ConditionRule" PolicyConditionDTO: type: object description: Policy condition configuration properties: conditionRuleList: type: array description: List of condition rules items: $ref: "#/components/schemas/ConditionRuleDTO" required: - conditionRuleList PolicyEndpointRateLimitDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: apiProxyName: type: string description: API Proxy Name endpointName: type: string description: Endpoint name or resource endpointHTTPMethod: type: string description: Endpoint HTTP Method enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY permittedMessageCount: type: integer format: int32 description: Permitted message count per time interval timeIntervalPeriodLength: type: integer format: int32 description: Time interval period length timeInterval: type: string description: Time interval unit enum: - ONE_SECOND - ONE_MINUTE - ONE_HOUR - ONE_DAY - ONE_MONTH targetVariable: $ref: "#/components/schemas/VariableDTO" description: Target variable for rate limiting cacheConnectionTimeoutInSeconds: type: integer format: int32 description: Cache connection timeout in seconds cacheErrorHandlingType: type: string description: Cache error handling type enum: - FAIL - CONTINUE timeIntervalWindowType: type: string description: Time interval window type enum: - FIXED - SLIDING targetIdentityValue: type: string description: Target identity value showRateLimitStatisticsInResponseHeader: type: boolean description: Show rate limit statistics in response header enabled: type: boolean description: Enable rate limiting countingMode: type: string enum: - ALL_REQUESTS - ACCEPTED_ONLY limitChangeAction: type: string enum: - CLAMP - RESET - NONE required: - permittedMessageCount - timeInterval - timeIntervalPeriodLength Variable: type: object properties: id: type: string projectId: type: string projectName: type: string name: type: string description: type: string type: type: string enum: - HEADER - PARAMETER - BODY - CONTEXT_VALUES - CUSTOM headerName: type: string paramType: type: string enum: - QUERY - PATH - FORM paramName: type: string paramPath: type: string formName: type: string xpathValue: type: string jsonPathValue: type: string messageContentType: type: string enum: - XML - JSON - ALL_BODY contextValue: type: string enum: - REQUEST_REMOTE_ADDRESS - REQUEST_HTTP_METHOD - REQUEST_CONTENT_TYPE - REQUEST_PATH_INFO - REQUEST_CONTEXT_PATH - REQUEST_QUERY_STRING - REQUEST_REMOTE_USER - REQUEST_USERNAME_KEY - REQUEST_REQUESTED_SESSION_ID - REQUEST_REQUEST_URI - REQUEST_CHARACTER_ENCODING - REQUEST_CHARSET - REQUEST_CONTENT_LENGTH - REQUEST_PROTOCOL - REQUEST_SCHEME - REQUEST_SERVER_NAME - REQUEST_SERVER_PORT - REQUEST_REMOTE_HOST - REQUEST_REMOTE_PORT - REQUEST_LOCAL_NAME - REQUEST_LOCAL_ADDR - REQUEST_LOCAL_PORT - REQUEST_XFORWARDED_FOR - REQUEST_ESTIMATED_TOKEN_COUNT - REQUEST_MCP_TOOL_NAME - REQUEST_OAUTH_CLIENT_ID - REQUEST_IS_SOAP_TO_REST - REQUEST_IS_APIPROXY - REQUEST_IS_APIPROXYGROUP - REQUEST_IS_XWWW_FORM_URL_ENCODED - REQUEST_IS_FORM_DATA - REQUEST_IS_BYTE_ARRAY - REQUEST_HAS_ATTACHMENT - REQUEST_GZIP - REQUEST_DEFLATE - REQUEST_BR - REQUEST_ZSTD - REQUEST_IDENTITY - REQUEST_COMPRESS - REQUEST_HTTP_SERVLET - RESPONSE_IS_BYTE_ARRAY - RESPONSE_GZIP - RESPONSE_DEFLATE - RESPONSE_BR - RESPONSE_ZSTD - RESPONSE_IDENTITY - RESPONSE_COMPRESS - RESPONSE_BACKEND_CONTENT_ENCODING - RESPONSE_CHARSET - RESPONSE_STATUS_CODE - RESPONSE_HTTP_SERVLET - ERROR_CATEGORY - ERROR_TYPE - ERROR_PARENT - ERROR_RESULT_TYPE - ERROR_MESSAGE - ERROR_CODE - ERROR_HTTP_CODE - MESSAGE_CORRELATION_ID - MESSAGE_CACHE_HIT - ENVIRONMENT_ID - ENVIRONMENT_NAME - ENVIRONMENT_CERTIFICATE - ENVIRONMENT_PRIVATEKEY - ENVIRONMENT_PUBLICKEY - ENVIRONMENT_SECRETKEY - ENVIRONMENT_KEYSTORE - ENVIRONMENT_JWK - APIPROXYGROUP_ID - APIPROXYGROUP_NAME - APIPROXY_ID - APIPROXY_NAME - APIPROXY_RELATIVE_PATH - APIMETHOD_ID - APIMETHOD_NAME - APIMETHOD_SOAP_ACTION - APIMETHOD_HTTPMETHOD - APIMETHOD_ENDPOINT - APIMETHOD_BACKEND_HTTPMETHOD - APIMETHOD_BACKEND_ENDPOINT - DATETIME_YEAR - DATETIME_MONTH - DATETIME_DAY_OF_WEEK - DATETIME_DAY_OF_MONTH - DATETIME_HOUR - DATETIME_MINUTE - DATETIME_SECOND - DATETIME_EPOCH_MILLIS - DATETIME_FORMATTED_TEXT - DATE_FORMATTED_TEXT - TIME_FORMATTED_TEXT - CREDENTIAL_USERNAME - CREDENTIAL_EMAIL - CREDENTIAL_FULLNAME - CREDENTIAL_SECRETKEY - CREDENTIAL_CERTIFICATE - CREDENTIAL_PUBLICKEY - CREDENTIAL_PRIVATEKEY - CREDENTIAL_KEYSTORE - CREDENTIAL_TRUSTSTORE - CREDENTIAL_JWK_SIGNANDVALIDATION - CREDENTIAL_JWK_ENCRYPTIONANDDECRYPTION zoneId: type: string initWithScript: type: boolean scriptLanguage: type: string enum: - GROOVY - JAVASCRIPT scriptBody: type: string VariableDTO: type: object description: Variable configuration properties: name: type: string description: Variable name description: type: string description: Variable description type: type: string description: Variable type enum: - HEADER - PARAMETER - BODY - CONTEXT_VALUES - CUSTOM headerName: type: string description: Header name (for header type variables) paramType: type: string description: Parameter type (for parameter type variables) enum: - QUERY - PATH - FORM paramName: type: string description: Parameter name paramPath: type: string description: Parameter path formName: type: string description: Form name xpathValue: type: string description: XPath value (for XML body variables) jsonPathValue: type: string description: JSONPath value (for JSON body variables) messageContentType: type: string description: Message content type enum: - XML - JSON - ALL_BODY contextValue: type: string description: Context value (for context type variables) enum: - REQUEST_REMOTE_ADDRESS - REQUEST_HTTP_METHOD - REQUEST_CONTENT_TYPE - REQUEST_PATH_INFO - REQUEST_CONTEXT_PATH - REQUEST_QUERY_STRING - REQUEST_REMOTE_USER - REQUEST_USERNAME_KEY - REQUEST_REQUESTED_SESSION_ID - REQUEST_REQUEST_URI - REQUEST_CHARACTER_ENCODING - REQUEST_CHARSET - REQUEST_CONTENT_LENGTH - REQUEST_PROTOCOL - REQUEST_SCHEME - REQUEST_SERVER_NAME - REQUEST_SERVER_PORT - REQUEST_REMOTE_HOST - REQUEST_REMOTE_PORT - REQUEST_LOCAL_NAME - REQUEST_LOCAL_ADDR - REQUEST_LOCAL_PORT - REQUEST_XFORWARDED_FOR - REQUEST_ESTIMATED_TOKEN_COUNT - REQUEST_MCP_TOOL_NAME - REQUEST_OAUTH_CLIENT_ID - REQUEST_IS_SOAP_TO_REST - REQUEST_IS_APIPROXY - REQUEST_IS_APIPROXYGROUP - REQUEST_IS_XWWW_FORM_URL_ENCODED - REQUEST_IS_FORM_DATA - REQUEST_IS_BYTE_ARRAY - REQUEST_HAS_ATTACHMENT - REQUEST_GZIP - REQUEST_DEFLATE - REQUEST_BR - REQUEST_ZSTD - REQUEST_IDENTITY - REQUEST_COMPRESS - REQUEST_HTTP_SERVLET - RESPONSE_IS_BYTE_ARRAY - RESPONSE_GZIP - RESPONSE_DEFLATE - RESPONSE_BR - RESPONSE_ZSTD - RESPONSE_IDENTITY - RESPONSE_COMPRESS - RESPONSE_BACKEND_CONTENT_ENCODING - RESPONSE_CHARSET - RESPONSE_STATUS_CODE - RESPONSE_HTTP_SERVLET - ERROR_CATEGORY - ERROR_TYPE - ERROR_PARENT - ERROR_RESULT_TYPE - ERROR_MESSAGE - ERROR_CODE - ERROR_HTTP_CODE - MESSAGE_CORRELATION_ID - MESSAGE_CACHE_HIT - ENVIRONMENT_ID - ENVIRONMENT_NAME - ENVIRONMENT_CERTIFICATE - ENVIRONMENT_PRIVATEKEY - ENVIRONMENT_PUBLICKEY - ENVIRONMENT_SECRETKEY - ENVIRONMENT_KEYSTORE - ENVIRONMENT_JWK - APIPROXYGROUP_ID - APIPROXYGROUP_NAME - APIPROXY_ID - APIPROXY_NAME - APIPROXY_RELATIVE_PATH - APIMETHOD_ID - APIMETHOD_NAME - APIMETHOD_SOAP_ACTION - APIMETHOD_HTTPMETHOD - APIMETHOD_ENDPOINT - APIMETHOD_BACKEND_HTTPMETHOD - APIMETHOD_BACKEND_ENDPOINT - DATETIME_YEAR - DATETIME_MONTH - DATETIME_DAY_OF_WEEK - DATETIME_DAY_OF_MONTH - DATETIME_HOUR - DATETIME_MINUTE - DATETIME_SECOND - DATETIME_EPOCH_MILLIS - DATETIME_FORMATTED_TEXT - DATE_FORMATTED_TEXT - TIME_FORMATTED_TEXT - CREDENTIAL_USERNAME - CREDENTIAL_EMAIL - CREDENTIAL_FULLNAME - CREDENTIAL_SECRETKEY - CREDENTIAL_CERTIFICATE - CREDENTIAL_PUBLICKEY - CREDENTIAL_PRIVATEKEY - CREDENTIAL_KEYSTORE - CREDENTIAL_TRUSTSTORE - CREDENTIAL_JWK_SIGNANDVALIDATION - CREDENTIAL_JWK_ENCRYPTIONANDDECRYPTION zoneId: type: string description: Zone ID initWithScript: type: boolean description: Initialize with script scriptLanguage: type: string description: Script language enum: - GROOVY - JAVASCRIPT scriptBody: type: string description: Script body required: - name - type CredentialNameDTO: type: object description: Credential names to be deleted properties: credentialNameList: type: array items: type: string RLCLMetadataDTO: type: object description: RLCL metadata to be created properties: name: type: string description: type: string enabled: type: boolean executionOrder: type: string enum: - BEFORE_PROXY_GROUP - AFTER_PROXY_GROUP - BEFORE_API_PROXY - AFTER_API_PROXY - BEFORE_API_METHOD - AFTER_API_METHOD - FIRST - LAST cacheConnectionTimeoutInSeconds: type: integer format: int32 cacheErrorHandlingType: type: string enum: - FAIL - CONTINUE timeIntervalWindowType: type: string enum: - FIXED - SLIDING showRateLimitStatisticsInResponseHeader: type: boolean targetVariable: $ref: "#/components/schemas/VariableDTO" identitySource: type: string description: "Identity source: VARIABLE (resolve from targetVariable) or\ \ AUTH_RESOLVED (use the username/key resolved by the authentication policy).\ \ When AUTH_RESOLVED, executionOrder is forced to LAST and targetVariable\ \ is ignored." enum: - VARIABLE - AUTH_RESOLVED targetAudienceRuleList: type: array description: Target audience rules (operator + value). A request is in the target audience when at least one rule matches the resolved identity (OR semantics). items: $ref: "#/components/schemas/TargetAudienceRuleDTO" outOfTargetAction: type: string description: "Behaviour for requests outside the target audience: BLOCK\ \ (reject), GENERAL_QUOTA (apply the general quota below) or NONE (the\ \ rule does not apply to them - neither blocked nor counted). Omitted\ \ defaults to BLOCK." enum: - BLOCK - GENERAL_QUOTA - NONE generalQuotaMode: type: string description: "General quota mode (when outOfTargetAction=GENERAL_QUOTA):\ \ TOTAL (single shared counter) or PER_IDENTITY (per identity counter)." enum: - TOTAL - PER_IDENTITY generalQuotaPermittedMessageCount: type: integer format: int32 description: Permitted message count for the general quota (required when outOfTargetAction=GENERAL_QUOTA). generalQuotaTimeIntervalPeriodLength: type: integer format: int32 description: Time interval period length for the general quota (required when outOfTargetAction=GENERAL_QUOTA). generalQuotaTimeInterval: type: string description: Time interval unit for the general quota (required when outOfTargetAction=GENERAL_QUOTA). enum: - ONE_SECOND - ONE_MINUTE - ONE_HOUR - ONE_DAY - ONE_MONTH TargetAudienceRuleDTO: type: object description: "RLCL target audience rule: a single operator + value comparison\ \ against the resolved identity value. Rules are evaluated with OR semantics." properties: operator: type: string description: "Comparison operator (EQ, NE, CONTAINS, STARTS_WITH, IN, ...)" enum: - LT - LE - GT - GE - EQ - NE - EQ_IGNORE_CASE - NE_IGNORE_CASE - STARTS_WITH - NOT_STARTS_WITH - STARTS_WITH_IGNORE_CASE - NOT_STARTS_WITH_IGNORE_CASE - ENDS_WITH - NOT_ENDS_WITH - ENDS_WITH_IGNORE_CASE - NOT_ENDS_WITH_IGNORE_CASE - CONTAINS - NOT_CONTAINS - CONTAINS_IGNORE_CASE - NOT_CONTAINS_IGNORE_CASE - IS_EMPTY - IS_NOT_EMPTY - EXISTS_AND_EMPTY - IS_EXISTS - IS_NOT_EXISTS - IN - NOT_IN - IN_IGNORE_CASE - NOT_IN_IGNORE_CASE value: type: string description: Value to compare the resolved identity against required: - operator - value A2aDiscoveredSkill: type: object properties: id: type: string name: type: string description: type: string tags: type: array items: type: string Action: type: object properties: policyCondition: $ref: "#/components/schemas/PolicyCondition" buildCustomMessage: type: boolean customMessageHttpStatusCode: type: integer format: int32 customMessageContentType: type: string customMessageTemplate: type: string stopResultType: type: string enum: - BLOCKED - ERROR - SUCCESS actionType: type: string enum: - ADD - MODIFY - DELETE - STOP sourceVar: $ref: "#/components/schemas/Variable" sourceVarBodyInjectionFieldName: type: string sourceDataType: type: string enum: - NUMERIC - STRING - TEMPORAL sourceTemporalFormat: type: string operator: type: string enum: - ADD - SUBTRACT - MULTIPLY - DIVIDE - MODULUS - POWER - CONCAT - REPLACE_IN - REPLACE_WITH - REPLACE_FIRST - SUBSTRING - MASK - FORMAT - TRANSFORM - INSERT - TRIM - ENCODE - DECODE - URL_ENCODE - URL_DECODE - EXTRACT_JWT_HEADER_CLAIM - EXTRACT_JWT_BODY_CLAIM - ADD_TEMPORAL - SUBTRACT_TEMPORAL substringFrom: type: integer format: int32 substringTo: type: integer format: int32 maskFrom: type: integer format: int32 maskTo: type: integer format: int32 replaceSource: type: string insertOffset: type: integer format: int32 temporalOperatorTimeUnit: type: string enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS replaceFirst: type: string targetValSource: type: string enum: - VALUE - VARIABLE targetVal: type: string targetVar: $ref: "#/components/schemas/Variable" transformationContentType: type: string enum: - XSLT - JOLT - XML2JSON - JSON2XML formatAllowsInvalid: type: boolean formatValueContainsLiteralCharacters: type: boolean formatInvalidCharacters: type: string formatPlaceholder: type: string jsonToXmlIgnoreNull: type: boolean jsonToXmlIgnoreEmpty: type: boolean jsonToXmlUseNullForNil: type: boolean jsonToXmlUnwrapElement: type: boolean xmlToJsonUnwrapElement: type: boolean xmlToJsonIgnoreNull: type: boolean xmlToJsonIgnoreEmpty: type: boolean xmlToJsonNumbersAsStrings: type: boolean xmlToJsonUseNullForNil: type: boolean xmlToJsonArrayPathList: type: array items: type: string claimJsonPath: type: string AgentTokenForwardSettings: type: object properties: enabled: type: boolean source: type: string enum: - CLIENT_AUTHORIZATION_HEADER audienceAllowList: type: array items: type: string stripGatewayCredential: type: boolean AiModelBudget: type: object properties: modelId: type: string minLength: 1 tokensPerHour: type: integer format: int64 minimum: 1 tokensPerDay: type: integer format: int64 minimum: 1 tokensPerMonth: type: integer format: int64 minimum: 1 monthlyBudgetUsd: type: number minimum: 0.00 usdPerHour: type: number minimum: 0.00 usdPerDay: type: number minimum: 0.00 overflowAction: type: string enum: - BLOCK - FAILOVER - ALERT_ONLY - CHEAPER_MODEL required: - modelId AiPromptDecoratorBlock: type: object properties: position: type: string role: type: string content: type: string enabled: type: boolean presetId: type: string enabledBlock: type: boolean prepend: type: boolean AiPromptTemplateBinding: type: object properties: alias: type: string templateId: type: string messages: type: array items: $ref: "#/components/schemas/AiPromptTemplateMessage" parameters: type: array items: $ref: "#/components/schemas/AiPromptTemplateParam" description: type: string boundToCatalog: type: boolean AiProviderBudget: type: object properties: providerRef: type: string minLength: 1 tokensPerHour: type: integer format: int64 minimum: 1 tokensPerDay: type: integer format: int64 minimum: 1 tokensPerMonth: type: integer format: int64 minimum: 1 monthlyBudgetUsd: type: number minimum: 0.00 usdPerHour: type: number minimum: 0.00 usdPerDay: type: number minimum: 0.00 overflowAction: type: string enum: - BLOCK - FAILOVER - ALERT_ONLY - CHEAPER_MODEL required: - providerRef AiTokenBudget: type: object properties: enabled: type: boolean tokensPerHour: type: integer format: int64 minimum: 1 tokensPerMinute: type: integer format: int64 minimum: 1 tokensPerDay: type: integer format: int64 minimum: 1 tokensPerMonth: type: integer format: int64 minimum: 1 monthlyBudgetUsd: type: number minimum: 0.00 usdPerHour: type: number minimum: 0.00 usdPerMinute: type: number minimum: 0.00 usdPerDay: type: number minimum: 0.00 requestsPerMinute: type: integer format: int64 minimum: 1 requestsPerHour: type: integer format: int64 minimum: 1 requestsPerDay: type: integer format: int64 minimum: 1 requestsPerMonth: type: integer format: int64 minimum: 1 softCapPercents: type: array items: type: integer format: int32 maximum: 100 minimum: 0 hardCapPercent: type: integer format: int32 maximum: 100 minimum: 1 overflowAction: type: string enum: - BLOCK - FAILOVER - ALERT_ONLY - CHEAPER_MODEL cheaperModelId: type: string modelBudgets: type: array items: $ref: "#/components/schemas/AiModelBudget" providerBudgets: type: array items: $ref: "#/components/schemas/AiProviderBudget" customMessageTemplate: type: string customMessageContentType: type: string customMessageHttpStatusCode: type: integer format: int32 cacheErrorHandlingType: type: string cacheConnectionTimeoutInSeconds: type: integer format: int32 showRateLimitStatisticsInResponseHeader: type: boolean AiTokenRateLimitDetail: type: object properties: targetValue: type: string regexExpression: type: boolean budget: $ref: "#/components/schemas/AiTokenBudget" Algorithm: type: object properties: name: type: string requirement: type: string enum: - REQUIRED - RECOMMENDED - OPTIONAL ApiAuthenticationConditionalExpression: type: object properties: id: type: integer format: int32 username: type: string password: type: string policyCondition: $ref: "#/components/schemas/PolicyCondition" ApiBasedQuotaDetail: type: object properties: targetValue: type: string regexExpression: type: boolean quotaCount: type: integer format: int32 intervalPeriodLength: type: integer format: int32 quotaInterval: type: string enum: - ONE_HOUR - ONE_DAY - ONE_MONTH ApiBasedThrottlingDetail: type: object properties: targetValue: type: string regexExpression: type: boolean messageCount: type: integer format: int32 intervalPeriodLength: type: integer format: int32 throttlingInterval: type: string enum: - ONE_SECOND - ONE_MINUTE ApiGwSchemaDefinition: type: object properties: schemaNo: type: integer format: int32 systemId: type: string schemaBody: type: string targetNamespace: type: string rootSchema: type: boolean ApiMethod: type: object properties: createdDate: type: string format: date-time id: type: string name: type: string description: type: string active: type: boolean protocolTransformation: $ref: "#/components/schemas/ProtocolTransformation" soapRequestMessagePartNameList: type: array items: type: string soapAction: type: string httpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY grpcMethodType: type: string enum: - BIDIRECTIONAL_STREAMING - CLIENT_STREAMING - SERVER_STREAMING - UNARY requestPolicyList: type: array items: oneOf: - $ref: "#/components/schemas/PolicyAiA2aAgentCall" - $ref: "#/components/schemas/PolicyAiA2aAgentInvoke" - $ref: "#/components/schemas/PolicyAiContextIntegrity" - $ref: "#/components/schemas/PolicyAiDlpGuard" - $ref: "#/components/schemas/PolicyAiGroundednessGuard" - $ref: "#/components/schemas/PolicyAiLoopGuard" - $ref: "#/components/schemas/PolicyAiMcpToolCall" - $ref: "#/components/schemas/PolicyAiMcpToolInvoke" - $ref: "#/components/schemas/PolicyAiPiiMask" - $ref: "#/components/schemas/PolicyAiPromptDecorator" - $ref: "#/components/schemas/PolicyAiPromptGuard" - $ref: "#/components/schemas/PolicyAiPromptTemplate" - $ref: "#/components/schemas/PolicyAiRagInjection" - $ref: "#/components/schemas/PolicyAiSemanticCache" - $ref: "#/components/schemas/PolicyAiTokenRateLimit" - $ref: "#/components/schemas/PolicyAiTopicGuard" - $ref: "#/components/schemas/PolicyAllowedHours" - $ref: "#/components/schemas/PolicyApiAuthentication" - $ref: "#/components/schemas/PolicyApiBasedQuota" - $ref: "#/components/schemas/PolicyApiBasedThrottling" - $ref: "#/components/schemas/PolicyBase64Authentication" - $ref: "#/components/schemas/PolicyBasicAuthentication" - $ref: "#/components/schemas/PolicyBusinessRule" - $ref: "#/components/schemas/PolicyCache" - $ref: "#/components/schemas/PolicyClientBanner" - $ref: "#/components/schemas/PolicyContentFilter" - $ref: "#/components/schemas/PolicyDecryption" - $ref: "#/components/schemas/PolicyDigestAuthentication" - $ref: "#/components/schemas/PolicyDigitalSign" - $ref: "#/components/schemas/PolicyDigitalSignVerification" - $ref: "#/components/schemas/PolicyEncryption" - $ref: "#/components/schemas/PolicyEndpointRateLimit" - $ref: "#/components/schemas/PolicyGroup" - $ref: "#/components/schemas/PolicyIpBlack" - $ref: "#/components/schemas/PolicyIpWhite" - $ref: "#/components/schemas/PolicyJoseImplementation" - $ref: "#/components/schemas/PolicyJoseValidation" - $ref: "#/components/schemas/PolicyJsonSchemaValidation" - $ref: "#/components/schemas/PolicyJsonTransformation" - $ref: "#/components/schemas/PolicyJwtAuthentication" - $ref: "#/components/schemas/PolicyLog" - $ref: "#/components/schemas/PolicyMTLSAuthentication" - $ref: "#/components/schemas/PolicyMaxMessageSize" - $ref: "#/components/schemas/PolicyMessageBuilder" - $ref: "#/components/schemas/PolicyMinMessageSize" - $ref: "#/components/schemas/PolicyOIDC" - $ref: "#/components/schemas/PolicyOauth2Authentication" - $ref: "#/components/schemas/PolicyRedaction" - $ref: "#/components/schemas/PolicyRest2SoapTransformationRequest" - $ref: "#/components/schemas/PolicyRest2SoapTransformationResponse" - $ref: "#/components/schemas/PolicyRestApi" - $ref: "#/components/schemas/PolicySaml" - $ref: "#/components/schemas/PolicyScript" - $ref: "#/components/schemas/PolicyWSSecuritySign" - $ref: "#/components/schemas/PolicyWSSecuritySignValidation" - $ref: "#/components/schemas/PolicyWsSecurityDecrypt" - $ref: "#/components/schemas/PolicyWsSecurityEncrypt" - $ref: "#/components/schemas/PolicyWsSecurityFromTarget" - $ref: "#/components/schemas/PolicyWsSecurityStsToken" - $ref: "#/components/schemas/PolicyWsSecurityTimestamp" - $ref: "#/components/schemas/PolicyWsSecurityToTarget" - $ref: "#/components/schemas/PolicyWsSecurityUsername" - $ref: "#/components/schemas/PolicyXmlSchemaValidation" - $ref: "#/components/schemas/PolicyXmlTransformation" responsePolicyList: type: array items: oneOf: - $ref: "#/components/schemas/PolicyAiA2aAgentCall" - $ref: "#/components/schemas/PolicyAiA2aAgentInvoke" - $ref: "#/components/schemas/PolicyAiContextIntegrity" - $ref: "#/components/schemas/PolicyAiDlpGuard" - $ref: "#/components/schemas/PolicyAiGroundednessGuard" - $ref: "#/components/schemas/PolicyAiLoopGuard" - $ref: "#/components/schemas/PolicyAiMcpToolCall" - $ref: "#/components/schemas/PolicyAiMcpToolInvoke" - $ref: "#/components/schemas/PolicyAiPiiMask" - $ref: "#/components/schemas/PolicyAiPromptDecorator" - $ref: "#/components/schemas/PolicyAiPromptGuard" - $ref: "#/components/schemas/PolicyAiPromptTemplate" - $ref: "#/components/schemas/PolicyAiRagInjection" - $ref: "#/components/schemas/PolicyAiSemanticCache" - $ref: "#/components/schemas/PolicyAiTokenRateLimit" - $ref: "#/components/schemas/PolicyAiTopicGuard" - $ref: "#/components/schemas/PolicyAllowedHours" - $ref: "#/components/schemas/PolicyApiAuthentication" - $ref: "#/components/schemas/PolicyApiBasedQuota" - $ref: "#/components/schemas/PolicyApiBasedThrottling" - $ref: "#/components/schemas/PolicyBase64Authentication" - $ref: "#/components/schemas/PolicyBasicAuthentication" - $ref: "#/components/schemas/PolicyBusinessRule" - $ref: "#/components/schemas/PolicyCache" - $ref: "#/components/schemas/PolicyClientBanner" - $ref: "#/components/schemas/PolicyContentFilter" - $ref: "#/components/schemas/PolicyDecryption" - $ref: "#/components/schemas/PolicyDigestAuthentication" - $ref: "#/components/schemas/PolicyDigitalSign" - $ref: "#/components/schemas/PolicyDigitalSignVerification" - $ref: "#/components/schemas/PolicyEncryption" - $ref: "#/components/schemas/PolicyEndpointRateLimit" - $ref: "#/components/schemas/PolicyGroup" - $ref: "#/components/schemas/PolicyIpBlack" - $ref: "#/components/schemas/PolicyIpWhite" - $ref: "#/components/schemas/PolicyJoseImplementation" - $ref: "#/components/schemas/PolicyJoseValidation" - $ref: "#/components/schemas/PolicyJsonSchemaValidation" - $ref: "#/components/schemas/PolicyJsonTransformation" - $ref: "#/components/schemas/PolicyJwtAuthentication" - $ref: "#/components/schemas/PolicyLog" - $ref: "#/components/schemas/PolicyMTLSAuthentication" - $ref: "#/components/schemas/PolicyMaxMessageSize" - $ref: "#/components/schemas/PolicyMessageBuilder" - $ref: "#/components/schemas/PolicyMinMessageSize" - $ref: "#/components/schemas/PolicyOIDC" - $ref: "#/components/schemas/PolicyOauth2Authentication" - $ref: "#/components/schemas/PolicyRedaction" - $ref: "#/components/schemas/PolicyRest2SoapTransformationRequest" - $ref: "#/components/schemas/PolicyRest2SoapTransformationResponse" - $ref: "#/components/schemas/PolicyRestApi" - $ref: "#/components/schemas/PolicySaml" - $ref: "#/components/schemas/PolicyScript" - $ref: "#/components/schemas/PolicyWSSecuritySign" - $ref: "#/components/schemas/PolicyWSSecuritySignValidation" - $ref: "#/components/schemas/PolicyWsSecurityDecrypt" - $ref: "#/components/schemas/PolicyWsSecurityEncrypt" - $ref: "#/components/schemas/PolicyWsSecurityFromTarget" - $ref: "#/components/schemas/PolicyWsSecurityStsToken" - $ref: "#/components/schemas/PolicyWsSecurityTimestamp" - $ref: "#/components/schemas/PolicyWsSecurityToTarget" - $ref: "#/components/schemas/PolicyWsSecurityUsername" - $ref: "#/components/schemas/PolicyXmlSchemaValidation" - $ref: "#/components/schemas/PolicyXmlTransformation" errorPolicyList: type: array items: oneOf: - $ref: "#/components/schemas/PolicyAiA2aAgentCall" - $ref: "#/components/schemas/PolicyAiA2aAgentInvoke" - $ref: "#/components/schemas/PolicyAiContextIntegrity" - $ref: "#/components/schemas/PolicyAiDlpGuard" - $ref: "#/components/schemas/PolicyAiGroundednessGuard" - $ref: "#/components/schemas/PolicyAiLoopGuard" - $ref: "#/components/schemas/PolicyAiMcpToolCall" - $ref: "#/components/schemas/PolicyAiMcpToolInvoke" - $ref: "#/components/schemas/PolicyAiPiiMask" - $ref: "#/components/schemas/PolicyAiPromptDecorator" - $ref: "#/components/schemas/PolicyAiPromptGuard" - $ref: "#/components/schemas/PolicyAiPromptTemplate" - $ref: "#/components/schemas/PolicyAiRagInjection" - $ref: "#/components/schemas/PolicyAiSemanticCache" - $ref: "#/components/schemas/PolicyAiTokenRateLimit" - $ref: "#/components/schemas/PolicyAiTopicGuard" - $ref: "#/components/schemas/PolicyAllowedHours" - $ref: "#/components/schemas/PolicyApiAuthentication" - $ref: "#/components/schemas/PolicyApiBasedQuota" - $ref: "#/components/schemas/PolicyApiBasedThrottling" - $ref: "#/components/schemas/PolicyBase64Authentication" - $ref: "#/components/schemas/PolicyBasicAuthentication" - $ref: "#/components/schemas/PolicyBusinessRule" - $ref: "#/components/schemas/PolicyCache" - $ref: "#/components/schemas/PolicyClientBanner" - $ref: "#/components/schemas/PolicyContentFilter" - $ref: "#/components/schemas/PolicyDecryption" - $ref: "#/components/schemas/PolicyDigestAuthentication" - $ref: "#/components/schemas/PolicyDigitalSign" - $ref: "#/components/schemas/PolicyDigitalSignVerification" - $ref: "#/components/schemas/PolicyEncryption" - $ref: "#/components/schemas/PolicyEndpointRateLimit" - $ref: "#/components/schemas/PolicyGroup" - $ref: "#/components/schemas/PolicyIpBlack" - $ref: "#/components/schemas/PolicyIpWhite" - $ref: "#/components/schemas/PolicyJoseImplementation" - $ref: "#/components/schemas/PolicyJoseValidation" - $ref: "#/components/schemas/PolicyJsonSchemaValidation" - $ref: "#/components/schemas/PolicyJsonTransformation" - $ref: "#/components/schemas/PolicyJwtAuthentication" - $ref: "#/components/schemas/PolicyLog" - $ref: "#/components/schemas/PolicyMTLSAuthentication" - $ref: "#/components/schemas/PolicyMaxMessageSize" - $ref: "#/components/schemas/PolicyMessageBuilder" - $ref: "#/components/schemas/PolicyMinMessageSize" - $ref: "#/components/schemas/PolicyOIDC" - $ref: "#/components/schemas/PolicyOauth2Authentication" - $ref: "#/components/schemas/PolicyRedaction" - $ref: "#/components/schemas/PolicyRest2SoapTransformationRequest" - $ref: "#/components/schemas/PolicyRest2SoapTransformationResponse" - $ref: "#/components/schemas/PolicyRestApi" - $ref: "#/components/schemas/PolicySaml" - $ref: "#/components/schemas/PolicyScript" - $ref: "#/components/schemas/PolicyWSSecuritySign" - $ref: "#/components/schemas/PolicyWSSecuritySignValidation" - $ref: "#/components/schemas/PolicyWsSecurityDecrypt" - $ref: "#/components/schemas/PolicyWsSecurityEncrypt" - $ref: "#/components/schemas/PolicyWsSecurityFromTarget" - $ref: "#/components/schemas/PolicyWsSecurityStsToken" - $ref: "#/components/schemas/PolicyWsSecurityTimestamp" - $ref: "#/components/schemas/PolicyWsSecurityToTarget" - $ref: "#/components/schemas/PolicyWsSecurityUsername" - $ref: "#/components/schemas/PolicyXmlSchemaValidation" - $ref: "#/components/schemas/PolicyXmlTransformation" cacheSettings: $ref: "#/components/schemas/CacheSettings" soapApiMethodWsaSettings: $ref: "#/components/schemas/SoapApiMethodWsaSettings" soapApiMethodWsrmSettings: $ref: "#/components/schemas/SoapApiMethodWsrmSettings" backendResourceUrl: type: string backendHttpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY enableDownload: type: boolean useBase64TextForCompressedResponse: type: boolean hiddenInSpecFile: type: boolean uvsRequestDataElementUuid: type: string uvsResponseDataElementUuid: type: string skipForReparse: type: boolean hasRequestPoliciesComputed: type: boolean hasResponsePoliciesComputed: type: boolean rateLimitExistFirst: type: boolean rateLimitExistLast: type: boolean ApinizerBasicHeader: type: object properties: name: type: string value: type: string resolvedName: type: string resolvedValue: type: string ArgumentConstraintRule: type: object properties: argumentPath: type: string ruleType: type: string enum: - REGEX - MAX_LENGTH - ENUM - REQUIRED value: type: string Base64: {} Base64URL: {} CacheSettings: type: object properties: name: type: string description: type: string cacheActive: type: boolean cacheOnlyHttpGetRequests: type: boolean cacheKeyType: type: string enum: - QUERY_PARAMS - CUSTOM cacheStorageType: type: string enum: - LOCAL - DISTRIBUTED variableList: type: array items: $ref: "#/components/schemas/Variable" capacity: type: integer format: int32 ttl: type: integer format: int32 invalidationRequiresAuthn: type: boolean cacheNullValue: type: boolean handlingAction: type: string enum: - CONTINUE - STOP cacheConnectionTimeoutInSeconds: type: integer format: int32 CallQuotaConfig: type: object properties: period: type: string enum: - MINUTE - HOUR - DAY limit: type: integer format: int32 scope: type: string enum: - PER_TOOL - PER_CREDENTIAL - PER_TOOL_AND_CREDENTIAL active: type: boolean ConnectionConfigA2a: type: object properties: id: type: string projectId: type: string name: type: string description: type: string enabled: type: boolean projectName: type: string environmentId: type: string circuitBreakerEnabled: type: boolean errorThresholdValue: type: integer format: int32 sleepWindow: type: integer format: int32 endpoint: type: string a2aProtocolVersion: type: string allowPrivateNetworkEgress: type: boolean authScheme: type: string enum: - BEARER - OAUTH2_CLIENT_CREDENTIALS - MTLS - NONE - API_KEY - BASIC - OAUTH2_TOKEN_EXCHANGE bearerToken: type: string credentialRef: type: string deprecated: true tokenEndpoint: type: string clientId: type: string clientSecret: type: string scope: type: string tokenExchangeAudience: type: string apiKeyHeaderName: type: string apiKey: type: string basicUsername: type: string basicPassword: type: string bearerTokenSet: type: boolean clientSecretSet: type: boolean apiKeySet: type: boolean basicPasswordSet: type: boolean agentCardCacheTtlSeconds: type: integer format: int32 agentCardCacheEnabled: type: boolean discoveredSkills: type: array items: $ref: "#/components/schemas/A2aDiscoveredSkill" skillsParsedAt: type: integer format: int64 healthStatus: type: string lastHealthCheckAt: type: string format: date-time healthMessage: type: string driftPolicy: type: string enum: - WARN_ONLY - FAIL_CLOSED pinnedCatalogHash: type: string driftDetected: type: boolean driftMessage: type: string driftStatePushPending: type: boolean resolvedEndpoint: type: string resolvedTokenEndpoint: type: string resolvedClientId: type: string resolvedApiKeyHeaderName: type: string resolvedBasicUsername: type: string resolvedTokenExchangeAudience: type: string resolvedScope: type: string mTLSSettings: $ref: "#/components/schemas/ConnectionMTLSSettings" ConnectionConfigMcp: type: object properties: id: type: string projectId: type: string name: type: string description: type: string enabled: type: boolean projectName: type: string environmentId: type: string circuitBreakerEnabled: type: boolean errorThresholdValue: type: integer format: int32 sleepWindow: type: integer format: int32 endpoint: type: string transport: type: string enum: - HTTP_SSE - STDIO mcpProtocolVersion: type: string allowPrivateNetworkEgress: type: boolean authScheme: type: string enum: - BEARER - OAUTH2_CLIENT_CREDENTIALS - MTLS - NONE - API_KEY - BASIC - OAUTH2_TOKEN_EXCHANGE bearerToken: type: string credentialRef: type: string tokenEndpoint: type: string clientId: type: string clientSecret: type: string scope: type: string tokenExchangeAudience: type: string apiKeyHeaderName: type: string apiKey: type: string basicUsername: type: string basicPassword: type: string bearerTokenSet: type: boolean clientSecretSet: type: boolean apiKeySet: type: boolean basicPasswordSet: type: boolean capabilityCacheTtlSeconds: type: integer format: int32 capabilityCacheEnabled: type: boolean trustToolAnnotations: type: boolean relayElicitation: type: boolean discoveredTools: type: array items: $ref: "#/components/schemas/McpDiscoveredTool" toolsParsedAt: type: integer format: int64 credentialMappingRef: type: string healthStatus: type: string lastHealthCheckAt: type: string format: date-time healthMessage: type: string driftPolicy: type: string enum: - WARN_ONLY - FAIL_CLOSED pinnedCatalogHash: type: string driftDetected: type: boolean driftMessage: type: string driftStatePushPending: type: boolean resolvedEndpoint: type: string resolvedTokenEndpoint: type: string resolvedClientId: type: string resolvedApiKeyHeaderName: type: string resolvedBasicUsername: type: string resolvedTokenExchangeAudience: type: string resolvedScope: type: string mTLSSettings: $ref: "#/components/schemas/ConnectionMTLSSettings" ConnectionMTLSSettings: type: object properties: enabled: type: boolean skipSslVerification: type: boolean keyStoreId: type: string trustStoreId: type: string certificateId: type: string supportedProtocolList: type: array items: type: string enum: - TLS_1_3 - TLS_1_2 - TLS_1_1 - TLS_1_0 - SSL_3_0 hostnameVerifierType: type: string enum: - NOOP - DEFAULT - STRICT - BROWSER_COMPAT CustomClaimMapping: type: object properties: headerName: type: string claimPath: type: string DataManipulationDef: type: object properties: sourceValueSource: type: string enum: - VALUE - VARIABLE sourceVar: $ref: "#/components/schemas/Variable" sourceValue: type: string targetValueSource: type: string enum: - VALUE - VARIABLE targetVar: $ref: "#/components/schemas/Variable" targetValue: type: string DelegationAcceptance: type: object properties: enabled: type: boolean allowedActors: type: array items: type: string maxActDepth: type: integer format: int32 GeoLocationData: type: object properties: countryCode: type: string countryName: type: string cityName: type: string latitude: type: number format: double longitude: type: number format: double cityWildcard: type: boolean GuardrailAdapter: discriminator: propertyName: type properties: type: type: string required: - type HourWrapper: type: object description: Hour-based restrictions properties: hourName: type: string description: type: string dayType: type: string enum: - WEEK - CUSTOM enumWeekDayList: type: array items: type: string enum: - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY - SATURDAY - SUNDAY - ALL day: type: integer format: int32 month: type: integer format: int32 startHour: type: integer format: int32 startMinute: type: integer format: int32 startSecond: type: integer format: int32 endHour: type: integer format: int32 endMinute: type: integer format: int32 endSecond: type: integer format: int32 wholeDay: type: boolean HttpDlpGuardrailAdapter: allOf: - $ref: "#/components/schemas/GuardrailAdapter" - type: object properties: timeoutMs: type: integer format: int32 maxInputChars: type: integer format: int32 connectionConfigWebhookRef: type: string IdentityAclRule: type: object properties: principalType: type: string enum: - CREDENTIAL - ROLE - ORGANIZATION principalName: type: string allow: type: array items: type: string deny: type: array items: type: string JCAContext: type: object properties: provider: type: object additionalProperties: type: string secureRandom: type: object properties: seed: type: integer format: int64 writeOnly: true provider: type: object additionalProperties: type: string algorithm: type: string parameters: {} deprecated: type: boolean JWEDecrypter: type: object properties: jcacontext: $ref: "#/components/schemas/JWEJCAContext" JWEEncrypter: type: object properties: jcacontext: $ref: "#/components/schemas/JWEJCAContext" JWEJCAContext: type: object properties: provider: type: object additionalProperties: type: string keyEncryptionProvider: type: object additionalProperties: type: string contentEncryptionProvider: type: object additionalProperties: type: string macprovider: type: object additionalProperties: type: string secureRandom: type: object properties: seed: type: integer format: int64 writeOnly: true provider: type: object additionalProperties: type: string algorithm: type: string parameters: {} deprecated: type: boolean JWK: type: object properties: keyStore: type: object properties: type: type: string provider: type: object additionalProperties: type: string x509CertThumbprint: $ref: "#/components/schemas/Base64URL" deprecated: true x509CertSHA256Thumbprint: $ref: "#/components/schemas/Base64URL" parsedX509CertChain: type: array items: type: object properties: subjectX500Principal: type: object properties: name: type: string encoded: type: string format: byte issuerX500Principal: type: object properties: name: type: string encoded: type: string format: byte subjectAlternativeNames: type: array items: type: array items: {} extendedKeyUsage: type: array items: type: string issuerAlternativeNames: type: array items: type: array items: {} sigAlgParams: type: string format: byte tbscertificate: type: string format: byte issuerDN: type: object deprecated: true properties: name: type: string sigAlgOID: type: string issuerUniqueID: type: array items: type: boolean subjectUniqueID: type: array items: type: boolean notAfter: type: string format: date-time serialNumber: type: integer notBefore: type: string format: date-time subjectDN: type: object deprecated: true properties: name: type: string keyUsage: type: array items: type: boolean sigAlgName: type: string signature: type: string format: byte basicConstraints: type: integer format: int32 version: type: integer format: int32 nonCriticalExtensionOIDs: type: array items: type: string uniqueItems: true criticalExtensionOIDs: type: array items: type: string uniqueItems: true type: type: string encoded: type: string format: byte publicKey: type: object properties: params: {} encoded: type: string format: byte format: type: string algorithm: type: string keyType: $ref: "#/components/schemas/KeyType" keyID: type: string expirationTime: type: string format: date-time notBeforeTime: type: string format: date-time issueTime: type: string format: date-time keyUse: $ref: "#/components/schemas/KeyUse" keyOperations: type: array items: type: string enum: - sign - verify - encrypt - decrypt - wrapKey - unwrapKey - deriveKey - deriveBits uniqueItems: true x509CertURL: type: string format: uri x509CertChain: type: array items: $ref: "#/components/schemas/Base64" keyRevocation: $ref: "#/components/schemas/KeyRevocation" requiredParams: type: object additionalProperties: {} private: type: boolean algorithm: $ref: "#/components/schemas/Algorithm" JWSSigner: type: object properties: jcacontext: $ref: "#/components/schemas/JCAContext" JWSVerifier: type: object properties: jcacontext: $ref: "#/components/schemas/JCAContext" Jwk: type: object properties: id: type: string projectId: type: string name: type: string description: type: string sourceType: type: string enum: - GENERATE - URL - COPY_PASTE - CERTIFICATE - PUBLIC_KEY - PRIVATE_KEY - KEYSTORE - AUTO_DETECT sourceId: type: string sourceUrl: type: string sourceEnvironmentId: type: string sourceEnvironmentName: type: string sourceUseType: type: string enum: - SIGNATURE - ENCRYPTION sourceKeystoreAlgorithm: type: string sourceAliasName: type: string kid: type: string url: type: string urlOptionConnectTimeout: type: integer format: int32 urlOptionReadTimeout: type: integer format: int32 urlOptionSizeLimit: type: integer format: int32 jwkStr: type: string type: type: string enum: - RSA - EC - OCT - OKP rsa: $ref: "#/components/schemas/JwkTypeRsa" ec: $ref: "#/components/schemas/JwkTypeEc" oct: $ref: "#/components/schemas/JwkTypeOct" okp: $ref: "#/components/schemas/JwkTypeOkp" generatedResult: $ref: "#/components/schemas/JwkGeneratedResult" jwkJose: $ref: "#/components/schemas/JWK" jweEncrypter: $ref: "#/components/schemas/JWEEncrypter" jweDecrypter: $ref: "#/components/schemas/JWEDecrypter" jwsSigner: $ref: "#/components/schemas/JWSSigner" jwsVerifier: $ref: "#/components/schemas/JWSVerifier" expirationDateValid: type: boolean notBeforeTimeValid: type: boolean useType: type: string enum: - SIGNATURE - ENCRYPTION expirationTime: type: string format: date-time notBeforeTime: type: string format: date-time algorithm: $ref: "#/components/schemas/Algorithm" JwkGeneratedResult: type: object properties: key: type: string keySetPublic: type: string keySetAll: type: string publicKey: type: string JwkTypeEc: type: object properties: curveType: type: string enum: - P256 - P384 - P521 - SECP256K1 keyUseType: type: string enum: - SIGNATURE - ENCRYPTION algorithm: type: string enum: - ES256 - ES384 - ES512 - ES256K - ECDH_ES - ECDH_ES_A128KW - ECDH_ES_A192KW - ECDH_ES_A256KW - ECDH_1PU - ECDH_1PU_A128KW - ECDH_1PU_A192KW - ECDH_1PU_A256KW keyIdType: type: string enum: - TIMESTAMP - SHA256 - SHA1 - ISO_DATE - NONE notBeforeTime: type: string format: date-time expirationTime: type: string format: date-time revoked: type: boolean JwkTypeOct: type: object properties: keySize: type: integer format: int32 keyUseType: type: string enum: - SIGNATURE - ENCRYPTION algorithm: type: string enum: - HS256 - HS384 - HS512 - A128KW - A192KW - A256KW - A128GCMKW - A192GCMKW - A256GCMKW - DIR - PBES2_HS256_A128KW - PBES2_HS384_A192KW - PBES2_HS512_A256KW keyIdType: type: string enum: - TIMESTAMP - SHA256 - SHA1 - ISO_DATE - NONE passwordSaltLength: type: integer format: int32 passwordIterationCount: type: integer format: int32 notBeforeTime: type: string format: date-time expirationTime: type: string format: date-time revoked: type: boolean JwkTypeOkp: type: object properties: curveType: type: string enum: - ED25519 - X25519 keyUseType: type: string enum: - SIGNATURE - ENCRYPTION algorithm: type: string enum: - EdDSA - ECDH_ES - ECDH_ES_A128KW - ECDH_ES_A192KW - ECDH_ES_A256KW - ECDH_1PU - ECDH_1PU_A128KW - ECDH_1PU_A192KW - ECDH_1PU_A256KW keyIdType: type: string enum: - TIMESTAMP - SHA256 - SHA1 - ISO_DATE - NONE notBeforeTime: type: string format: date-time expirationTime: type: string format: date-time revoked: type: boolean JwkTypeRsa: type: object properties: keySize: type: integer format: int32 keyUseType: type: string enum: - SIGNATURE - ENCRYPTION algorithm: type: string enum: - RSA256 - RSA384 - RSA512 - PS256 - PS384 - PS512 - RSA1_5 - RSA_OAEP - RSA_OAEP_256 - RSA_OAEP_384 - RSA_OAEP_512 keyIdType: type: string enum: - TIMESTAMP - SHA256 - SHA1 - ISO_DATE - NONE notBeforeTime: type: string format: date-time expirationTime: type: string format: date-time revoked: type: boolean KeyRevocation: type: object properties: reason: $ref: "#/components/schemas/Reason" revocationTime: type: string format: date-time KeyType: type: object properties: value: type: string requirement: type: string enum: - REQUIRED - RECOMMENDED - OPTIONAL KeyUse: type: object properties: value: type: string LlmJudgeGuardrailAdapter: allOf: - $ref: "#/components/schemas/GuardrailAdapter" - type: object properties: modelId: type: string promptTemplate: type: string maxOutputTokens: type: integer format: int32 jsonMode: type: boolean timeoutMs: type: integer format: int32 maxInputChars: type: integer format: int32 decisionMode: type: string enum: - STANDARD - REASONING decisionThreshold: type: number format: double unsafeLabels: type: array items: type: string decisionQuestion: type: string connectionConfigLlmRef: type: string LogPolicyConnectorRef: type: object properties: connectionConfigId: type: string connectorType: type: string MapValue: type: object properties: value: type: string valueType: type: string enum: - STRING - BOOLEAN - INTEGER - LONG - DOUBLE - FLOAT - STRING_LIST - URI resolvedValueByType: {} McpDiscoveredTool: type: object properties: name: type: string description: type: string inputSchemaJson: type: string MessageBuilderRow: type: object properties: policyCondition: $ref: "#/components/schemas/PolicyCondition" buildMode: type: string enum: - form - template sourceVariable: $ref: "#/components/schemas/Variable" targetVariable: $ref: "#/components/schemas/Variable" template: type: string required: type: boolean continueOnError: type: boolean defaultValue: type: string OIDCRoleMapping: type: object properties: claimPath: type: string claimValue: type: string targetRole: type: string required: type: boolean Policy: type: object discriminator: propertyName: _class properties: region: type: string enum: - FROM_CLIENT - TO_BACKEND - FROM_BACKEND - TO_CLIENT id: type: string projectId: type: string name: type: string description: type: string policyCondition: $ref: "#/components/schemas/PolicyCondition" global: type: boolean errorMessageList: type: array items: $ref: "#/components/schemas/ErrorMessage" buildCustomMessage: type: boolean customMessageTemplate: type: string customMessageContentType: type: string customMessageHttpStatusCode: type: integer format: int32 oneWay: type: boolean trace: type: boolean active: type: boolean addToGlobal: type: boolean policyLocation: type: string enum: - API_PROXY_GROUP - API_PROXY - API_PROXY_METHOD policyGroup: type: boolean _class: type: string required: - _class PolicyAiA2aAgentCall: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enabled: type: boolean a2aAgent: $ref: "#/components/schemas/ConnectionConfigA2a" callTimeoutMs: type: integer format: int32 taskWaitTimeoutMs: type: integer format: int32 parallelAgentCalls: type: boolean allowedSkillNames: type: array items: type: string identityAcl: type: array items: $ref: "#/components/schemas/IdentityAclRule" callQuota: $ref: "#/components/schemas/CallQuotaConfig" tokenForwardSettings: $ref: "#/components/schemas/AgentTokenForwardSettings" PolicyAiA2aAgentInvoke: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enabled: type: boolean a2aAgent: $ref: "#/components/schemas/ConnectionConfigA2a" targetSkillName: type: string messageTemplate: type: string waitMode: type: string enum: - FIRE_AND_FORGET - SYNC_TO_VARIABLE outputVariableName: type: string callTimeoutMs: type: integer format: int32 taskWaitTimeoutMs: type: integer format: int32 identityAcl: type: array items: $ref: "#/components/schemas/IdentityAclRule" callQuota: $ref: "#/components/schemas/CallQuotaConfig" tokenForwardSettings: $ref: "#/components/schemas/AgentTokenForwardSettings" PolicyAiContextIntegrity: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enabled: type: boolean action: type: string enum: - BLOCK - FLAG - MASK roleMarkerDetectionEnabled: type: boolean customMarkerPatternList: type: array items: type: string roleSequenceValidationEnabled: type: boolean allowedRoles: type: array items: type: string maxSystemMessages: type: integer format: int32 PolicyAiDlpGuard: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enabled: type: boolean policyAiDlpGuardDefList: type: array items: $ref: "#/components/schemas/PolicyAiDlpGuardDef" decodeEncodedContent: type: boolean carryBufferSize: type: integer format: int32 fileSignatureDetectionEnabled: type: boolean fileSignatureAction: type: string enum: - BLOCK - FLAG - MASK fileSignatureTypes: type: array items: type: string enum: - PDF - ZIP_OOXML - PNG - JPEG - GIF - GZIP - RAR - SEVEN_ZIP - ELF - PE_EXE - OLE2 - RTF - JAVA_CLASS engine: type: string enum: - BUILTIN - BUILTIN_PLUS_EXTERNAL - EXTERNAL_ONLY failMode: type: string enum: - FAIL_OPEN - FAIL_CLOSED externalGuardrail: oneOf: - $ref: "#/components/schemas/HttpDlpGuardrailAdapter" - $ref: "#/components/schemas/LlmJudgeGuardrailAdapter" streamingBufferMode: type: boolean PolicyAiDlpGuardDef: type: object properties: id: type: integer format: int32 presetId: type: string name: type: string ruleValue: type: string action: type: string enum: - BLOCK - FLAG - MASK category: type: string enabled: type: boolean description: type: string literalAnchors: type: array items: type: string PolicyAiGroundednessGuard: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: action: type: string enum: - BLOCK - FLAG - MASK failMode: type: string enum: - FAIL_OPEN - FAIL_CLOSED latencyMode: type: string enum: - INLINE - ASYNC - SHADOW maxWaitMs: type: integer format: int32 externalGuardrail: oneOf: - $ref: "#/components/schemas/HttpDlpGuardrailAdapter" - $ref: "#/components/schemas/LlmJudgeGuardrailAdapter" maxContextChars: type: integer format: int32 maxResponseChars: type: integer format: int32 maxContextCharsOrDefault: type: integer format: int32 maxResponseCharsOrDefault: type: integer format: int32 PolicyAiLoopGuard: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: windowSeconds: type: integer format: int32 maxRepeats: type: integer format: int32 action: type: string enum: - BLOCK - FLAG - MASK failOpenOnCacheError: type: boolean anonymousHandling: type: string enum: - SKIP - SHARED_POOL - DENY countingMode: type: string enum: - ALL_REQUESTS - ACCEPTED_ONLY limitChangeAction: type: string enum: - CLAMP - RESET - NONE PolicyAiMcpToolCall: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enabled: type: boolean mcpServer: $ref: "#/components/schemas/ConnectionConfigMcp" toolCallTimeoutMs: type: integer format: int32 parallelToolCalls: type: boolean allowedToolNames: type: array items: type: string identityAcl: type: array items: $ref: "#/components/schemas/IdentityAclRule" argumentConstraints: type: array items: $ref: "#/components/schemas/ArgumentConstraintRule" callQuota: $ref: "#/components/schemas/CallQuotaConfig" tokenForwardSettings: $ref: "#/components/schemas/AgentTokenForwardSettings" PolicyAiMcpToolInvoke: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enabled: type: boolean mcpServer: $ref: "#/components/schemas/ConnectionConfigMcp" targetToolName: type: string argumentsTemplate: type: string waitMode: type: string enum: - FIRE_AND_FORGET - SYNC_TO_VARIABLE outputVariableName: type: string callTimeoutMs: type: integer format: int32 identityAcl: type: array items: $ref: "#/components/schemas/IdentityAclRule" argumentConstraints: type: array items: $ref: "#/components/schemas/ArgumentConstraintRule" callQuota: $ref: "#/components/schemas/CallQuotaConfig" tokenForwardSettings: $ref: "#/components/schemas/AgentTokenForwardSettings" PolicyAiPiiMask: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: privacyDefinitions: type: array items: $ref: "#/components/schemas/PrivacyDefinition" decodeEncodedContent: type: boolean carryBufferSize: type: integer format: int32 unmaskMode: type: string enum: - NONE - RESPONSE_INLINE - UNMASK_API unmaskAllowedRoles: type: array items: type: string engine: type: string enum: - BUILTIN - BUILTIN_PLUS_EXTERNAL - EXTERNAL_ONLY failMode: type: string enum: - FAIL_OPEN - FAIL_CLOSED externalGuardrail: oneOf: - $ref: "#/components/schemas/HttpDlpGuardrailAdapter" - $ref: "#/components/schemas/LlmJudgeGuardrailAdapter" unmaskEnabled: type: boolean PolicyAiPromptDecorator: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enabled: type: boolean blocks: type: array items: $ref: "#/components/schemas/AiPromptDecoratorBlock" mergeIntoExistingSystem: type: boolean maxTotalChars: type: integer format: int32 PolicyAiPromptGuard: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enabled: type: boolean policyAiPromptGuardDefList: type: array items: $ref: "#/components/schemas/PolicyAiPromptGuardDef" latencyMode: type: string enum: - INLINE - ASYNC - SHADOW maxWaitMs: type: integer format: int32 decodeEncodedContent: type: boolean includeSystemPrompts: type: boolean includeAssistantPrompts: type: boolean includeToolPrompts: type: boolean engine: type: string enum: - BUILTIN - BUILTIN_PLUS_EXTERNAL - EXTERNAL_ONLY failMode: type: string enum: - FAIL_OPEN - FAIL_CLOSED externalGuardrail: oneOf: - $ref: "#/components/schemas/HttpDlpGuardrailAdapter" - $ref: "#/components/schemas/LlmJudgeGuardrailAdapter" PolicyAiPromptGuardDef: type: object properties: id: type: integer format: int32 presetId: type: string name: type: string ruleValue: type: string action: type: string enum: - BLOCK - FLAG - MASK category: type: string enabled: type: boolean description: type: string PolicyAiPromptTemplate: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enabled: type: boolean templates: type: array items: $ref: "#/components/schemas/AiPromptTemplateBinding" requestTemplateField: type: string requestParamsField: type: string onUnknownTemplate: type: string onMissingParam: type: string mergeMode: type: string stripTemplateFields: type: boolean maxExpandedChars: type: integer format: int32 PolicyAiRagInjection: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enabled: type: boolean vectorDbRef: type: string embeddingProviderRef: type: string collectionName: type: string topK: type: integer format: int32 similarityThreshold: type: number format: double injectionTemplate: type: string maxContextChars: type: integer format: int32 injectionMode: type: string noMatchBehavior: type: string injectionTargetVariable: $ref: "#/components/schemas/Variable" embeddingModelId: type: string embeddingDimension: type: integer format: int32 knowledgeBaseId: type: string requireResolvedProjectId: type: boolean resolvedEmbeddingModelId: type: string resolvedCollectionName: type: string PolicyAiSemanticCache: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enabled: type: boolean ttlSeconds: type: integer format: int32 cacheKeyStrategy: type: string anonymousHandling: type: string enum: - SKIP - SHARED_POOL - DENY cacheConnectionTimeoutInSeconds: type: integer format: int32 maxCacheableBytes: type: integer format: int32 vectorEnabled: type: boolean vectorDbRef: type: string embeddingProviderRef: type: string embeddingModelId: type: string embeddingDimension: type: integer format: int32 similarityThreshold: type: number format: double vectorTopK: type: integer format: int32 vectorCollectionName: type: string messageCountback: type: integer format: int32 includeSystemPrompts: type: boolean includeAssistantPrompts: type: boolean includeToolPrompts: type: boolean respectCacheControl: type: boolean vectorLayerConfigured: type: boolean resolvedEmbeddingModelId: type: string resolvedVectorCollectionName: type: string PolicyAiTokenRateLimit: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: proxyBudget: $ref: "#/components/schemas/AiTokenBudget" applyBy: $ref: "#/components/schemas/Variable" detailList: type: array items: $ref: "#/components/schemas/AiTokenRateLimitDetail" defaultReservationTtlSeconds: type: integer format: int32 cacheConnectionTimeoutInSeconds: type: integer format: int32 failOpenOnCacheError: type: boolean maxTokensPerRequest: type: integer format: int32 maxPromptChars: type: integer format: int32 overflowAction: type: string enum: - BLOCK - TRUNCATE_OLDEST PolicyAiTopicGuard: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: allowedTopics: type: array items: type: string similarityThreshold: type: number format: double action: type: string enum: - BLOCK - FLAG - MASK embeddingProviderRef: type: string embeddingModelId: type: string embeddingDimension: type: integer format: int32 latencyMode: type: string enum: - INLINE - ASYNC - SHADOW maxWaitMs: type: integer format: int32 failOpenOnError: type: boolean decodeEncodedContent: type: boolean includeSystemPrompts: type: boolean includeAssistantPrompts: type: boolean includeToolPrompts: type: boolean deniedTopics: type: array items: type: string deniedSimilarityThreshold: type: number format: double deniedAction: type: string enum: - BLOCK - FLAG - MASK engine: type: string enum: - BUILTIN - BUILTIN_PLUS_EXTERNAL - EXTERNAL_ONLY failMode: type: string enum: - FAIL_OPEN - FAIL_CLOSED externalGuardrail: oneOf: - $ref: "#/components/schemas/HttpDlpGuardrailAdapter" - $ref: "#/components/schemas/LlmJudgeGuardrailAdapter" streamingBufferMode: type: boolean PolicyAllowedHours: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: actionType: type: string enum: - ALLOW - RESTRICT zoneId: type: string hourWrapperList: type: array items: $ref: "#/components/schemas/HourWrapper" PolicyApiAuthentication: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: apiAuthCondExpressionList: type: array items: $ref: "#/components/schemas/ApiAuthenticationConditionalExpression" authType: type: string enum: - BASIC - BASE64 - API - DIGEST sendType: type: string enum: - HEADER - PARAM - BODY_MESSAGE - BODY_INJECTION messageContentType: type: string enum: - XML - JSON - ALL_BODY usernameFieldName: type: string authApiId: type: string passwordFieldName: type: string createdFieldName: type: string nonceFieldName: type: string bodyMessage: type: string bodyMessageInjectionPath: type: string usernameInjectionPath: type: string passwordInjectionPath: type: string createdInjectionPath: type: string nonceInjectionPath: type: string PolicyApiBasedQuota: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: quotaInterval: type: string enum: - ONE_HOUR - ONE_DAY - ONE_MONTH quotaCount: type: integer format: int32 intervalPeriodLength: type: integer format: int32 intervalWindowType: type: string enum: - FIXED - SLIDING applyBy: $ref: "#/components/schemas/Variable" cacheConnectionTimeoutInSeconds: type: integer format: int32 cacheErrorHandlingType: type: string enum: - FAIL - CONTINUE detailList: type: array items: $ref: "#/components/schemas/ApiBasedQuotaDetail" showRateLimitStatisticsInResponseHeader: type: boolean countingMode: type: string enum: - ALL_REQUESTS - ACCEPTED_ONLY limitChangeAction: type: string enum: - CLAMP - RESET - NONE PolicyApiBasedThrottling: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: messageCount: type: integer format: int32 intervalPeriodLength: type: integer format: int32 throttlingInterval: type: string enum: - ONE_SECOND - ONE_MINUTE intervalWindowType: type: string enum: - FIXED - SLIDING applyBy: $ref: "#/components/schemas/Variable" cacheConnectionTimeoutInSeconds: type: integer format: int32 cacheErrorHandlingType: type: string enum: - FAIL - CONTINUE showRateLimitStatisticsInResponseHeader: type: boolean detailList: type: array items: $ref: "#/components/schemas/ApiBasedThrottlingDetail" countingMode: type: string enum: - ALL_REQUESTS - ACCEPTED_ONLY limitChangeAction: type: string enum: - CLAMP - RESET - NONE PolicyAuthorizationMethodDef: type: object properties: apiMethodId: type: string methodCredentialRoleIdList: type: array items: type: string roleNameList: type: array items: type: string authorizationType: type: string enum: - ALL - ANY PolicyBase64Authentication: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enumPolicyAuthenticationType: type: string enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC authenticationLDAPId: type: string authenticationDatabaseId: type: string authenticationApiId: type: string authenticationOidcProviderId: type: string jwtRegeneratorServiceApiId: type: string proxyGroup: type: boolean enumPolicyAuthorizationType: type: string enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC authorizationLDAPId: type: string authorizationDatabaseId: type: string useSecretManagerForAuthorization: type: boolean authorizationApiId: type: string authorizationOidcProviderId: type: string enableAuthorization: type: boolean credentialRoleIdList: type: array items: type: string roleNameList: type: array items: type: string addRolesToHeader: type: boolean enableMethodAccess: type: boolean authorizationType: type: string enum: - ALL - ANY policyAuthorizationMethodDefList: type: array items: $ref: "#/components/schemas/PolicyAuthorizationMethodDef" checkClientIpAddress: type: boolean validateACLForIssuer: type: boolean rolesHeaderName: type: string addUserToHeader: type: boolean userHeaderName: type: string setUsernameOrKey: type: boolean clearAuth: type: boolean checkPassword: type: boolean addRolesFromAuthorizationService: type: boolean rolesFromAuthorizationServiceHeaderName: type: string usernameVar: $ref: "#/components/schemas/Variable" PolicyBasicAuthentication: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enumPolicyAuthenticationType: type: string enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC authenticationLDAPId: type: string authenticationDatabaseId: type: string authenticationApiId: type: string authenticationOidcProviderId: type: string jwtRegeneratorServiceApiId: type: string proxyGroup: type: boolean enumPolicyAuthorizationType: type: string enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC authorizationLDAPId: type: string authorizationDatabaseId: type: string useSecretManagerForAuthorization: type: boolean authorizationApiId: type: string authorizationOidcProviderId: type: string enableAuthorization: type: boolean credentialRoleIdList: type: array items: type: string roleNameList: type: array items: type: string addRolesToHeader: type: boolean enableMethodAccess: type: boolean authorizationType: type: string enum: - ALL - ANY policyAuthorizationMethodDefList: type: array items: $ref: "#/components/schemas/PolicyAuthorizationMethodDef" checkClientIpAddress: type: boolean validateACLForIssuer: type: boolean rolesHeaderName: type: string addUserToHeader: type: boolean userHeaderName: type: string setUsernameOrKey: type: boolean clearAuth: type: boolean checkPassword: type: boolean addRolesFromAuthorizationService: type: boolean rolesFromAuthorizationServiceHeaderName: type: string usernameVar: $ref: "#/components/schemas/Variable" passwordVar: $ref: "#/components/schemas/Variable" bearerApiKey: type: boolean PolicyBusinessRule: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: actionList: type: array items: $ref: "#/components/schemas/Action" PolicyCache: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: operationType: type: string enum: - LOOKUP - POPULATE - INVALIDATE cacheStorageType: type: string enum: - LOCAL - DISTRIBUTED keyPrefix: type: string keyVariableList: type: array items: $ref: "#/components/schemas/Variable" targetVariable: $ref: "#/components/schemas/Variable" sourceVariable: $ref: "#/components/schemas/Variable" capacity: type: integer format: int32 ttl: type: integer format: int32 cacheNullValues: type: boolean enableDynamicTtl: type: boolean dynamicTtlVariable: $ref: "#/components/schemas/Variable" dynamicTtlSourceType: type: string enum: - ISO_8601_DATETIME - CUSTOM_DATETIME - EPOCH_SECONDS - EPOCH_MILLISECONDS - EXPIRES_IN_SECONDS - EXPIRES_IN_MILLISECONDS - TTL_STRING dynamicTtlCustomDatePattern: type: string dynamicTtlIsJwt: type: boolean dynamicTtlJwtClaimName: type: string dynamicTtlOffsetSeconds: type: integer format: int32 fallbackTtl: type: integer format: int32 cacheErrorAction: type: string enum: - CONTINUE - STOP cacheConnectionTimeoutInSeconds: type: integer format: int32 PolicyClientBanner: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: clientIdentityVariableList: type: array items: $ref: "#/components/schemas/Variable" thresholdWindowInSeconds: type: integer format: int32 thresholdCountPerWindow: type: integer format: int32 thresholdCalculationType: type: string enum: - COUNT - PERCENT banTimeInSeconds: type: integer format: int32 enableRetryAfterHeader: type: boolean ignoreWhenKeyIsEmpty: type: boolean assertionCondition: $ref: "#/components/schemas/PolicyCondition" PolicyContentFilter: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: policyContentFilterDefList: type: array items: $ref: "#/components/schemas/PolicyContentFilterDef" PolicyContentFilterDef: type: object properties: id: type: integer format: int32 name: type: string ruleValue: type: string headerActive: type: boolean bodyActive: type: boolean paramActive: type: boolean action: type: string enum: - BLOCK - DELETE contentType: type: string enum: - XML - JSON - ALL_BODY content: type: string PolicyDecryption: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: policyDecryptionDefList: type: array items: $ref: "#/components/schemas/PolicyDecryptionDef" PolicyDecryptionDef: type: object properties: id: type: string description: type: string sourceVar: $ref: "#/components/schemas/Variable" targetVar: $ref: "#/components/schemas/Variable" enumKeyCertificateType: type: string enum: - KEY - CERTIFICATE cryptoKeyInfoId: type: string cipherAlgorithm: type: string enum: - AES_CBC_NoPadding - AES_CBC_PKCS5Padding - AES_ECB_NoPadding - AES_ECB_PKCS5Padding - DES_CBC_NoPadding - DES_CBC_PKCS5Padding - DES_ECB_NoPadding - DES_ECB_PKCS5Padding - DESede_CBC_NoPadding - DESede_CBC_PKCS5Padding - DESede_ECB_NoPadding - DESede_ECB_PKCS5Padding - RSA_ECB_PKCS1Padding - RSA_ECB_OAEPWithSHA_1AndMGF1Padding - RSA_ECB_OAEPWithSHA_256AndMGF1Padding cipherAlgorithmVar: $ref: "#/components/schemas/Variable" ivExists: type: boolean ivVar: $ref: "#/components/schemas/Variable" ivEncodingType: type: string enum: - BASE64 - HEXADECIMAL inputEncodingType: type: string enum: - BASE64 - HEXADECIMAL certificateId: type: string PolicyDigestAuthentication: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enumPolicyAuthenticationType: type: string enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC authenticationLDAPId: type: string authenticationDatabaseId: type: string authenticationApiId: type: string authenticationOidcProviderId: type: string jwtRegeneratorServiceApiId: type: string proxyGroup: type: boolean enumPolicyAuthorizationType: type: string enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC authorizationLDAPId: type: string authorizationDatabaseId: type: string useSecretManagerForAuthorization: type: boolean authorizationApiId: type: string authorizationOidcProviderId: type: string enableAuthorization: type: boolean credentialRoleIdList: type: array items: type: string roleNameList: type: array items: type: string addRolesToHeader: type: boolean enableMethodAccess: type: boolean authorizationType: type: string enum: - ALL - ANY policyAuthorizationMethodDefList: type: array items: $ref: "#/components/schemas/PolicyAuthorizationMethodDef" checkClientIpAddress: type: boolean validateACLForIssuer: type: boolean rolesHeaderName: type: string addUserToHeader: type: boolean userHeaderName: type: string setUsernameOrKey: type: boolean clearAuth: type: boolean checkPassword: type: boolean addRolesFromAuthorizationService: type: boolean rolesFromAuthorizationServiceHeaderName: type: string usernameVar: $ref: "#/components/schemas/Variable" passwordVar: $ref: "#/components/schemas/Variable" nonceVar: $ref: "#/components/schemas/Variable" createdVar: $ref: "#/components/schemas/Variable" PolicyDigitalSign: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: policyDigitalSignDefList: type: array items: $ref: "#/components/schemas/PolicyDigitalSignDef" PolicyDigitalSignDef: type: object properties: id: type: string description: type: string sourceVar: $ref: "#/components/schemas/Variable" signatureVar: $ref: "#/components/schemas/Variable" signatureAlgorithm: type: string enum: - NONEwithRSA - MD2withRSA - MD5withRSA - NONEwithDSA - SHA1withRSA - SHA224withRSA - SHA256withRSA - SHA384withRSA - SHA512withRSA - SHA1withDSA - SHA224withDSA - SHA256withDSA - NONEwithECDSA - SHA1withECDSA - SHA224withECDSA - SHA256withECDSA - SHA384withECDSA - SHA512withECDSA signatureAlgorithmVar: $ref: "#/components/schemas/Variable" enumKeyCertificateType: type: string enum: - KEY - CERTIFICATE cryptoKeyInfoId: type: string certificateId: type: string outputEncodingType: type: string enum: - BASE64 - HEXADECIMAL PolicyDigitalSignVerification: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: policyDigitalSignVerificationDefList: type: array items: $ref: "#/components/schemas/PolicyDigitalSignVerificationDef" PolicyDigitalSignVerificationDef: type: object properties: id: type: string description: type: string enumKeyCertificateType: type: string enum: - KEY - CERTIFICATE certificateId: type: string cryptoKeyInfoId: type: string sourceVar: $ref: "#/components/schemas/Variable" signatureVar: $ref: "#/components/schemas/Variable" signatureAlgorithm: type: string enum: - NONEwithRSA - MD2withRSA - MD5withRSA - NONEwithDSA - SHA1withRSA - SHA224withRSA - SHA256withRSA - SHA384withRSA - SHA512withRSA - SHA1withDSA - SHA224withDSA - SHA256withDSA - NONEwithECDSA - SHA1withECDSA - SHA224withECDSA - SHA256withECDSA - SHA384withECDSA - SHA512withECDSA signatureAlgorithmVar: $ref: "#/components/schemas/Variable" inputEncodingType: type: string enum: - BASE64 - HEXADECIMAL PolicyEncryption: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: policyEncryptionDefList: type: array items: $ref: "#/components/schemas/PolicyEncryptionDef" PolicyEncryptionDef: type: object properties: id: type: string description: type: string sourceVar: $ref: "#/components/schemas/Variable" targetVar: $ref: "#/components/schemas/Variable" cryptoKeyInfoId: type: string certificateId: type: string cipherAlgorithm: type: string enum: - AES_CBC_NoPadding - AES_CBC_PKCS5Padding - AES_ECB_NoPadding - AES_ECB_PKCS5Padding - DES_CBC_NoPadding - DES_CBC_PKCS5Padding - DES_ECB_NoPadding - DES_ECB_PKCS5Padding - DESede_CBC_NoPadding - DESede_CBC_PKCS5Padding - DESede_ECB_NoPadding - DESede_ECB_PKCS5Padding - RSA_ECB_PKCS1Padding - RSA_ECB_OAEPWithSHA_1AndMGF1Padding - RSA_ECB_OAEPWithSHA_256AndMGF1Padding cipherAlgorithmVar: $ref: "#/components/schemas/Variable" createIV: type: boolean ivEncodingType: type: string enum: - BASE64 - HEXADECIMAL ivVar: $ref: "#/components/schemas/Variable" outputEncodingType: type: string enum: - BASE64 - HEXADECIMAL enumKeyCertificateType: type: string enum: - KEY - CERTIFICATE PolicyEndpointRateLimit: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: apiProxyGroupId: type: string apiProxyId: type: string endpointId: type: string endpointName: type: string permittedMessageCount: type: integer format: int32 timeIntervalPeriodLength: type: integer format: int32 timeInterval: type: string enum: - ONE_SECOND - ONE_MINUTE - ONE_HOUR - ONE_DAY - ONE_MONTH targetVariable: $ref: "#/components/schemas/Variable" cacheConnectionTimeoutInSeconds: type: integer format: int32 cacheErrorHandlingType: type: string enum: - FAIL - CONTINUE timeIntervalWindowType: type: string enum: - FIXED - SLIDING targetIdentityValue: type: string showRateLimitStatisticsInResponseHeader: type: boolean enabled: type: boolean countingMode: type: string enum: - ALL_REQUESTS - ACCEPTED_ONLY limitChangeAction: type: string enum: - CLAMP - RESET - NONE PolicyGroup: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: makeDefault: type: boolean targetPipeline: type: string enum: - REQUEST - RESPONSE - ERROR order: type: integer format: int32 canBeDeleted: type: boolean publicKey: type: string secretKey: type: string PolicyIpBlack: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: useApinizerDefault: type: boolean ipList: type: array items: type: string ipGroupIdList: type: array items: type: string geoLocationDataList: type: array items: $ref: "#/components/schemas/GeoLocationData" variable: $ref: "#/components/schemas/Variable" PolicyIpWhite: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: useApinizerDefault: type: boolean ipList: type: array items: type: string ipGroupIdList: type: array items: type: string geoLocationDataList: type: array items: $ref: "#/components/schemas/GeoLocationData" variable: $ref: "#/components/schemas/Variable" PolicyJoseImplementation: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enumPolicyAuthenticationType: type: string enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC authenticationLDAPId: type: string authenticationDatabaseId: type: string authenticationApiId: type: string authenticationOidcProviderId: type: string jwtRegeneratorServiceApiId: type: string proxyGroup: type: boolean enumPolicyAuthorizationType: type: string enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC authorizationLDAPId: type: string authorizationDatabaseId: type: string useSecretManagerForAuthorization: type: boolean authorizationApiId: type: string authorizationOidcProviderId: type: string enableAuthorization: type: boolean credentialRoleIdList: type: array items: type: string roleNameList: type: array items: type: string addRolesToHeader: type: boolean enableMethodAccess: type: boolean authorizationType: type: string enum: - ALL - ANY policyAuthorizationMethodDefList: type: array items: $ref: "#/components/schemas/PolicyAuthorizationMethodDef" checkClientIpAddress: type: boolean validateACLForIssuer: type: boolean rolesHeaderName: type: string addUserToHeader: type: boolean userHeaderName: type: string setUsernameOrKey: type: boolean clearAuth: type: boolean checkPassword: type: boolean addRolesFromAuthorizationService: type: boolean rolesFromAuthorizationServiceHeaderName: type: string joseTarget: type: string enum: - BODY - AUTHORIZATION_HEADER - CHOOSE_FROM_VARIABLE - EMPTY joseTargetVariable: $ref: "#/components/schemas/Variable" jwtClaimsClaim: type: string escapeJsonString: type: boolean addIssueTime: type: boolean issueTimeOffset: type: integer format: int32 addJWTID: type: boolean addIssuer: type: boolean issuer: type: string addAudience: type: boolean audienceList: type: array items: type: string addSubject: type: boolean subject: type: string addTypeToHeader: type: boolean typeValue: type: string addExpirationTime: type: boolean expirationTimeValue: type: integer format: int32 expirationTimeUnit: type: string enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS expirationFromIssueTime: type: boolean additionalClaimMap: type: object additionalProperties: $ref: "#/components/schemas/MapValue" sign: type: boolean signByIssuer: type: boolean jwkIdForValidationAndSign: type: string jwkForValidationAndSign: $ref: "#/components/schemas/Jwk" keySourceModeForValidationAndSign: type: string enum: - EMBEDDED - DYNAMIC_HTTP httpRequestForValidationAndSign: $ref: "#/components/schemas/TestCaseRequest" keyExtractionVariableForValidationAndSign: $ref: "#/components/schemas/Variable" keyFormatForValidationAndSign: type: string enum: - AUTO_DETECT - PUBLIC_KEY - PRIVATE_KEY - CERTIFICATE - JWK_JSON keyAlgorithmForValidationAndSign: type: string enum: - NONE - RS256 - RS384 - RS512 - PS256 - PS384 - PS512 - RSA1_5 - RSA_OAEP - RSA_OAEP_256 - RSA_OAEP_384 - RSA_OAEP_512 - ES256 - ES384 - ES512 - ES256K - ECDH_ES - ECDH_ES_A128KW - ECDH_ES_A192KW - ECDH_ES_A256KW - ECDH_1PU - ECDH_1PU_A128KW - ECDH_1PU_A192KW - ECDH_1PU_A256KW - HS256 - HS384 - HS512 - A128KW - A192KW - A256KW - A128GCMKW - A192GCMKW - A256GCMKW - DIR - PBES2_HS256_A128KW - PBES2_HS384_A192KW - PBES2_HS512_A256KW - EdDSA keyKidForValidationAndSign: type: string enableCacheForValidationAndSign: type: boolean cacheByVariableForValidationAndSign: $ref: "#/components/schemas/Variable" keyCacheTtlForValidationAndSign: type: integer format: int32 keyCacheCapacityForValidationAndSign: type: integer format: int32 keyRespectCacheInvalidationHeadersForValidationAndSign: type: boolean keyCacheStorageTypeForValidationAndSign: type: string enum: - LOCAL - DISTRIBUTED retryOnKeyErrorForValidationAndSign: type: boolean httpRetrySettingsForValidationAndSign: $ref: "#/components/schemas/RetrySettings" invalidateCacheOnValidationErrorForValidationAndSign: type: boolean keyCacheConnectionTimeoutForValidationAndSign: type: integer format: int32 keyCacheErrorHandlingTypeForValidationAndSign: type: string enum: - FAIL - CONTINUE encrypt: type: boolean encryptByIssuer: type: boolean jwkIdForDecryptionAndEncryption: type: string jwkForDecryptionAndEncryption: $ref: "#/components/schemas/Jwk" keySourceModeForDecryptionAndEncryption: type: string enum: - EMBEDDED - DYNAMIC_HTTP httpRequestForDecryptionAndEncryption: $ref: "#/components/schemas/TestCaseRequest" keyExtractionVariableForDecryptionAndEncryption: $ref: "#/components/schemas/Variable" keyFormatForDecryptionAndEncryption: type: string enum: - AUTO_DETECT - PUBLIC_KEY - PRIVATE_KEY - CERTIFICATE - JWK_JSON keyAlgorithmForDecryptionAndEncryption: type: string enum: - NONE - RS256 - RS384 - RS512 - PS256 - PS384 - PS512 - RSA1_5 - RSA_OAEP - RSA_OAEP_256 - RSA_OAEP_384 - RSA_OAEP_512 - ES256 - ES384 - ES512 - ES256K - ECDH_ES - ECDH_ES_A128KW - ECDH_ES_A192KW - ECDH_ES_A256KW - ECDH_1PU - ECDH_1PU_A128KW - ECDH_1PU_A192KW - ECDH_1PU_A256KW - HS256 - HS384 - HS512 - A128KW - A192KW - A256KW - A128GCMKW - A192GCMKW - A256GCMKW - DIR - PBES2_HS256_A128KW - PBES2_HS384_A192KW - PBES2_HS512_A256KW - EdDSA keyKidForDecryptionAndEncryption: type: string enableCacheForDecryptionAndEncryption: type: boolean cacheByVariableForDecryptionAndEncryption: $ref: "#/components/schemas/Variable" keyCacheTtlForDecryptionAndEncryption: type: integer format: int32 keyCacheCapacityForDecryptionAndEncryption: type: integer format: int32 keyRespectCacheInvalidationHeadersForDecryptionAndEncryption: type: boolean keyCacheStorageTypeForDecryptionAndEncryption: type: string enum: - LOCAL - DISTRIBUTED retryOnKeyErrorForDecryptionAndEncryption: type: boolean httpRetrySettingsForDecryptionAndEncryption: $ref: "#/components/schemas/RetrySettings" invalidateCacheOnValidationErrorForDecryptionAndEncryption: type: boolean keyCacheConnectionTimeoutForDecryptionAndEncryption: type: integer format: int32 keyCacheErrorHandlingTypeForDecryptionAndEncryption: type: string enum: - FAIL - CONTINUE encryptionMethod: type: string enum: - A128CBC_HS256 - A192CBC_HS384 - A256CBC_HS512 - A128CBC_HS256_DEPRECATED - A256CBC_HS512_DEPRECATED - A128GCM - A192GCM - A256GCM - XC20P encodedClaimsTargetForDataManipulation: type: string enum: - BODY - AUTHORIZATION_HEADER - CHOOSE_FROM_VARIABLE decodedClaimsTargetVariableForDataManipulation: $ref: "#/components/schemas/Variable" enableDpop: type: boolean dpopProofHeaderName: type: string dpopHtuSource: type: string enum: - MANUAL - BACKEND_ROUTING_ADDRESS dpopHtu: type: string dpopHtm: type: string dpopAddAth: type: boolean dpopAccessTokenSource: type: string enum: - BODY - AUTHORIZATION_HEADER - CHOOSE_FROM_VARIABLE dpopAccessTokenVariable: $ref: "#/components/schemas/Variable" dpopRewriteAuthorizationScheme: type: boolean dpopNonceVariable: $ref: "#/components/schemas/Variable" PolicyJoseValidation: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enumPolicyAuthenticationType: type: string enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC authenticationLDAPId: type: string authenticationDatabaseId: type: string authenticationApiId: type: string authenticationOidcProviderId: type: string jwtRegeneratorServiceApiId: type: string proxyGroup: type: boolean enumPolicyAuthorizationType: type: string enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC authorizationLDAPId: type: string authorizationDatabaseId: type: string useSecretManagerForAuthorization: type: boolean authorizationApiId: type: string authorizationOidcProviderId: type: string enableAuthorization: type: boolean credentialRoleIdList: type: array items: type: string roleNameList: type: array items: type: string addRolesToHeader: type: boolean enableMethodAccess: type: boolean authorizationType: type: string enum: - ALL - ANY policyAuthorizationMethodDefList: type: array items: $ref: "#/components/schemas/PolicyAuthorizationMethodDef" checkClientIpAddress: type: boolean validateACLForIssuer: type: boolean rolesHeaderName: type: string addUserToHeader: type: boolean userHeaderName: type: string setUsernameOrKey: type: boolean clearAuth: type: boolean checkPassword: type: boolean addRolesFromAuthorizationService: type: boolean rolesFromAuthorizationServiceHeaderName: type: string joseTarget: type: string enum: - BODY - AUTHORIZATION_HEADER - CHOOSE_FROM_VARIABLE joseTargetVariable: $ref: "#/components/schemas/Variable" clientSourcePart: type: string enum: - HEADER - CLAIMS - VARIABLE clientSourceVariable: $ref: "#/components/schemas/Variable" clientFieldname: type: string acceptedAudienceList: type: array items: type: string exactMatchClaimMap: type: object additionalProperties: $ref: "#/components/schemas/MapValue" requiredClaimList: type: array items: type: string prohibitedClaimList: type: array items: type: string validateExpirationTime: type: boolean clockSkewTolerance: type: integer format: int32 clockSkewToleranceUnit: type: string enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS validateIssueTime: type: boolean maxIssueTimeAge: type: integer format: int32 maxIssueTimeAgeUnit: type: string enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS allowFutureIssueTime: type: boolean validateNotBefore: type: boolean enableDpop: type: boolean dpopProofHeaderName: type: string dpopMaxProofAge: type: integer format: int32 dpopMaxProofAgeUnit: type: string enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS dpopValidateHtm: type: boolean dpopValidateHtu: type: boolean dpopExpectedHtu: type: string dpopValidateCnfBinding: type: boolean dpopValidateAth: type: boolean dpopValidateJti: type: boolean dpopJtiCacheTtl: type: integer format: int32 dpopCacheConnectionTimeout: type: integer format: int32 dpopCacheErrorHandlingType: type: string enum: - FAIL - CONTINUE validateSign: type: boolean validateByIssuer: type: boolean validateACLforIssuer: type: boolean jwkIdForValidationAndSign: type: string jwkForValidationAndSign: $ref: "#/components/schemas/Jwk" keySourceModeForValidationAndSign: type: string enum: - EMBEDDED - DYNAMIC_HTTP httpRequestForValidationAndSign: $ref: "#/components/schemas/TestCaseRequest" keyExtractionVariableForValidationAndSign: $ref: "#/components/schemas/Variable" keyFormatForValidationAndSign: type: string enum: - AUTO_DETECT - PUBLIC_KEY - PRIVATE_KEY - CERTIFICATE - JWK_JSON keyAlgorithmForValidationAndSign: type: string enum: - NONE - RS256 - RS384 - RS512 - PS256 - PS384 - PS512 - RSA1_5 - RSA_OAEP - RSA_OAEP_256 - RSA_OAEP_384 - RSA_OAEP_512 - ES256 - ES384 - ES512 - ES256K - ECDH_ES - ECDH_ES_A128KW - ECDH_ES_A192KW - ECDH_ES_A256KW - ECDH_1PU - ECDH_1PU_A128KW - ECDH_1PU_A192KW - ECDH_1PU_A256KW - HS256 - HS384 - HS512 - A128KW - A192KW - A256KW - A128GCMKW - A192GCMKW - A256GCMKW - DIR - PBES2_HS256_A128KW - PBES2_HS384_A192KW - PBES2_HS512_A256KW - EdDSA keyKidForValidationAndSign: type: string enableCacheForValidationAndSign: type: boolean cacheByVariableForValidationAndSign: $ref: "#/components/schemas/Variable" keyCacheTtlForValidationAndSign: type: integer format: int32 keyCacheCapacityForValidationAndSign: type: integer format: int32 keyRespectCacheInvalidationHeadersForValidationAndSign: type: boolean keyCacheStorageTypeForValidationAndSign: type: string enum: - LOCAL - DISTRIBUTED retryOnKeyErrorForValidationAndSign: type: boolean httpRetrySettingsForValidationAndSign: $ref: "#/components/schemas/RetrySettings" invalidateCacheOnValidationErrorForValidationAndSign: type: boolean keyCacheConnectionTimeoutForValidationAndSign: type: integer format: int32 keyCacheErrorHandlingTypeForValidationAndSign: type: string enum: - FAIL - CONTINUE decrypt: type: boolean decryptByIssuer: type: boolean jwkIdForDecryptionAndEncryption: type: string jwkForDecryptionAndEncryption: $ref: "#/components/schemas/Jwk" keySourceModeForDecryptionAndEncryption: type: string enum: - EMBEDDED - DYNAMIC_HTTP httpRequestForDecryptionAndEncryption: $ref: "#/components/schemas/TestCaseRequest" keyExtractionVariableForDecryptionAndEncryption: $ref: "#/components/schemas/Variable" keyFormatForDecryptionAndEncryption: type: string enum: - AUTO_DETECT - PUBLIC_KEY - PRIVATE_KEY - CERTIFICATE - JWK_JSON keyAlgorithmForDecryptionAndEncryption: type: string enum: - NONE - RS256 - RS384 - RS512 - PS256 - PS384 - PS512 - RSA1_5 - RSA_OAEP - RSA_OAEP_256 - RSA_OAEP_384 - RSA_OAEP_512 - ES256 - ES384 - ES512 - ES256K - ECDH_ES - ECDH_ES_A128KW - ECDH_ES_A192KW - ECDH_ES_A256KW - ECDH_1PU - ECDH_1PU_A128KW - ECDH_1PU_A192KW - ECDH_1PU_A256KW - HS256 - HS384 - HS512 - A128KW - A192KW - A256KW - A128GCMKW - A192GCMKW - A256GCMKW - DIR - PBES2_HS256_A128KW - PBES2_HS384_A192KW - PBES2_HS512_A256KW - EdDSA keyKidForDecryptionAndEncryption: type: string enableCacheForDecryptionAndEncryption: type: boolean cacheByVariableForDecryptionAndEncryption: $ref: "#/components/schemas/Variable" keyCacheTtlForDecryptionAndEncryption: type: integer format: int32 keyCacheCapacityForDecryptionAndEncryption: type: integer format: int32 keyRespectCacheInvalidationHeadersForDecryptionAndEncryption: type: boolean keyCacheStorageTypeForDecryptionAndEncryption: type: string enum: - LOCAL - DISTRIBUTED retryOnKeyErrorForDecryptionAndEncryption: type: boolean httpRetrySettingsForDecryptionAndEncryption: $ref: "#/components/schemas/RetrySettings" invalidateCacheOnValidationErrorForDecryptionAndEncryption: type: boolean keyCacheConnectionTimeoutForDecryptionAndEncryption: type: integer format: int32 keyCacheErrorHandlingTypeForDecryptionAndEncryption: type: string enum: - FAIL - CONTINUE stripAndDecode: type: string enum: - NONE - ALL - PARTIAL jwtClaimsToDecode: type: string decodedClaimsTargetForDataManipulation: type: string enum: - BODY - AUTHORIZATION_HEADER - CHOOSE_FROM_VARIABLE decodedClaimsTargetVariableForDataManipulation: $ref: "#/components/schemas/Variable" PolicyJsonSchemaValidation: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: pathForBody: type: string validateAgainstSpec: type: boolean showFirstErrorOnly: type: boolean openApiValidationMode: type: string enum: - METHOD_BASED - ALL_SCHEMAS schemaDefinitionList: type: array items: $ref: "#/components/schemas/ApiGwSchemaDefinition" PolicyJsonTransformation: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: transformationType: type: string enum: - JSON2JSON - JSON2XML joltValue: type: string jsonToXmlIgnoreNull: type: boolean jsonToXmlIgnoreEmpty: type: boolean jsonToXmlUseNullForNil: type: boolean jsonToXmlUnwrapElement: type: boolean PolicyJwtAuthentication: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enumPolicyAuthenticationType: type: string enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC authenticationLDAPId: type: string authenticationDatabaseId: type: string authenticationApiId: type: string authenticationOidcProviderId: type: string jwtRegeneratorServiceApiId: type: string proxyGroup: type: boolean enumPolicyAuthorizationType: type: string enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC authorizationLDAPId: type: string authorizationDatabaseId: type: string useSecretManagerForAuthorization: type: boolean authorizationApiId: type: string authorizationOidcProviderId: type: string enableAuthorization: type: boolean credentialRoleIdList: type: array items: type: string roleNameList: type: array items: type: string addRolesToHeader: type: boolean enableMethodAccess: type: boolean authorizationType: type: string enum: - ALL - ANY policyAuthorizationMethodDefList: type: array items: $ref: "#/components/schemas/PolicyAuthorizationMethodDef" checkClientIpAddress: type: boolean validateACLForIssuer: type: boolean rolesHeaderName: type: string addUserToHeader: type: boolean userHeaderName: type: string setUsernameOrKey: type: boolean clearAuth: type: boolean checkPassword: type: boolean addRolesFromAuthorizationService: type: boolean rolesFromAuthorizationServiceHeaderName: type: string tokenNeverExpires: type: boolean tokenExpiresInAmount: type: integer format: int64 tokenExpiresInUnit: type: string enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS refreshTokenAllowed: type: boolean refreshTokenCount: type: integer format: int32 refreshTokenExpiresInAmount: type: integer format: int64 refreshTokenExpiresInUnit: type: string enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS allowUrlParameters: type: boolean managedFromThisPolicy: type: boolean grantType: type: string enum: - CLIENT_CREDENTIALS - PASSWORD grantTypes: type: array items: type: string jwtSignatureAlgorithm: type: string delegationAcceptance: $ref: "#/components/schemas/DelegationAcceptance" PolicyLog: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: executionType: type: string enum: - SYNC - ASYNC connectorRefs: type: array items: $ref: "#/components/schemas/LogPolicyConnectorRef" logCorrelationId: type: boolean logEnvironmentInfo: type: boolean logApiProxyInfo: type: boolean logUserInfo: type: boolean logHttpContext: type: boolean logHeaders: type: boolean logParameters: type: boolean logBody: type: boolean logResultInfo: type: boolean bodyLogMode: type: string enum: - FULL - PARTIAL bodyMaxBytes: type: integer format: int32 enablePrivacy: type: boolean privacyDefinitionList: type: array items: $ref: "#/components/schemas/PrivacyDefinition" sync: type: boolean PolicyMTLSAuthentication: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enumPolicyAuthenticationType: type: string enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC authenticationLDAPId: type: string authenticationDatabaseId: type: string authenticationApiId: type: string authenticationOidcProviderId: type: string jwtRegeneratorServiceApiId: type: string proxyGroup: type: boolean enumPolicyAuthorizationType: type: string enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC authorizationLDAPId: type: string authorizationDatabaseId: type: string useSecretManagerForAuthorization: type: boolean authorizationApiId: type: string authorizationOidcProviderId: type: string enableAuthorization: type: boolean credentialRoleIdList: type: array items: type: string roleNameList: type: array items: type: string addRolesToHeader: type: boolean enableMethodAccess: type: boolean authorizationType: type: string enum: - ALL - ANY policyAuthorizationMethodDefList: type: array items: $ref: "#/components/schemas/PolicyAuthorizationMethodDef" checkClientIpAddress: type: boolean validateACLForIssuer: type: boolean rolesHeaderName: type: string addUserToHeader: type: boolean userHeaderName: type: string setUsernameOrKey: type: boolean clearAuth: type: boolean checkPassword: type: boolean addRolesFromAuthorizationService: type: boolean rolesFromAuthorizationServiceHeaderName: type: string validateCertificate: type: boolean validateCertificatesIssuer: type: boolean identitySource: type: string enum: - SUBJECT - ISSUER - SUBJECT_OR_ISSUER PolicyMaxMessageSize: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: size: type: integer format: int64 PolicyMessageBuilder: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: rowList: type: array items: $ref: "#/components/schemas/MessageBuilderRow" PolicyMinMessageSize: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: size: type: integer format: int64 PolicyOIDC: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enumPolicyAuthenticationType: type: string enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC authenticationLDAPId: type: string authenticationDatabaseId: type: string authenticationApiId: type: string authenticationOidcProviderId: type: string jwtRegeneratorServiceApiId: type: string proxyGroup: type: boolean enumPolicyAuthorizationType: type: string enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC authorizationLDAPId: type: string authorizationDatabaseId: type: string useSecretManagerForAuthorization: type: boolean authorizationApiId: type: string authorizationOidcProviderId: type: string enableAuthorization: type: boolean credentialRoleIdList: type: array items: type: string roleNameList: type: array items: type: string addRolesToHeader: type: boolean enableMethodAccess: type: boolean authorizationType: type: string enum: - ALL - ANY policyAuthorizationMethodDefList: type: array items: $ref: "#/components/schemas/PolicyAuthorizationMethodDef" checkClientIpAddress: type: boolean validateACLForIssuer: type: boolean rolesHeaderName: type: string addUserToHeader: type: boolean userHeaderName: type: string setUsernameOrKey: type: boolean clearAuth: type: boolean checkPassword: type: boolean addRolesFromAuthorizationService: type: boolean rolesFromAuthorizationServiceHeaderName: type: string issuer: type: string authorizationEndpoint: type: string tokenEndpoint: type: string userInfoEndpoint: type: string jwksEndpoint: type: string clientId: type: string clientSecret: type: string redirectUri: type: string discoveryUrl: type: string oidcProviderId: type: string flowType: type: string enum: - AUTHORIZATION_CODE - IMPLICIT - HYBRID - OAUTH2_AUTHORIZATION_CODE enablePKCE: type: boolean scopes: type: array items: type: string additionalAuthParams: type: object additionalProperties: type: string authenticationMode: type: string enum: - EXTERNAL_ONLY - INTERNAL_ONLY - HYBRID requireBothInHybrid: type: boolean validateIdToken: type: boolean validateAccessToken: type: boolean validateJwtLocally: type: boolean validateJwtSignature: type: boolean expectedJwtAuthSigningAlgs: type: array items: type: string callUserInfoEndpoint: type: boolean tokenCacheTimeoutSeconds: type: integer format: int32 jwkCacheTimeoutSeconds: type: integer format: int32 usernameClaimPath: type: string emailClaimPath: type: string displayNameClaimPath: type: string roleMappings: type: array items: $ref: "#/components/schemas/OIDCRoleMapping" sessionCookieName: type: string sessionTimeoutMinutes: type: integer format: int32 enableStateValidation: type: boolean enableNonceValidation: type: boolean introspectionEndpoint: type: string validateIssuer: type: boolean expectedIssuer: type: string validateAudience: type: boolean expectedAudience: type: array items: type: string sessionStorageType: type: string enum: - CACHE - COOKIE tempSessionStorageType: type: string enum: - CACHE - COOKIE enableSessionCompression: type: boolean maxSessionCookieSizeBytes: type: integer format: int32 sessionCookieSecure: type: boolean connectionTimeoutSeconds: type: integer format: int32 readTimeoutSeconds: type: integer format: int32 maxClockSkewSeconds: type: integer format: int32 errorRedirectUrl: type: string errorMessageTemplate: type: string includeErrorDetails: type: boolean customHeaders: type: object additionalProperties: type: string userAgent: type: string enableDebugLogging: type: boolean customClaimMappings: type: array items: $ref: "#/components/schemas/CustomClaimMapping" disableUserinfoHeader: type: boolean userinfoHeaderName: type: string addIdTokenHeader: type: boolean idTokenHeaderName: type: string logoutPath: type: string postLogoutRedirectUri: type: string enableIdTokenHintInLogout: type: boolean ignoreRequestMethods: type: array items: type: string ignoreRequestPatterns: type: string authAcceptTokenAs: type: string enum: - header - cookie - header_cookie addTokenToCookie: type: boolean accessTokenCookieName: type: string enableIdTokenCookie: type: boolean idTokenCookieName: type: string enableRefreshTokenCookie: type: boolean refreshTokenCookieName: type: string bearerJwtAuthEnable: type: boolean validateAccessTokenWithApi: type: boolean sessionAbsoluteTimeoutSeconds: type: integer format: int32 loginFlowTimeoutSeconds: type: integer format: int32 setCookieDelimiter: type: string deprecated: true realm: type: string redirectAfterLogoutUri: type: string oauth2ResourceEndpoint: type: string oauth2AuthParams: type: object additionalProperties: type: string oauth2TokenParams: type: object additionalProperties: type: string oauth2ResourceParams: type: object additionalProperties: type: string oauth2UsernameExtractionPath: type: string enableHtmlResponsePages: type: boolean applicationTitle: type: string successPageUrl: type: string enableSuccessPageCall: type: boolean backendRequestHeaders: type: object additionalProperties: type: string loginPageTemplate: type: string errorPageTemplate: type: string successPageTemplate: type: string policyOidcMTLSSettings: $ref: "#/components/schemas/PolicyOIDCMTLSSettings" accessTokenHeaderName: type: string accessTokenAsBearer: type: boolean addAccessTokenHeader: type: boolean renewAccessTokenOnExpiry: type: boolean revokeTokensOnLogout: type: boolean revocationEndpoint: type: string PolicyOIDCMTLSSettings: type: object properties: enabled: type: boolean skipSslVerification: type: boolean keyStoreId: type: string trustStoreId: type: string certificateId: type: string supportedProtocolList: type: array items: type: string enum: - TLS_1_3 - TLS_1_2 - TLS_1_1 - TLS_1_0 - SSL_3_0 hostnameVerifierType: type: string enum: - NOOP - DEFAULT - STRICT - BROWSER_COMPAT PolicyOauth2Authentication: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enumPolicyAuthenticationType: type: string enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC authenticationLDAPId: type: string authenticationDatabaseId: type: string authenticationApiId: type: string authenticationOidcProviderId: type: string jwtRegeneratorServiceApiId: type: string proxyGroup: type: boolean enumPolicyAuthorizationType: type: string enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC authorizationLDAPId: type: string authorizationDatabaseId: type: string useSecretManagerForAuthorization: type: boolean authorizationApiId: type: string authorizationOidcProviderId: type: string enableAuthorization: type: boolean credentialRoleIdList: type: array items: type: string roleNameList: type: array items: type: string addRolesToHeader: type: boolean enableMethodAccess: type: boolean authorizationType: type: string enum: - ALL - ANY policyAuthorizationMethodDefList: type: array items: $ref: "#/components/schemas/PolicyAuthorizationMethodDef" checkClientIpAddress: type: boolean validateACLForIssuer: type: boolean rolesHeaderName: type: string addUserToHeader: type: boolean userHeaderName: type: string setUsernameOrKey: type: boolean clearAuth: type: boolean checkPassword: type: boolean addRolesFromAuthorizationService: type: boolean rolesFromAuthorizationServiceHeaderName: type: string tokenNeverExpires: type: boolean tokenExpiresInAmount: type: integer format: int64 tokenExpiresInUnit: type: string enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS refreshTokenAllowed: type: boolean refreshTokenCount: type: integer format: int32 refreshTokenExpiresInAmount: type: integer format: int64 refreshTokenExpiresInUnit: type: string enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS allowUrlParameters: type: boolean managedFromThisPolicy: type: boolean grantType: type: string enum: - CLIENT_CREDENTIALS - PASSWORD grantTypes: type: array items: type: string delegationAcceptance: $ref: "#/components/schemas/DelegationAcceptance" deletePrevious: type: boolean jwtSignatureAlgorithm: type: string PolicyRedaction: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: redactionDefList: type: array items: $ref: "#/components/schemas/PolicyRedactionDef" PolicyRedactionDef: type: object properties: policyRedaction: $ref: "#/components/schemas/PolicyRedaction" redactionType: type: string enum: - KEY_EXISTENCE - KEY_VALUE - USER - ROLE keyValueVar: $ref: "#/components/schemas/Variable" keyValueListStr: type: string redactionDefDetailList: type: array items: $ref: "#/components/schemas/PolicyRedactionDefDetail" PolicyRedactionDefDetail: type: object properties: policyRedactionDef: {} orderNum: type: integer format: int32 action: $ref: "#/components/schemas/Action" PolicyRest2SoapTransformationRequest: allOf: - $ref: "#/components/schemas/Policy" PolicyRest2SoapTransformationResponse: allOf: - $ref: "#/components/schemas/Policy" PolicyRestApi: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: callType: type: string enum: - ONE_WAY - SYNCHRONOUS httpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY url: type: string timeout: type: integer format: int32 deprecated: true certificateId: type: string certificateEnabled: type: boolean policyRestApiMTLSSettings: $ref: "#/components/schemas/PolicyRestApiMTLSSettings" retrySettings: $ref: "#/components/schemas/RetrySettings" enableCompression: type: boolean clearBodyBeforeCall: type: boolean useMessageTemplateBeforeCall: type: boolean enumTestConsoleRequestBodyType: type: string enum: - XML - JSON - RAW - URL_ENCODED bodyContentBeforeCall: type: string urlEncodedList: type: array items: $ref: "#/components/schemas/TestCaseForm" dataManipulationListBeforeCall: type: array items: $ref: "#/components/schemas/PolicyRestApiDataManipulationDef" removeAllHeadersBeforeCall: type: boolean headersToBeDeletedBeforeCallList: type: array items: type: string headersToBeAddedBeforeCallList: type: array items: $ref: "#/components/schemas/PolicyRestApiHeader" removeAllParametersBeforeCall: type: boolean parametersToBeDeletedBeforeCallList: type: array items: type: string parametersToBeAddedBeforeCallList: type: array items: $ref: "#/components/schemas/PolicyRestApiParameter" enableCache: type: boolean cacheBy: $ref: "#/components/schemas/Variable" capacity: type: integer format: int32 ttl: type: integer format: int32 cacheNullResponses: type: boolean cacheStorageType: type: string enum: - LOCAL - DISTRIBUTED cacheConnectionTimeoutInSeconds: type: integer format: int32 cacheErrorAction: type: string enum: - CONTINUE - STOP enableDynamicTtl: type: boolean dynamicTtlVariable: $ref: "#/components/schemas/Variable" dynamicTtlSourceType: type: string enum: - ISO_8601_DATETIME - CUSTOM_DATETIME - EPOCH_SECONDS - EPOCH_MILLISECONDS - EXPIRES_IN_SECONDS - EXPIRES_IN_MILLISECONDS - TTL_STRING dynamicTtlCustomDatePattern: type: string dynamicTtlIsJwt: type: boolean dynamicTtlJwtClaimName: type: string dynamicTtlOffsetSeconds: type: integer format: int32 fallbackTtl: type: integer format: int32 enableResponseAssertion: type: boolean responseAssertionVariable: $ref: "#/components/schemas/Variable" responseAssertionOperator: type: string enum: - EQUALS - NOT_EQUALS - CONTAINS - NOT_CONTAINS - EXISTS - NOT_EXISTS - MATCHES_REGEX responseAssertionExpectedValue: type: string afterCallBodyOperationType: type: string enum: - NOT_CHANGE_BODY - REPLACE_BODY - CLEAR_BODY useMessageTemplateAfterCall: type: boolean messageTemplateContentTypeAfterCall: type: string enum: - XML - JSON - RAW - URL_ENCODED bodyContentAfterCall: type: string dataManipulationListAfterCall: type: array items: $ref: "#/components/schemas/PolicyRestApiDataManipulationDef" removeAllHeadersAfterCall: type: boolean headersToBeDeletedAfterCallList: type: array items: type: string headersToBeAddedAfterCallList: type: array items: $ref: "#/components/schemas/PolicyRestApiHeader" removeAllParametersAfterCall: type: boolean parametersToBeDeletedAfterCallList: type: array items: type: string parametersToBeAddedAfterCallList: type: array items: $ref: "#/components/schemas/PolicyRestApiParameter" prepareMessage: type: boolean modifyMessage: type: boolean newBodyContentSourceType: type: string enum: - VALUE - VARIABLE PolicyRestApiDataManipulationDef: type: object properties: operation: type: string enum: - ADD - ADD_OR_EDIT - DELETE sourceValueSource: type: string enum: - VALUE - VARIABLE sourceVar: $ref: "#/components/schemas/Variable" sourceValue: type: string targetName: type: string targetValueSource: type: string enum: - VALUE - VARIABLE targetVar: $ref: "#/components/schemas/Variable" targetValue: type: string PolicyRestApiHeader: type: object properties: description: type: string name: type: string valueSource: type: string enum: - VALUE - VARIABLE value: type: string variable: $ref: "#/components/schemas/Variable" prefix: type: string enum: - NONE - BASIC - BEARER - DIGEST specifyValue: type: boolean selectVariable: type: boolean PolicyRestApiMTLSSettings: type: object properties: enabled: type: boolean skipSslVerification: type: boolean keyStoreId: type: string trustStoreId: type: string certificateId: type: string supportedProtocolList: type: array items: type: string enum: - TLS_1_3 - TLS_1_2 - TLS_1_1 - TLS_1_0 - SSL_3_0 hostnameVerifierType: type: string enum: - NOOP - DEFAULT - STRICT - BROWSER_COMPAT connectionTimeout: type: integer format: int32 PolicyRestApiParameter: type: object properties: description: type: string name: type: string valueSource: type: string enum: - VALUE - VARIABLE value: type: string variable: $ref: "#/components/schemas/Variable" specifyValue: type: boolean selectVariable: type: boolean PolicySaml: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: allowUnknownSigner: type: boolean clearSaml: type: boolean clearSamlPath: type: string keyStoreId: type: string PolicyScript: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: executionType: type: string enum: - SYNC - ASYNC scriptLanguage: type: string enum: - GROOVY - JAVASCRIPT scriptBody: type: string sync: type: boolean PolicyWSSecuritySign: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: mustUnderstand: type: boolean sigPartList: type: array items: $ref: "#/components/schemas/WsSecurityToTargetPart" sigCustomKeyIdentifier: type: string sigCustomKeyIdentifierValueType: type: string sigKeyIdType: type: string enum: - BINARY_SECURITY_TOKEN - ISSUER_NAME_AND_SERIAL_NUMBER - X509_CERTIFICATE - SUBJECT_KEY_IDENTIFIER - THUMBPRINT_SHA1_IDENTIFIER - EMBEDDED_KEY_INFO - EMBED_SECURITY_TOKEN_REFERENCE - CUSTOM_KEY_INFO sigSigAlgorithm: type: string enum: - RSA_SHA1 - RSA_SHA256 - RSA_SHA384 - RSA_SHA512 - DSA_SHA1 - DSA_SHA256 - ECDSA_SHA1 - ECDSA_SHA256 - ECDSA_SHA384 - ECDSA_SHA512 - HMAC_SHA1 - HMAC_SHA256 - HMAC_SHA384 - HMAC_SHA512 sigC14n: type: string enum: - C14N_OMIT_COMMENTS - C14N_WITH_COMMENTS - C14N_EXCL_OMIT_COMMENTS - C14N_EXCL_WITH_COMMENTS - C14N_11_OMIT_COMMENTS - C14N_11_WITH_COMMENTS sigDigAlgorithm: type: string enum: - SHA1 - SHA256 - SHA384 - SHA512 - HMAC_SHA1 - HMAC_SHA256 - HMAC_SHA384 - HMAC_SHA512 - HMAC_MD5 - MD5 sigUseSingleCert: type: boolean sigWsiBSPCompliant: type: boolean sigKeyStoreId: type: string PolicyWSSecuritySignValidation: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: enableEnhancedSignatureValidation: type: boolean enableSignatureRemovalForDereferencing: type: boolean allowCaseInsensitiveId: type: boolean verKeyStoreId: type: string removeSignature: type: boolean PolicyWsSecurityDecrypt: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: allowCaseInsensitiveId: type: boolean decKeyStoreId: type: string PolicyWsSecurityEncrypt: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: mustUnderstand: type: boolean encPartList: type: array items: $ref: "#/components/schemas/WsSecurityToTargetPart" encEmbeddedKeyName: type: string encKeyIdType: type: string enum: - BINARY_SECURITY_TOKEN - ISSUER_NAME_AND_SERIAL_NUMBER - X509_CERTIFICATE - SUBJECT_KEY_IDENTIFIER - THUMBPRINT_SHA1_IDENTIFIER - EMBEDDED_KEY_INFO - EMBED_SECURITY_TOKEN_REFERENCE - CUSTOM_KEY_INFO encSymEncAlgorithm: type: string enum: - AES_128_CBC - AES_192_CBC - AES_256_CBC encKeyEncAlgorithm: type: string enum: - RSA - OAEP encKeyStoreId: type: string PolicyWsSecurityFromTarget: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: decExists: type: boolean verExists: type: boolean decKeyStoreId: type: string verKeyStoreId: type: string allowCaseInsensitiveId: type: boolean PolicyWsSecurityStsToken: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: configureIssueToken: type: boolean apiEndPointURL: type: string soapType: type: string enum: - SOAP11 - SOAP12 - HTTP tokenServiceName: type: string tokenServicePortName: type: string iwsTrust13Url: type: string appliesToUrl: type: string connectionTimeout: type: integer format: int32 tokenCachePeriod: type: integer format: int32 wsaMustUnderstand: type: string enum: - NONE - "TRUE" - "FALSE" stsUsernamePasswordList: type: array items: $ref: "#/components/schemas/StsConfigurationUsernamePassword" addNonceToUsernameToken: type: boolean addCreatedToUsernameToken: type: boolean passwordType: type: string enum: - PasswordText - PasswordDigest wsaSettings: $ref: "#/components/schemas/SoapApiMethodWsaSettings" createdDateFormat: type: string expiresDateFormat: type: string expirationPeriod: type: integer format: int32 tokenResponseMsg: type: string PolicyWsSecurityTimestamp: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: mustUnderstand: type: boolean timeToLive: type: integer format: int32 minimum: 0 PolicyWsSecurityToTarget: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: mustUnderstand: type: boolean tsTimeToLive: type: integer format: int32 minimum: 0 unUsername: type: string unPassword: type: string unNonce: type: boolean unCreated: type: boolean unPasswordType: type: string enum: - PasswordText - PasswordDigest encPartList: type: array items: $ref: "#/components/schemas/WsSecurityToTargetPart" sigPartList: type: array items: $ref: "#/components/schemas/WsSecurityToTargetPart" wsSecurityEntryOrderList: type: array items: type: string enum: - TIMESTAMP - USERNAME_TOKEN - ENCRYPTION - SIGNATURE encEmbeddedKeyName: type: string encKeyIdType: type: string enum: - BINARY_SECURITY_TOKEN - ISSUER_NAME_AND_SERIAL_NUMBER - X509_CERTIFICATE - SUBJECT_KEY_IDENTIFIER - THUMBPRINT_SHA1_IDENTIFIER - EMBEDDED_KEY_INFO - EMBED_SECURITY_TOKEN_REFERENCE - CUSTOM_KEY_INFO encSymEncAlgorithm: type: string enum: - AES_128_CBC - AES_192_CBC - AES_256_CBC encKeyEncAlgorithm: type: string enum: - RSA - OAEP sigCustomKeyIdentifier: type: string sigCustomKeyIdentifierValueType: type: string sigKeyIdType: type: string enum: - BINARY_SECURITY_TOKEN - ISSUER_NAME_AND_SERIAL_NUMBER - X509_CERTIFICATE - SUBJECT_KEY_IDENTIFIER - THUMBPRINT_SHA1_IDENTIFIER - EMBEDDED_KEY_INFO - EMBED_SECURITY_TOKEN_REFERENCE - CUSTOM_KEY_INFO sigSigAlgorithm: type: string enum: - RSA_SHA1 - RSA_SHA256 - RSA_SHA384 - RSA_SHA512 - DSA_SHA1 - DSA_SHA256 - ECDSA_SHA1 - ECDSA_SHA256 - ECDSA_SHA384 - ECDSA_SHA512 - HMAC_SHA1 - HMAC_SHA256 - HMAC_SHA384 - HMAC_SHA512 sigC14n: type: string enum: - C14N_OMIT_COMMENTS - C14N_WITH_COMMENTS - C14N_EXCL_OMIT_COMMENTS - C14N_EXCL_WITH_COMMENTS - C14N_11_OMIT_COMMENTS - C14N_11_WITH_COMMENTS sigDigAlgorithm: type: string enum: - SHA1 - SHA256 - SHA384 - SHA512 - HMAC_SHA1 - HMAC_SHA256 - HMAC_SHA384 - HMAC_SHA512 - HMAC_MD5 - MD5 sigUseSingleCert: type: boolean sigWsiBSPCompliant: type: boolean encKeyStoreId: type: string sigKeyStoreId: type: string PolicyWsSecurityUsername: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: mustUnderstand: type: boolean username: type: string password: type: string passwordType: type: string enum: - PasswordText - PasswordDigest nonce: type: boolean created: type: boolean PolicyXmlSchemaValidation: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: pathForBody: type: string validateAgainstSpec: type: boolean showFirstErrorOnly: type: boolean schemaDefinitionList: type: array items: $ref: "#/components/schemas/ApiGwSchemaDefinition" PolicyXmlTransformation: allOf: - $ref: "#/components/schemas/Policy" - type: object properties: transformationType: type: string enum: - XML2XML - XML2JSON xsltValue: type: string xmlToJsonUnwrapElement: type: boolean xmlToJsonIgnoreNull: type: boolean xmlToJsonIgnoreEmpty: type: boolean xmlToJsonNumbersAsStrings: type: boolean xmlToJsonUseNullForNil: type: boolean xmlToJsonArrayPathList: type: array items: type: string PrivacyDefinition: type: object properties: presetId: type: string elementName: type: string operation: type: string enum: - MASK - DELETE - ENCRYPT - HASH - DETECT enabled: type: boolean patternType: type: string enum: - ELEMENT_NAME - REGEX - BUILTIN regexPattern: type: string builtInPiiType: type: string enum: - TCKN - IBAN_TR - PHONE_TR - EMAIL - CREDIT_CARD - IP_ADDRESS - URL - PASSPORT - SSN_US - DRIVER_LICENSE_TR - BANK_ACCOUNT_IBAN - CRYPTO_WALLET maskMode: type: string enum: - FIXED - KEEP_FIRST - KEEP_LAST - MASK_FIRST - PLACEHOLDER_SEQUENCE - SYNTHETIC maskPattern: type: string maskVisibleCharCount: type: integer format: int32 ProtocolTransformation: type: object properties: id: type: string soapMethodName: type: string inputPath: type: string template: type: string httpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY reqTransformationOptionType: type: string enum: - USE_JACKSON_TRANSFORMATION - USE_JSONML_TRANSFORMATION - USE_TEMPLATE_MESSAGE respTransformationOptionType: type: string enum: - USE_JACKSON_TRANSFORMATION - USE_JSONML_TRANSFORMATION - USE_TEMPLATE_MESSAGE reqJsonMLType: type: string enum: - USE_JSONOBJECT - USE_JSONARRAY respJsonMLType: type: string enum: - USE_JSONOBJECT - USE_JSONARRAY reqIgnoreNull: type: boolean reqIgnoreEmpty: type: boolean reqUseNullForNil: type: boolean reqReplaceChildren: type: boolean unwrapElement: type: boolean reqArrayPathList: type: array items: type: string reqXpath: type: string requestDataManipulationList: type: array items: $ref: "#/components/schemas/DataManipulationDef" responseDataManipulationList: type: array items: $ref: "#/components/schemas/DataManipulationDef" respIgnoreNull: type: boolean respIgnoreEmpty: type: boolean respNumbersAsStrings: type: boolean respUseNullForNil: type: boolean respArrayPathList: type: array items: type: string respXpath: type: string respTemplate: type: string Reason: type: object properties: value: type: string RetrySettings: type: object properties: enabled: type: boolean retryCount: type: integer format: int32 retryDelayType: type: string enum: - NO_DELAY - FIXED - EXPONENTIAL retryFixedDelayMs: type: integer format: int32 retryInitialDelayMs: type: integer format: int32 retryMaxDelayMs: type: integer format: int32 retryBackoffMultiplier: type: number format: double retryOnStatusCodeList: type: array items: type: integer format: int32 retryNonIdempotent: type: boolean active: type: boolean SoapApiMethodWsaSettings: type: object properties: wsaEnabled: type: boolean wsaMustUnderstand: type: string enum: - NONE - "TRUE" - "FALSE" wsaVersion: type: string enum: - V200408 - V200508 wsaAddDefaultAction: type: boolean wsaAction: type: string wsaAddDefaultTo: type: boolean wsaTo: type: string wsaReplyTo: type: string wsaGenerateMessageId: type: boolean wsaMessageId: type: string wsaFrom: type: string wsaFaultTo: type: string wsaRelatesTo: type: string wsaRelationShipType: type: string SoapApiMethodWsrmSettings: type: object properties: wsrmEnabled: type: boolean version: type: string enum: - V1_0 - V1_1 - V1_2 ackTo: type: string offerEndpoint: type: string lastMessageId: type: integer format: int64 sequenceExpires: type: integer sequenceIdentifier: type: string uuid: type: string versionNameSpace: type: string StsConfigurationUsernamePassword: type: object properties: id: type: integer format: int32 condition: $ref: "#/components/schemas/PolicyCondition" username: type: string password: type: string environmentIdList: type: array items: type: string environmentNameList: type: array items: type: string TestCaseForm: type: object properties: key: type: string value: type: string description: type: string type: type: string enum: - TEXT - FILE fileContent: type: string fileName: type: string contentType: type: string TestCaseMTLSSettings: type: object properties: enabled: type: boolean skipSslVerification: type: boolean keyStoreId: type: string trustStoreId: type: string certificateId: type: string supportedProtocolList: type: array items: type: string enum: - TLS_1_3 - TLS_1_2 - TLS_1_1 - TLS_1_0 - SSL_3_0 hostnameVerifierType: type: string enum: - NOOP - DEFAULT - STRICT - BROWSER_COMPAT uploadedCertificateContent: type: string uploadedKeyStoreContent: type: string uploadedKeyStorePassword: type: string uploadedKeyStoreType: type: string uploadedTrustStoreContent: type: string uploadedTrustStorePassword: type: string uploadedTrustStoreType: type: string connectionTimeout: type: integer format: int32 TestCaseParameter: type: object properties: name: type: string type: type: string enum: - BODY - PATH - QUERY - HEADER - FORMDATA value: type: string newParam: type: boolean TestCaseRequest: type: object properties: endpointUrl: type: string httpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY baseUrl: type: string headerList: type: array items: $ref: "#/components/schemas/ApinizerBasicHeader" parameterList: type: array items: $ref: "#/components/schemas/TestCaseParameter" enumTestConsoleRequestBodyType: type: string enum: - NONE - FORM_DATA - URL_ENCODED - RAW - BINARY enumTestConsoleRequestBodyRowType: type: string enum: - TEXT - JAVA_SCRIPT - JSON - XML - HTML formDataList: type: array items: $ref: "#/components/schemas/TestCaseForm" urlEncodedList: type: array items: $ref: "#/components/schemas/TestCaseForm" requestBody: type: string binaryFileContent: type: string format: byte certificateId: type: string certificateEnabled: type: boolean uploadedCertificateContent: type: string uploadedCertificatePassword: type: string timeout: type: integer format: int32 testCaseMTLSSettings: $ref: "#/components/schemas/TestCaseMTLSSettings" WsSecurityToTargetPart: type: object properties: name: type: string namespace: type: string encodeType: type: string enum: - CONTENT - ELEMENT ApiOpsResponsePolicyGroup: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/PolicyGroupManagementDTO" resultCount: type: integer format: int32 PolicyGroupManagementDTO: type: object properties: id: type: string name: type: string targetPipeline: type: string AuthenticationOidcProviderDTO: type: object properties: name: type: string description: type: string vendorType: type: string enum: - GENERIC - KEYCLOAK issuerUrl: type: string discoveryUrl: type: string autoDiscover: type: boolean tokenEndpoint: type: string introspectionEndpoint: type: string userInfoEndpoint: type: string jwksEndpoint: type: string endSessionEndpoint: type: string clientId: type: string clientSecret: type: string clientSecretSet: type: boolean clientAuthMethod: type: string enum: - CLIENT_SECRET_BASIC - CLIENT_SECRET_POST - PRIVATE_KEY_JWT validationMode: type: string enum: - OFFLINE - ONLINE - HYBRID jwksSourceMode: type: string enum: - DISCOVERY - STATIC staticJwksJson: type: string certificateName: type: string jwksCacheTimeoutSeconds: type: integer format: int32 allowedSignatureAlgorithms: type: array items: type: string validateIssuer: type: boolean expectedIssuer: type: string validateAudience: type: boolean expectedAudience: type: array items: type: string maxClockSkewSeconds: type: integer format: int32 connectionTimeoutSeconds: type: integer format: int32 readTimeoutSeconds: type: integer format: int32 usernameClaimPath: type: string emailClaimPath: type: string fullNameClaimPath: type: string rolesClaimPath: type: string groupsClaimPath: type: string requireMatchingCredential: type: boolean roleSource: type: string enum: - TOKEN_CLAIM - SYNCED_CREDENTIAL - BOTH syncEnabled: type: boolean realm: type: string adminBaseUrl: type: string syncPageSize: type: integer format: int32 groupSyncEnabled: type: boolean roleSyncSource: type: string enum: - REALM_ROLES - CLIENT_ROLES - GROUPS syncClientId: type: string LlmCacheWritePrice: type: object properties: ttl: type: string pricePerMillion: type: number LlmContextTierPrice: type: object properties: aboveTokens: type: integer format: int32 inputFactor: type: number outputFactor: type: number LlmModel: type: object properties: modelId: type: string enabled: type: boolean displayName: type: string contextWindow: type: integer format: int32 maxOutputTokens: type: integer format: int32 pricePerMillionInput: type: number pricePerMillionOutput: type: number pricePerMillionCached: type: number pricePerMillionCacheWrite: type: number cacheWritePricesByTtl: type: array items: $ref: "#/components/schemas/LlmCacheWritePrice" contextTierPrices: type: array items: $ref: "#/components/schemas/LlmContextTierPrice" serviceTierPrices: type: array items: $ref: "#/components/schemas/LlmServiceTierPrice" pricePerImage: type: number pricePerAudioMinute: type: number pricePerCharacterTts: type: number capabilities: type: array items: type: string modality: type: string enum: - TEXT - VISION - AUDIO - EMBEDDING - RERANK - MULTIMODAL - IMAGE aclEnabled: type: boolean aclEntries: type: array items: $ref: "#/components/schemas/LlmModelAclEntry" LlmModelAclEntry: type: object properties: subjectType: type: string enum: - CONSUMER - APPLICATION - ORGANIZATION subjectId: type: string subjectName: type: string organizationId: type: string organizationName: type: string LlmProvider: type: object description: LLM provider value to be added. The internal '_class' discriminator is optional — it is derived automatically when omitted. properties: id: type: string projectId: type: string name: type: string description: type: string enabled: type: boolean projectName: type: string providerType: type: string enum: - OPENAI - ANTHROPIC - AZURE_OPENAI - BEDROCK - VERTEX - COHERE - MISTRAL - DEEPSEEK - GROQ - MOONSHOT - ZHIPU - QWEN_DASHSCOPE - XAI - GOOGLE_AI_STUDIO - TOGETHER - FIREWORKS - CEREBRAS - HUGGINGFACE - OPENROUTER - PERPLEXITY - NVIDIA_NIM - VLLM - OLLAMA - CUSTOM_OPENAI_COMPAT - VOYAGE - TYPESAFE - TEI - OTHER wireProtocol: type: string enum: - OPENAI_COMPATIBLE - ANTHROPIC - GEMINI - BEDROCK - VLLM - TYPESAFE - TEI defaultChatCompletionPath: type: string defaultEmbeddingPath: type: string defaultAudioTranscriptionPath: type: string defaultAudioSpeechPath: type: string defaultImageGenerationPath: type: string defaultResponsesPath: type: string endpoint: type: string apiVersion: type: string organizationId: type: string authScheme: type: string enum: - BEARER - API_KEY_HEADER - BASIC - AWS_SIGV4 - OAUTH2 - NONE - CUSTOM authHeaderName: type: string credentialSource: type: string enum: - GATEWAY - CLIENT apiKeyLocation: type: string enum: - HEADER - QUERY apiKeyPrefix: type: string allowClientOverride: type: boolean apiKey: type: string apiSecret: type: string supportedModels: type: array items: $ref: "#/components/schemas/LlmModel" onlyListedModels: type: boolean coldStartRetryEnabled: type: boolean deprecated: true lastHealthCheckAt: type: string format: date-time healthStatus: type: string enum: - UNKNOWN - HEALTHY - DOWN lastLatencyMs: type: integer format: int64 deploymentType: type: string enum: - CLOUD - ON_PREM - OTHER region: type: string serviceAccountJson: type: string builtIn: type: boolean builtInKey: type: string metadata: type: array items: $ref: "#/components/schemas/LlmProviderMetadataEntry" resolvedEndpoint: type: string effectiveApiKeyPrefix: type: string resolvedDefaultEmbeddingPath: type: string resolvedDefaultAudioSpeechPath: type: string resolvedDefaultResponsesPath: type: string resolvedApiVersion: type: string resolvedOrganizationId: type: string clientProvidedCredential: type: boolean resolvedAuthHeaderName: type: string resolvedDefaultChatCompletionPath: type: string resolvedDefaultAudioTranscriptionPath: type: string resolvedDefaultImageGenerationPath: type: string apiKeyInQuery: type: boolean resolvedRegion: type: string LlmProviderMetadataEntry: type: object properties: key: type: string value: type: string secret: type: boolean LlmServiceTierPrice: type: object properties: tier: type: string enum: - BATCH - PRIORITY - FLEX - CUSTOM name: type: string inputFactor: type: number outputFactor: type: number ApiOpsLimitPlanUpdateDTO: type: object properties: name: type: string nameTr: type: string description: type: string labels: type: array items: type: string version: type: integer format: int64 AiModelBudgetDTO: type: object properties: modelId: type: string minLength: 1 tokensPerHour: type: integer format: int64 minimum: 1 tokensPerDay: type: integer format: int64 minimum: 1 tokensPerMonth: type: integer format: int64 minimum: 1 monthlyBudgetUsd: type: number minimum: 0.00 usdPerHour: type: number minimum: 0.00 usdPerDay: type: number minimum: 0.00 overflowAction: type: string enum: - BLOCK - FAILOVER - ALERT_ONLY - CHEAPER_MODEL required: - modelId AiProviderBudgetDTO: type: object properties: providerRef: type: string minLength: 1 tokensPerHour: type: integer format: int64 minimum: 1 tokensPerDay: type: integer format: int64 minimum: 1 tokensPerMonth: type: integer format: int64 minimum: 1 monthlyBudgetUsd: type: number minimum: 0.00 usdPerHour: type: number minimum: 0.00 usdPerDay: type: number minimum: 0.00 overflowAction: type: string enum: - BLOCK - FAILOVER - ALERT_ONLY - CHEAPER_MODEL required: - providerRef AiTokenBudgetDTO: type: object properties: enabled: type: boolean tokensPerHour: type: integer format: int64 minimum: 1 tokensPerMinute: type: integer format: int64 minimum: 1 tokensPerDay: type: integer format: int64 minimum: 1 tokensPerMonth: type: integer format: int64 minimum: 1 monthlyBudgetUsd: type: number minimum: 0.00 usdPerMinute: type: number minimum: 0.00 usdPerHour: type: number minimum: 0.00 usdPerDay: type: number minimum: 0.00 requestsPerMinute: type: integer format: int64 minimum: 1 requestsPerHour: type: integer format: int64 minimum: 1 requestsPerDay: type: integer format: int64 minimum: 1 requestsPerMonth: type: integer format: int64 minimum: 1 softCapPercents: type: array items: type: integer format: int32 maximum: 100 minimum: 0 hardCapPercent: type: integer format: int32 maximum: 100 minimum: 1 overflowAction: type: string enum: - BLOCK - FAILOVER - ALERT_ONLY - CHEAPER_MODEL cheaperModelId: type: string customMessageTemplate: type: string customMessageContentType: type: string customMessageHttpStatusCode: type: integer format: int32 cacheErrorHandlingType: type: string description: "AI Limit Plan only: behaviour when the counter store cannot\ \ be reached (FAIL rejects, CONTINUE lets the request through); null =\ \ the assignment's" pattern: FAIL|CONTINUE showRateLimitStatisticsInResponseHeader: type: boolean description: "AI Limit Plan only: add the remaining limit (RateLimit-*)\ \ headers to the response; null = the assignment's" cacheConnectionTimeoutInSeconds: type: integer format: int32 description: "AI Limit Plan only: counter store timeout in seconds; null\ \ = the assignment's or the default" minimum: 1 modelBudgets: type: array items: $ref: "#/components/schemas/AiModelBudgetDTO" maxItems: 50 minItems: 0 providerBudgets: type: array items: $ref: "#/components/schemas/AiProviderBudgetDTO" maxItems: 50 minItems: 0 ApiOpsLimitAssignmentTargetDTO: type: object properties: type: type: string enum: - ALL - API_PROXY - API_PROXY_ENV - API_PROXY_GROUP - API_PROXY_GROUP_ENV - API_ENDPOINT - API_ENDPOINT_ENV - AI_MODEL - AI_PROVIDER apiProxyName: type: string apiProxyGroupName: type: string environmentName: type: string targetKey: type: string endpointHttpMethod: type: string endpointPath: type: string llmProviderName: type: string projectName: type: string httpMethods: type: array items: type: string ApiOpsLimitRuleSpecDTO: type: object properties: aiBudget: $ref: "#/components/schemas/AiTokenBudgetDTO" requestRate: $ref: "#/components/schemas/LimitRequestRateSpecDTO" target: $ref: "#/components/schemas/ApiOpsLimitAssignmentTargetDTO" targetedRules: type: array items: $ref: "#/components/schemas/ApiOpsLimitRuleSpecDTO" validFrom: type: string format: date-time validUntil: type: string format: date-time listViaProxyGroup: type: boolean listProxyGroupName: type: string ownBudgetThresholds: type: boolean condition: $ref: "#/components/schemas/PolicyCondition" errorMessageList: type: array items: $ref: "#/components/schemas/ErrorMessage" ApiOpsResponseLimitPlan: type: object properties: planKey: type: string family: type: string enum: - REQUEST_RATE - AI_TOKEN_BUDGET name: type: string nameTr: type: string description: type: string labels: type: array items: type: string active: type: boolean deployed: type: boolean platformScoped: type: boolean ruleSpec: $ref: "#/components/schemas/ApiOpsLimitRuleSpecDTO" managedBySubscriptionPlanId: type: string managedBySubscriptionPlanName: type: string version: type: integer format: int64 LimitRequestRateSpecDTO: type: object properties: windows: type: array items: $ref: "#/components/schemas/WindowDTO" overflowAction: type: string enum: - BLOCK - COUNT_ONLY cacheErrorHandlingType: type: string enum: - FAIL - CONTINUE cacheConnectionTimeoutInSeconds: type: integer format: int32 showRateLimitStatisticsInResponseHeader: type: boolean customMessageTemplate: type: string customMessageContentType: type: string customMessageHttpStatusCode: type: integer format: int32 WindowDTO: type: object properties: permittedMessageCount: type: integer format: int64 minimum: 1 interval: type: string enum: - ONE_SECOND - ONE_MINUTE - ONE_HOUR - ONE_DAY - ONE_MONTH periodLength: type: integer format: int32 minimum: 1 windowType: type: string enum: - FIXED - SLIDING countingMode: type: string enum: - ALL_REQUESTS - ACCEPTED_ONLY limitChangeAction: type: string enum: - CLAMP - RESET - NONE required: - interval - permittedMessageCount ApiOpsLimitRuleSpecUpdateDTO: type: object properties: ruleSpec: $ref: "#/components/schemas/ApiOpsLimitRuleSpecDTO" changeReason: type: string version: type: integer format: int64 ApiOpsLimitAssignmentContentDTO: type: object properties: family: type: string enum: - REQUEST_RATE - AI_TOKEN_BUDGET actorScope: type: string enum: - ANY - AUTHENTICATED - ANONYMOUS target: $ref: "#/components/schemas/ApiOpsLimitAssignmentTargetDTO" mode: type: string enum: - PLAN - CUSTOM - INHERIT - "OFF" planKeys: type: array items: type: string customRuleSpec: $ref: "#/components/schemas/LimitRuleSpecDTO" cacheErrorHandlingType: type: string enum: - FAIL - CONTINUE cacheConnectionTimeoutInSeconds: type: integer format: int32 showRateLimitStatisticsInResponseHeader: type: boolean customMessageTemplate: type: string customMessageContentType: type: string customMessageHttpStatusCode: type: integer format: int32 validFrom: type: string format: date-time validUntil: type: string format: date-time assignmentMode: type: string enum: - SELF - DESCENDANTS inheritTo: type: string enum: - PLATFORM - PROJECT - ORGANIZATION - CONSUMER - APPLICATION - API_CLIENT - API_PROXY - AUDIENCE_RULE ApiOpsLimitAssignmentCreateDTO: type: object properties: subject: $ref: "#/components/schemas/ApiOpsLimitAssignmentSubjectDTO" content: $ref: "#/components/schemas/ApiOpsLimitAssignmentContentDTO" audienceRule: $ref: "#/components/schemas/LimitAudienceRuleDTO" status: type: string enum: - DRAFT - ACTIVE - ENDED version: type: integer format: int64 ApiOpsLimitAssignmentSubjectDTO: type: object properties: type: type: string enum: - PLATFORM - PROJECT - ORGANIZATION - CONSUMER - APPLICATION - API_CLIENT - API_PROXY - AUDIENCE_RULE key: type: string ClauseDTO: type: object properties: identitySource: type: string enum: - VARIABLE - AUTH_RESOLVED variableId: type: string variableName: type: string operator: type: string enum: - LT - LE - GT - GE - EQ - NE - EQ_IGNORE_CASE - NE_IGNORE_CASE - STARTS_WITH - NOT_STARTS_WITH - STARTS_WITH_IGNORE_CASE - NOT_STARTS_WITH_IGNORE_CASE - ENDS_WITH - NOT_ENDS_WITH - ENDS_WITH_IGNORE_CASE - NOT_ENDS_WITH_IGNORE_CASE - CONTAINS - NOT_CONTAINS - CONTAINS_IGNORE_CASE - NOT_CONTAINS_IGNORE_CASE - IS_EMPTY - IS_NOT_EMPTY - EXISTS_AND_EMPTY - IS_EXISTS - IS_NOT_EXISTS - IN - NOT_IN - IN_IGNORE_CASE - NOT_IN_IGNORE_CASE value: type: string LimitAudienceRuleDTO: type: object properties: identitySource: type: string enum: - VARIABLE - AUTH_RESOLVED variableId: type: string operator: type: string enum: - LT - LE - GT - GE - EQ - NE - EQ_IGNORE_CASE - NE_IGNORE_CASE - STARTS_WITH - NOT_STARTS_WITH - STARTS_WITH_IGNORE_CASE - NOT_STARTS_WITH_IGNORE_CASE - ENDS_WITH - NOT_ENDS_WITH - ENDS_WITH_IGNORE_CASE - NOT_ENDS_WITH_IGNORE_CASE - CONTAINS - NOT_CONTAINS - CONTAINS_IGNORE_CASE - NOT_CONTAINS_IGNORE_CASE - IS_EMPTY - IS_NOT_EMPTY - EXISTS_AND_EMPTY - IS_EXISTS - IS_NOT_EXISTS - IN - NOT_IN - IN_IGNORE_CASE - NOT_IN_IGNORE_CASE value: type: string outOfTargetAction: type: string enum: - BLOCK - GENERAL_QUOTA - NONE generalQuotaMode: type: string enum: - TOTAL - PER_IDENTITY generalQuotaWindows: type: array items: $ref: "#/components/schemas/WindowDTO" generalQuotaBudget: $ref: "#/components/schemas/AiTokenBudgetDTO" additionalClauses: type: array items: $ref: "#/components/schemas/ClauseDTO" identityRegexList: type: array items: type: string LimitRuleSpecDTO: type: object properties: aiBudget: $ref: "#/components/schemas/AiTokenBudgetDTO" requestRate: $ref: "#/components/schemas/LimitRequestRateSpecDTO" target: $ref: "#/components/schemas/LimitTargetDTO" targetedRules: type: array items: $ref: "#/components/schemas/LimitRuleSpecDTO" validFrom: type: string format: date-time validUntil: type: string format: date-time listViaProxyGroup: type: boolean listProxyGroupId: type: string ownBudgetThresholds: type: boolean condition: $ref: "#/components/schemas/PolicyCondition" conditionSummary: type: string errorMessageList: type: array items: $ref: "#/components/schemas/ErrorMessage" LimitTargetDTO: type: object properties: type: type: string enum: - ALL - API_PROXY - API_PROXY_ENV - API_PROXY_GROUP - API_PROXY_GROUP_ENV - API_ENDPOINT - API_ENDPOINT_ENV - AI_MODEL - AI_PROVIDER targetId: type: string environmentId: type: string httpMethods: type: array items: type: string methodSignature: type: string targetName: type: string environmentName: type: string apiProxyId: type: string apiProxyName: type: string endpointName: type: string targetProjectId: type: string ApiOpsResponseLimitAssignment: type: object properties: bindingKey: type: string subject: $ref: "#/components/schemas/ApiOpsLimitAssignmentSubjectDTO" family: type: string enum: - REQUEST_RATE - AI_TOKEN_BUDGET actorScope: type: string enum: - ANY - AUTHENTICATED - ANONYMOUS target: $ref: "#/components/schemas/ApiOpsLimitAssignmentTargetDTO" mode: type: string enum: - PLAN - CUSTOM - INHERIT - "OFF" planKeys: type: array items: type: string customRuleSpec: $ref: "#/components/schemas/LimitRuleSpecDTO" audienceRule: $ref: "#/components/schemas/LimitAudienceRuleDTO" cacheErrorHandlingType: type: string enum: - FAIL - CONTINUE cacheConnectionTimeoutInSeconds: type: integer format: int32 showRateLimitStatisticsInResponseHeader: type: boolean customMessageTemplate: type: string customMessageContentType: type: string customMessageHttpStatusCode: type: integer format: int32 source: type: string enum: - MANUAL - CREATION_DEFAULT - BULK - MIGRATION - IMPORT - PORTAL_SUBSCRIPTION status: type: string enum: - DRAFT - ACTIVE - ENDED validFrom: type: string format: date-time validUntil: type: string format: date-time assignedAt: type: string format: date-time assignedBy: type: string endedAt: type: string format: date-time endedBy: type: string endedReason: type: string operatorOverride: type: boolean version: type: integer format: int64 bulkRunId: type: string replacedBindingKey: type: string assignmentMode: type: string enum: - SELF - DESCENDANTS inheritTo: type: string enum: - PLATFORM - PROJECT - ORGANIZATION - CONSUMER - APPLICATION - API_CLIENT - API_PROXY - AUDIENCE_RULE AiKnowledgeBaseDTO: type: object properties: id: type: string projectId: type: string minLength: 1 name: type: string minLength: 1 description: type: string vectorDbRef: type: string embeddingProviderRef: type: string vectorDbName: type: string embeddingProviderName: type: string collectionName: type: string chunkSize: type: integer format: int32 chunkOverlap: type: integer format: int32 embeddingModelId: type: string status: type: string docCount: type: integer format: int32 chunkCount: type: integer format: int32 createdAt: type: string format: date-time updatedAt: type: string format: date-time required: - name - projectId KeystoreEnvironmentDTO: type: object properties: environmentName: type: string alias: type: string keyStoreType: type: string enum: - JKS - PKCS12 KeystoreUpdateDTO: type: object properties: name: type: string description: type: string keyStoreEnvironmentList: type: array items: $ref: "#/components/schemas/KeystoreEnvironmentDTO" ApiOpsResponseKeystore: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/KeystoreManagementDTO" resultCount: type: integer format: int32 KeystoreManagementDTO: type: object properties: id: type: string name: type: string description: type: string projectId: type: string keyStoreEnvironmentList: type: array items: $ref: "#/components/schemas/KeystoreEnvironmentDTO" KeyEnvironmentDTO: type: object properties: environmentName: type: string alias: type: string source: type: string KeyUpdateDTO: type: object properties: name: type: string description: type: string keyType: type: string enum: - SECRET_KEY - PRIVATE_KEY - PUBLIC_KEY algorithm: type: string enum: - AES - DES - DESede - RSA cryptoKeyInfoEnvironmentList: type: array items: $ref: "#/components/schemas/KeyEnvironmentDTO" ApiOpsResponseKey: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/KeyManagementDTO" resultCount: type: integer format: int32 KeyManagementDTO: type: object properties: id: type: string name: type: string description: type: string projectId: type: string keyType: type: string enum: - SECRET_KEY - PRIVATE_KEY - PUBLIC_KEY algorithm: type: string enum: - AES - DES - DESede - RSA cryptoKeyInfoEnvironmentList: type: array items: $ref: "#/components/schemas/KeyEnvironmentDTO" JwkUpdateDTO: type: object properties: name: type: string description: type: string type: type: string enum: - RSA - EC - OCT - OKP kid: type: string rsa: $ref: "#/components/schemas/JwkTypeRsa" ec: $ref: "#/components/schemas/JwkTypeEc" oct: $ref: "#/components/schemas/JwkTypeOct" okp: $ref: "#/components/schemas/JwkTypeOkp" IPGroupUpdateIPsDTO: type: object description: IPs to be deleted properties: ipList: type: array items: type: string IPGroupMetadataDTO: type: object description: IP Group metadata to be created properties: name: type: string description: type: string ipList: type: array items: type: string ApiOpsResponseGlobalPolicy: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/GlobalPolicyManagementDTO" resultCount: type: integer format: int32 GlobalPolicyManagementDTO: type: object properties: id: type: string name: type: string policyType: type: string policyTypeLabel: type: string EnvironmentValueDTO: type: object properties: value: type: string visible: type: boolean environmentName: type: string EnvironmentVariableDTO: type: object properties: projectId: type: string name: type: string environmentValueList: type: array items: $ref: "#/components/schemas/EnvironmentValueDTO" description: type: string global: type: boolean globalValue: type: string globalVisible: type: boolean projectName: type: string TokenSettingsDTO: type: object description: Token settings for credential properties: grantType: type: string description: Grant type for authentication enum: - CLIENT_CREDENTIALS - PASSWORD tokenNeverExpires: type: boolean description: Whether token never expires tokenExpiresInAmount: type: integer format: int64 description: Token expiration amount tokenExpiresInUnit: type: string description: Token expiration unit enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS refreshTokenAllowed: type: boolean description: Whether refresh token is allowed refreshTokenCount: type: integer format: int32 description: Refresh token count refreshTokenExpiresInAmount: type: integer format: int64 description: Refresh token expiration amount refreshTokenExpiresInUnit: type: string description: Refresh token expiration unit enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS allowUrlParameters: type: boolean description: Whether URL parameters are allowed jwtSignatureAlgorithm: type: string description: JWT signature algorithm deletePrevious: type: boolean description: Whether to delete previous tokens CredentialAccessDTO: type: object properties: name: type: string type: type: string enum: - API_PROXY - API_PROXY_GROUP expireTime: type: string format: date-time description: Optional expiration time for the access grant CredentialAccessListDTO: type: object description: List of credential access configurations properties: credentialAccessList: type: array description: List of credential access configurations items: $ref: "#/components/schemas/CredentialAccessDTO" required: - credentialAccessList CredentialDTO: type: object properties: email: type: string fullName: type: string description: type: string username: type: string password: type: string roleNameList: type: array items: type: string enabled: type: boolean ipList: type: array items: type: string expireDate: type: string format: date-time metadata: type: array items: $ref: "#/components/schemas/CredentialMetadataDTO" trafficLogDisabled: type: boolean CredentialMetadataDTO: type: object properties: key: type: string value: type: string secret: type: boolean includeInJwt: type: boolean includeInTokenResponse: type: boolean jwtClaimName: type: string CredentialOrganizationDTO: type: object properties: code: type: string nameDefault: type: string nameSecondary: type: string parentOrganizationCode: type: string metadata: type: array items: $ref: "#/components/schemas/CredentialMetadataDTO" ApiOpsConsumerWriteDTO: type: object properties: consumerKey: type: string username: type: string password: type: string fullName: type: string email: type: string description: type: string enabled: type: boolean ipList: type: array items: type: string expireDate: type: string format: date-time roleNameList: type: array items: type: string metadata: type: array items: $ref: "#/components/schemas/CredentialMetadataDTO" trafficLogDisabled: type: boolean organizationCode: type: string ApiOpsMutationResponseApiOpsResponseConsumer: type: object properties: status: type: string enum: - SUCCESS - FAILURE resourceVersion: type: integer format: int64 runtimeDeployment: $ref: "#/components/schemas/ApiOpsRuntimeDeploymentDTO" result: $ref: "#/components/schemas/ApiOpsResponseConsumer" ApiOpsResponseConsumer: type: object properties: consumerKey: type: string username: type: string fullName: type: string email: type: string description: type: string enabled: type: boolean organizationCode: type: string expireDate: type: string format: date-time trafficLogDisabled: type: boolean ipList: type: array items: type: string roleNames: type: array items: type: string metadata: type: array items: $ref: "#/components/schemas/CredentialMetadataDTO" ApiOpsRuntimeDeploymentDTO: type: object properties: state: type: string enum: - IN_SYNC - DEGRADED environments: type: array items: $ref: "#/components/schemas/Environment" Environment: type: object properties: name: type: string acknowledged: type: boolean detail: type: string ApiOpsConsumerAccessDTO: type: object properties: name: type: string type: type: string enum: - API_PROXY - API_PROXY_GROUP expireTime: type: string format: date-time description: Optional expiration time for the access grant environments: type: array description: "Environments of the project and whether the row may be called\ \ there. On a write, a listed environment is set; an unlisted one keeps\ \ its stored value (a new grant: enabled)." items: $ref: "#/components/schemas/Environment" disallowedEndpoints: type: array description: "API_PROXY rows only: endpoints (name = REST path or SOAP operation,\ \ httpMethod) the consumer may not call. On a write, a sent list replaces\ \ the stored one." items: $ref: "#/components/schemas/ApiProxyEndpointIdentifierDTO" disallowedApiProxies: type: array description: "API_PROXY_GROUP rows only: names of the group's API proxies\ \ the consumer may not call. On a write, a sent list replaces the stored\ \ one." items: type: string ApiProxyEndpointIdentifierDTO: type: object properties: name: type: string httpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY ApiOpsMutationResponseApiOpsConsumerAccessDTO: type: object properties: status: type: string enum: - SUCCESS - FAILURE resourceVersion: type: integer format: int64 runtimeDeployment: $ref: "#/components/schemas/ApiOpsRuntimeDeploymentDTO" result: $ref: "#/components/schemas/ApiOpsConsumerAccessDTO" ApiOpsConsumerRoleWriteDTO: type: object properties: name: type: string oauthScope: type: string ApiOpsMutationResponseApiOpsResponseConsumerRole: type: object properties: status: type: string enum: - SUCCESS - FAILURE resourceVersion: type: integer format: int64 runtimeDeployment: $ref: "#/components/schemas/ApiOpsRuntimeDeploymentDTO" result: $ref: "#/components/schemas/ApiOpsResponseConsumerRole" ApiOpsResponseConsumerRole: type: object properties: name: type: string oauthScope: type: string ApiOpsConsumerOrganizationWriteDTO: type: object properties: code: type: string nameDefault: type: string nameSecondary: type: string parentOrganizationCode: type: string metadata: type: array items: $ref: "#/components/schemas/CredentialMetadataDTO" ApiOpsMutationResponseApiOpsResponseConsumerOrganization: type: object properties: status: type: string enum: - SUCCESS - FAILURE resourceVersion: type: integer format: int64 runtimeDeployment: $ref: "#/components/schemas/ApiOpsRuntimeDeploymentDTO" result: $ref: "#/components/schemas/ApiOpsResponseConsumerOrganization" ApiOpsResponseConsumerOrganization: type: object properties: code: type: string nameDefault: type: string nameSecondary: type: string parentOrganizationCode: type: string metadata: type: array items: $ref: "#/components/schemas/CredentialMetadataDTO" ConfigRabbitMqHostPort: type: object properties: host: type: string port: type: integer format: int32 resolvedHost: type: string ConnectionConfigApacheActiveMqDTO: allOf: - $ref: "#/components/schemas/ConnectionDTO" - type: object properties: activeMqConnectionProtocolType: type: string enum: - AMQP - TCP brokerURL: type: string username: type: string password: type: string destinationType: type: string enum: - QUEUE - TOPIC destinationName: type: string sessionAcknowledgement: type: string enum: - CLIENT_ACKNOWLEDGE - SESSION_TRANSACTED - AUTO_ACKNOWLEDGE - DUPS_OK_ACKNOWLEDGE sendTimeout: type: integer format: int64 requestTimeout: type: integer format: int64 closeTimeout: type: integer format: int64 connectTimeout: type: integer format: int64 contentType: type: string clientID: type: string contentEncoding: type: string ConnectionConfigElasticsearchDTO: allOf: - $ref: "#/components/schemas/ConnectionDTO" - type: object properties: administrate: type: boolean elasticHostList: type: array items: $ref: "#/components/schemas/ElasticHost" authenticate: type: boolean elasticUsername: type: string elasticPassword: type: string encryptCommunication: type: boolean encryptCommunicationType: type: string enum: - CA_CERTIFICATE_IN_PKCS_12 - CA_IN_PEM_FILE - CERT_AND_PRIVATE_KEY_IN_PKCS_12 caCertInPkcs12File: type: string format: byte caCertInPkcs12FileContentType: type: string caInPemFile: type: string format: byte caInPemFileContentType: type: string caTruststoreFile: type: string format: byte caTruststoreFileContentType: type: string caTruststoreFilePass: type: string caKeystoreFile: type: string format: byte caKeystoreFileContentType: type: string caKeystoreFilePass: type: string disableHostnameVerification: type: boolean indexLifecyclePolicyCreated: type: boolean indexLifecyclePolicy: $ref: "#/components/schemas/ElasticsearchIndexLifecyclePolicy" dataStreamCreated: type: boolean indexTemplateCreated: type: boolean lastStatusCheckFailed: type: boolean indexTemplateName: type: string indexName: type: string indexTemplateNumberOfShards: type: integer format: int32 indexTemplateNumberOfReplicas: type: integer format: int32 indexTemplateRefreshInterval: type: string indexTemplateLoadFixedBitsetFiltersEagerly: type: boolean connectionTimeoutInMs: type: integer format: int32 responseTimeoutSeconds: type: integer format: int32 elasticsearchMajorVersion: type: string enum: - AUTO_DETECT - ES_7 - ES_8 - ES_9 - UNKNOWN bulkBufferCapacity: type: integer format: int32 bulkFlushIntervalMs: type: integer format: int32 bulkMaxBatchSize: type: integer format: int32 elasticsearchType: type: string enum: - READ_WRITE - READ ConnectionConfigEmailDTO: allOf: - $ref: "#/components/schemas/ConnectionDTO" - type: object properties: host: type: string port: type: integer format: int32 enableStartTls: type: boolean auth: type: boolean username: type: string password: type: string defaultEncoding: type: string addressToTest: type: string from: type: string additionalProperties: type: array items: $ref: "#/components/schemas/EmailAdditionalProperty" useSsl: type: boolean certificateId: type: string certificateName: type: string checkServerIdentity: type: boolean ConnectionConfigFtpDTO: allOf: - $ref: "#/components/schemas/ConnectionDTO" - type: object properties: host: type: string port: type: integer format: int32 username: type: string password: type: string workingDir: type: string protocol: type: string enum: - ftp - sftp - ftps timeout: type: integer format: int32 retryCount: type: integer format: int32 useImplicit: type: boolean useExplicit: type: boolean sslProtocol: type: string verifyServerCertificate: type: boolean ConnectionConfigGraylogDTO: allOf: - $ref: "#/components/schemas/ConnectionDTO" - type: object properties: hostname: type: string port: type: integer format: int32 transportType: type: string enum: - TCP - UDP tlsEnabled: type: boolean tlsCertVerificationEnabled: type: boolean compressionType: type: string enum: - GZIP - ZLIB - NONE gelfMessageLevel: type: string enum: - EMERGENCY(0) - ALERT(1) - CRITICAL(2) - ERROR(3) - WARNING(4) - NOTICE(5) - INFO(6) - DEBUG(7) queueSize: type: integer format: int32 reconnectDelay: type: integer format: int32 connectTimeout: type: integer format: int32 tcpNoDelay: type: boolean tcpKeepAlive: type: boolean sendBufferSize: type: integer format: int32 maxInflightSends: type: integer format: int32 threads: type: integer format: int32 tlsTrustCertChainFile: type: string format: byte tlsTrustCertChainFileName: type: string appendToAttributes: type: boolean appendToMessage: type: boolean ConnectionConfigKafkaDTO: allOf: - $ref: "#/components/schemas/ConnectionDTO" - type: object properties: topicName: type: string propertiesMap: type: object additionalProperties: $ref: "#/components/schemas/MapValue" enableSecure: type: boolean protocolTypes: type: array items: type: string enum: - TLS_1_3 - TLS_1_2 - TLS_1_1 - TLS_1_0 - SSL_3_0 keyStoreId: type: string keyStoreName: type: string trustStoreId: type: string trustStoreName: type: string ConnectionConfigLinuxScriptDTO: allOf: - $ref: "#/components/schemas/ConnectionDTO" - type: object properties: hostName: type: string sshPort: type: integer format: int32 username: type: string password: type: string ConnectionConfigLogbackDTO: allOf: - $ref: "#/components/schemas/ConnectionDTO" - type: object properties: logPath: type: string logFileName: type: string logPodName: type: string logFilenamePattern: type: string logPattern: type: string maxFileSize: type: integer format: int32 maxHistory: type: integer format: int32 totalSizeCap: type: integer format: int32 ConnectionConfigRabbitMqDTO: allOf: - $ref: "#/components/schemas/ConnectionDTO" - type: object properties: hostPortList: type: array items: $ref: "#/components/schemas/ConfigRabbitMqHostPort" connectionFactoryVirtualHost: type: string authenticationEnabled: type: boolean connectionFactoryUsername: type: string connectionFactoryPassword: type: string connectionFactoryConnectionTimeout: type: integer format: int32 connectionFactoryClientProperties: type: object additionalProperties: {} connectionFactoryRequestedChannelMax: type: integer format: int32 connectionFactoryRequestedFrameMax: type: integer format: int32 connectionFactoryRequestedHeartbeat: type: integer format: int32 connectionFactoryUseSslProtocol: type: boolean connectionFactorySslProtocol: type: string channelExchange: type: string channelRoutingKey: type: string basicPropertiesAppId: type: string basicPropertiesContentType: type: string basicPropertiesContentEncoding: type: string basicPropertiesDeliveryMode: type: integer format: int32 basicPropertiesPriority: type: integer format: int32 basicPropertiesReplyTo: type: string basicPropertiesExpiration: type: string basicPropertiesType: type: string basicPropertiesUserId: type: string basicPropertiesClusterId: type: string ConnectionConfigSNMPDTO: allOf: - $ref: "#/components/schemas/ConnectionDTO" - type: object properties: version: type: string enum: - V1 - V2c - V3 connectionString: type: string securityOrCommunityName: type: string retryCount: type: integer format: int32 timeout: type: integer format: int32 messageType: type: string enum: - INFORM - TRAP securityLevel: type: string enum: - NOAUTH_NOPRIV - AUTH_NOPRIV - AUTH_PRIV privacyProtocolList: type: array items: type: string enum: - PrivAES128 - PrivAES192 - PrivAES192with3DES - PrivAES256 - PrivAES256with3DES - PrivDES - Priv3DES enableUserAuthentication: type: boolean securityName: type: string usmUserAuthenticationProtocol: type: string enum: - AuthMD5 - AuthSHA - AuthHMAC128SHA224 - AuthHMAC192SHA256 - AuthHMAC256SHA384 - AuthHMAC384SHA512 authPassphrase: type: string usmUserPrivacyProtocol: type: string enum: - PrivAES128 - PrivAES192 - PrivAES192with3DES - PrivAES256 - PrivAES256with3DES - PrivDES - Priv3DES privPassphrase: type: string pduOidForMessage: type: string pduOidForTime: type: string pduVariableMap: type: object additionalProperties: type: string ConnectionConfigSyslogDTO: allOf: - $ref: "#/components/schemas/ConnectionDTO" - type: object properties: syslogProtocolType: type: string enum: - TCP - UDP syslogMessageHostname: type: string syslogServerHostname: type: string syslogPort: type: integer format: int32 syslogTimeout: type: integer format: int32 syslogMessageFormat: type: string enum: - RFC_3164 - RFC_5424 - RFC_5425 syslogAppName: type: string syslogFacility: type: string enum: - KERN - USER - MAIL - DAEMON - AUTH - SYSLOG - LPR - NEWS - UUCP - CRON - AUTHPRIV - FTP - NTP - AUDIT - ALERT - CLOCK - LOCAL0 - LOCAL1 - LOCAL2 - LOCAL3 - LOCAL4 - LOCAL5 - LOCAL6 - LOCAL7 syslogSeverity: type: string enum: - EMERGENCY - ALERT - CRITICAL - ERROR - WARNING - NOTICE - INFORMATIONAL - DEBUG syslogSslEnabled: type: boolean syslogQueueCapacity: type: integer format: int32 syslogWriteTimeoutSeconds: type: integer format: int32 syslogFramingType: type: string enum: - AUTO - NON_TRANSPARENT - OCTET_COUNTING syslogConnectionCount: type: integer format: int32 syslogBufferMemoryBytes: type: integer format: int64 syslogOfferTimeoutMillis: type: integer format: int32 syslogBatchFlushFrames: type: integer format: int32 syslogMaxMessageBytes: type: integer format: int32 description: "Maximum size, in bytes, of a single outgoing syslog message.\ \ Leave empty or set 0 to apply no size ceiling (default). A non-zero\ \ value must be at least 480 bytes (RFC 5426 section 3.2). Over UDP,\ \ values above 2048 bytes may be truncated or discarded by the receiving\ \ syslog server." example: 2048 keyStoreId: type: string keyStoreName: type: string trustStoreId: type: string trustStoreName: type: string syslogTlsHostnameVerification: type: boolean syslogStructuredDataEnabled: type: boolean syslogEnterpriseId: type: string ConnectionConfigWebhookDTO: allOf: - $ref: "#/components/schemas/ConnectionDTO" - type: object properties: httpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY fullUrl: type: string headerList: type: array items: $ref: "#/components/schemas/ApinizerBasicHeader" timeout: type: integer format: int32 connectionPoolMaxConnectionPerHost: type: integer format: int32 connectionPoolMaxConnectionTotal: type: integer format: int32 webhookTrustStoreId: type: string webhookTrustStoreName: type: string webhookKeyStoreId: type: string webhookKeyStoreName: type: string webhookVerifyHostname: type: boolean connectTimeoutSeconds: type: integer format: int32 responseTimeoutSeconds: type: integer format: int32 connectionRequestTimeoutSeconds: type: integer format: int32 socketTimeoutSeconds: type: integer format: int32 writeStallTimeoutSeconds: type: integer format: int32 webhookBatchEnabled: type: boolean webhookBatchMaxEvents: type: integer format: int32 webhookBatchMaxBytes: type: integer format: int64 webhookBatchMaxDelayMillis: type: integer format: int32 webhookProducerThrottleMillis: type: integer format: int32 webhookBatchBufferMemoryBytes: type: integer format: int64 webhookGzipEnabled: type: boolean webhookMaxRetryCount: type: integer format: int32 webhookRetryBackoffMillis: type: integer format: int32 webhookMaxRetryAfterSeconds: type: integer format: int32 webhookRetryNonIdempotent: type: boolean webhookHecModeEnabled: type: boolean webhookHecIndex: type: string webhookHecSourcetype: type: string webhookHecSource: type: string webhookHecHost: type: string webhookHecUseAck: type: boolean webhookHecAckTimeoutSeconds: type: integer format: int32 webhookHecMaxAckResend: type: integer format: int32 ConnectionDTO: type: object discriminator: propertyName: type properties: id: type: string name: type: string description: type: string enabled: type: boolean projectName: type: string circuitBreakerEnabled: type: boolean errorThresholdValue: type: integer format: int32 sleepWindow: type: integer format: int32 type: type: string required: - type ConnectionPoolDefDbDTO: allOf: - $ref: "#/components/schemas/ConnectionDTO" - type: object properties: dbType: type: string enum: - ORACLE - MYSQL - POSTGRES - SQL_SERVER - SYBASE - DB2 - APACHE_HIVE - APACHE_IMPALA - MONGODB - TRINO jdbcUrl: type: string useCredentials: type: boolean username: type: string databaseName: type: string password: type: string initialPoolSize: type: integer format: int32 minPoolSize: type: integer format: int32 maxPoolSize: type: integer format: int32 incrementCount: type: integer format: int32 maxStatements: type: integer format: int32 idleConnectionTestPeriod: type: integer format: int32 connectionTimeout: type: integer format: int32 testConnectionOnCheckout: type: boolean testConnectionOnCheckin: type: boolean maxConnectionAge: type: integer format: int32 maxIdleTime: type: integer format: int32 defaultLogSchema: type: string logTableSchemaOverrides: type: object additionalProperties: type: string logTableNameOverrides: type: object additionalProperties: type: string ConnectionPoolDefLdapDTO: allOf: - $ref: "#/components/schemas/ConnectionDTO" - type: object properties: serverAddress: type: string requireCertificateType: type: string enum: - NOT_REQUIRED - REQUIRED_CN - REQUIRED_AN_PN username: type: string password: type: string customFilter: type: string searchScope: type: string enum: - OBJECT - ONE_LEVEL - SUBTREE baseDn: type: string certificateId: type: string certificateName: type: string useSsl: type: boolean useTls: type: boolean connectionTimeout: type: integer format: int64 directoryVendor: type: string enum: - ACTIVE_DIRECTORY - OPENLDAP - DS389_FREEIPA - GENERIC ElasticHost: type: object properties: scheme: type: string host: type: string port: type: integer format: int32 status: type: string clusterName: type: string resolvedHost: type: string ElasticsearchIndexLifecyclePolicy: type: object properties: policyName: type: string enableHotPhase: type: boolean maxAgeOfRollover: type: integer format: int32 maxIndexSizeOfRollover: type: integer format: int32 maxDocCountOfRollover: type: integer format: int64 enableWarmPhase: type: boolean numberOfReplicasForWarm: type: integer format: int32 maxNumShardsForShrink: type: integer format: int32 maxNumSegmentsForForceMerge: type: integer format: int32 enableColdPhase: type: boolean minAgeOfCold: type: integer format: int32 numberOfReplicasForCold: type: integer format: int32 enableDeletePhase: type: boolean minAgeOfDelete: type: integer format: int32 EmailAdditionalProperty: type: object properties: key: type: string value: type: string resolvedValue: type: string resolvedKey: type: string ApiProxyGroupInfoDTO: type: object properties: id: type: string name: type: string description: type: string clientRoute: $ref: "#/components/schemas/ClientRoute" environmentName: type: string ClientRoute: type: object properties: relativePathList: type: array items: type: string methodList: type: array items: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY hostList: type: array items: type: string headerList: type: array items: $ref: "#/components/schemas/ApinizerBasicHeader" bufferRequest: type: boolean bufferResponse: type: boolean ConnectorLogSettings: type: object properties: enabled: type: boolean logParamRequestFromClient: type: boolean logHeaderRequestFromClient: type: boolean logBodyRequestFromClient: type: boolean logParamRequestToTarget: type: boolean logHeaderRequestToTarget: type: boolean logBodyRequestToTarget: type: boolean logHeaderResponseFromTarget: type: boolean logBodyResponseFromTarget: type: boolean logHeaderResponseToClient: type: boolean logBodyResponseToClient: type: boolean enableMetadataIdentification: type: boolean enableMetadataApiProxy: type: boolean enableMetadataRequest: type: boolean enableMetrics: type: boolean enableMetadataResponse: type: boolean enableSentAddress: type: boolean logClientAddress: type: boolean logPolicyExecutionTime: type: boolean clientBanMetadataOnly: type: boolean enableBodyFromClientSize: type: boolean sizeBodyFromClient: type: integer format: int32 enableBodyToTargetSize: type: boolean sizeBodyToTarget: type: integer format: int32 enableBodyFromTargetSize: type: boolean sizeBodyFromTarget: type: integer format: int32 enableBodyToClientSize: type: boolean sizeBodyToClient: type: integer format: int32 enablePrivacy: type: boolean privacyDefinitionList: type: array items: $ref: "#/components/schemas/PrivacyDefinition" ApiOpsTrafficLogSettingsPatchDTO: type: object description: Partial update body for API Proxy traffic log settings. Every field is optional; an omitted (or null) field keeps the stored value. properties: logParamRequestFromClient: type: boolean description: Log query parameters of the request coming from the client. Omitted = unchanged. logHeaderRequestFromClient: type: boolean description: Log headers of the request coming from the client. Omitted = unchanged. logBodyRequestFromClient: type: boolean description: Log body of the request coming from the client. Omitted = unchanged. logParamRequestToTarget: type: boolean description: Log query parameters of the request sent to the target. Omitted = unchanged. logHeaderRequestToTarget: type: boolean description: Log headers of the request sent to the target. Omitted = unchanged. logBodyRequestToTarget: type: boolean description: Log body of the request sent to the target. Omitted = unchanged. logHeaderResponseFromTarget: type: boolean description: Log headers of the response coming from the target. Omitted = unchanged. logBodyResponseFromTarget: type: boolean description: Log body of the response coming from the target. Omitted = unchanged. logHeaderResponseToClient: type: boolean description: Log headers of the response sent to the client. Omitted = unchanged. logBodyResponseToClient: type: boolean description: Log body of the response sent to the client. Omitted = unchanged. connectorSettingsMap: type: object additionalProperties: $ref: "#/components/schemas/ConnectorLogSettings" description: "Per-connector settings, keyed by connection name (legacy connector\ \ type names are also accepted). Omitted = unchanged; an empty object\ \ clears every per-connector setting." methodOverrideList: type: array description: Method-level overrides. Omitted = unchanged; an empty array clears every override. items: $ref: "#/components/schemas/MethodLogOverride" retentionProfile: type: string description: Data retention profile of this proxy in this environment; null inherits from the project and global settings. Omitted = unchanged. enum: - STANDARD - NO_PAYLOAD - NO_PERSIST overrideEnvironmentRestrictions: type: boolean description: "Exempts this proxy from the environment connector's detail\ \ filter and body size limits. This is the only switch involved; no connector-side\ \ permission is required. It never skips privacy masking or the retention\ \ profile, and no redeploy is required. Omitted = unchanged." MethodLogOverride: type: object properties: apiMethodId: type: string apiMethodName: type: string connectorSettingsMap: type: object additionalProperties: $ref: "#/components/schemas/ConnectorLogSettings" ApiOpsResponseTrafficLogSettings: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/ApiProxyTrafficLogSettings" resultCount: type: integer format: int32 ApiProxyTrafficLogSettings: type: object properties: id: type: string environmentId: type: string apiProxyId: type: string projectId: type: string logParamRequestFromClient: type: boolean deprecated: true logHeaderRequestFromClient: type: boolean deprecated: true logBodyRequestFromClient: type: boolean deprecated: true logParamRequestToTarget: type: boolean deprecated: true logHeaderRequestToTarget: type: boolean deprecated: true logBodyRequestToTarget: type: boolean deprecated: true logHeaderResponseFromTarget: type: boolean deprecated: true logBodyResponseFromTarget: type: boolean deprecated: true logHeaderResponseToClient: type: boolean deprecated: true logBodyResponseToClient: type: boolean deprecated: true enableDatabaseConnector: type: boolean deprecated: true enableElasticsearchConnector: type: boolean deprecated: true enableSyslogConnector: type: boolean deprecated: true enableWebhookConnector: type: boolean deprecated: true enableRabbitMqConnector: type: boolean deprecated: true enableActiveMqConnector: type: boolean deprecated: true enableKafkaConnector: type: boolean deprecated: true enableGraylogConnector: type: boolean deprecated: true enableLogbackConnector: type: boolean deprecated: true connectorSettingsMap: type: object additionalProperties: $ref: "#/components/schemas/ConnectorLogSettings" methodOverrideList: type: array items: $ref: "#/components/schemas/MethodLogOverride" retentionProfile: type: string enum: - STANDARD - NO_PAYLOAD - NO_PERSIST overrideEnvironmentRestrictions: type: boolean connectorLabelByKey: type: object additionalProperties: type: string anyPolicyExecutionTimeEnabled: type: boolean SoapSchema: type: object properties: schemaNo: type: integer format: int32 schemaBody: type: string originalLocation: type: string schemaNamespace: type: string SpecApi: type: object properties: id: type: string projectId: type: string apiProxyId: type: string apiProxyRevision: type: integer format: int32 openapi: type: string info: $ref: "#/components/schemas/SpecInfo" advanced: type: boolean specFromProxy: type: boolean specCreationType: type: string enum: - OPEN_API - SWAGGER - WSDL - WADL externalDocs: $ref: "#/components/schemas/SpecExternalDocumentation" servers: type: array items: $ref: "#/components/schemas/SpecServer" security: type: array items: $ref: "#/components/schemas/SpecSecurityRequirement" tags: type: array items: $ref: "#/components/schemas/SpecTag" paths: type: object additionalProperties: $ref: "#/components/schemas/SpecPathItem" properties: extensions: type: object additionalProperties: {} empty: type: boolean components: $ref: "#/components/schemas/SpecComponents" extensions: type: object additionalProperties: {} importedContentOfBackendApi: type: string soapSchemaList: type: array items: $ref: "#/components/schemas/SoapSchema" createdDate: type: string format: date-time updatedDate: type: string format: date-time SpecApiResponse: type: object properties: description: type: string headers: type: object additionalProperties: $ref: "#/components/schemas/SpecHeader" content: type: object additionalProperties: $ref: "#/components/schemas/SpecMediaType" properties: empty: type: boolean links: type: object additionalProperties: $ref: "#/components/schemas/SpecLink" extensions: type: object additionalProperties: {} get$ref: type: string SpecArraySchema: allOf: - $ref: "#/components/schemas/SpecSchema" - type: object properties: not: $ref: "#/components/schemas/SpecSchema" properties: type: object additionalProperties: properties: title: type: string multipleOf: type: number maximum: type: number exclusiveMaximum: type: boolean minimum: type: number exclusiveMinimum: type: boolean maxLength: type: integer format: int32 minLength: type: integer format: int32 pattern: type: string maxItems: type: integer format: int32 minItems: type: integer format: int32 uniqueItems: type: boolean maxProperties: type: integer format: int32 minProperties: type: integer format: int32 required: type: array items: type: string type: type: string not: {} properties: type: object additionalProperties: {} additionalProperties: {} description: type: string format: type: string get$ref: type: string nullable: type: boolean readOnly: type: boolean writeOnly: type: boolean example: {} externalDocs: $ref: "#/components/schemas/SpecExternalDocumentation" deprecated: type: boolean xml: $ref: "#/components/schemas/SpecXML" extensions: type: object additionalProperties: {} discriminator: $ref: "#/components/schemas/SpecDiscriminator" enum: type: array items: {} modelName: type: string default: {} items: oneOf: - $ref: "#/components/schemas/SpecSchemaObject" - $ref: "#/components/schemas/SpecArraySchema" - $ref: "#/components/schemas/SpecBinarySchema" - $ref: "#/components/schemas/SpecBooleanSchema" - $ref: "#/components/schemas/SpecByteArraySchema" - $ref: "#/components/schemas/SpecCommonDataModel" - $ref: "#/components/schemas/SpecComposedSchema" - $ref: "#/components/schemas/SpecDateSchema" - $ref: "#/components/schemas/SpecDateTimeSchema" - $ref: "#/components/schemas/SpecEmailSchema" - $ref: "#/components/schemas/SpecFileSchema" - $ref: "#/components/schemas/SpecIntegerSchema" - $ref: "#/components/schemas/SpecJsonSchema" - $ref: "#/components/schemas/SpecMapSchema" - $ref: "#/components/schemas/SpecNumberSchema" - $ref: "#/components/schemas/SpecObjectSchema" - $ref: "#/components/schemas/SpecPasswordSchema" - $ref: "#/components/schemas/SpecStringSchema" - $ref: "#/components/schemas/SpecUUIDSchema" SpecBinarySchema: allOf: - $ref: "#/components/schemas/SpecSchemaObject" - type: object properties: enum: type: array items: type: string format: byte default: type: string format: byte - $ref: "#/components/schemas/SpecSchema" SpecBooleanSchema: allOf: - $ref: "#/components/schemas/SpecSchemaObject" - type: object properties: enum: type: array items: type: boolean default: type: boolean - $ref: "#/components/schemas/SpecSchema" SpecByteArraySchema: allOf: - $ref: "#/components/schemas/SpecSchemaObject" - type: object properties: enum: type: array items: type: string format: byte default: type: string format: byte - $ref: "#/components/schemas/SpecSchema" SpecCallback: type: object additionalProperties: type: object properties: summary: type: string description: type: string get: $ref: "#/components/schemas/SpecOperation" put: $ref: "#/components/schemas/SpecOperation" post: $ref: "#/components/schemas/SpecOperation" operDelete: $ref: "#/components/schemas/SpecOperation" options: $ref: "#/components/schemas/SpecOperation" head: $ref: "#/components/schemas/SpecOperation" patch: $ref: "#/components/schemas/SpecOperation" trace: $ref: "#/components/schemas/SpecOperation" query: $ref: "#/components/schemas/SpecOperation" servers: type: array items: $ref: "#/components/schemas/SpecServer" parameters: type: array items: $ref: "#/components/schemas/SpecParameter" get$ref: type: string extensions: type: object additionalProperties: {} properties: extensions: type: object additionalProperties: {} get$ref: type: string empty: type: boolean SpecCommonDataModel: allOf: - $ref: "#/components/schemas/SpecSchemaObject" - type: object properties: id: type: string projectId: type: string - $ref: "#/components/schemas/SpecSchema" SpecComponents: type: object properties: schemas: type: object additionalProperties: type: object discriminator: propertyName: _class properties: title: type: string multipleOf: type: number maximum: type: number exclusiveMaximum: type: boolean minimum: type: number exclusiveMinimum: type: boolean maxLength: type: integer format: int32 minLength: type: integer format: int32 pattern: type: string maxItems: type: integer format: int32 minItems: type: integer format: int32 uniqueItems: type: boolean maxProperties: type: integer format: int32 minProperties: type: integer format: int32 required: type: array items: type: string type: type: string not: {} properties: type: object additionalProperties: {} additionalProperties: {} description: type: string format: type: string get$ref: type: string nullable: type: boolean readOnly: type: boolean writeOnly: type: boolean example: {} externalDocs: $ref: "#/components/schemas/SpecExternalDocumentation" deprecated: type: boolean xml: $ref: "#/components/schemas/SpecXML" extensions: type: object additionalProperties: {} discriminator: $ref: "#/components/schemas/SpecDiscriminator" enum: type: array items: {} modelName: type: string default: {} _class: type: string '@id': type: integer format: int32 required: - _class responses: type: object additionalProperties: $ref: "#/components/schemas/SpecApiResponse" parameters: type: object additionalProperties: $ref: "#/components/schemas/SpecParameter" examples: type: object additionalProperties: $ref: "#/components/schemas/SpecExample" requestBodies: type: object additionalProperties: $ref: "#/components/schemas/SpecRequestBody" headers: type: object additionalProperties: $ref: "#/components/schemas/SpecHeader" securitySchemes: type: object additionalProperties: $ref: "#/components/schemas/SpecSecurityScheme" links: type: object additionalProperties: $ref: "#/components/schemas/SpecLink" callbacks: type: object additionalProperties: $ref: "#/components/schemas/SpecCallback" extensions: type: object additionalProperties: {} SpecComposedSchema: allOf: - $ref: "#/components/schemas/SpecSchemaObject" - type: object properties: allOf: type: array items: $ref: "#/components/schemas/SpecSchema" anyOf: type: array items: $ref: "#/components/schemas/SpecSchema" oneOf: type: array items: $ref: "#/components/schemas/SpecSchema" - $ref: "#/components/schemas/SpecSchema" SpecContact: type: object properties: name: type: string url: type: string email: type: string extensions: type: object additionalProperties: {} SpecDateSchema: allOf: - $ref: "#/components/schemas/SpecSchemaObject" - type: object properties: enum: type: array items: type: string format: date-time default: type: string format: date-time - $ref: "#/components/schemas/SpecSchema" SpecDateTimeSchema: allOf: - $ref: "#/components/schemas/SpecSchemaObject" - type: object properties: enum: type: array items: type: string format: date-time default: type: string format: date-time - $ref: "#/components/schemas/SpecSchema" SpecDiscriminator: type: object properties: propertyName: type: string mapping: type: object additionalProperties: type: string SpecEmailSchema: allOf: - $ref: "#/components/schemas/SpecSchemaObject" - type: object properties: enum: type: array items: type: string default: type: string - $ref: "#/components/schemas/SpecSchema" SpecEncoding: type: object properties: contentType: type: string headers: type: object additionalProperties: $ref: "#/components/schemas/SpecHeader" style: type: string enum: - form - spaceDelimited - pipeDelimited - deepObject explode: type: boolean allowReserved: type: boolean extensions: type: object additionalProperties: {} SpecExample: type: object properties: summary: type: string description: type: string value: {} externalValue: type: string get$ref: type: string extensions: type: object additionalProperties: {} policyCondition: $ref: "#/components/schemas/PolicyCondition" SpecExternalDocumentation: type: object properties: description: type: string url: type: string extensions: type: object additionalProperties: {} SpecFileSchema: allOf: - $ref: "#/components/schemas/SpecSchemaObject" - type: object properties: enum: type: array items: type: string default: type: string - $ref: "#/components/schemas/SpecSchema" SpecHeader: type: object properties: description: type: string get$ref: type: string required: type: boolean deprecated: type: boolean explode: type: boolean schema: oneOf: - $ref: "#/components/schemas/SpecSchema" - $ref: "#/components/schemas/SpecArraySchema" - $ref: "#/components/schemas/SpecBinarySchema" - $ref: "#/components/schemas/SpecBooleanSchema" - $ref: "#/components/schemas/SpecByteArraySchema" - $ref: "#/components/schemas/SpecCommonDataModel" - $ref: "#/components/schemas/SpecComposedSchema" - $ref: "#/components/schemas/SpecDateSchema" - $ref: "#/components/schemas/SpecDateTimeSchema" - $ref: "#/components/schemas/SpecEmailSchema" - $ref: "#/components/schemas/SpecFileSchema" - $ref: "#/components/schemas/SpecIntegerSchema" - $ref: "#/components/schemas/SpecJsonSchema" - $ref: "#/components/schemas/SpecMapSchema" - $ref: "#/components/schemas/SpecNumberSchema" - $ref: "#/components/schemas/SpecObjectSchema" - $ref: "#/components/schemas/SpecPasswordSchema" - $ref: "#/components/schemas/SpecStringSchema" - $ref: "#/components/schemas/SpecUUIDSchema" examples: type: object additionalProperties: $ref: "#/components/schemas/SpecExample" example: {} extensions: type: object additionalProperties: {} SpecInfo: type: object properties: title: type: string description: type: string termsOfService: type: string contact: $ref: "#/components/schemas/SpecContact" license: $ref: "#/components/schemas/SpecLicense" version: type: string extensions: type: object additionalProperties: {} SpecIntegerSchema: allOf: - $ref: "#/components/schemas/SpecSchemaObject" - type: object properties: enum: type: array items: type: number default: type: number - $ref: "#/components/schemas/SpecSchema" SpecJsonSchema: allOf: - $ref: "#/components/schemas/SpecSchemaObject" - $ref: "#/components/schemas/SpecSchema" SpecLicense: type: object properties: name: type: string url: type: string extensions: type: object additionalProperties: {} SpecLink: type: object properties: operationRef: type: string operationId: type: string parameters: type: object additionalProperties: type: string requestBody: {} headers: type: object additionalProperties: $ref: "#/components/schemas/SpecHeader" description: type: string get$ref: type: string extensions: type: object additionalProperties: {} server: $ref: "#/components/schemas/SpecServer" SpecMapSchema: allOf: - $ref: "#/components/schemas/SpecSchemaObject" - $ref: "#/components/schemas/SpecSchema" SpecMediaType: type: object properties: schema: oneOf: - $ref: "#/components/schemas/SpecSchema" - $ref: "#/components/schemas/SpecArraySchema" - $ref: "#/components/schemas/SpecBinarySchema" - $ref: "#/components/schemas/SpecBooleanSchema" - $ref: "#/components/schemas/SpecByteArraySchema" - $ref: "#/components/schemas/SpecCommonDataModel" - $ref: "#/components/schemas/SpecComposedSchema" - $ref: "#/components/schemas/SpecDateSchema" - $ref: "#/components/schemas/SpecDateTimeSchema" - $ref: "#/components/schemas/SpecEmailSchema" - $ref: "#/components/schemas/SpecFileSchema" - $ref: "#/components/schemas/SpecIntegerSchema" - $ref: "#/components/schemas/SpecJsonSchema" - $ref: "#/components/schemas/SpecMapSchema" - $ref: "#/components/schemas/SpecNumberSchema" - $ref: "#/components/schemas/SpecObjectSchema" - $ref: "#/components/schemas/SpecPasswordSchema" - $ref: "#/components/schemas/SpecStringSchema" - $ref: "#/components/schemas/SpecUUIDSchema" examples: type: object additionalProperties: $ref: "#/components/schemas/SpecExample" example: {} encoding: type: object additionalProperties: $ref: "#/components/schemas/SpecEncoding" extensions: type: object additionalProperties: {} schemaJson: type: string schemaYaml: type: string SpecNumberSchema: allOf: - $ref: "#/components/schemas/SpecSchemaObject" - type: object properties: enum: type: array items: type: number default: type: number - $ref: "#/components/schemas/SpecSchema" SpecOAuthFlow: type: object properties: authorizationUrl: type: string tokenUrl: type: string refreshUrl: type: string scopes: type: object additionalProperties: type: string properties: extensions: type: object additionalProperties: deprecated: true deprecated: true empty: type: boolean extensions: type: object additionalProperties: {} SpecOAuthFlows: type: object properties: implicit: $ref: "#/components/schemas/SpecOAuthFlow" password: $ref: "#/components/schemas/SpecOAuthFlow" clientCredentials: $ref: "#/components/schemas/SpecOAuthFlow" authorizationCode: $ref: "#/components/schemas/SpecOAuthFlow" extensions: type: object additionalProperties: {} SpecObjectSchema: allOf: - $ref: "#/components/schemas/SpecSchemaObject" - $ref: "#/components/schemas/SpecSchema" SpecOperation: type: object properties: tags: type: array items: type: string id: type: string summary: type: string description: type: string externalDocs: $ref: "#/components/schemas/SpecExternalDocumentation" operationId: type: string parameters: type: array items: $ref: "#/components/schemas/SpecParameter" requestBody: $ref: "#/components/schemas/SpecRequestBody" enumTestConsoleRequestBodyType: type: string enum: - NONE - FORM_DATA - URL_ENCODED - RAW - BINARY responses: type: object additionalProperties: $ref: "#/components/schemas/SpecApiResponse" properties: extensions: type: object additionalProperties: {} default: $ref: "#/components/schemas/SpecApiResponse" empty: type: boolean callbacks: type: object additionalProperties: $ref: "#/components/schemas/SpecCallback" deprecated: type: boolean security: type: array items: $ref: "#/components/schemas/SpecSecurityRequirement" servers: type: array items: $ref: "#/components/schemas/SpecServer" urlEncodedList: type: array items: $ref: "#/components/schemas/TestCaseForm" extensions: type: object additionalProperties: {} SpecParameter: type: object properties: name: type: string in: type: string typeIn: type: string description: type: string required: type: boolean deprecated: type: boolean allowEmptyValue: type: boolean get$ref: type: string style: type: string enum: - matrix - label - form - simple - spaceDelimited - pipeDelimited - deepObject explode: type: boolean allowReserved: type: boolean schema: oneOf: - $ref: "#/components/schemas/SpecSchema" - $ref: "#/components/schemas/SpecArraySchema" - $ref: "#/components/schemas/SpecBinarySchema" - $ref: "#/components/schemas/SpecBooleanSchema" - $ref: "#/components/schemas/SpecByteArraySchema" - $ref: "#/components/schemas/SpecCommonDataModel" - $ref: "#/components/schemas/SpecComposedSchema" - $ref: "#/components/schemas/SpecDateSchema" - $ref: "#/components/schemas/SpecDateTimeSchema" - $ref: "#/components/schemas/SpecEmailSchema" - $ref: "#/components/schemas/SpecFileSchema" - $ref: "#/components/schemas/SpecIntegerSchema" - $ref: "#/components/schemas/SpecJsonSchema" - $ref: "#/components/schemas/SpecMapSchema" - $ref: "#/components/schemas/SpecNumberSchema" - $ref: "#/components/schemas/SpecObjectSchema" - $ref: "#/components/schemas/SpecPasswordSchema" - $ref: "#/components/schemas/SpecStringSchema" - $ref: "#/components/schemas/SpecUUIDSchema" examples: type: object additionalProperties: $ref: "#/components/schemas/SpecExample" example: {} content: type: object additionalProperties: $ref: "#/components/schemas/SpecMediaType" properties: empty: type: boolean extensions: type: object additionalProperties: {} SpecPasswordSchema: allOf: - $ref: "#/components/schemas/SpecSchemaObject" - type: object properties: enum: type: array items: type: string default: type: string - $ref: "#/components/schemas/SpecSchema" SpecPathItem: type: object properties: summary: type: string description: type: string get: $ref: "#/components/schemas/SpecOperation" put: $ref: "#/components/schemas/SpecOperation" post: $ref: "#/components/schemas/SpecOperation" operDelete: $ref: "#/components/schemas/SpecOperation" options: $ref: "#/components/schemas/SpecOperation" head: $ref: "#/components/schemas/SpecOperation" patch: $ref: "#/components/schemas/SpecOperation" trace: $ref: "#/components/schemas/SpecOperation" query: $ref: "#/components/schemas/SpecOperation" servers: type: array items: $ref: "#/components/schemas/SpecServer" parameters: type: array items: $ref: "#/components/schemas/SpecParameter" get$ref: type: string extensions: type: object additionalProperties: {} SpecRequestBody: type: object properties: description: type: string content: type: object additionalProperties: $ref: "#/components/schemas/SpecMediaType" properties: empty: type: boolean required: type: boolean extensions: type: object additionalProperties: {} get$ref: type: string SpecSchema: type: object discriminator: propertyName: _class properties: title: type: string multipleOf: type: number maximum: type: number exclusiveMaximum: type: boolean minimum: type: number exclusiveMinimum: type: boolean maxLength: type: integer format: int32 minLength: type: integer format: int32 pattern: type: string maxItems: type: integer format: int32 minItems: type: integer format: int32 uniqueItems: type: boolean maxProperties: type: integer format: int32 minProperties: type: integer format: int32 required: type: array items: type: string type: type: string not: {} properties: type: object additionalProperties: {} additionalProperties: {} description: type: string format: type: string get$ref: type: string nullable: type: boolean readOnly: type: boolean writeOnly: type: boolean example: {} externalDocs: $ref: "#/components/schemas/SpecExternalDocumentation" deprecated: type: boolean xml: $ref: "#/components/schemas/SpecXML" extensions: type: object additionalProperties: {} discriminator: $ref: "#/components/schemas/SpecDiscriminator" enum: type: array items: {} modelName: type: string default: {} _class: type: string '@id': type: integer format: int32 required: - _class SpecSchemaObject: type: object discriminator: propertyName: _class properties: title: type: string multipleOf: type: number maximum: type: number exclusiveMaximum: type: boolean minimum: type: number exclusiveMinimum: type: boolean maxLength: type: integer format: int32 minLength: type: integer format: int32 pattern: type: string maxItems: type: integer format: int32 minItems: type: integer format: int32 uniqueItems: type: boolean maxProperties: type: integer format: int32 minProperties: type: integer format: int32 required: type: array items: type: string type: type: string not: $ref: "#/components/schemas/SpecSchema" properties: type: object additionalProperties: properties: title: type: string multipleOf: type: number maximum: type: number exclusiveMaximum: type: boolean minimum: type: number exclusiveMinimum: type: boolean maxLength: type: integer format: int32 minLength: type: integer format: int32 pattern: type: string maxItems: type: integer format: int32 minItems: type: integer format: int32 uniqueItems: type: boolean maxProperties: type: integer format: int32 minProperties: type: integer format: int32 required: type: array items: type: string type: type: string not: {} properties: type: object additionalProperties: {} additionalProperties: {} description: type: string format: type: string get$ref: type: string nullable: type: boolean readOnly: type: boolean writeOnly: type: boolean example: {} externalDocs: $ref: "#/components/schemas/SpecExternalDocumentation" deprecated: type: boolean xml: $ref: "#/components/schemas/SpecXML" extensions: type: object additionalProperties: {} discriminator: $ref: "#/components/schemas/SpecDiscriminator" enum: type: array items: {} modelName: type: string default: {} additionalProperties: {} description: type: string format: type: string get$ref: type: string nullable: type: boolean readOnly: type: boolean writeOnly: type: boolean example: {} externalDocs: $ref: "#/components/schemas/SpecExternalDocumentation" deprecated: type: boolean xml: $ref: "#/components/schemas/SpecXML" extensions: type: object additionalProperties: {} discriminator: $ref: "#/components/schemas/SpecDiscriminator" enum: type: array items: {} modelName: type: string default: {} _class: type: string '@id': type: integer format: int32 required: - _class SpecSecurityRequirement: type: object additionalProperties: type: array items: type: string properties: empty: type: boolean SpecSecurityScheme: type: object properties: type: type: string enum: - apiKey - http - oauth2 - mutualTLS - openIdCnnect description: type: string name: type: string get$ref: type: string in: type: string enum: - cookie - header - query scheme: type: string bearerFormat: type: string flows: $ref: "#/components/schemas/SpecOAuthFlows" openIdConnectUrl: type: string extensions: type: object additionalProperties: {} SpecServer: type: object properties: url: type: string description: type: string variables: type: object additionalProperties: $ref: "#/components/schemas/SpecServerVariable" properties: extensions: type: object additionalProperties: deprecated: true deprecated: true empty: type: boolean extensions: type: object additionalProperties: {} soapType: type: string enum: - SOAP11 - SOAP12 - HTTP SpecServerVariable: type: object properties: description: type: string extensions: type: object additionalProperties: {} enum: type: array items: type: string default: type: string SpecStringSchema: allOf: - $ref: "#/components/schemas/SpecSchemaObject" - type: object properties: enum: type: array items: type: string default: type: string - $ref: "#/components/schemas/SpecSchema" SpecTag: type: object properties: name: type: string description: type: string externalDocs: $ref: "#/components/schemas/SpecExternalDocumentation" extensions: type: object additionalProperties: {} SpecUUIDSchema: allOf: - $ref: "#/components/schemas/SpecSchemaObject" - type: object properties: enum: type: array items: type: string format: uuid default: type: string format: uuid - $ref: "#/components/schemas/SpecSchema" SpecXML: type: object properties: name: type: string namespace: type: string prefix: type: string attribute: type: boolean wrapped: type: boolean extensions: type: object additionalProperties: {} ActionDTO: type: object description: Action configuration properties: actionType: type: string description: Action type enum: - ADD - MODIFY - DELETE - STOP sourceVar: $ref: "#/components/schemas/VariableDTO" description: Source variable sourceVarBodyInjectionFieldName: type: string description: Source variable body injection field name sourceDataType: type: string description: Source data type enum: - NUMERIC - STRING - TEMPORAL sourceTemporalFormat: type: string description: Source temporal format operator: type: string description: Source value modification operator enum: - ADD - SUBTRACT - MULTIPLY - DIVIDE - MODULUS - POWER - CONCAT - REPLACE_IN - REPLACE_WITH - REPLACE_FIRST - SUBSTRING - MASK - FORMAT - TRANSFORM - INSERT - TRIM - ENCODE - DECODE - URL_ENCODE - URL_DECODE - EXTRACT_JWT_HEADER_CLAIM - EXTRACT_JWT_BODY_CLAIM - ADD_TEMPORAL - SUBTRACT_TEMPORAL substringFrom: type: integer format: int32 description: Substring from index substringTo: type: integer format: int32 description: Substring to index maskFrom: type: integer format: int32 description: Mask from index maskTo: type: integer format: int32 description: Mask to index replaceSource: type: string description: Replace source insertOffset: type: integer format: int32 description: Insert offset temporalOperatorTimeUnit: type: string description: Temporal operator time unit enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS replaceFirst: type: string description: Replace first targetValSource: type: string description: Target value source enum: - VALUE - VARIABLE targetVal: type: string description: Target value targetVar: $ref: "#/components/schemas/VariableDTO" description: Target variable transformationContentType: type: string description: Transformation content type enum: - XSLT - JOLT - XML2JSON - JSON2XML formatAllowsInvalid: type: boolean description: Format allows invalid formatValueContainsLiteralCharacters: type: boolean description: Format value contains literal characters formatInvalidCharacters: type: string description: Format invalid characters formatPlaceholder: type: string description: Format placeholder jsonToXmlIgnoreNull: type: boolean description: JSON to XML ignore null jsonToXmlIgnoreEmpty: type: boolean description: JSON to XML ignore empty jsonToXmlUseNullForNil: type: boolean description: JSON to XML use null for nil jsonToXmlUnwrapElement: type: boolean description: JSON to XML unwrap element xmlToJsonUnwrapElement: type: boolean description: XML to JSON unwrap element xmlToJsonIgnoreNull: type: boolean description: XML to JSON ignore null xmlToJsonIgnoreEmpty: type: boolean description: XML to JSON ignore empty xmlToJsonNumbersAsStrings: type: boolean description: XML to JSON numbers as strings xmlToJsonUseNullForNil: type: boolean description: XML to JSON use null for nil xmlToJsonArrayPathList: type: array description: XML to JSON array path list items: type: string claimJsonPath: type: string description: Claim JSON path stopResultType: type: string description: "STOP action only: result type written to the traffic log (SUCCESS,\ \ BLOCKED or ERROR). Empty means BLOCKED. The client response does not\ \ change." enum: - BLOCKED - ERROR - SUCCESS required: - actionType - operator - sourceDataType - sourceVar AiPromptDecoratorBlockDTO: type: object description: AI Prompt Decorator block (PREPEND/APPEND role-tagged text) properties: position: type: string description: PREPEND | APPEND role: type: string description: system | user | assistant content: type: string description: "Block text (${env} and #{context} resolvable)" enabled: type: boolean description: Whether this block is active presetId: type: string description: "Id of the AI Prompt Decorator preset this block is bound to.\ \ Null means the block is localized (hand-written, or detached from the\ \ catalog). A bound block is refreshed automatically whenever that preset\ \ is edited. Installation-local id: it is NOT portable across installations\ \ and import deliberately clears it (the copy stays fully functional,\ \ just localized). This is a provenance marker, not a lookup key — APIops\ \ name-based-reference rule does not apply. See PolicyAiPromptTemplateDTO\ \ javadoc." required: - content - position - role AiPromptTemplateBindingDTO: type: object description: AI Prompt Template binding (snapshot-copied from the D2A catalog at policy-save time) properties: alias: type: string description: Client-facing reference key (the request's template field addresses this) templateId: type: string description: "Catalog template id this binding is bound to; null means localized\ \ (detached local copy that catalog edits never reach). See AiPromptTemplateBinding\ \ javadoc. Installation-local id: it is NOT portable across installations\ \ and import deliberately clears it (the copy stays fully functional,\ \ just localized). This is a provenance marker, not a lookup key — APIops\ \ name-based-reference rule does not apply. See PolicyAiPromptTemplateDTO\ \ javadoc." messages: type: array description: "Snapshot-copied message list ({{param}} placeholders)" items: $ref: "#/components/schemas/AiPromptTemplateMessage" parameters: type: array description: Snapshot-copied parameter declarations items: $ref: "#/components/schemas/AiPromptTemplateParam" description: type: string description: Optional binding-level note (independent of the catalog entity's own description) required: - alias AiTokenRateLimitDetailDTO: type: object properties: targetValue: type: string description: Value of the applyBy variable this row limits (a regular expression when regexExpression is true) regexExpression: type: boolean description: Whether targetValue is a regular expression; it must contain a capture group budget: $ref: "#/components/schemas/AiTokenBudgetDTO" description: Token / USD budget of the callers this row matches ApiBasedQuotaDetailDTO: type: object properties: targetValue: type: string regexExpression: type: boolean messageCountForInterval: type: integer format: int32 intervalPeriodLength: type: integer format: int32 quotaInterval: type: string enum: - ONE_HOUR - ONE_DAY - ONE_MONTH ApiBasedThrottlingDetailDTO: type: object properties: targetValue: type: string regexExpression: type: boolean messageCountForInterval: type: integer format: int32 intervalPeriodLength: type: integer format: int32 quotaInterval: type: string enum: - ONE_SECOND - ONE_MINUTE ApiMethodDTO: type: object description: API Method configuration properties: id: type: string description: API Method ID name: type: string description: API Method name description: type: string description: API Method description active: type: boolean description: API Method active status httpMethod: type: string description: HTTP method enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY backendResourceUrl: type: string description: Backend resource URL backendHttpMethod: type: string description: Backend HTTP method enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY required: - backendHttpMethod - backendResourceUrl - httpMethod - name ConnectorRefDTO: type: object description: Connector reference by connection name properties: connectionName: type: string description: Connection configuration name required: - connectionName DecryptionDefDTO: type: object description: Decryption definition entry properties: description: type: string description: Description of this decryption definition sourceVar: $ref: "#/components/schemas/VariableDTO" description: Source variable to read encrypted data from targetVar: $ref: "#/components/schemas/VariableDTO" description: Target variable to write decrypted data to keyCertificateType: type: string description: Key or certificate type enum: - KEY - CERTIFICATE example: KEY keyName: type: string description: CryptoKeyInfo (Key) name for decryption certificateName: type: string description: Certificate name for decryption cipherAlgorithm: type: string description: Cipher algorithm enum: - AES_CBC_NoPadding - AES_CBC_PKCS5Padding - AES_ECB_NoPadding - AES_ECB_PKCS5Padding - DES_CBC_NoPadding - DES_CBC_PKCS5Padding - DES_ECB_NoPadding - DES_ECB_PKCS5Padding - DESede_CBC_NoPadding - DESede_CBC_PKCS5Padding - DESede_ECB_NoPadding - DESede_ECB_PKCS5Padding - RSA_ECB_PKCS1Padding - RSA_ECB_OAEPWithSHA_1AndMGF1Padding - RSA_ECB_OAEPWithSHA_256AndMGF1Padding example: AES_CBC_PKCS5PADDING cipherAlgorithmVar: $ref: "#/components/schemas/VariableDTO" description: Variable to read cipher algorithm from (alternative to cipherAlgorithm) ivExists: type: boolean description: Whether an IV exists in the encrypted data ivVar: $ref: "#/components/schemas/VariableDTO" description: Variable for IV value ivEncodingType: type: string description: Encoding type for the IV enum: - BASE64 - HEXADECIMAL example: BASE64 inputEncodingType: type: string description: Encoding type of the encrypted input enum: - BASE64 - HEXADECIMAL example: BASE64 required: - sourceVar - targetVar DigitalSignDefDTO: type: object description: Digital sign definition entry properties: description: type: string description: Description of this digital sign definition sourceVar: $ref: "#/components/schemas/VariableDTO" description: Source variable to read data from signatureVar: $ref: "#/components/schemas/VariableDTO" description: Variable to write the signature to signatureAlgorithm: type: string description: Signature algorithm enum: - NONEwithRSA - MD2withRSA - MD5withRSA - NONEwithDSA - SHA1withRSA - SHA224withRSA - SHA256withRSA - SHA384withRSA - SHA512withRSA - SHA1withDSA - SHA224withDSA - SHA256withDSA - NONEwithECDSA - SHA1withECDSA - SHA224withECDSA - SHA256withECDSA - SHA384withECDSA - SHA512withECDSA example: SHA256withRSA signatureAlgorithmVar: $ref: "#/components/schemas/VariableDTO" description: Variable to read signature algorithm from (alternative to signatureAlgorithm) keyCertificateType: type: string description: Key or certificate type enum: - KEY - CERTIFICATE example: KEY keyName: type: string description: CryptoKeyInfo (Key) name for signing certificateName: type: string description: Certificate name for signing outputEncodingType: type: string description: Encoding type for the signature output enum: - BASE64 - HEXADECIMAL example: BASE64 required: - signatureVar - sourceVar DigitalSignVerificationDefDTO: type: object description: Digital sign verification definition entry properties: description: type: string description: Description of this digital sign verification definition keyCertificateType: type: string description: Key or certificate type enum: - KEY - CERTIFICATE example: KEY keyName: type: string description: CryptoKeyInfo (Key) name for verification certificateName: type: string description: Certificate name for verification sourceVar: $ref: "#/components/schemas/VariableDTO" description: Source variable to read data from signatureVar: $ref: "#/components/schemas/VariableDTO" description: Variable to read the signature from signatureAlgorithm: type: string description: Signature algorithm enum: - NONEwithRSA - MD2withRSA - MD5withRSA - NONEwithDSA - SHA1withRSA - SHA224withRSA - SHA256withRSA - SHA384withRSA - SHA512withRSA - SHA1withDSA - SHA224withDSA - SHA256withDSA - NONEwithECDSA - SHA1withECDSA - SHA224withECDSA - SHA256withECDSA - SHA384withECDSA - SHA512withECDSA example: SHA256withRSA signatureAlgorithmVar: $ref: "#/components/schemas/VariableDTO" description: Variable to read signature algorithm from (alternative to signatureAlgorithm) inputEncodingType: type: string description: Encoding type of the signature input enum: - BASE64 - HEXADECIMAL example: BASE64 required: - signatureVar - sourceVar EncryptionDefDTO: type: object description: Encryption definition entry properties: description: type: string description: Description of this encryption definition sourceVar: $ref: "#/components/schemas/VariableDTO" description: Source variable to read data from targetVar: $ref: "#/components/schemas/VariableDTO" description: Target variable to write encrypted data to keyCertificateType: type: string description: Key or certificate type enum: - KEY - CERTIFICATE example: KEY keyName: type: string description: CryptoKeyInfo (Key) name for encryption certificateName: type: string description: Certificate name for encryption cipherAlgorithm: type: string description: Cipher algorithm enum: - AES_CBC_NoPadding - AES_CBC_PKCS5Padding - AES_ECB_NoPadding - AES_ECB_PKCS5Padding - DES_CBC_NoPadding - DES_CBC_PKCS5Padding - DES_ECB_NoPadding - DES_ECB_PKCS5Padding - DESede_CBC_NoPadding - DESede_CBC_PKCS5Padding - DESede_ECB_NoPadding - DESede_ECB_PKCS5Padding - RSA_ECB_PKCS1Padding - RSA_ECB_OAEPWithSHA_1AndMGF1Padding - RSA_ECB_OAEPWithSHA_256AndMGF1Padding example: AES_CBC_PKCS5PADDING cipherAlgorithmVar: $ref: "#/components/schemas/VariableDTO" description: Variable to read cipher algorithm from (alternative to cipherAlgorithm) createIV: type: boolean description: Whether to create an initialization vector (IV) ivEncodingType: type: string description: Encoding type for the IV enum: - BASE64 - HEXADECIMAL example: BASE64 ivVar: $ref: "#/components/schemas/VariableDTO" description: Variable for IV value outputEncodingType: type: string description: Encoding type for the encrypted output enum: - BASE64 - HEXADECIMAL example: BASE64 required: - sourceVar - targetVar ExternalGuardrailDTO: type: object properties: type: type: string description: Adapter discriminator — 'llm-judge' (F2) or 'http-dlp' (APNZ-6553). Required (non-blank) whenever this block is present. llmProviderName: type: string description: LLM provider connection NAME (project-scoped) — resolved server-side to the LLM provider id. llm-judge only. modelId: type: string description: Judge model identifier (e.g. llama-guard3:1b). llm-judge only. promptTemplate: type: string description: Judge prompt template. Blank => NATIVE passthrough (KARAR-1648). llm-judge only. jsonMode: type: boolean description: Whether the judge is asked to respond in JSON mode. llm-judge only. maxOutputTokens: type: integer format: int32 description: Judge max output tokens. llm-judge only. decisionMode: type: string description: "Judge model behaviour: STANDARD (default — answers at once)\ \ or REASONING (the model reasons before the verdict; maxOutputTokens\ \ is the reasoning budget, empty timeout/maxOutputTokens default to 15000\ \ ms / 1024). The policy's maxWaitMs still bounds the whole check — raise\ \ it too. llm-judge only." enum: - STANDARD - REASONING decisionThreshold: type: number format: double description: "Decision models only (TypeSafe Jev provider): the verdict\ \ is UNSAFE when the probability the model reports is at or above this\ \ value. 0.05-0.99, default 0.5. Chat judges ignore it. llm-judge only." unsafeLabels: type: array description: "TEI guard classifier only: the model labels that mean UNSAFE\ \ (e.g. INJECTION, JAILBREAK). The verdict is UNSAFE when any of them\ \ scores at or above decisionThreshold. Required for a TEI provider. llm-judge\ \ only." items: type: string decisionQuestion: type: string description: "Decision models only (TypeSafe Jev provider): the yes/no question\ \ asked about the text; yes means UNSAFE. Blank: a generic 'is this text\ \ unsafe?' question. Required instead of promptTemplate on the Topic and\ \ Groundedness guards. llm-judge only." timeoutMs: type: integer format: int32 description: HTTP call timeout (ms). Shared by llm-judge and http-dlp. maxInputChars: type: integer format: int32 description: Max input characters sent to the adapter. Shared by llm-judge and http-dlp. webhookConnectionName: type: string description: Webhook connection NAME (project-scoped) — resolved server-side to ConnectionConfigWebhook.id. http-dlp only (APNZ-6553). FormFieldDTO: type: object description: Form body field properties: key: type: string description: Field key value: type: string description: Field value (used when fieldType is TEXT) description: type: string description: Description fieldType: type: string description: "Field type: TEXT or FILE" fileContent: type: string description: Base64 encoded file content (used when fieldType is FILE) fileName: type: string description: File name (used when fieldType is FILE) contentType: type: string description: Content type of the field JoseDynamicKeyConfigDTO: type: object description: Dynamic HTTP key fetching configuration for one JOSE key path properties: keySourceMode: type: string description: "Key source mode (EMBEDDED for a stored JWK, DYNAMIC_HTTP to\ \ fetch over HTTP)" enum: - EMBEDDED - DYNAMIC_HTTP httpRequest: $ref: "#/components/schemas/JoseDynamicKeyRequestDTO" description: HTTP request used to fetch the key (required when keySourceMode is DYNAMIC_HTTP) keyExtractionVariable: $ref: "#/components/schemas/VariableDTO" description: "Variable that extracts the key from the response (header,\ \ body JSONPath/XPath)" keyFormat: type: string description: "Format of the fetched key (AUTO_DETECT, PUBLIC_KEY, PRIVATE_KEY,\ \ CERTIFICATE, JWK_JSON)" enum: - AUTO_DETECT - PUBLIC_KEY - PRIVATE_KEY - CERTIFICATE - JWK_JSON keyAlgorithm: type: string description: Key algorithm; NONE lets Apinizer auto-detect enum: - NONE - RS256 - RS384 - RS512 - PS256 - PS384 - PS512 - RSA1_5 - RSA_OAEP - RSA_OAEP_256 - RSA_OAEP_384 - RSA_OAEP_512 - ES256 - ES384 - ES512 - ES256K - ECDH_ES - ECDH_ES_A128KW - ECDH_ES_A192KW - ECDH_ES_A256KW - ECDH_1PU - ECDH_1PU_A128KW - ECDH_1PU_A192KW - ECDH_1PU_A256KW - HS256 - HS384 - HS512 - A128KW - A192KW - A256KW - A128GCMKW - A192GCMKW - A256GCMKW - DIR - PBES2_HS256_A128KW - PBES2_HS384_A192KW - PBES2_HS512_A256KW - EdDSA keyKid: type: string description: Key id (kid) to select from a JWK Set enableCache: type: boolean description: Cache the fetched key cacheByVariable: $ref: "#/components/schemas/VariableDTO" description: Variable used to build the key cache entry (required when caching is enabled) keyCacheTtl: type: integer format: int32 description: Key cache time-to-live in seconds keyCacheCapacity: type: integer format: int32 description: Maximum number of cached key entries keyRespectCacheInvalidationHeaders: type: boolean description: Honour Cache-Control headers returned by the key endpoint keyCacheStorageType: type: string description: Key cache storage type (LOCAL or DISTRIBUTED) enum: - LOCAL - DISTRIBUTED keyCacheConnectionTimeout: type: integer format: int32 description: Distributed key cache connection timeout in seconds keyCacheErrorHandlingType: type: string description: What to do when the cache service cannot be reached (CONTINUE or FAIL) enum: - FAIL - CONTINUE retryOnKeyError: type: boolean description: "On a cryptographic key error, invalidate the cache and fetch\ \ the key once more" invalidateCacheOnValidationError: type: boolean description: Invalidate the cached key when validation fails httpRetrySettings: $ref: "#/components/schemas/RetrySettingsDTO" description: Retry settings for the key-fetch HTTP call itself (network errors); distinct from retryOnKeyError which handles cryptographic key errors JoseDynamicKeyRequestDTO: type: object description: HTTP request definition used to fetch a JOSE key dynamically properties: endpointUrl: type: string description: Full endpoint URL of the key endpoint baseUrl: type: string description: "Base URL, used when endpointUrl is relative" httpMethod: type: string description: HTTP method used for the key request enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY headerList: type: array description: Request headers items: $ref: "#/components/schemas/KeyValueDTO" parameterList: type: array description: Query parameters items: $ref: "#/components/schemas/KeyValueDTO" bodyType: type: string description: "Request body type: NONE, RAW, FORM_DATA, URL_ENCODED or BINARY" requestBody: type: string description: Raw request body (used when bodyType is RAW) formDataList: type: array description: Form-data body fields (used when bodyType is FORM_DATA) items: $ref: "#/components/schemas/FormFieldDTO" urlEncodedList: type: array description: x-www-form-urlencoded body fields (used when bodyType is URL_ENCODED) items: $ref: "#/components/schemas/FormFieldDTO" timeout: type: integer format: int32 description: Request timeout in seconds KeyValueDTO: type: object description: Name/value pair properties: name: type: string description: Name value: type: string description: Value MessageBuilderRowDTO: type: object description: Message Builder Row configuration properties: policyCondition: $ref: "#/components/schemas/PolicyConditionDTO" description: Policy condition for this row buildMode: type: string description: "Build mode: FORM or TEMPLATE" enum: - form - template sourceVariable: $ref: "#/components/schemas/VariableDTO" description: Source variable (required for FORM mode) targetVariable: $ref: "#/components/schemas/VariableDTO" description: Target variable (required for both modes) template: type: string description: Template string (required for TEMPLATE mode) required: type: boolean description: "Required: fail if source not found" continueOnError: type: boolean description: "Continue on error: proceed to next row if error occurs" defaultValue: type: string description: Default value to use if source is not found required: - buildMode - targetVariable PolicyAiA2aAgentCallDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: enabled: type: boolean description: Whether this A2A agent call policy is enabled a2aAgent: $ref: "#/components/schemas/ConnectionConfigA2a" description: "Inline A2A agent definition (W5-4, a2a_wc_merge_design.md\ \ §1/§4) — endpoint, auth scheme + credentials, mTLS, cache settings.\ \ This is the ONLY way to define the backend A2A agent — a non-blank\ \ 'endpoint' is required." a2aAgentBearerTokenSet: type: boolean description: "READ-ONLY (GET/list responses only, ignored on write) —\ \ true if a2aAgent.bearerToken is configured on the persisted policy.\ \ INV-06 presence-flag masking parity with PolicyAiMcpToolCallDTO#mcpServerBearerTokenSet." a2aAgentClientSecretSet: type: boolean description: "READ-ONLY (GET/list responses only, ignored on write) —\ \ clientSecret counterpart of a2aAgentBearerTokenSet." a2aAgentApiKeySet: type: boolean description: "READ-ONLY (GET/list responses only, ignored on write) —\ \ API key counterpart of a2aAgentBearerTokenSet (authScheme API_KEY)." a2aAgentBasicPasswordSet: type: boolean description: "READ-ONLY (GET/list responses only, ignored on write) —\ \ Basic password counterpart of a2aAgentBearerTokenSet (authScheme BASIC)." callTimeoutMs: type: integer format: int32 description: "Per-message/send HTTP timeout in milliseconds (default:\ \ 30000)" taskWaitTimeoutMs: type: integer format: int32 description: "Total polling budget for the async-submit + tasks/get loop\ \ in ms (default: 60000)" parallelAgentCalls: type: boolean description: "Dispatch multiple agent calls in parallel using virtual\ \ threads (default: true)" allowedSkillNames: type: array description: Policy-level skill allow-list (subset of connection discoveredSkills). Empty = fail-closed by discovery. items: type: string identityAcl: type: array description: "Identity ACL rows (principalType + principalName, allow\ \ / deny lists). When the list is not empty, a call is allowed only\ \ if a row allows it for the caller's identity (default deny). An empty\ \ list means no identity check. Sent on write as the full list; an omitted\ \ list is stored as empty." items: $ref: "#/components/schemas/IdentityAclRule" tokenForwardSettings: $ref: "#/components/schemas/AgentTokenForwardSettings" description: "Forwarding of the client's own token to the backend (source,\ \ audience allow-list, strip gateway credential). null = not configured." PolicyAiA2aAgentInvokeDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: enabled: type: boolean description: Whether this A2A agent invoke policy is enabled a2aAgent: $ref: "#/components/schemas/ConnectionConfigA2a" description: "Inline A2A agent definition (W5-4, a2a_wc_merge_design.md\ \ §1/§4/§2.7) — same contract as PolicyAiA2aAgentCallDTO#a2aAgent. This\ \ is the ONLY way to define the backend A2A agent — a non-blank 'endpoint'\ \ is required. On a GET/list response bearerToken/clientSecret/apiKey/basicPassword\ \ are ALWAYS masked (null) — see a2aAgentBearerTokenSet/a2aAgentClientSecretSet\ \ for presence." a2aAgentBearerTokenSet: type: boolean description: "READ-ONLY (GET/list responses only, ignored on write) —\ \ true if a2aAgent.bearerToken is configured on the persisted policy.\ \ INV-06 presence-flag masking parity with PolicyAiA2aAgentCallDTO#a2aAgentBearerTokenSet." a2aAgentClientSecretSet: type: boolean description: "READ-ONLY (GET/list responses only, ignored on write) —\ \ clientSecret counterpart of a2aAgentBearerTokenSet." a2aAgentApiKeySet: type: boolean description: "READ-ONLY (GET/list responses only, ignored on write) —\ \ API key counterpart of a2aAgentBearerTokenSet (authScheme API_KEY)." a2aAgentBasicPasswordSet: type: boolean description: "READ-ONLY (GET/list responses only, ignored on write) —\ \ Basic password counterpart of a2aAgentBearerTokenSet (authScheme BASIC)." targetSkillName: type: string description: Admin-selected target A2A skill name to invoke (required; not LLM-selected) messageTemplate: type: string description: "Outbound message template — ${var} placeholders resolved\ \ from MessageContext" waitMode: type: string description: FIRE_AND_FORGET (default) dispatches async and never blocks the request/error leg; SYNC_TO_VARIABLE waits for the call result and writes it into outputVariableName enum: - FIRE_AND_FORGET - SYNC_TO_VARIABLE outputVariableName: type: string description: Target Variable name to receive the call result — only meaningful when waitMode=SYNC_TO_VARIABLE callTimeoutMs: type: integer format: int32 description: "Per-message/send HTTP timeout in milliseconds (default:\ \ 30000)" taskWaitTimeoutMs: type: integer format: int32 description: "Total polling budget for the async-submit + tasks/get loop\ \ in ms (default: 60000)" identityAcl: type: array description: "Identity ACL rows (principalType + principalName, allow\ \ / deny lists). When the list is not empty, a call is allowed only\ \ if a row allows it for the caller's identity (default deny). An empty\ \ list means no identity check. Sent on write as the full list; an omitted\ \ list is stored as empty." items: $ref: "#/components/schemas/IdentityAclRule" tokenForwardSettings: $ref: "#/components/schemas/AgentTokenForwardSettings" description: "Forwarding of the client's own token to the backend (source,\ \ audience allow-list, strip gateway credential). null = not configured." PolicyAiContextIntegrityDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: enabled: type: boolean description: Whether the guard is enabled action: type: string description: Action taken on a structural violation (BLOCK/FLAG/MASK) enum: - BLOCK - FLAG - MASK roleMarkerDetectionEnabled: type: boolean description: "Detection #1 — fabricated-turn / role-marker injection scan\ \ of message content" customMarkerPatternList: type: array description: Optional custom role-marker regex patterns (applied in addition to built-in defaults) items: type: string roleSequenceValidationEnabled: type: boolean description: "Detection #2 — role-sequence validation (roles in allowed\ \ set + system-turn cap)" allowedRoles: type: array description: Allowed message roles for role-sequence validation (empty → built-in default set) items: type: string maxSystemMessages: type: integer format: int32 description: Max client-injected system turns tolerated (role-sequence validation) PolicyAiDlpGuardDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: enabled: type: boolean description: Whether the DLP guard is enabled policyAiDlpGuardDefList: type: array description: List of DLP guard definition rules (secret/credential detection) items: $ref: "#/components/schemas/PolicyAiDlpGuardDefDTO" carryBufferSize: type: integer format: int32 description: Streaming carry buffer size in chars (chunk-boundary MASK) decodeEncodedContent: type: boolean fileSignatureDetectionEnabled: type: boolean description: Enable magic-byte file-signature detection (binary document/archive/executable smuggled into a prompt or echoed back in a response). Defaults to false/off. fileSignatureAction: type: string description: Action for a file-signature match. Only BLOCK/FLAG are valid (MASK is rejected at save time — a magic-byte match has no well-defined redaction span). Defaults to BLOCK. enum: - BLOCK - FLAG - MASK fileSignatureTypes: type: array description: "Allow-list of file-signature types to consider a match (PDF,\ \ ZIP_OOXML, PNG, JPEG, GIF, GZIP, RAR, SEVEN_ZIP, ELF, PE_EXE, OLE2,\ \ RTF, JAVA_CLASS). Null/empty means all types." items: type: string enum: - PDF - ZIP_OOXML - PNG - JPEG - GIF - GZIP - RAR - SEVEN_ZIP - ELF - PE_EXE - OLE2 - RTF - JAVA_CLASS engine: type: string description: "Guardrail evaluation engine (BUILTIN / BUILTIN_PLUS_EXTERNAL\ \ / EXTERNAL_ONLY). Defaults to BUILTIN. APNZ-6553: EXTERNAL_ONLY ignores\ \ policyAiDlpGuardDefList entirely — no BLOCK/MASK/FLAG rule runs, only\ \ the external verdict (BLOCK-only)." enum: - BUILTIN - BUILTIN_PLUS_EXTERNAL - EXTERNAL_ONLY failMode: type: string description: Fail-mode when the external guardrail call errors/times out (FAIL_CLOSED / FAIL_OPEN). Defaults to FAIL_CLOSED. enum: - FAIL_OPEN - FAIL_CLOSED externalGuardrail: $ref: "#/components/schemas/ExternalGuardrailDTO" description: External guardrail adapter configuration (llm-judge or http-dlp). Required (non-null) when engine != BUILTIN. PolicyAiDlpGuardDefDTO: type: object description: AI DLP guard definition (secret/credential detection rule) properties: id: type: integer format: int32 description: Guard definition ID presetId: type: string description: "Catalog preset this rule is bound to; null = localized (never\ \ refreshed by catalog edits). Installation-local id: it is NOT portable\ \ across installations and import deliberately clears it (the copy stays\ \ fully functional, just localized). This is a provenance marker, not\ \ a lookup key — APIops name-based-reference rule does not apply. See\ \ PolicyAiPromptTemplateDTO javadoc." name: type: string description: Guard definition name ruleValue: type: string description: Rule value (regex pattern) action: type: string description: Guard action (BLOCK / FLAG / MASK) enum: - BLOCK - FLAG - MASK category: type: string description: "Category label (e.g. aws, openai, github, pem, jwt, generic)" enabled: type: boolean description: Whether this definition is active description: type: string description: Description for UI display literalAnchors: type: array description: "APNZ-6544 continuation (rpc/rid) — literal-substring pre-filter\ \ hints consumed by RuleScanGate. Each entry MUST be a required substring\ \ of every possible match of ruleValue (a loose/likely-only anchor silently\ \ defeats the gate — see RulePackLoader.PackRule#literalAnchors javadoc).\ \ Null/empty is the safe default (this def is never gated out, always\ \ regex-scanned)." items: type: string required: - action - name - ruleValue PolicyAiGroundednessGuardDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: action: type: string description: Action on ungrounded-response detection (FLAG / BLOCK) enum: - BLOCK - FLAG - MASK failMode: type: string description: Fail-mode when the judge call errors/times out (FAIL_CLOSED / FAIL_OPEN). Defaults to FAIL_CLOSED. enum: - FAIL_OPEN - FAIL_CLOSED latencyMode: type: string description: Evaluation mode (INLINE / ASYNC / SHADOW). Defaults to INLINE. enum: - INLINE - ASYNC - SHADOW maxWaitMs: type: integer format: int32 description: ASYNC/INLINE-bounded max wait (ms) externalGuardrail: $ref: "#/components/schemas/ExternalGuardrailDTO" description: REQUIRED judge adapter configuration (always llm-judge for this policy). maxContextChars: type: integer format: int32 description: Retrieved-context truncation cap (chars) before composing the judge input maxResponseChars: type: integer format: int32 description: Response-text truncation cap (chars) before composing the judge input PolicyAiLoopGuardDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: windowSeconds: type: integer format: int32 description: Sliding-window size in seconds maxRepeats: type: integer format: int32 description: Repeat threshold within the window action: type: string description: Action on threshold exceeded (FLAG / BLOCK) enum: - BLOCK - FLAG - MASK failOpenOnCacheError: type: boolean description: "Whether a cache-service error lets the request pass (true,\ \ default) or blocks it (false)" anonymousHandling: type: string description: "Behaviour on anonymous (identity-less) requests: SKIP (default\ \ — policy not applied), SHARED_POOL (counted in one shared bucket)\ \ or DENY (request rejected with HTTP 401)" enum: - SKIP - SHARED_POOL - DENY countingMode: type: string enum: - ALL_REQUESTS - ACCEPTED_ONLY limitChangeAction: type: string enum: - CLAMP - RESET - NONE PolicyAiMcpToolCallDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: enabled: type: boolean description: Whether this MCP tool call policy is enabled mcpServer: $ref: "#/components/schemas/ConnectionConfigMcp" description: "Inline MCP server definition (W-C, mcp_wc_merge_design.md\ \ §2.1) — endpoint, auth scheme + credentials, mTLS, cache settings.\ \ This is the ONLY way to define the backend MCP server — a non-blank\ \ 'endpoint' is required. discoveredTools/toolsParsedAt/health*/drift*\ \ are server-managed — any value submitted here is ignored/reset (McpInlineServerGate).\ \ On a GET/list response bearerToken/clientSecret/apiKey/basicPassword\ \ are ALWAYS masked (null) — see mcpServerBearerTokenSet/mcpServerClientSecretSet\ \ for presence. Omit them entirely on PUT/POST to preserve the stored\ \ value; only a genuinely NEW secret should be sent as plaintext." mcpServerBearerTokenSet: type: boolean description: "READ-ONLY (GET/list responses only, ignored on write) —\ \ true if mcpServer.bearerToken is configured on the persisted policy.\ \ INV-06 presence-flag masking parity with ConnectionConfigMcpDTO#bearerTokenSet\ \ (W-C FAIL-1 fix, mcp_wc_merge_design.md §2.5/§8-S2i)." mcpServerClientSecretSet: type: boolean description: "READ-ONLY (GET/list responses only, ignored on write) —\ \ clientSecret counterpart of mcpServerBearerTokenSet." mcpServerApiKeySet: type: boolean description: "READ-ONLY (GET/list responses only, ignored on write) —\ \ API key counterpart of mcpServerBearerTokenSet (authScheme API_KEY)." mcpServerBasicPasswordSet: type: boolean description: "READ-ONLY (GET/list responses only, ignored on write) —\ \ Basic password counterpart of mcpServerBearerTokenSet (authScheme\ \ BASIC)." toolCallTimeoutMs: type: integer format: int32 description: "Per-tool-call HTTP timeout in milliseconds (default: 30000)" parallelToolCalls: type: boolean description: "Dispatch multiple tool calls in parallel using virtual threads\ \ (default: true)" allowedToolNames: type: array description: Policy-level tool allow-list (subset of connection discoveredTools). Empty = allow all. items: type: string argumentConstraints: type: array description: Optional argument-validation rules (REGEX/MAX_LENGTH/ENUM/REQUIRED) evaluated by dot-notation argumentPath against the resolved tool-call arguments before dispatch. Applied uniformly to every tool call this policy dispatches. Empty = no validation (default). items: $ref: "#/components/schemas/ArgumentConstraintRule" identityAcl: type: array description: "Identity ACL rows (principalType + principalName, allow\ \ / deny lists). When the list is not empty, a call is allowed only\ \ if a row allows it for the caller's identity (default deny). An empty\ \ list means no identity check. Sent on write as the full list; an omitted\ \ list is stored as empty." items: $ref: "#/components/schemas/IdentityAclRule" tokenForwardSettings: $ref: "#/components/schemas/AgentTokenForwardSettings" description: "Forwarding of the client's own token to the backend (source,\ \ audience allow-list, strip gateway credential). null = not configured." PolicyAiMcpToolInvokeDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: enabled: type: boolean description: Whether this MCP tool invoke policy is enabled mcpServer: $ref: "#/components/schemas/ConnectionConfigMcp" description: "Inline MCP server definition (W-C, mcp_wc_merge_design.md\ \ §2.1/§2.7) — same contract as PolicyAiMcpToolCallDTO#mcpServer. This\ \ is the ONLY way to define the backend MCP server — a non-blank 'endpoint'\ \ is required. On a GET/list response bearerToken/clientSecret/apiKey/basicPassword\ \ are ALWAYS masked (null) — see mcpServerBearerTokenSet/mcpServerClientSecretSet\ \ for presence." mcpServerBearerTokenSet: type: boolean description: "READ-ONLY (GET/list responses only, ignored on write) —\ \ true if mcpServer.bearerToken is configured on the persisted policy.\ \ INV-06 presence-flag masking parity with ConnectionConfigMcpDTO#bearerTokenSet\ \ (W-C FAIL-1 fix, mcp_wc_merge_design.md §2.5/§8-S2i)." mcpServerClientSecretSet: type: boolean description: "READ-ONLY (GET/list responses only, ignored on write) —\ \ clientSecret counterpart of mcpServerBearerTokenSet." mcpServerApiKeySet: type: boolean description: "READ-ONLY (GET/list responses only, ignored on write) —\ \ API key counterpart of mcpServerBearerTokenSet (authScheme API_KEY)." mcpServerBasicPasswordSet: type: boolean description: "READ-ONLY (GET/list responses only, ignored on write) —\ \ Basic password counterpart of mcpServerBearerTokenSet (authScheme\ \ BASIC)." targetToolName: type: string description: Admin-selected target MCP tool name to invoke (required; not LLM-selected) argumentsTemplate: type: string description: "JSON tool-call arguments body template — ${var} placeholders\ \ resolved from MessageContext" waitMode: type: string description: FIRE_AND_FORGET (default) dispatches async and never blocks the request/error leg; SYNC_TO_VARIABLE waits for the call result and writes it into outputVariableName enum: - FIRE_AND_FORGET - SYNC_TO_VARIABLE outputVariableName: type: string description: Target Variable name to receive the call result — only meaningful when waitMode=SYNC_TO_VARIABLE callTimeoutMs: type: integer format: int32 description: "Per-tool-call HTTP timeout in milliseconds (default: 30000)" argumentConstraints: type: array description: Optional argument-validation rules (REGEX/MAX_LENGTH/ENUM/REQUIRED) evaluated by dot-notation argumentPath against the resolved targetToolName call's arguments before dispatch. Empty = no validation (default). items: $ref: "#/components/schemas/ArgumentConstraintRule" identityAcl: type: array description: "Identity ACL rows (principalType + principalName, allow\ \ / deny lists). When the list is not empty, a call is allowed only\ \ if a row allows it for the caller's identity (default deny). An empty\ \ list means no identity check. Sent on write as the full list; an omitted\ \ list is stored as empty." items: $ref: "#/components/schemas/IdentityAclRule" tokenForwardSettings: $ref: "#/components/schemas/AgentTokenForwardSettings" description: "Forwarding of the client's own token to the backend (source,\ \ audience allow-list, strip gateway credential). null = not configured." PolicyAiPiiMaskDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: privacyDefinitions: type: array description: List of privacy (PII) masking definitions items: $ref: "#/components/schemas/PrivacyDefinition" carryBufferSize: type: integer format: int32 description: Sliding window carry buffer size for streaming mode decodeEncodedContent: type: boolean unmaskMode: type: string description: Reversible-unmask persistence mode (NONE / RESPONSE_INLINE / UNMASK_API). Defaults to NONE (today's behaviour — no reverse mapping is ever persisted). Only meaningful with PLACEHOLDER_SEQUENCE/SYNTHETIC maskMode rules; requires AI_DEVELOPMENT MANAGE + project scope on the Manager Unmask API to resolve later. enum: - NONE - RESPONSE_INLINE - UNMASK_API unmaskAllowedRoles: type: array description: "Gateway-caller roles authorized for automatic RESPONSE_INLINE\ \ restoration. Only meaningful when unmaskMode=RESPONSE_INLINE. Empty/null\ \ = deny-by-default (nobody is restored, even with RESPONSE_INLINE selected)." items: type: string engine: type: string description: "Guardrail evaluation engine (BUILTIN / BUILTIN_PLUS_EXTERNAL\ \ / EXTERNAL_ONLY). Defaults to BUILTIN. APNZ-6553: EXTERNAL_ONLY ignores\ \ privacyDefinitions entirely — NO MASKING occurs, only the external\ \ verdict (BLOCK-only)." enum: - BUILTIN - BUILTIN_PLUS_EXTERNAL - EXTERNAL_ONLY failMode: type: string description: Fail-mode when the external guardrail call errors/times out (FAIL_CLOSED / FAIL_OPEN). Defaults to FAIL_CLOSED. enum: - FAIL_OPEN - FAIL_CLOSED externalGuardrail: $ref: "#/components/schemas/ExternalGuardrailDTO" description: External guardrail adapter configuration (llm-judge or http-dlp). Required (non-null) when engine != BUILTIN. PolicyAiPromptDecoratorDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: enabled: type: boolean description: Whether the decorator is enabled blocks: type: array description: Ordered list of PREPEND/APPEND role-tagged text blocks items: $ref: "#/components/schemas/AiPromptDecoratorBlockDTO" mergeIntoExistingSystem: type: boolean description: Merge a system-role block into an existing system message instead of inserting a new one maxTotalChars: type: integer format: int32 description: Injected-text budget in chars (sum of every enabled block's resolved content) PolicyAiPromptGuardDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: enabled: type: boolean description: Whether the guard is enabled policyAiPromptGuardDefList: type: array description: List of prompt guard definition rules items: $ref: "#/components/schemas/PolicyAiPromptGuardDefDTO" latencyMode: type: string description: Guardrail evaluation/latency mode (INLINE/ASYNC/SHADOW). Defaults to INLINE. enum: - INLINE - ASYNC - SHADOW maxWaitMs: type: integer format: int32 description: ASYNC mode fail-open timeout in milliseconds (ignored for INLINE/SHADOW) engine: type: string description: Guardrail evaluation engine (BUILTIN / BUILTIN_PLUS_EXTERNAL / EXTERNAL_ONLY). Defaults to BUILTIN. enum: - BUILTIN - BUILTIN_PLUS_EXTERNAL - EXTERNAL_ONLY failMode: type: string description: Fail-mode when the external guardrail call errors/times out (FAIL_CLOSED / FAIL_OPEN). Defaults to FAIL_CLOSED. enum: - FAIL_OPEN - FAIL_CLOSED externalGuardrail: $ref: "#/components/schemas/ExternalGuardrailDTO" description: External guardrail adapter configuration. Required (non-null) when engine != BUILTIN. decodeEncodedContent: type: boolean includeSystemPrompts: type: boolean description: Scan system-role messages AND the Anthropic top-level `system` field. null = true (this guard scans every message role by default; set false to exclude that role). includeAssistantPrompts: type: boolean description: Scan assistant-role messages. null = true (default full scan; set false to exclude that role). includeToolPrompts: type: boolean description: Scan tool-role messages. null = true (default full scan; set false to exclude that role). PolicyAiPromptGuardDefDTO: type: object description: AI prompt guard definition properties: id: type: integer format: int32 description: Guard definition ID presetId: type: string description: "Catalog preset this rule is bound to; null = localized (never\ \ refreshed by catalog edits). Installation-local id: it is NOT portable\ \ across installations and import deliberately clears it (the copy stays\ \ fully functional, just localized). This is a provenance marker, not\ \ a lookup key — APIops name-based-reference rule does not apply. See\ \ PolicyAiPromptTemplateDTO javadoc." name: type: string description: Guard definition name ruleValue: type: string description: Rule value (regex pattern) action: type: string description: Guard action enum: - BLOCK - FLAG - MASK category: type: string description: "Category label (e.g. jailbreak, system-leak, injection)" enabled: type: boolean description: Whether this definition is active description: type: string description: Description for UI display required: - action - name - ruleValue PolicyAiPromptTemplateDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: enabled: type: boolean description: Whether the template-expand behaviour is enabled templates: type: array description: Template bindings. Content (messages/parameters) is snapshot-copied; a bound binding additionally carries templateId as an installation-local provenance marker (see class javadoc). items: $ref: "#/components/schemas/AiPromptTemplateBindingDTO" requestTemplateField: type: string description: Request body field carrying the template alias requestParamsField: type: string description: Request body field carrying the template params object onUnknownTemplate: type: string description: PASS_THROUGH | BLOCK — behaviour when the client's alias matches no binding onMissingParam: type: string description: "BLOCK | EMPTY | DEFAULT — behaviour when a referenced {{param}}\ \ has no client-supplied value" mergeMode: type: string description: "REPLACE | PREPEND | APPEND — how expanded messages merge\ \ with the client's own messages[]" stripTemplateFields: type: boolean description: Whether the template/params request fields are stripped from the body after expand maxExpandedChars: type: integer format: int32 description: Fail-closed budget (chars) for the sum of every expanded message's content PolicyAiRagInjectionDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: enabled: type: boolean description: Whether this RAG injection policy is enabled. Default true. vectorDbName: type: string description: VectorDB connection name (project-scoped) — resolved server-side to ConnectionConfigVectorDb.id. Nullable (D2 validates). embeddingProviderName: type: string description: LLM/embedding provider connection name (project-scoped) — resolved server-side to the LLM provider id. Nullable (D2 validates). collectionName: type: string description: VectorDB collection / index name to query. topK: type: integer format: int32 description: Maximum number of top-k chunks to retrieve. Default 4. similarityThreshold: type: number format: double description: Minimum cosine similarity threshold for chunk inclusion. Default 0.7. injectionTemplate: type: string description: "Injection template with {{context}} and {{prompt}} placeholders.\ \ Used when injectionMode=TEMPLATE." maxContextChars: type: integer format: int32 description: Maximum total character count for injected context (token-budget guard). Default 4096. injectionMode: type: string description: "Injection mode: PREPEND_SYSTEM | PREPEND_USER | TEMPLATE\ \ | SYSTEM_SUFFIX. Default PREPEND_USER." noMatchBehavior: type: string description: "Behavior when no matching chunk found above threshold: PASS_THROUGH\ \ | BLOCK. Default PASS_THROUGH." injectionTargetVariable: $ref: "#/components/schemas/Variable" description: "Target variable for the injected context string (optional).\ \ D2 calls setVariableValue(injectionTargetVariable, augmentedPrompt)." embeddingModelId: type: string description: Embedding model identifier (e.g. text-embedding-3-small). Default text-embedding-3-small. embeddingDimension: type: integer format: int32 description: Embedding vector dimension — must match VectorDB collection dimension. Default 1536. knowledgeBaseName: type: string description: "Knowledge base name (project-scoped) this policy is scoped\ \ to (optional) — resolved server-side to AiKnowledgeBase.id. When set,\ \ query-time retrieval is additionally filtered to VectorDB records\ \ indexed under this KnowledgeBase (AND-combined with the project-boundary\ \ filter). Null → collectionName-only scope." knowledgeBaseId: type: string description: "DEPRECATED — raw AiKnowledgeBase.id. Accepted on input for\ \ backward compatibility, never returned; use knowledgeBaseName instead." writeOnly: true requireResolvedProjectId: type: boolean description: "REV-2: when true AND the request projectId cannot be resolved,\ \ RAG retrieval is skipped entirely (fail-closed) instead of falling\ \ back to an unfiltered cross-tenant VectorDB query. Default false preserves\ \ pre-REV-2 fail-open behavior." PolicyAiSemanticCacheDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: enabled: type: boolean description: Whether the semantic cache is enabled ttlSeconds: type: integer format: int32 description: Cache TTL in seconds (0 = disabled) cacheKeyStrategy: type: string description: "Cache key strategy (e.g., PROXY_ISOLATED)" anonymousHandling: type: string description: "Behaviour on anonymous (identity-less) requests: SKIP (default\ \ — cache bypassed), SHARED_POOL (cached in one shared bucket) or DENY\ \ (request rejected with HTTP 401)" enum: - SKIP - SHARED_POOL - DENY cacheConnectionTimeoutInSeconds: type: integer format: int32 description: "Cache connection timeout in seconds (default: 3)" maxCacheableBytes: type: integer format: int32 description: "Maximum cacheable response size in bytes (default: 256KB)" vectorEnabled: type: boolean description: Master switch for vector-similarity layer. false (default) = exact-only path. vectorDbName: type: string description: VectorDB connection name (project-scoped) — resolved server-side to ConnectionConfigVectorDb.id. Null = vector layer not configured. embeddingProviderName: type: string description: LLM/embedding provider connection name (project-scoped) — resolved server-side to the LLM provider id. Null = vector layer not configured. embeddingModelId: type: string description: Embedding model identifier (e.g. text-embedding-3-small). Default text-embedding-3-small. embeddingDimension: type: integer format: int32 description: Embedding vector dimension — must match VectorDB collection dimension. Default 1536. similarityThreshold: type: number format: double description: Minimum similarity score for a vector match to be treated as a cache HIT. Default 0.95. vectorTopK: type: integer format: int32 description: Number of nearest-neighbour results to request from VectorDB. Default 1. vectorCollectionName: type: string description: VectorDB collection/table name — used for both query and upsert. messageCountback: type: integer format: int32 description: "Vector-layer embedding input: how many trailing messages\ \ (matching the role filter below) to collect from the messages array,\ \ scanning from the end. null or <=1 = 1 (pre-F6 behavior — last user\ \ message only). Does NOT affect the exact-match cache key." includeSystemPrompts: type: boolean description: "Vector-layer embedding input: also collect trailing system-role\ \ messages. null = false (pre-F6 behavior)." includeAssistantPrompts: type: boolean description: "Vector-layer embedding input: also collect trailing assistant-role\ \ messages. null = false (pre-F6 behavior)." includeToolPrompts: type: boolean description: "Vector-layer embedding input: also collect trailing tool-role\ \ messages. null = false (pre-F6 behavior)." respectCacheControl: type: boolean description: "Honor the client's Cache-Control request header: no-store\ \ skips both read and write (request+response+stream-end), no-cache\ \ skips only the read. null/false (default) = header ignored entirely\ \ (pre-F6 behavior)." PolicyAiTokenRateLimitDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: defaultReservationTtlSeconds: type: integer format: int32 description: Default reservation TTL in seconds cacheConnectionTimeoutInSeconds: type: integer format: int32 description: Cache connection timeout in seconds failOpenOnCacheError: type: boolean description: Whether to fail open on cache error maxTokensPerRequest: type: integer format: int32 description: Per-request max estimated tokens (null = unlimited) maxPromptChars: type: integer format: int32 description: Per-request max raw prompt characters (null = unlimited) overflowAction: type: string description: "Action when maxTokensPerRequest is exceeded: BLOCK (default)\ \ or TRUNCATE_OLDEST" enum: - BLOCK - TRUNCATE_OLDEST proxyBudget: $ref: "#/components/schemas/AiTokenBudgetDTO" description: "AI proxy protection budget: one counter for every caller\ \ of the AI proxy, or one per applyBy value" applyBy: $ref: "#/components/schemas/VariableDTO" description: Variable whose value splits the proxy budget into one counter per value (like API Throttling); null = one counter for every caller detailList: type: array description: "Per-value budgets: a caller whose applyBy value matches\ \ a row uses the row's budget instead of the proxy budget" items: $ref: "#/components/schemas/AiTokenRateLimitDetailDTO" PolicyAiTopicGuardDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: allowedTopics: type: array description: Admin-defined allowed-topic descriptions items: type: string similarityThreshold: type: number format: double description: Minimum cosine similarity for the prompt to be considered on-topic action: type: string description: Action on off-topic detection (FLAG / BLOCK) enum: - BLOCK - FLAG - MASK embeddingProviderName: type: string description: Embedding provider connection config NAME (resolved to ref post-import) embeddingModelId: type: string description: Embedding model name embeddingDimension: type: integer format: int32 description: Embedding vector dimension latencyMode: type: string description: Evaluation mode (INLINE / ASYNC) enum: - INLINE - ASYNC - SHADOW maxWaitMs: type: integer format: int32 description: ASYNC mode max wait (ms) failOpenOnError: type: boolean description: "Whether an embed-call failure lets the request pass (true,\ \ default) or blocks it (false)" deniedTopics: type: array description: F7 (D7) — admin-defined denied-topic descriptions. A prompt matching one of these is BLOCKED/FLAGGED before allowedTopics is even evaluated (deny wins) items: type: string deniedSimilarityThreshold: type: number format: double description: F7 (D7) — minimum cosine similarity for a denied-topic match. null falls back to similarityThreshold deniedAction: type: string description: F7 (D7) — action on denied-topic match (FLAG / BLOCK). null falls back to action enum: - BLOCK - FLAG - MASK engine: type: string description: Guardrail evaluation engine (BUILTIN / BUILTIN_PLUS_EXTERNAL / EXTERNAL_ONLY). Defaults to BUILTIN. enum: - BUILTIN - BUILTIN_PLUS_EXTERNAL - EXTERNAL_ONLY failMode: type: string description: Fail-mode when the external guardrail call errors/times out (FAIL_CLOSED / FAIL_OPEN). Defaults to FAIL_CLOSED. enum: - FAIL_OPEN - FAIL_CLOSED externalGuardrail: $ref: "#/components/schemas/ExternalGuardrailDTO" description: External guardrail adapter configuration. Required (non-null) when engine != BUILTIN. decodeEncodedContent: type: boolean includeSystemPrompts: type: boolean description: "Also embed system-role messages in the topic comparison.\ \ null = false (only the last user message is embedded; enabling ANY\ \ role switches this guard to whole-conversation scanning, which changes\ \ embedding size, cost and similarity scores)." includeAssistantPrompts: type: boolean description: Also embed assistant-role messages in the topic comparison. null = false (see includeSystemPrompts for the whole-conversation mode switch). includeToolPrompts: type: boolean description: Also embed tool-role messages in the topic comparison. null = false (see includeSystemPrompts for the whole-conversation mode switch). PolicyApiAuthenticationDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: apiAuthCondExpressionList: type: array description: List of conditional authentication expressions items: $ref: "#/components/schemas/ApiAuthenticationConditionalExpression" authType: type: string description: "Authentication type (BASIC, BASE64, DIGEST)" enum: - BASIC - BASE64 - API - DIGEST sendType: type: string description: "Where to send authentication data (HEADER, PARAM, BODY_MESSAGE,\ \ BODY_INJECTION)" enum: - HEADER - PARAM - BODY_MESSAGE - BODY_INJECTION messageContentType: type: string description: Message content type (XML or JSON) enum: - XML - JSON - ALL_BODY usernameFieldName: type: string description: Username field name for header/param authentication authApiName: type: string description: Authentication API name (alternative to conditional expressions) passwordFieldName: type: string description: Password field name for header/param authentication createdFieldName: type: string description: Created timestamp field name for digest authentication nonceFieldName: type: string description: Nonce field name for digest authentication bodyMessage: type: string description: Body message template for BODY_MESSAGE send type bodyMessageInjectionPath: type: string description: Body message injection path for BODY_MESSAGE send type usernameInjectionPath: type: string description: Username injection path for BODY_INJECTION send type passwordInjectionPath: type: string description: Password injection path for BODY_INJECTION send type createdInjectionPath: type: string description: Created timestamp injection path for BODY_INJECTION send type nonceInjectionPath: type: string description: Nonce injection path for BODY_INJECTION send type PolicyApiBasedQuotaDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: targetVariableForIdentity: $ref: "#/components/schemas/VariableDTO" messageCountForInterval: type: integer format: int32 quotaInterval: type: string enum: - ONE_HOUR - ONE_DAY - ONE_MONTH intervalPeriodLength: type: integer format: int32 intervalWindowType: type: string enum: - FIXED - SLIDING detailList: type: array items: $ref: "#/components/schemas/ApiBasedQuotaDetailDTO" showRateLimitStatisticsInResponseHeader: type: boolean cacheConnectionTimeoutInSeconds: type: integer format: int32 cacheErrorHandlingType: type: string enum: - FAIL - CONTINUE countingMode: type: string enum: - ALL_REQUESTS - ACCEPTED_ONLY limitChangeAction: type: string enum: - CLAMP - RESET - NONE PolicyApiBasedThrottlingDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: targetVariableForIdentity: $ref: "#/components/schemas/VariableDTO" messageCountForInterval: type: integer format: int32 throttlingInterval: type: string enum: - ONE_SECOND - ONE_MINUTE intervalPeriodLength: type: integer format: int32 intervalWindowType: type: string enum: - FIXED - SLIDING cacheConnectionTimeoutInSeconds: type: integer format: int32 cacheErrorHandlingType: type: string enum: - FAIL - CONTINUE showRateLimitStatisticsInResponseHeader: type: boolean detailList: type: array items: $ref: "#/components/schemas/ApiBasedThrottlingDetailDTO" countingMode: type: string enum: - ALL_REQUESTS - ACCEPTED_ONLY limitChangeAction: type: string enum: - CLAMP - RESET - NONE PolicyApiCallDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: callType: type: string description: API call type (SYNCHRONOUS or ONE_WAY) enum: - ONE_WAY - SYNCHRONOUS httpMethod: type: string description: HTTP method for the API call enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY url: type: string description: Target API URL timeout: type: integer format: int32 description: Request timeout in milliseconds certificateName: type: string description: Certificate name for mTLS certificateEnabled: type: boolean description: Enable certificate for mTLS clearBodyBeforeCall: type: boolean description: Clear request body before API call useMessageTemplateBeforeCall: type: boolean description: Use message template for request body enumTestConsoleRequestBodyType: type: string description: "Message content type for request body (XML, JSON, RAW, URL_ENCODED)" enum: - XML - JSON - RAW - URL_ENCODED bodyContentBeforeCall: type: string description: Body content template for request urlEncodedList: type: array description: URL encoded form parameters items: $ref: "#/components/schemas/TestCaseForm" dataManipulationListBeforeCall: type: array description: Data manipulation definitions for request items: $ref: "#/components/schemas/PolicyRestApiDataManipulationDef" removeAllHeadersBeforeCall: type: boolean description: Remove all headers from original request before API call headersToBeDeletedBeforeCallList: type: array description: List of header names to delete before API call items: type: string headersToBeAddedBeforeCallList: type: array description: List of headers to add before API call items: $ref: "#/components/schemas/PolicyRestApiHeader" removeAllParametersBeforeCall: type: boolean description: Remove all query parameters from original request before API call parametersToBeDeletedBeforeCallList: type: array description: List of parameter names to delete before API call items: type: string parametersToBeAddedBeforeCallList: type: array description: List of query parameters to add before API call items: $ref: "#/components/schemas/PolicyRestApiParameter" enableCache: type: boolean description: Enable response caching cacheBy: $ref: "#/components/schemas/VariableDTO" description: Variable to use for cache key (optional) capacity: type: integer format: int32 description: Cache capacity (max number of cached responses) ttl: type: integer format: int32 description: Cache time-to-live in seconds cacheNullResponses: type: boolean description: Cache null/error responses cacheStorageType: type: string description: Cache storage type (LOCAL or DISTRIBUTED) enum: - LOCAL - DISTRIBUTED cacheConnectionTimeoutInSeconds: type: integer format: int32 description: Distributed cache connection timeout in seconds (only meaningful for DISTRIBUTED storage) cacheErrorAction: type: string description: What to do when the cache service cannot be reached (CONTINUE or STOP) enum: - CONTINUE - STOP retrySettings: $ref: "#/components/schemas/RetrySettingsDTO" description: Retry settings for the outbound API call (disabled by default) enableCompression: type: boolean description: Advertise Accept-Encoding to the target service and auto-decompress its response (disabled by default) enableDynamicTtl: type: boolean description: Enable dynamic TTL calculation from API response dynamicTtlVariable: $ref: "#/components/schemas/VariableDTO" description: "Variable from which the TTL value will be read (response\ \ header, body JSONPath/XPath, or context variable)" dynamicTtlSourceType: type: string description: "Format of the dynamic TTL value (ISO_8601_DATETIME, CUSTOM_DATETIME,\ \ EPOCH_SECONDS, EPOCH_MILLISECONDS, EXPIRES_IN_SECONDS, EXPIRES_IN_MILLISECONDS,\ \ TTL_STRING)" enum: - ISO_8601_DATETIME - CUSTOM_DATETIME - EPOCH_SECONDS - EPOCH_MILLISECONDS - EXPIRES_IN_SECONDS - EXPIRES_IN_MILLISECONDS - TTL_STRING dynamicTtlCustomDatePattern: type: string description: Custom date-time pattern when dynamicTtlSourceType is CUSTOM_DATETIME (Java DateTimeFormatter pattern) dynamicTtlIsJwt: type: boolean description: Whether the source variable value is inside a JWT token dynamicTtlJwtClaimName: type: string description: JWT claim name to read after JWT decoding (e.g. 'exp' or JSONPath '$.data.expireAt') dynamicTtlOffsetSeconds: type: integer format: int32 description: Safety margin in seconds subtracted from the calculated TTL fallbackTtl: type: integer format: int32 description: Fallback TTL in seconds when dynamic TTL cannot be calculated enableResponseAssertion: type: boolean description: Enable business-level success assertion on the API call response. When the assertion fails the response is NOT cached; the flow continues. Useful for backends that return HTTP 200 with an error code in the body responseAssertionVariable: $ref: "#/components/schemas/VariableDTO" description: "Variable to assert on (response header, body JSONPath/XPath,\ \ or context variable)" responseAssertionOperator: type: string description: "Comparison operator (EQUALS, NOT_EQUALS, CONTAINS, NOT_CONTAINS,\ \ EXISTS, NOT_EXISTS, MATCHES_REGEX)" enum: - EQUALS - NOT_EQUALS - CONTAINS - NOT_CONTAINS - EXISTS - NOT_EXISTS - MATCHES_REGEX responseAssertionExpectedValue: type: string description: Expected value compared against the resolved variable. Not required for EXISTS/NOT_EXISTS afterCallBodyOperationType: type: string description: "Operation type for original message body after API call\ \ (NOT_CHANGE, REPLACE, CLEAR)" enum: - NOT_CHANGE_BODY - REPLACE_BODY - CLEAR_BODY useMessageTemplateAfterCall: type: boolean description: Use message template for body after API call messageTemplateContentTypeAfterCall: type: string description: "Message content type after API call (XML, JSON, RAW)" enum: - XML - JSON - RAW - URL_ENCODED bodyContentAfterCall: type: string description: Body content template after API call dataManipulationListAfterCall: type: array description: Data manipulation definitions for response items: $ref: "#/components/schemas/PolicyRestApiDataManipulationDef" removeAllHeadersAfterCall: type: boolean description: Remove all headers from original message after API call headersToBeDeletedAfterCallList: type: array description: List of header names to delete after API call items: type: string headersToBeAddedAfterCallList: type: array description: List of headers to add after API call items: $ref: "#/components/schemas/PolicyRestApiHeader" removeAllParametersAfterCall: type: boolean description: Remove all query parameters from original message after API call parametersToBeDeletedAfterCallList: type: array description: List of parameter names to delete after API call items: type: string parametersToBeAddedAfterCallList: type: array description: List of query parameters to add after API call items: $ref: "#/components/schemas/PolicyRestApiParameter" prepareMessage: type: boolean description: Prepare message flag modifyMessage: type: boolean description: Modify message flag newBodyContentSourceType: type: string description: Source type for new body content enum: - VALUE - VARIABLE required: - httpMethod - url PolicyAuthenticationBasicDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: usernameVar: $ref: "#/components/schemas/VariableDTO" description: Variable for extracting username from request (Base64 Basic Auth) clearAuth: type: boolean description: Clear authentication header after validation setUsernameOrKey: type: boolean description: "Persist the resolved identity (username/key) to the request\ \ context (traffic log, next policies, scripts). Defaults to true." validateACLForIssuer: type: boolean description: "Enforce the credential's access control list (ACL) for this\ \ API proxy. When false the policy only verifies the identity (credential\ \ enabled, organization active, validity, password, IP list); the ACL\ \ is not consulted. Applies to the Secret Manager identity source. Defaults\ \ to true." addUserToHeader: type: boolean description: Add authenticated user to header userHeaderName: type: string description: Header name to add authenticated user PolicyAuthenticationClearTextDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: usernameVar: $ref: "#/components/schemas/VariableDTO" description: Variable for extracting username from request passwordVar: $ref: "#/components/schemas/VariableDTO" description: Variable for extracting password from request clearAuth: type: boolean description: Clear authentication data after validation setUsernameOrKey: type: boolean description: "Persist the resolved identity (username/key) to the request\ \ context (traffic log, next policies, scripts). Defaults to true." validateACLForIssuer: type: boolean description: "Enforce the credential's access control list (ACL) for this\ \ API proxy. When false the policy only verifies the identity (credential\ \ enabled, organization active, validity, password, IP list); the ACL\ \ is not consulted. Applies to the Secret Manager identity source. Defaults\ \ to true." addUserToHeader: type: boolean description: Add authenticated user to header userHeaderName: type: string description: Header name to add authenticated user checkPassword: type: boolean description: Check password during authentication bearerApiKey: type: boolean description: "Use API Key as Bearer Token: the key is presented as 'Authorization:\ \ Bearer ' and no password is compared. Requires checkPassword=false.\ \ Defaults to false." oidcProviderName: type: string description: "Name of the AuthenticationOidcProvider used as the identity\ \ service (APNZ-6772). Only allowed together with bearerApiKey=true:\ \ the presented bearer value is then an IdP-issued token validated through\ \ the provider (JWKS / introspection per its validation mode). Resolved\ \ to authenticationOidcProviderId at save time within the target project\ \ — APIops references entities by NAME, never by id." PolicyAuthenticationDigestDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: usernameVar: $ref: "#/components/schemas/VariableDTO" description: Variable for extracting username from request passwordVar: $ref: "#/components/schemas/VariableDTO" description: Variable for extracting password from request nonceVar: $ref: "#/components/schemas/VariableDTO" description: Variable for extracting nonce from request createdVar: $ref: "#/components/schemas/VariableDTO" description: Variable for extracting created timestamp from request clearAuth: type: boolean description: Clear authentication data after validation setUsernameOrKey: type: boolean description: "Persist the resolved identity (username/key) to the request\ \ context (traffic log, next policies, scripts). Defaults to true." validateACLForIssuer: type: boolean description: "Enforce the credential's access control list (ACL) for this\ \ API proxy. When false the policy only verifies the identity (credential\ \ enabled, organization active, validity, password, IP list); the ACL\ \ is not consulted. Applies to the Secret Manager identity source. Defaults\ \ to true." addUserToHeader: type: boolean description: Add authenticated user to header userHeaderName: type: string description: Header name to add authenticated user PolicyAuthenticationJwtDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: tokenNeverExpires: type: boolean description: Token never expires flag tokenExpiresInAmount: type: integer format: int64 description: Token expiration amount tokenExpiresInUnit: type: string description: Token expiration unit enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS refreshTokenAllowed: type: boolean description: Refresh token allowed refreshTokenCount: type: integer format: int32 description: Refresh token count refreshTokenExpiresInAmount: type: integer format: int64 description: Refresh token expiration amount refreshTokenExpiresInUnit: type: string description: Refresh token expiration unit enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS allowUrlParameters: type: boolean description: Allow URL parameters managedFromThisPolicy: type: boolean description: Managed from this policy validateACLForIssuer: type: boolean description: "Enforce the credential's access control list (ACL) for this\ \ API proxy. When false the policy only verifies the identity (credential\ \ enabled, organization active, validity, password, IP list); the ACL\ \ is not consulted. Applies to the Secret Manager identity source. Defaults\ \ to true." grantType: type: string description: Grant type enum: - CLIENT_CREDENTIALS - PASSWORD grantTypes: type: array description: "Grants this policy accepts, as OAuth wire names: the one\ \ legacy grant (client_credentials or password, equal to grantType)\ \ and optionally authorization_code (browser login, Manage From Policy\ \ only). Omitted = grantType alone (browser login off)." items: type: string jwtSignatureAlgorithm: type: string description: JWT signature algorithm identityServiceType: type: string description: "Identity/Role/Group Service type used to authenticate the\ \ caller: SECRET_MANAGER (default), DATABASE, LDAP, API or OIDC. When\ \ OIDC, oidcProviderName must identify an AuthenticationOidcProvider\ \ in the same project. Allowed for any grantType (APNZ-6772): with a\ \ non-PASSWORD grant the gateway issues no token — the IdP does — and\ \ validates the presented bearer token through the provider (JWKS /\ \ introspection per its validation mode); token-lifetime / refresh /\ \ managedFromThisPolicy fields are then ignored and /auth/* token requests\ \ are refused with 400." enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC oidcProviderName: type: string description: "Name of the AuthenticationOidcProvider used as the identity\ \ service. Resolved to authenticationOidcProviderId at save time within\ \ the target project — APIops references entities by NAME, never by\ \ id. Required when identityServiceType=OIDC." delegationAcceptance: $ref: "#/components/schemas/DelegationAcceptance" description: "Accept delegated (RFC 8693 token-exchange) tokens on this\ \ policy. Off unless enabled=true. allowedActors: client names of the\ \ agents that may act for a user (every actor of the act chain must\ \ be listed; an empty list admits none). maxActDepth: 1 or 2 (default\ \ 2). The request runs as the user with the user's current roles; the\ \ token scope can only narrow them (a role without an OAuth scope is\ \ not carried). Direct clients are not affected." PolicyAuthenticationMTLSDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: validateCertificate: type: boolean description: Validate certificate validateACLForIssuer: type: boolean description: Validate ACL for issuer validateCertificatesIssuer: type: boolean description: Validate certificates issuer against the credential truststore identitySource: type: string description: Certificate field the client identity is resolved from enum: - SUBJECT - ISSUER - SUBJECT_OR_ISSUER PolicyAuthenticationOAuth2DTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: tokenNeverExpires: type: boolean description: Token never expires flag tokenExpiresInAmount: type: integer format: int64 description: Token expiration amount tokenExpiresInUnit: type: string description: Token expiration unit enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS refreshTokenAllowed: type: boolean description: Refresh token allowed refreshTokenCount: type: integer format: int32 description: Refresh token count refreshTokenExpiresInAmount: type: integer format: int64 description: Refresh token expiration amount refreshTokenExpiresInUnit: type: string description: Refresh token expiration unit enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS allowUrlParameters: type: boolean description: Allow URL parameters managedFromThisPolicy: type: boolean description: Managed from this policy validateACLForIssuer: type: boolean description: "Enforce the credential's access control list (ACL) for this\ \ API proxy. When false the policy only verifies the identity (credential\ \ enabled, organization active, validity, password, IP list); the ACL\ \ is not consulted. Applies to the Secret Manager identity source. Defaults\ \ to true." grantType: type: string description: Grant type enum: - CLIENT_CREDENTIALS - PASSWORD grantTypes: type: array description: "Grants this policy accepts, as OAuth wire names: the one\ \ legacy grant (client_credentials or password, equal to grantType)\ \ and optionally authorization_code (browser login, Manage From Policy\ \ only). Omitted = grantType alone (browser login off)." items: type: string deletePrevious: type: boolean description: Delete previous tokens identityServiceType: type: string description: "Identity/Role/Group Service type used to authenticate the\ \ caller: SECRET_MANAGER (default), DATABASE, LDAP, API or OIDC. When\ \ OIDC, oidcProviderName must identify an AuthenticationOidcProvider\ \ in the same project. Allowed for any grantType (APNZ-6772): with a\ \ non-PASSWORD grant the gateway issues no token — the IdP does — and\ \ validates the presented bearer token through the provider (JWKS /\ \ introspection per its validation mode); token-lifetime / refresh /\ \ managedFromThisPolicy fields are then ignored and /auth/* token requests\ \ are refused with 400." enum: - LDAP - DATABASE - MEMORY - API - SECRET_MANAGER - OIDC oidcProviderName: type: string description: "Name of the AuthenticationOidcProvider used as the identity\ \ service. Resolved to authenticationOidcProviderId at save time within\ \ the target project — APIops references entities by NAME, never by\ \ id. Required when identityServiceType=OIDC." delegationAcceptance: $ref: "#/components/schemas/DelegationAcceptance" description: "Accept stored (opaque) delegated tokens issued by RFC 8693\ \ token exchange on this policy. Off unless enabled=true. allowedActors:\ \ client names of the agents that may act for a user (every actor of\ \ the act chain must be listed; an empty list admits none). maxActDepth:\ \ 1 or 2 (default 2). The request runs as the user with the user's current\ \ roles; the token scope can only narrow them (a role without an OAuth\ \ scope is not carried). Direct clients are not affected." PolicyBlackIpDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: targetVariableForIP: $ref: "#/components/schemas/VariableDTO" ipList: type: array items: type: string ipGroupNameList: type: array description: List of IP Group names to attach to this policy (resolved to ids on save) items: type: string PolicyBusinessRuleDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: actionList: type: array description: List of actions to execute items: $ref: "#/components/schemas/Action" PolicyCacheDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: operationType: type: string description: "Cache operation: LOOKUP, POPULATE or INVALIDATE" enum: - LOOKUP - POPULATE - INVALIDATE cacheStorageType: type: string description: "Storage type: LOCAL (node-only) or DISTRIBUTED (Hazelcast)" enum: - LOCAL - DISTRIBUTED keyPrefix: type: string description: Optional fixed prefix for the cache key (user-controlled isolation; no auto proxy/env injection) keyVariableList: type: array description: Variable list composing the cache key. Resolved values joined with '|'. No auto ID injection. items: $ref: "#/components/schemas/VariableDTO" targetVariable: $ref: "#/components/schemas/VariableDTO" description: "LOOKUP: context variable into which the cached value will\ \ be written" sourceVariable: $ref: "#/components/schemas/VariableDTO" description: "POPULATE: variable whose value will be cached (e.g., response\ \ body)" capacity: type: integer format: int32 description: "POPULATE: max entries kept in cache (LRU eviction)" ttl: type: integer format: int32 description: "POPULATE: static TTL in seconds. Ignored when enableDynamicTtl=true." cacheNullValues: type: boolean description: "Cache null/empty values (default: false)" enableDynamicTtl: type: boolean description: Enable dynamic TTL computation from a variable dynamicTtlVariable: $ref: "#/components/schemas/VariableDTO" description: Variable from which the TTL value will be read dynamicTtlSourceType: type: string description: Source format for the dynamic TTL value enum: - ISO_8601_DATETIME - CUSTOM_DATETIME - EPOCH_SECONDS - EPOCH_MILLISECONDS - EXPIRES_IN_SECONDS - EXPIRES_IN_MILLISECONDS - TTL_STRING dynamicTtlCustomDatePattern: type: string description: Custom date-time pattern when dynamicTtlSourceType is CUSTOM_DATETIME dynamicTtlIsJwt: type: boolean description: Treat the variable as a JWT token dynamicTtlJwtClaimName: type: string description: JWT claim name carrying the TTL value dynamicTtlOffsetSeconds: type: integer format: int32 description: Optional offset (seconds) applied to the resolved TTL fallbackTtl: type: integer format: int32 description: Fallback TTL (seconds) used when dynamic resolution fails cacheErrorAction: type: string description: "Behavior when a cache operation fails: CONTINUE (warn +\ \ continue) or STOP (throw)" enum: - CONTINUE - STOP cacheConnectionTimeoutInSeconds: type: integer format: int32 default: 3 description: "Cache connection timeout in seconds (DISTRIBUTED only).\ \ Default: 3" required: - operationType PolicyClientBannerDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: clientIdentityVariableList: type: array description: List of client identity variables items: $ref: "#/components/schemas/VariableDTO" thresholdWindowInSeconds: type: integer format: int32 description: Threshold window in seconds thresholdCountPerWindow: type: integer format: int32 description: Threshold count per window thresholdCalculationType: type: string description: Threshold calculation type enum: - COUNT - PERCENT banTimeInSeconds: type: integer format: int32 description: Ban time in seconds enableRetryAfterHeader: type: boolean description: Enable retry-after header ignoreWhenKeyIsEmpty: type: boolean description: Ignore when key is empty assertionCondition: $ref: "#/components/schemas/PolicyConditionDTO" description: Assertion condition for banning required: - banTimeInSeconds - thresholdCalculationType - thresholdCountPerWindow - thresholdWindowInSeconds PolicyContentFilterDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: policyContentFilterDefList: type: array description: List of content filter definitions items: $ref: "#/components/schemas/PolicyContentFilterDefDTO" PolicyContentFilterDefDTO: type: object description: Content filter definition properties: id: type: integer format: int32 description: Filter definition ID name: type: string description: Filter definition name ruleValue: type: string description: Rule value (regex pattern) headerActive: type: boolean description: Header active flag bodyActive: type: boolean description: Body active flag paramActive: type: boolean description: Parameter active flag action: type: string description: Filter action enum: - BLOCK - DELETE contentType: type: string description: Content type enum: - XML - JSON - ALL_BODY content: type: string description: Content required: - action - bodyActive - contentType - headerActive - name - paramActive - ruleValue PolicyDTO: type: object discriminator: propertyName: type mapping: policy-time-restriction: "#/components/schemas/PolicyTimeRestrictionDTO" policy-api-based-throttling: "#/components/schemas/PolicyApiBasedThrottlingDTO" policy-auth-basic: "#/components/schemas/PolicyAuthenticationBasicDTO" policy-auth-clear-text: "#/components/schemas/PolicyAuthenticationClearTextDTO" policy-decryption: "#/components/schemas/PolicyDecryptionDTO" policy-auth-digest: "#/components/schemas/PolicyAuthenticationDigestDTO" policy-encryption: "#/components/schemas/PolicyEncryptionDTO" policy-black-ip: "#/components/schemas/PolicyBlackIpDTO" policy-white-ip: "#/components/schemas/PolicyWhiteIpDTO" policy-json-transformation: "#/components/schemas/PolicyJsonTransformationDTO" policy-json-schema-validation: "#/components/schemas/PolicyJsonSchemaValidationDTO" policy-auth-jwt: "#/components/schemas/PolicyAuthenticationJwtDTO" policy-max-message-size: "#/components/schemas/PolicyMaxMessageSizeDTO" policy-min-message-size: "#/components/schemas/PolicyMinMessageSizeDTO" policy-auth-oauth2: "#/components/schemas/PolicyAuthenticationOAuth2DTO" policy-api-call: "#/components/schemas/PolicyApiCallDTO" policy-redaction: "#/components/schemas/PolicyRedactionDTO" policy-saml-validation: "#/components/schemas/PolicySamlValidationDTO" policy-script: "#/components/schemas/PolicyScriptDTO" policy-business-rule: "#/components/schemas/PolicyBusinessRuleDTO" policy-digital-sign-verification: "#/components/schemas/PolicyDigitalSignVerificationDTO" policy-digital-sign: "#/components/schemas/PolicyDigitalSignDTO" policy-content-filter: "#/components/schemas/PolicyContentFilterDTO" policy-xml-transformation: "#/components/schemas/PolicyXmlTransformationDTO" policy-xml-schema-validation: "#/components/schemas/PolicyXmlSchemaValidationDTO" policy-request-protocol-transformation: "#/components/schemas/PolicyRequestProtocolTransformationDTO" policy-response-protocol-transformation: "#/components/schemas/PolicyResponseProtocolTransformationDTO" policy-ws-security-to-target: "#/components/schemas/PolicyWsSecurityToTargetDTO" policy-ws-security-from-target: "#/components/schemas/PolicyWsSecurityFromTargetDTO" policy-ws-security-sts-token: "#/components/schemas/PolicyWsSecurityStsTokenDTO" policy-ws-security-encrypt: "#/components/schemas/PolicyWsSecurityEncryptDTO" policy-ws-security-decrypt: "#/components/schemas/PolicyWsSecurityDecryptDTO" policy-ws-security-username: "#/components/schemas/PolicyWsSecurityUsernameDTO" policy-ws-security-timestamp: "#/components/schemas/PolicyWsSecurityTimestampDTO" policy-ws-security-sign: "#/components/schemas/PolicyWSSecuritySignDTO" policy-ws-security-sign-validation: "#/components/schemas/PolicyWSSecuritySignValidationDTO" policy-api-authentication: "#/components/schemas/PolicyApiAuthenticationDTO" policy-api-based-quota: "#/components/schemas/PolicyApiBasedQuotaDTO" policy-jose-validation: "#/components/schemas/PolicyJoseValidationDTO" policy-jose-implementation: "#/components/schemas/PolicyJoseImplementationDTO" policy-auth-mtls: "#/components/schemas/PolicyAuthenticationMTLSDTO" policy-oidc: "#/components/schemas/PolicyOIDCDTO" policy-endpoint-rate-limit: "#/components/schemas/PolicyEndpointRateLimitDTO" policy-message-builder: "#/components/schemas/PolicyMessageBuilderDTO" policy-log: "#/components/schemas/PolicyLogDTO" policy-group: "#/components/schemas/PolicyGroupDTO" policy-client-banner: "#/components/schemas/PolicyClientBannerDTO" cache: "#/components/schemas/PolicyCacheDTO" ai-pii-mask: "#/components/schemas/PolicyAiPiiMaskDTO" ai-prompt-guard: "#/components/schemas/PolicyAiPromptGuardDTO" ai-token-rate-limit: "#/components/schemas/PolicyAiTokenRateLimitDTO" ai-semantic-cache: "#/components/schemas/PolicyAiSemanticCacheDTO" ai-mcp-call-llm: "#/components/schemas/PolicyAiMcpToolCallDTO" ai-a2a-call-llm: "#/components/schemas/PolicyAiA2aAgentCallDTO" ai-mcp-call-fixed: "#/components/schemas/PolicyAiMcpToolInvokeDTO" ai-a2a-call-fixed: "#/components/schemas/PolicyAiA2aAgentInvokeDTO" ai-rag-injection: "#/components/schemas/PolicyAiRagInjectionDTO" ai-dlp-guard: "#/components/schemas/PolicyAiDlpGuardDTO" ai-loop-guard: "#/components/schemas/PolicyAiLoopGuardDTO" ai-topic-guard: "#/components/schemas/PolicyAiTopicGuardDTO" ai-context-integrity: "#/components/schemas/PolicyAiContextIntegrityDTO" ai-prompt-decorator: "#/components/schemas/PolicyAiPromptDecoratorDTO" ai-prompt-template: "#/components/schemas/PolicyAiPromptTemplateDTO" ai-groundedness-guard: "#/components/schemas/PolicyAiGroundednessGuardDTO" oneOf: - $ref: "#/components/schemas/PolicyTimeRestrictionDTO" - $ref: "#/components/schemas/PolicyApiBasedThrottlingDTO" - $ref: "#/components/schemas/PolicyAuthenticationBasicDTO" - $ref: "#/components/schemas/PolicyAuthenticationClearTextDTO" - $ref: "#/components/schemas/PolicyDecryptionDTO" - $ref: "#/components/schemas/PolicyAuthenticationDigestDTO" - $ref: "#/components/schemas/PolicyEncryptionDTO" - $ref: "#/components/schemas/PolicyBlackIpDTO" - $ref: "#/components/schemas/PolicyWhiteIpDTO" - $ref: "#/components/schemas/PolicyJsonTransformationDTO" - $ref: "#/components/schemas/PolicyJsonSchemaValidationDTO" - $ref: "#/components/schemas/PolicyAuthenticationJwtDTO" - $ref: "#/components/schemas/PolicyMaxMessageSizeDTO" - $ref: "#/components/schemas/PolicyMinMessageSizeDTO" - $ref: "#/components/schemas/PolicyAuthenticationOAuth2DTO" - $ref: "#/components/schemas/PolicyApiCallDTO" - $ref: "#/components/schemas/PolicyRedactionDTO" - $ref: "#/components/schemas/PolicySamlValidationDTO" - $ref: "#/components/schemas/PolicyScriptDTO" - $ref: "#/components/schemas/PolicyBusinessRuleDTO" - $ref: "#/components/schemas/PolicyDigitalSignVerificationDTO" - $ref: "#/components/schemas/PolicyDigitalSignDTO" - $ref: "#/components/schemas/PolicyContentFilterDTO" - $ref: "#/components/schemas/PolicyXmlTransformationDTO" - $ref: "#/components/schemas/PolicyXmlSchemaValidationDTO" - $ref: "#/components/schemas/PolicyRequestProtocolTransformationDTO" - $ref: "#/components/schemas/PolicyResponseProtocolTransformationDTO" - $ref: "#/components/schemas/PolicyWsSecurityToTargetDTO" - $ref: "#/components/schemas/PolicyWsSecurityFromTargetDTO" - $ref: "#/components/schemas/PolicyWsSecurityStsTokenDTO" - $ref: "#/components/schemas/PolicyWsSecurityEncryptDTO" - $ref: "#/components/schemas/PolicyWsSecurityDecryptDTO" - $ref: "#/components/schemas/PolicyWsSecurityUsernameDTO" - $ref: "#/components/schemas/PolicyWsSecurityTimestampDTO" - $ref: "#/components/schemas/PolicyWSSecuritySignDTO" - $ref: "#/components/schemas/PolicyWSSecuritySignValidationDTO" - $ref: "#/components/schemas/PolicyApiAuthenticationDTO" - $ref: "#/components/schemas/PolicyApiBasedQuotaDTO" - $ref: "#/components/schemas/PolicyJoseValidationDTO" - $ref: "#/components/schemas/PolicyJoseImplementationDTO" - $ref: "#/components/schemas/PolicyAuthenticationMTLSDTO" - $ref: "#/components/schemas/PolicyOIDCDTO" - $ref: "#/components/schemas/PolicyEndpointRateLimitDTO" - $ref: "#/components/schemas/PolicyMessageBuilderDTO" - $ref: "#/components/schemas/PolicyLogDTO" - $ref: "#/components/schemas/PolicyCacheDTO" - $ref: "#/components/schemas/PolicyAiPiiMaskDTO" - $ref: "#/components/schemas/PolicyAiPromptGuardDTO" - $ref: "#/components/schemas/PolicyAiTokenRateLimitDTO" - $ref: "#/components/schemas/PolicyAiSemanticCacheDTO" - $ref: "#/components/schemas/PolicyAiMcpToolCallDTO" - $ref: "#/components/schemas/PolicyAiA2aAgentCallDTO" - $ref: "#/components/schemas/PolicyAiMcpToolInvokeDTO" - $ref: "#/components/schemas/PolicyAiA2aAgentInvokeDTO" - $ref: "#/components/schemas/PolicyAiRagInjectionDTO" - $ref: "#/components/schemas/PolicyAiDlpGuardDTO" - $ref: "#/components/schemas/PolicyAiLoopGuardDTO" - $ref: "#/components/schemas/PolicyAiTopicGuardDTO" - $ref: "#/components/schemas/PolicyAiContextIntegrityDTO" - $ref: "#/components/schemas/PolicyAiPromptDecoratorDTO" - $ref: "#/components/schemas/PolicyAiPromptTemplateDTO" - $ref: "#/components/schemas/PolicyAiGroundednessGuardDTO" properties: name: type: string readOnly: true description: type: string active: type: boolean policyCondition: $ref: "#/components/schemas/PolicyConditionDTO" description: Policy condition configuration errorMessageList: type: array description: List of error messages for this policy items: $ref: "#/components/schemas/ErrorMessage" buildCustomMessage: type: boolean description: Enable custom message builder customMessageTemplate: type: string description: Custom message template customMessageContentType: type: string description: Custom message content type customMessageHttpStatusCode: type: integer format: int32 description: Custom message HTTP status code parentErrorType: type: string enum: - API_PROXY - APICREATOR - FAKE_API - KPS_API - CONDITION_ERR - CONDITION_EX - POLICY_GROUP - POLICY_AUTHENTICATION - POLICY_OIDC - POLICY_AUTHORIZATION - POLICY_API_AUTHENTICATION - POLICY_THROTTLING_PER_CLIENT - POLICY_APIBASEDTHROTTLING - POLICY_ENDPOINTRATELIMIT - POLICY_APIBASEDQUOTA - POLICY_CLIENTBASEDTHROTTLING - POLICY_CLIENTBASEDQUOTA - POLICY_CLIENTBANNER - POLICY_QUOTA_PER_CLIENT - POLICY_SCRIPT - POLICY_OAUTH2 - POLICY_SAML - POLICY_JOSE_IMPLEMENTATION - POLICY_JOSE_VALIDATION - POLICY_MTLS_AUTHENTICATION - POLICY_CONTENTFILTER - POLICY_IPWHITE - POLICY_IPBLACK - POLICY_ALLOWEDHOUR - POLICY_MINMESSAGESIZE - POLICY_MAXMESSAGESIZE - POLICY_JSONSCHEMAVALIDATION - POLICY_XMLSCHEMAVALIDATION - POLICY_JSONTRANSFORMATION - POLICY_XMLTRANSFORMATION - POLICY_JSONRESPONSEMESSAGETRANS - POLICY_XMLRESPONSEMESSAGETRANS - POLICY_REST2SOAP_TRANSFORMATION - POLICY_CACHE - POLICY_ROUTING - POLICY_REDACTION - POLICY_CORS - POLICY_ENCRYPTION - POLICY_DECRYPTION - POLICY_ROLE_GROUP - POLICY_DIGITALSIGN - POLICY_DIGITALSIGNVALIDATION - POLICY_RESTAPI - POLICY_WSSECURITY - POLICY_WSSECURITY_ENCRYPT - POLICY_WSSECURITY_DECRYPT - POLICY_WSSECURITY_USERNAME - POLICY_WSSECURITY_TIMESTAMP - POLICY_WSSECURITY_SIGN - POLICY_WSSECURITY_SIGN_VALIDATION - POLICY_WSSECURITY_STSTOKEN - POLICY_BUSINESS_RULE - POLICY_MESSAGE_BUILDER - POLICY_LOG - POLICY_AI_PII_MASK - POLICY_AI_PROMPT_GUARD - POLICY_AI_TOKEN_RATE_LIMIT - POLICY_AI_SEMANTIC_CACHE - POLICY_AI_MCP_TOOL_CALL - POLICY_AI_A2A_AGENT_CALL - POLICY_AI_RAG_INJECTION - POLICY_AI_DLP_GUARD - POLICY_AI_LOOP_GUARD - POLICY_AI_TOPIC_GUARD - POLICY_AI_CONTEXT_INTEGRITY - POLICY_AI_ROUTING - POLICY_AI_A2A_AGENT_INVOKE - POLICY_AI_MCP_TOOL_INVOKE - POLICY_AI_PROMPT_DECORATOR - POLICY_AI_PROMPT_TEMPLATE - POLICY_AI_GROUNDEDNESS_GUARD - LICENSE type: type: string required: - type title: Base policy object PolicyDecryptionDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: decryptionDefList: type: array description: List of decryption definitions items: $ref: "#/components/schemas/DecryptionDefDTO" description: Decryption policy configuration. Decrypts data using symmetric or asymmetric algorithms. PolicyDigitalSignDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: digitalSignDefList: type: array description: List of digital sign definitions items: $ref: "#/components/schemas/DigitalSignDefDTO" description: Digital sign policy configuration. Signs data using a private key. PolicyDigitalSignVerificationDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: digitalSignVerificationDefList: type: array description: List of digital sign verification definitions items: $ref: "#/components/schemas/DigitalSignVerificationDefDTO" description: Digital sign verification policy configuration. Verifies digital signatures using a public key or certificate. PolicyEncryptionDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: encryptionDefList: type: array description: List of encryption definitions items: $ref: "#/components/schemas/EncryptionDefDTO" description: Encryption policy configuration. Encrypts data using symmetric or asymmetric algorithms. PolicyGroupDTO: type: object properties: name: type: string readOnly: true description: type: string active: type: boolean policyCondition: $ref: "#/components/schemas/PolicyConditionDTO" description: Policy condition configuration errorMessageList: type: array description: List of error messages for this policy items: $ref: "#/components/schemas/ErrorMessage" buildCustomMessage: type: boolean description: Enable custom message builder customMessageTemplate: type: string description: Custom message template customMessageContentType: type: string description: Custom message content type customMessageHttpStatusCode: type: integer format: int32 description: Custom message HTTP status code parentErrorType: type: string enum: - API_PROXY - APICREATOR - FAKE_API - KPS_API - CONDITION_ERR - CONDITION_EX - POLICY_GROUP - POLICY_AUTHENTICATION - POLICY_OIDC - POLICY_AUTHORIZATION - POLICY_API_AUTHENTICATION - POLICY_THROTTLING_PER_CLIENT - POLICY_APIBASEDTHROTTLING - POLICY_ENDPOINTRATELIMIT - POLICY_APIBASEDQUOTA - POLICY_CLIENTBASEDTHROTTLING - POLICY_CLIENTBASEDQUOTA - POLICY_CLIENTBANNER - POLICY_QUOTA_PER_CLIENT - POLICY_SCRIPT - POLICY_OAUTH2 - POLICY_SAML - POLICY_JOSE_IMPLEMENTATION - POLICY_JOSE_VALIDATION - POLICY_MTLS_AUTHENTICATION - POLICY_CONTENTFILTER - POLICY_IPWHITE - POLICY_IPBLACK - POLICY_ALLOWEDHOUR - POLICY_MINMESSAGESIZE - POLICY_MAXMESSAGESIZE - POLICY_JSONSCHEMAVALIDATION - POLICY_XMLSCHEMAVALIDATION - POLICY_JSONTRANSFORMATION - POLICY_XMLTRANSFORMATION - POLICY_JSONRESPONSEMESSAGETRANS - POLICY_XMLRESPONSEMESSAGETRANS - POLICY_REST2SOAP_TRANSFORMATION - POLICY_CACHE - POLICY_ROUTING - POLICY_REDACTION - POLICY_CORS - POLICY_ENCRYPTION - POLICY_DECRYPTION - POLICY_ROLE_GROUP - POLICY_DIGITALSIGN - POLICY_DIGITALSIGNVALIDATION - POLICY_RESTAPI - POLICY_WSSECURITY - POLICY_WSSECURITY_ENCRYPT - POLICY_WSSECURITY_DECRYPT - POLICY_WSSECURITY_USERNAME - POLICY_WSSECURITY_TIMESTAMP - POLICY_WSSECURITY_SIGN - POLICY_WSSECURITY_SIGN_VALIDATION - POLICY_WSSECURITY_STSTOKEN - POLICY_BUSINESS_RULE - POLICY_MESSAGE_BUILDER - POLICY_LOG - POLICY_AI_PII_MASK - POLICY_AI_PROMPT_GUARD - POLICY_AI_TOKEN_RATE_LIMIT - POLICY_AI_SEMANTIC_CACHE - POLICY_AI_MCP_TOOL_CALL - POLICY_AI_A2A_AGENT_CALL - POLICY_AI_RAG_INJECTION - POLICY_AI_DLP_GUARD - POLICY_AI_LOOP_GUARD - POLICY_AI_TOPIC_GUARD - POLICY_AI_CONTEXT_INTEGRITY - POLICY_AI_ROUTING - POLICY_AI_A2A_AGENT_INVOKE - POLICY_AI_MCP_TOOL_INVOKE - POLICY_AI_PROMPT_DECORATOR - POLICY_AI_PROMPT_TEMPLATE - POLICY_AI_GROUNDEDNESS_GUARD - LICENSE PolicyJoseImplementationDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: joseTarget: type: string description: "JOSE target location (BODY, AUTHORIZATION_HEADER, CHOOSE_FROM_VARIABLE,\ \ EMPTY)" enum: - BODY - AUTHORIZATION_HEADER - CHOOSE_FROM_VARIABLE - EMPTY joseTargetVariable: $ref: "#/components/schemas/VariableDTO" description: Variable for JOSE target when joseTarget is CHOOSE_FROM_VARIABLE jwtClaimsClaim: type: string description: JWT claims claim name escapeJsonString: type: boolean description: Escape JSON string addIssueTime: type: boolean description: Add issue time to JWT issueTimeOffset: type: integer format: int32 description: "Issue time offset in seconds (negative = past, positive\ \ = future)" addJWTID: type: boolean description: Add JWT ID to JWT addIssuer: type: boolean description: Add issuer to JWT issuer: type: string description: Issuer value (required when addIssuer is true) addAudience: type: boolean description: Add audience to JWT audienceList: type: array description: Audience list (required when addAudience is true) items: type: string addSubject: type: boolean description: Add subject to JWT subject: type: string description: Subject value (required when addSubject is true) addTypeToHeader: type: boolean description: Add type to header typeValue: type: string description: Type value (required when addTypeToHeader is true) addExpirationTime: type: boolean description: Add expiration time to JWT expirationTimeValue: type: integer format: int32 description: Expiration time value (required when addExpirationTime is true) expirationTimeUnit: type: string description: Expiration time unit (required when addExpirationTime is true) enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS expirationFromIssueTime: type: boolean description: Calculate expiration from issue time (true) or current time (false) additionalClaimMap: type: object additionalProperties: $ref: "#/components/schemas/MapValue" description: Additional claims map sign: type: boolean description: Sign JWT signByIssuer: type: boolean description: Sign by issuer (true) or by proxy's JWK (false) jwkIdForValidationAndSign: type: string description: JWK ID for validation and signing encrypt: type: boolean description: Encrypt JWT encryptByIssuer: type: boolean description: Encrypt by issuer (true) or by proxy's JWK (false) jwkIdForDecryptionAndEncryption: type: string description: JWK ID for decryption and encryption dynamicKeyForValidationAndSign: $ref: "#/components/schemas/JoseDynamicKeyConfigDTO" description: Dynamic HTTP key fetching configuration for the signing/validation key path dynamicKeyForDecryptionAndEncryption: $ref: "#/components/schemas/JoseDynamicKeyConfigDTO" description: Dynamic HTTP key fetching configuration for the encryption/decryption key path encryptionMethod: type: string description: Encryption method (required when encrypt is true) encodedClaimsTargetForDataManipulation: type: string description: Target for encoded claims data manipulation enum: - BODY - AUTHORIZATION_HEADER - CHOOSE_FROM_VARIABLE decodedClaimsTargetVariableForDataManipulation: $ref: "#/components/schemas/VariableDTO" description: Variable for encoded claims target when encodedClaimsTargetForDataManipulation is CHOOSE_FROM_VARIABLE enableDpop: type: boolean description: "Emit a DPoP (RFC 9449) proof instead of a general JWT. When\ \ true the claim, expiration, encryption and target fields are ignored." dpopProofHeaderName: type: string description: Request header the proof is written to (variable-aware). Defaults to 'DPoP'. dpopHtuSource: type: string description: "Where the htu claim comes from: MANUAL (the dpopHtu field)\ \ or BACKEND_ROUTING_ADDRESS (derived from the proxy routing address,\ \ best-effort)." enum: - MANUAL - BACKEND_ROUTING_ADDRESS dpopHtu: type: string description: Target URI for the htu claim (variable-aware). Required when dpopHtuSource is MANUAL. dpopHtm: type: string description: Override for the htm claim (variable-aware). Blank = the outgoing request's own method. dpopAddAth: type: boolean description: Add the ath claim = base64url(SHA-256(access token)). Required by RFC 9449 when the proof accompanies an access token. Defaults to true. dpopAccessTokenSource: type: string description: "Where the access token (for ath and the scheme rewrite)\ \ is read from: AUTHORIZATION_HEADER, BODY or CHOOSE_FROM_VARIABLE." enum: - BODY - AUTHORIZATION_HEADER - CHOOSE_FROM_VARIABLE dpopAccessTokenVariable: $ref: "#/components/schemas/VariableDTO" description: Variable holding the access token when dpopAccessTokenSource is CHOOSE_FROM_VARIABLE. dpopRewriteAuthorizationScheme: type: boolean description: Rewrite the outgoing Authorization header from 'Bearer ' to 'DPoP '. Defaults to true. dpopNonceVariable: $ref: "#/components/schemas/VariableDTO" description: Variable whose value is added as the nonce claim. Left unset when no server nonce is in play. PolicyJoseValidationDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: joseTarget: type: string description: "JOSE target location (BODY, AUTHORIZATION_HEADER, CHOOSE_FROM_VARIABLE)" enum: - BODY - AUTHORIZATION_HEADER - CHOOSE_FROM_VARIABLE joseTargetVariable: $ref: "#/components/schemas/VariableDTO" description: Variable for JOSE target when joseTarget is CHOOSE_FROM_VARIABLE clientSourcePart: type: string description: "Client source part (HEADER, CLAIMS, VARIABLE)" enum: - HEADER - CLAIMS - VARIABLE clientSourceVariable: $ref: "#/components/schemas/VariableDTO" description: Variable for client source when clientSourcePart is VARIABLE clientFieldname: type: string description: Client field name for extraction acceptedAudienceList: type: array description: List of accepted audiences items: type: string exactMatchClaimMap: type: object additionalProperties: $ref: "#/components/schemas/MapValue" description: Exact match claims map requiredClaimList: type: array description: List of required claims items: type: string prohibitedClaimList: type: array description: List of prohibited claims items: type: string validateExpirationTime: type: boolean description: Validate expiration time clockSkewTolerance: type: integer format: int32 description: Clock skew tolerance for time validation (in seconds or specified unit) clockSkewToleranceUnit: type: string description: Clock skew tolerance unit enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS validateIssueTime: type: boolean description: Validate issue time (iat) maxIssueTimeAge: type: integer format: int32 description: Maximum allowed age for issue time maxIssueTimeAgeUnit: type: string description: Maximum issue time age unit enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS allowFutureIssueTime: type: boolean description: Allow future issue time (iat > current time) validateNotBefore: type: boolean description: Validate not before time (nbf) enableDpop: type: boolean description: Enable DPoP (RFC 9449) proof validation dpopProofHeaderName: type: string description: "Header carrying the DPoP proof (default: DPoP)" dpopMaxProofAge: type: integer format: int32 description: Maximum accepted DPoP proof age (iat freshness window) dpopMaxProofAgeUnit: type: string description: DPoP proof max age unit enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS dpopValidateHtm: type: boolean description: Validate the DPoP htm claim against the request method dpopValidateHtu: type: boolean description: Validate the DPoP htu claim against the request URI dpopExpectedHtu: type: string description: Expected htu value; blank derives it from the request (variable-aware) dpopValidateCnfBinding: type: boolean description: Validate access token cnf.jkt against the proof key thumbprint dpopValidateAth: type: boolean description: Validate the DPoP ath claim (access token hash) dpopValidateJti: type: boolean description: Validate the DPoP jti claim for replay (requires distributed cache) dpopJtiCacheTtl: type: integer format: int32 description: jti replay cache retention in seconds; blank derives it from max proof age + clock skew dpopCacheConnectionTimeout: type: integer format: int32 description: DPoP replay cache connection timeout in seconds dpopCacheErrorHandlingType: type: string description: "Behaviour when the DPoP replay cache is unreachable (FAIL\ \ blocks, CONTINUE allows)" enum: - FAIL - CONTINUE validateSign: type: boolean description: Validate JOSE signature validateByIssuer: type: boolean description: Validate by issuer (true) or by proxy's JWK (false) validateACLforIssuer: type: boolean description: Validate ACL for issuer jwkIdForValidationAndSign: type: string description: JWK ID for validation and signing decrypt: type: boolean description: Decrypt JOSE decryptByIssuer: type: boolean description: Decrypt by issuer (true) or by proxy's JWK (false) jwkIdForDecryptionAndEncryption: type: string description: JWK ID for decryption and encryption dynamicKeyForValidationAndSign: $ref: "#/components/schemas/JoseDynamicKeyConfigDTO" description: Dynamic HTTP key fetching configuration for the signing/validation key path dynamicKeyForDecryptionAndEncryption: $ref: "#/components/schemas/JoseDynamicKeyConfigDTO" description: Dynamic HTTP key fetching configuration for the encryption/decryption key path stripAndDecode: type: string description: "Strip and decode mode (NONE, ALL, PARTIAL)" enum: - NONE - ALL - PARTIAL jwtClaimsToDecode: type: string description: JWT claims to decode when stripAndDecode is PARTIAL decodedClaimsTargetForDataManipulation: type: string description: Target for decoded claims data manipulation enum: - BODY - AUTHORIZATION_HEADER - CHOOSE_FROM_VARIABLE decodedClaimsTargetVariableForDataManipulation: $ref: "#/components/schemas/VariableDTO" description: Variable for decoded claims target when decodedClaimsTargetForDataManipulation is CHOOSE_FROM_VARIABLE PolicyJsonSchemaValidationDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: pathForBody: type: string description: JSONPath to the JSON body to validate showFirstErrorOnly: type: boolean description: "When true, only the first validation error is shown. When\ \ false, all validation errors are shown." validateAgainstSpec: type: boolean description: Validate against OpenAPI specification openApiValidationMode: type: string description: "OpenAPI validation mode: METHOD_BASED or ALL_SCHEMAS" enum: - METHOD_BASED - ALL_SCHEMAS schemaDefinitionList: type: array description: List of JSON schema definitions for validation items: $ref: "#/components/schemas/ApiGwSchemaDefinition" PolicyJsonTransformationDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: transformationType: type: string enum: - JSON2JSON - JSON2XML joltValue: type: string jsonToXmlIgnoreNull: type: boolean jsonToXmlIgnoreEmpty: type: boolean jsonToXmlUseNullForNil: type: boolean jsonToXmlUnwrapElement: type: boolean jsonToXmlUseNullForEnumJsonTransformationTypeNil: type: boolean writeOnly: true PolicyLogDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: executionType: type: string description: Execution type (SYNC or ASYNC) enum: - SYNC - ASYNC connectorRefs: type: array description: List of connector references by connection name items: $ref: "#/components/schemas/ConnectorRefDTO" logCorrelationId: type: boolean description: Log correlation ID logEnvironmentInfo: type: boolean description: Log environment info logApiProxyInfo: type: boolean description: Log API proxy info logUserInfo: type: boolean description: Log user info logHttpContext: type: boolean description: Log HTTP context logHeaders: type: boolean description: Log request/response headers logParameters: type: boolean description: Log request parameters logBody: type: boolean description: Log request/response body logResultInfo: type: boolean description: Log result info bodyLogMode: type: string description: Body log mode (FULL or PARTIAL) enum: - FULL - PARTIAL bodyMaxBytes: type: integer format: int32 description: Maximum bytes to log for body (used when bodyLogMode is PARTIAL) enablePrivacy: type: boolean description: Enable privacy filtering privacyDefinitionList: type: array description: List of privacy definitions to apply items: $ref: "#/components/schemas/PrivacyDefinition" PolicyMaxMessageSizeDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: maxMessageSize: type: integer format: int64 PolicyMessageBuilderDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: rowList: type: array description: List of message builder rows to execute items: $ref: "#/components/schemas/MessageBuilderRowDTO" PolicyMinMessageSizeDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: minMessageSize: type: integer format: int64 PolicyOIDCDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: issuer: type: string description: "OIDC Issuer URL (e.g., https://accounts.google.com)" oidcProviderId: type: string description: "Optional reference to a shared AuthenticationOidcProvider\ \ (APNZ-6592). When set, issuer/tokenEndpoint/userInfoEndpoint/jwksEndpoint/clientId/clientSecret/expectedIssuer/expectedAudience/usernameClaimPath/emailClaimPath/displayNameClaimPath\ \ are resolved from the referenced provider instead of the fields below;\ \ leave null/blank for today's fully-inline behaviour. Deprecated for\ \ write requests — a raw id is a Mongo _id that does not travel across\ \ installs (dev->prod promotion); prefer oidcProviderName below. Kept\ \ for backward compatibility: still honoured when oidcProviderName is\ \ blank." oidcProviderName: type: string description: "APIops name-based reference to a shared AuthenticationOidcProvider\ \ (B2 fix, APNZ-6592) — resolved to oidcProviderId at save time within\ \ the target project. Preferred over oidcProviderId for write requests\ \ (name wins when both are set). An unresolvable name is rejected (BadRequest),\ \ never silently dropped — see convertToPolicy()." authorizationEndpoint: type: string description: Authorization endpoint URL tokenEndpoint: type: string description: Token endpoint URL userInfoEndpoint: type: string description: UserInfo endpoint URL (optional) jwksEndpoint: type: string description: JWKS endpoint URL for token signature validation clientId: type: string description: OIDC Client ID clientSecret: type: string description: OIDC Client Secret redirectUri: type: string description: Redirect URI (callback URL) discoveryUrl: type: string description: Discovery URL used for OIDC endpoint discovery realm: type: string description: OIDC Realm flowType: type: string description: OIDC Flow Type enum: - AUTHORIZATION_CODE - IMPLICIT - HYBRID - OAUTH2_AUTHORIZATION_CODE enablePKCE: type: boolean description: Enable PKCE (Proof Key for Code Exchange) for enhanced security scopes: type: array description: "OIDC/OAuth 2.0 Scopes to request (for OIDC: should include\ \ 'openid')" items: type: string additionalAuthParams: type: object additionalProperties: type: string description: Additional authorization parameters authenticationMode: type: string description: "Authentication mode - External OIDC, Internal Credentials,\ \ or Hybrid" enum: - EXTERNAL_ONLY - INTERNAL_ONLY - HYBRID requireBothInHybrid: type: boolean description: "If hybrid mode, whether to require both external and internal\ \ authentication" validateIdToken: type: boolean description: Validate ID Token signature and claims validateAccessToken: type: boolean description: Validate Access Token (if supported by provider) validateJwtLocally: type: boolean description: "Validate JWT token locally (exp, iss, aud checks)" validateJwtSignature: type: boolean description: Validate JWT signature using JWKS endpoint expectedJwtAuthSigningAlgs: type: array description: "Expected JWT signing algorithms (e.g., RS256, ES256)" items: type: string callUserInfoEndpoint: type: boolean description: Call UserInfo endpoint to get user information tokenCacheTimeoutSeconds: type: integer format: int32 description: Token cache timeout in seconds jwkCacheTimeoutSeconds: type: integer format: int32 description: JWK cache timeout in seconds bearerJwtAuthEnable: type: boolean description: Bearer JWT authentication enable validateAccessTokenWithApi: type: boolean description: "Validate access token with API/introspection endpoint. When\ \ true on an OIDC-profile policy without oidcProviderId/oidcProviderName,\ \ introspectionEndpoint is required. When omitted: true, unless introspectionEndpoint\ \ is empty on such a policy (then false; the gateway behaves the same\ \ either way)." authAcceptTokenAs: type: string description: "Accept token as header, cookie, or both" enum: - header - cookie - header_cookie addTokenToCookie: type: boolean description: Add token from header to cookie automatically accessTokenCookieName: type: string description: Cookie name for the access token (active when addTokenToCookie is TRUE) enableIdTokenCookie: type: boolean description: Whether the id token should also be written to a client cookie idTokenCookieName: type: string description: Cookie name for the id token (active when enableIdTokenCookie is TRUE) enableRefreshTokenCookie: type: boolean description: Whether the refresh token should also be written to a client cookie refreshTokenCookieName: type: string description: Cookie name for the refresh token (active when enableRefreshTokenCookie is TRUE) accessTokenAsBearer: type: boolean description: Add access token as Bearer in header accessTokenHeaderName: type: string description: Access token header name addAccessTokenHeader: type: boolean description: Add access token to backend request headers addIdTokenHeader: type: boolean description: Add ID Token to request headers idTokenHeaderName: type: string description: ID Token header name renewAccessTokenOnExpiry: type: boolean description: Automatically renew access token using refresh token when expired usernameClaimPath: type: string description: "Claim path for username (default: 'sub')" emailClaimPath: type: string description: "Claim path for email (default: 'email')" displayNameClaimPath: type: string description: "Claim path for display name (default: 'name')" roleMappings: type: array description: Role mappings for authorization items: $ref: "#/components/schemas/OIDCRoleMapping" sessionCookieName: type: string description: Session cookie name sessionTimeoutMinutes: type: integer format: int32 description: Session timeout in minutes sessionAbsoluteTimeoutSeconds: type: integer format: int32 description: Session absolute timeout in seconds loginFlowTimeoutSeconds: type: integer format: int32 description: Login flow completion window in seconds (temporary session TTL; default 600) sessionStorageType: type: string description: "Authenticated session storage: CACHE (distributed) or COOKIE\ \ (stateless, AES-256-GCM encrypted)" enum: - CACHE - COOKIE tempSessionStorageType: type: string description: Temporary login session storage; null follows sessionStorageType enum: - CACHE - COOKIE enableSessionCompression: type: boolean description: "COOKIE mode only: deflate-compress session JSON before encryption" maxSessionCookieSizeBytes: type: integer format: int32 description: "COOKIE mode only: maximum allowed Set-Cookie size in bytes" addUserToHeader: type: boolean description: Add authenticated username to backend request header userHeaderName: type: string description: Backend request header name for the authenticated username enableStateValidation: type: boolean description: Enable state validation for CSRF protection enableNonceValidation: type: boolean description: Enable nonce validation for replay attack protection setCookieDelimiter: type: string description: Cookie delimiter for multiple Set-Cookie headers introspectionEndpoint: type: string description: Introspection endpoint URL (optional) validateIssuer: type: boolean description: Validate issuer claim in JWT expectedIssuer: type: string description: Expected issuer value validateAudience: type: boolean description: Validate audience claim in JWT expectedAudience: type: array description: Expected audience values (can be multiple) items: type: string sessionCookieSecure: type: boolean description: Session cookie secure flag (HTTPS only) connectionTimeoutSeconds: type: integer format: int32 description: Connection timeout in seconds readTimeoutSeconds: type: integer format: int32 description: Read timeout in seconds maxClockSkewSeconds: type: integer format: int32 description: Maximum clock skew in seconds for token validation errorRedirectUrl: type: string description: Error redirect URL errorMessageTemplate: type: string description: Error message template includeErrorDetails: type: boolean description: Include error details in response customHeaders: type: object additionalProperties: type: string description: Custom HTTP headers to include in OIDC requests backendRequestHeaders: type: object additionalProperties: type: string description: Backend request headers userAgent: type: string description: User agent string for OIDC requests enableDebugLogging: type: boolean description: Enable debug logging policyOidcMTLSSettings: $ref: "#/components/schemas/PolicyOIDCMTLSSettings" description: mTLS settings for OIDC connections customClaimMappings: type: array description: Custom claim mappings (JWT claim → backend request header) items: $ref: "#/components/schemas/CustomClaimMapping" disableUserinfoHeader: type: boolean description: Disable userinfo header in response userinfoHeaderName: type: string description: Userinfo header name logoutPath: type: string description: Logout path pattern postLogoutRedirectUri: type: string description: Post logout redirect URI redirectAfterLogoutUri: type: string description: Redirect after logout URI enableIdTokenHintInLogout: type: boolean description: Enable ID token hint in logout URL revokeTokensOnLogout: type: boolean description: Revoke tokens on logout revocationEndpoint: type: string description: Token revocation endpoint URL ignoreRequestMethods: type: array description: "Request methods to ignore (e.g., OPTIONS)" items: type: string ignoreRequestPatterns: type: string description: Request path patterns to ignore oauth2ResourceEndpoint: type: string description: OAuth 2.0 Resource endpoint URL oauth2AuthParams: type: object additionalProperties: type: string description: OAuth 2.0 custom parameters for authorization request oauth2TokenParams: type: object additionalProperties: type: string description: OAuth 2.0 custom parameters for token request oauth2ResourceParams: type: object additionalProperties: type: string description: OAuth 2.0 custom parameters for resource request oauth2UsernameExtractionPath: type: string description: Username extraction path from OAuth 2.0 resource response enableHtmlResponsePages: type: boolean description: Enable HTML response pages for OAuth 2.0 flow applicationTitle: type: string description: Application title for HTML pages successPageUrl: type: string description: Success page URL enableSuccessPageCall: type: boolean description: Enable success page call after authentication loginPageTemplate: type: string description: Login page HTML template errorPageTemplate: type: string description: Error page HTML template successPageTemplate: type: string description: Success page HTML template required: - authorizationEndpoint - clientId - issuer - redirectUri - tokenEndpoint PolicyOperationDTO: type: object description: policy value to be added properties: operationMetadata: $ref: "#/components/schemas/PolicyOperationMetadataDTO" policy: $ref: "#/components/schemas/PolicyDTO" description: Policy configuration. The concrete shape is selected by the 'type' discriminator - see the PolicyDTO schema for the full list of policy types. PolicyOperationMetadataDTO: type: object properties: targetScope: type: string enum: - ALL - ENDPOINT targetEndpoint: type: string targetEndpointHTTPMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY targetPipeline: type: string enum: - REQUEST - RESPONSE - ERROR deploy: type: boolean deployTargetEnvironmentNameList: type: array items: type: string order: type: integer format: int32 PolicyRedactionDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: redactionDefList: type: array description: List of redaction definitions items: $ref: "#/components/schemas/PolicyRedactionDefDTO" PolicyRedactionDefDTO: type: object description: Redaction definition properties: redactionType: type: string description: Redaction type enum: - KEY_EXISTENCE - KEY_VALUE - USER - ROLE keyValueVar: $ref: "#/components/schemas/VariableDTO" description: Key value variable keyValueListStr: type: string description: Key value list string redactionDefDetailList: type: array description: List of redaction definition details items: $ref: "#/components/schemas/PolicyRedactionDefDetailDTO" required: - redactionDefDetailList - redactionType PolicyRedactionDefDetailDTO: type: object description: Redaction definition detail properties: orderNum: type: integer format: int32 description: Order number action: $ref: "#/components/schemas/ActionDTO" description: Action required: - action - orderNum PolicyRequestProtocolTransformationDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" PolicyResponseProtocolTransformationDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: apiMethodList: type: array description: List of API methods for transformation items: $ref: "#/components/schemas/ApiMethodDTO" PolicySamlValidationDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: allowUnknownSigner: type: boolean description: Allow unknown signer for SAML validation clearSaml: type: boolean description: Clear SAML assertion after validation clearSamlPath: type: string description: XPath to SAML assertion to clear keyStoreName: type: string description: Keystore name for SAML signature validation PolicyScriptDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: executionType: type: string enum: - SYNC - ASYNC scriptLanguage: type: string enum: - GROOVY - JAVASCRIPT scriptBody: type: string PolicyTimeRestrictionDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: actionType: type: string description: Action type for the restriction enum: - ALLOW - RESTRICT example: RESTRICT zoneId: type: string description: Time zone ID for the restriction example: +03:00 restrictionList: type: array description: List of hour-based restrictions items: $ref: "#/components/schemas/HourWrapper" description: Time restriction policy with specific time-based rules PolicyWSSecuritySignDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: mustUnderstand: type: boolean description: WS-Security header mustUnderstand attribute sigPartList: type: array description: Signature parts list items: $ref: "#/components/schemas/WsSecurityToTargetPart" sigCustomKeyIdentifier: type: string description: Custom key identifier for signature sigCustomKeyIdentifierValueType: type: string description: Custom key identifier value type for signature sigKeyIdType: type: string description: Signature key identifier type enum: - BINARY_SECURITY_TOKEN - ISSUER_NAME_AND_SERIAL_NUMBER - X509_CERTIFICATE - SUBJECT_KEY_IDENTIFIER - THUMBPRINT_SHA1_IDENTIFIER - EMBEDDED_KEY_INFO - EMBED_SECURITY_TOKEN_REFERENCE - CUSTOM_KEY_INFO sigSigAlgorithm: type: string description: Signature algorithm enum: - RSA_SHA1 - RSA_SHA256 - RSA_SHA384 - RSA_SHA512 - DSA_SHA1 - DSA_SHA256 - ECDSA_SHA1 - ECDSA_SHA256 - ECDSA_SHA384 - ECDSA_SHA512 - HMAC_SHA1 - HMAC_SHA256 - HMAC_SHA384 - HMAC_SHA512 sigC14n: type: string description: Signature canonicalization method enum: - C14N_OMIT_COMMENTS - C14N_WITH_COMMENTS - C14N_EXCL_OMIT_COMMENTS - C14N_EXCL_WITH_COMMENTS - C14N_11_OMIT_COMMENTS - C14N_11_WITH_COMMENTS sigDigAlgorithm: type: string description: Signature digest algorithm enum: - SHA1 - SHA256 - SHA384 - SHA512 - HMAC_SHA1 - HMAC_SHA256 - HMAC_SHA384 - HMAC_SHA512 - HMAC_MD5 - MD5 sigUseSingleCert: type: boolean description: Use single certificate for signature sigWsiBSPCompliant: type: boolean description: WSI BSP compliance for signature sigKeyStoreName: type: string description: Signature keystore name PolicyWSSecuritySignValidationDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: enableEnhancedSignatureValidation: type: boolean description: Enable enhanced signature validation enableSignatureRemovalForDereferencing: type: boolean description: Enable signature removal for dereferencing allowCaseInsensitiveId: type: boolean description: Allow case insensitive ID attribute matching (for cross-platform compatibility) verKeyStoreName: type: string description: Verification keystore name removeSignature: type: boolean description: Remove signature after validation PolicyWhiteIpDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: targetVariableForIP: $ref: "#/components/schemas/VariableDTO" ipList: type: array items: type: string ipGroupNameList: type: array description: List of IP Group names to attach to this policy (resolved to ids on save) items: type: string PolicyWsSecurityDecryptDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: allowCaseInsensitiveId: type: boolean description: Allow case insensitive ID attribute matching (for cross-platform compatibility) decKeyStoreName: type: string description: Decryption keystore name PolicyWsSecurityEncryptDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: mustUnderstand: type: boolean description: WS-Security header mustUnderstand attribute encPartList: type: array description: Encryption parts list items: $ref: "#/components/schemas/WsSecurityToTargetPart" encEmbeddedKeyName: type: string description: Embedded key name for encryption encKeyIdType: type: string description: Encryption key identifier type enum: - BINARY_SECURITY_TOKEN - ISSUER_NAME_AND_SERIAL_NUMBER - X509_CERTIFICATE - SUBJECT_KEY_IDENTIFIER - THUMBPRINT_SHA1_IDENTIFIER - EMBEDDED_KEY_INFO - EMBED_SECURITY_TOKEN_REFERENCE - CUSTOM_KEY_INFO encSymEncAlgorithm: type: string description: Symmetric encoding algorithm for encryption enum: - AES_128_CBC - AES_192_CBC - AES_256_CBC encKeyEncAlgorithm: type: string description: Key encryption algorithm enum: - RSA - OAEP encKeyStoreName: type: string description: Encryption keystore name PolicyWsSecurityFromTargetDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: decExists: type: boolean description: Decryption enabled flag verExists: type: boolean description: Signature verification enabled flag decKeyStoreName: type: string description: Decryption keystore name verKeyStoreName: type: string description: Verification keystore name allowCaseInsensitiveId: type: boolean description: Allow case insensitive ID attribute matching (for cross-platform compatibility) PolicyWsSecurityStsTokenDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" PolicyWsSecurityTimestampDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: mustUnderstand: type: boolean description: WS-Security header mustUnderstand attribute timeToLive: type: integer format: int32 description: Timestamp time to live in seconds PolicyWsSecurityToTargetDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: mustUnderstand: type: boolean description: WS-Security header mustUnderstand attribute tsTimeToLive: type: integer format: int32 description: Timestamp time to live in seconds unUsername: type: string description: UsernameToken username unPassword: type: string description: UsernameToken password unPasswordDecrypted: type: boolean description: Password is already decrypted flag unNonce: type: boolean description: Add nonce to UsernameToken unCreated: type: boolean description: Add created timestamp to UsernameToken unPasswordType: type: string description: UsernameToken password type enum: - PasswordText - PasswordDigest encPartList: type: array description: Encryption parts list items: $ref: "#/components/schemas/WsSecurityToTargetPart" encEmbeddedKeyName: type: string description: Embedded key name for encryption encKeyIdType: type: string description: Encryption key identifier type enum: - BINARY_SECURITY_TOKEN - ISSUER_NAME_AND_SERIAL_NUMBER - X509_CERTIFICATE - SUBJECT_KEY_IDENTIFIER - THUMBPRINT_SHA1_IDENTIFIER - EMBEDDED_KEY_INFO - EMBED_SECURITY_TOKEN_REFERENCE - CUSTOM_KEY_INFO encSymEncAlgorithm: type: string description: Symmetric encoding algorithm for encryption enum: - AES_128_CBC - AES_192_CBC - AES_256_CBC encKeyEncAlgorithm: type: string description: Key encryption algorithm enum: - RSA - OAEP encKeyStoreName: type: string description: Encryption keystore name sigPartList: type: array description: Signature parts list items: $ref: "#/components/schemas/WsSecurityToTargetPart" sigCustomKeyIdentifier: type: string description: Custom key identifier for signature sigCustomKeyIdentifierValueType: type: string description: Custom key identifier value type for signature sigKeyIdType: type: string description: Signature key identifier type enum: - BINARY_SECURITY_TOKEN - ISSUER_NAME_AND_SERIAL_NUMBER - X509_CERTIFICATE - SUBJECT_KEY_IDENTIFIER - THUMBPRINT_SHA1_IDENTIFIER - EMBEDDED_KEY_INFO - EMBED_SECURITY_TOKEN_REFERENCE - CUSTOM_KEY_INFO sigSigAlgorithm: type: string description: Signature algorithm enum: - RSA_SHA1 - RSA_SHA256 - RSA_SHA384 - RSA_SHA512 - DSA_SHA1 - DSA_SHA256 - ECDSA_SHA1 - ECDSA_SHA256 - ECDSA_SHA384 - ECDSA_SHA512 - HMAC_SHA1 - HMAC_SHA256 - HMAC_SHA384 - HMAC_SHA512 sigC14n: type: string description: Signature canonicalization method enum: - C14N_OMIT_COMMENTS - C14N_WITH_COMMENTS - C14N_EXCL_OMIT_COMMENTS - C14N_EXCL_WITH_COMMENTS - C14N_11_OMIT_COMMENTS - C14N_11_WITH_COMMENTS sigDigAlgorithm: type: string description: Signature digest algorithm enum: - SHA1 - SHA256 - SHA384 - SHA512 - HMAC_SHA1 - HMAC_SHA256 - HMAC_SHA384 - HMAC_SHA512 - HMAC_MD5 - MD5 sigUseSingleCert: type: boolean description: Use single certificate for signature sigWsiBSPCompliant: type: boolean description: WSI BSP compliance for signature sigKeyStoreName: type: string description: Signature keystore name wsSecurityEntryOrderList: type: array description: "WS-Security entry order list (determines the order of Timestamp,\ \ UsernameToken, Encryption, Signature)" items: type: string enum: - TIMESTAMP - USERNAME_TOKEN - ENCRYPTION - SIGNATURE PolicyWsSecurityUsernameDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: mustUnderstand: type: boolean description: WS-Security header mustUnderstand attribute username: type: string description: UsernameToken username password: type: string description: UsernameToken password passwordType: type: string description: UsernameToken password type enum: - PasswordText - PasswordDigest nonce: type: boolean description: Add nonce to UsernameToken created: type: boolean description: Add created timestamp to UsernameToken PolicyXmlSchemaValidationDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: pathForBody: type: string description: XPath to the XML body to validate showFirstErrorOnly: type: boolean description: "When true, only the first validation error is shown. When\ \ false, all validation errors are shown." validateAgainstSpec: type: boolean description: Validate against WSDL specification schemaDefinitionList: type: array description: List of XML schema definitions for validation items: $ref: "#/components/schemas/ApiGwSchemaDefinition" PolicyXmlTransformationDTO: allOf: - $ref: "#/components/schemas/PolicyDTO" - type: object properties: transformationType: type: string enum: - XML2XML - XML2JSON xsltValue: type: string xmlToJsonUnwrapElement: type: boolean xmlToJsonIgnoreNull: type: boolean xmlToJsonIgnoreEmpty: type: boolean xmlToJsonNumbersAsStrings: type: boolean xmlToJsonUseNullForNil: type: boolean xmlToJsonArrayPathList: type: array items: type: string RetrySettingsDTO: type: object description: Retry settings for outbound HTTP calls properties: enabled: type: boolean description: Enable retry on failure retryCount: type: integer format: int32 description: Number of additional attempts after the first one (total requests = retryCount + 1) retryDelayType: type: string description: "Delay strategy between attempts (NO_DELAY, FIXED, EXPONENTIAL)" enum: - NO_DELAY - FIXED - EXPONENTIAL retryFixedDelayMs: type: integer format: int32 description: Fixed delay in milliseconds (used when retryDelayType = FIXED) retryInitialDelayMs: type: integer format: int32 description: Initial delay in milliseconds (used when retryDelayType = EXPONENTIAL) retryMaxDelayMs: type: integer format: int32 description: Maximum delay in milliseconds (caps exponential growth) retryBackoffMultiplier: type: number format: double description: "Backoff multiplier (used when retryDelayType = EXPONENTIAL),\ \ must be greater than 1" retryOnStatusCodeList: type: array description: "HTTP status codes that trigger a retry; defaults to 502, 503,\ \ 504 when empty" items: type: integer format: int32 retryNonIdempotent: type: boolean description: Allow retry for non-idempotent methods (POST/PATCH) on server responses; connection-phase failures are always retried since the request was never sent McpExposedTool: type: object properties: proxyId: type: string toolName: type: string toolDescription: type: string overrideSchema: type: string apiMethodHttpMethod: type: string apiMethodPath: type: string requiredScopes: type: array items: type: string downstreamIdentity: type: string enum: - SERVICE - DELEGATED riskTier: type: string enum: - LOW - MEDIUM - HIGH argumentConstraints: type: array items: $ref: "#/components/schemas/ArgumentConstraintRule" McpForwardedHeader: type: object properties: name: type: string required: type: boolean errorMessage: type: string McpRiskPolicy: type: object properties: low: type: string enum: - ALLOW - REQUIRE_APPROVAL - DENY medium: type: string enum: - ALLOW - REQUIRE_APPROVAL - DENY high: type: string enum: - ALLOW - REQUIRE_APPROVAL - DENY McpRouting: type: object properties: routingMode: type: string enum: - TOOL_EXPOSE - PASSTHROUGH protocolVersion: type: string serverJsonOverride: type: string exposedTools: type: array items: $ref: "#/components/schemas/McpExposedTool" backendServers: type: array items: $ref: "#/components/schemas/ConnectionConfigMcp" allowedToolNames: type: array items: type: string tokenForwardSettings: $ref: "#/components/schemas/AgentTokenForwardSettings" forwardedHeaders: type: array items: $ref: "#/components/schemas/McpForwardedHeader" toolOutputFilter: $ref: "#/components/schemas/McpToolOutputFilter" identityAcl: type: array items: $ref: "#/components/schemas/IdentityAclRule" argumentConstraints: type: array items: $ref: "#/components/schemas/McpToolArgumentConstraints" riskPolicy: $ref: "#/components/schemas/McpRiskPolicy" riskPolicyExemptions: type: array items: $ref: "#/components/schemas/IdentityAclRule" toolRiskOverrides: type: array items: $ref: "#/components/schemas/McpToolRiskOverride" authProfile: type: string enum: - LEGACY - STANDARD_MCP_OAUTH serviceClientName: type: string standardMcpOAuthProfile: type: boolean routingModeRaw: type: string enum: - TOOL_EXPOSE - PASSTHROUGH McpToolArgumentConstraints: type: object properties: toolName: type: string rules: type: array items: $ref: "#/components/schemas/ArgumentConstraintRule" McpToolOutputFilter: type: object properties: enabled: type: boolean maskPii: type: boolean denyPatterns: type: array items: type: string McpToolRiskOverride: type: object properties: toolName: type: string riskTier: type: string enum: - LOW - MEDIUM - HIGH AiFailoverEntry: type: object properties: llmProviderRef: type: string llmProviderRefName: type: string modelId: type: string timeoutMs: type: integer format: int32 orderIndex: type: integer format: int32 displayName: type: string maxCostUsd: type: number weight: type: integer format: int32 connectionPoolSize: type: integer format: int32 idleConnectionTimeout: type: integer format: int32 AiPrimaryEntry: type: object properties: llmProviderRef: type: string llmProviderRefName: type: string modelId: type: string weight: type: integer format: int32 displayName: type: string connectionPoolSize: type: integer format: int32 idleConnectionTimeout: type: integer format: int32 AiRouting: type: object properties: connectTimeoutSeconds: type: integer format: int32 streamTimeoutSeconds: type: integer format: int32 maxResponseBytes: type: integer format: int64 maxChunks: type: integer format: int64 retryCount: type: integer format: int32 connectionPoolManagementType: type: string enum: - GENERAL - CUSTOM - NONE customConnectionPoolSize: type: integer format: int32 idleConnectionTimeout: type: integer format: int32 llmProviderRef: type: string llmProviderRefName: type: string modelId: type: string timeoutSeconds: type: integer format: int32 streaming: type: boolean clientStreamPresentBehavior: type: string enum: - USE_CLIENT - OVERWRITE clientModelPresentBehavior: type: string enum: - USE_CLIENT - OVERWRITE - ERROR clientModelAbsentBehavior: type: string enum: - KEEP_ABSENT - ADD_ROUTING_MODEL - ERROR contextWindowAction: type: string enum: - REJECT - TRUNCATE - PASS contextKeepTurns: type: integer format: int32 contextRagAction: type: string enum: - KEEP - TRIM_END contextLastUserMessageAction: type: string enum: - KEEP - TRIM_MIDDLE conditionalRoutes: type: array items: $ref: "#/components/schemas/ConditionalRouteVariant" providerFailoverChain: type: array items: $ref: "#/components/schemas/AiFailoverEntry" failoverStrategy: type: string enum: - SEQUENTIAL - CONDITIONAL - PRIORITY_STRICT - ROUND_ROBIN primaryPool: type: array items: $ref: "#/components/schemas/AiPrimaryEntry" enumAiRoutingAlgorithm: type: string enum: - ROUND_ROBIN - WEIGHTED - RANDOM - LRU - LEAST_COST - LEAST_LATENCY - PREFIX_AFFINITY leastCostOutputRatio: type: number format: double affinityKeyHeader: type: string affinityLoadFactor: type: number format: double semanticEmbeddingProviderRef: type: string semanticEmbeddingProviderRefName: type: string semanticEmbeddingModelId: type: string classifierProviderRef: type: string classifierProviderRefName: type: string classifierModelId: type: string classifierTimeoutMs: type: integer format: int32 classifierDecisionMode: type: string enum: - STANDARD - REASONING classifierReasoningBudget: type: integer format: int32 classifierMaxInputChars: type: integer format: int32 classifierInstructions: type: string retryDelayType: type: string enum: - NO_DELAY - FIXED - EXPONENTIAL retryFixedDelayMs: type: integer format: int32 retryInitialDelayMs: type: integer format: int32 retryMaxDelayMs: type: integer format: int32 retryBackoffMultiplier: type: number format: double failoverStatusCodeList: type: array items: type: integer format: int32 failoverRetryCount: type: integer format: int32 trySiblingPoolTargets: type: boolean circuitBreakerEnabled: type: boolean errorWindow: type: integer format: int32 errorThresholdValue: type: integer format: int32 enumErrorThresholdType: type: string enum: - COUNT - PERCENT sleepWindow: type: integer format: int32 halfOpenEnabled: type: boolean conditionalLatencyThresholdMs: type: integer format: int32 traceMode: type: string enum: - NONE - LIVE_TRACE enableAiTrace: type: boolean aiTraceStartTime: type: string format: date-time aiTraceStopTime: type: string format: date-time aiTraceEnvironmentName: type: string aiTraceCustomQueryId: type: string aiTraceCustomQuery: $ref: "#/components/schemas/CustomQuery" aiTraceMaxDurationSeconds: type: integer format: int32 disableSslValidation: type: boolean proxyEnabled: type: boolean proxyHost: type: string proxyPort: type: integer format: int32 proxyAuthorizationNeeded: type: boolean proxyUsername: type: string proxyPassword: type: string blockAnonymousRequests: type: boolean failoverRetryCountRaw: type: integer format: int32 connectTimeoutSecondsRaw: type: integer format: int32 streamTimeoutSecondsRaw: type: integer format: int32 retryCountRaw: type: integer format: int32 mTLSSettings: $ref: "#/components/schemas/RoutingMTLSSettings" ConditionalRouteVariant: type: object properties: name: type: string condition: $ref: "#/components/schemas/PolicyCondition" llmProviderRef: type: string llmProviderRefName: type: string modelId: type: string semanticUtterances: type: array items: type: string semanticThreshold: type: number format: double classifierLabel: type: string classifierDescription: type: string targetPool: type: array items: $ref: "#/components/schemas/AiPrimaryEntry" enumAiRoutingAlgorithm: type: string enum: - ROUND_ROBIN - WEIGHTED - RANDOM - LRU - LEAST_COST - LEAST_LATENCY - PREFIX_AFFINITY affinityKeyHeader: type: string affinityLoadFactor: type: number format: double connectionPoolSize: type: integer format: int32 idleConnectionTimeout: type: integer format: int32 CustomQuery: type: object properties: id: type: string name: type: string description: type: string projectId: type: string criteriaList: type: array items: $ref: "#/components/schemas/CustomQueryCriteria" filterList: type: array items: $ref: "#/components/schemas/CustomQueryFilter" visibility: type: string enum: - PERSONAL - PROJECT ownerUsername: type: string notEmptyCriteriaList: type: boolean CustomQueryCriteria: type: object properties: id: type: string conditionType: type: string enum: - VALUE - NOT - AND - OR criteriaType: type: string enum: - API_PROXY_NAME - API_TYPE - CACHE_HIT - CLIENT_IP - ERROR_TYPE - HTTP_METHOD - KEYWORD - SIZE - STATUS_CODE - TIME - USERNAME_APIKEY - RESULT_TYPE - ENDPOINT - CORRELATION_ID - ROUTING_ADDRESS - ROUTING_RETRY_COUNT - ROUTING_FAILOVER_COUNT - BACKEND_STATUS_CODE - ROUTING_FAILURE_REASON - API_PROXY_GROUP - CANARY_REQUEST - CANARY_STATUS - MIRROR_TRAFFIC - AI_PROVIDER - AI_MODEL - AI_INPUT_TOKENS - AI_OUTPUT_TOKENS - AI_CACHED_TOKENS - AI_COST - AI_TTFT - AI_TPOT - AI_TOTAL_LATENCY - AI_DEPLOYMENT_TYPE - AI_FAILOVER - AI_FINISH_REASON - AI_STREAMING - AI_SEMANTIC_CACHE - AI_GUARDRAIL - AI_GUARDRAIL_CATEGORY - AI_GUARDRAIL_VERDICT - AI_PII - MCP_TOOL_NAME - MCP_RESULT_CLASS - MCP_TOOL_CALL_COUNT_OUT - MCP_JSONRPC_ID - A2A_AGENT_CALL_COUNT_OUT - A2A_TASK_STATE - A2A_TASK_ID - A2A_CONTEXT_ID messageLocation: type: string enum: - REQUEST - RESPONSE - ANY messagePart: type: string enum: - ANY - REQ_PRM_FROM_CLIENT - REQ_HDR_FROM_CLIENT - REQ_BODY_FROM_CLIENT - REQ_PRM_TO_BACKEND - REQ_HDR_TO_BACKEND - REQ_BODY_TO_BACKEND - RESP_HDR_FROM_BACKEND - RESP_BODY_FROM_BACKEND - RESP_HDR_TO_CLIENT - RESP_BODY_TO_CLIENT timePart: type: string enum: - REQUEST_PIPELINE - RESPONSE_PIPELINE - ROUTING - ALL parentErrorType: type: string enum: - API_PROXY - APICREATOR - FAKE_API - KPS_API - CONDITION_ERR - CONDITION_EX - POLICY_GROUP - POLICY_AUTHENTICATION - POLICY_OIDC - POLICY_AUTHORIZATION - POLICY_API_AUTHENTICATION - POLICY_THROTTLING_PER_CLIENT - POLICY_APIBASEDTHROTTLING - POLICY_ENDPOINTRATELIMIT - POLICY_APIBASEDQUOTA - POLICY_CLIENTBASEDTHROTTLING - POLICY_CLIENTBASEDQUOTA - POLICY_CLIENTBANNER - POLICY_QUOTA_PER_CLIENT - POLICY_SCRIPT - POLICY_OAUTH2 - POLICY_SAML - POLICY_JOSE_IMPLEMENTATION - POLICY_JOSE_VALIDATION - POLICY_MTLS_AUTHENTICATION - POLICY_CONTENTFILTER - POLICY_IPWHITE - POLICY_IPBLACK - POLICY_ALLOWEDHOUR - POLICY_MINMESSAGESIZE - POLICY_MAXMESSAGESIZE - POLICY_JSONSCHEMAVALIDATION - POLICY_XMLSCHEMAVALIDATION - POLICY_JSONTRANSFORMATION - POLICY_XMLTRANSFORMATION - POLICY_JSONRESPONSEMESSAGETRANS - POLICY_XMLRESPONSEMESSAGETRANS - POLICY_REST2SOAP_TRANSFORMATION - POLICY_CACHE - POLICY_ROUTING - POLICY_REDACTION - POLICY_CORS - POLICY_ENCRYPTION - POLICY_DECRYPTION - POLICY_ROLE_GROUP - POLICY_DIGITALSIGN - POLICY_DIGITALSIGNVALIDATION - POLICY_RESTAPI - POLICY_WSSECURITY - POLICY_WSSECURITY_ENCRYPT - POLICY_WSSECURITY_DECRYPT - POLICY_WSSECURITY_USERNAME - POLICY_WSSECURITY_TIMESTAMP - POLICY_WSSECURITY_SIGN - POLICY_WSSECURITY_SIGN_VALIDATION - POLICY_WSSECURITY_STSTOKEN - POLICY_BUSINESS_RULE - POLICY_MESSAGE_BUILDER - POLICY_LOG - POLICY_AI_PII_MASK - POLICY_AI_PROMPT_GUARD - POLICY_AI_TOKEN_RATE_LIMIT - POLICY_AI_SEMANTIC_CACHE - POLICY_AI_MCP_TOOL_CALL - POLICY_AI_A2A_AGENT_CALL - POLICY_AI_RAG_INJECTION - POLICY_AI_DLP_GUARD - POLICY_AI_LOOP_GUARD - POLICY_AI_TOPIC_GUARD - POLICY_AI_CONTEXT_INTEGRITY - POLICY_AI_ROUTING - POLICY_AI_A2A_AGENT_INVOKE - POLICY_AI_MCP_TOOL_INVOKE - POLICY_AI_PROMPT_DECORATOR - POLICY_AI_PROMPT_TEMPLATE - POLICY_AI_GROUNDEDNESS_GUARD - LICENSE operator: type: string enum: - LT - LE - GT - GE - EQ - NE - STARTS_WITH - ENDS_WITH - BETWEEN - CONTAINS - NOT_CONTAINS - IS_EMPTY - IS_NOT_EMPTY - IS_EXISTS - IS_NOT_EXISTS - IN - NOT_IN - CONTAINS_WORD httpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY firstValue: type: integer format: int32 secondValue: type: integer format: int32 messagePartKeyValue: type: string textValue: type: string apiProxyIds: type: array items: type: string apiTypes: type: array items: type: string CustomQueryFilter: type: object properties: id: type: string projectId: type: string name: type: string description: type: string proxyList: type: array items: $ref: "#/components/schemas/ProxyFilter" fromDate: type: string toDate: type: string resultTypeList: type: array items: type: string enum: - BLOCKED - ERROR - SUCCESS orderList: type: array items: $ref: "#/components/schemas/OrderFilter" OrderFilter: type: object properties: property: type: string sortOrder: type: string ProxyFilter: type: object properties: name: type: string id: type: string description: type: string RoutingMTLSSettings: type: object properties: enabled: type: boolean skipSslVerification: type: boolean keyStoreId: type: string trustStoreId: type: string certificateId: type: string supportedProtocolList: type: array items: type: string enum: - TLS_1_3 - TLS_1_2 - TLS_1_1 - TLS_1_0 - SSL_3_0 hostnameVerifierType: type: string enum: - NOOP - DEFAULT - STRICT - BROWSER_COMPAT A2aPushSettings: type: object properties: pushNotificationsEnabled: type: boolean allowPrivateNetworkEgress: type: boolean A2aRouting: type: object properties: routingMode: type: string enum: - AGENT_EXPOSE - PASSTHROUGH protocolVersion: type: string agentCard: $ref: "#/components/schemas/AgentCardSettings" pushSettings: $ref: "#/components/schemas/A2aPushSettings" backendServers: type: array items: $ref: "#/components/schemas/ConnectionConfigA2a" allowedSkillNames: type: array items: type: string forwardClientToken: type: boolean tokenForwardSettings: $ref: "#/components/schemas/AgentTokenForwardSettings" identityAcl: type: array items: $ref: "#/components/schemas/IdentityAclRule" effectiveTokenForwardSettings: $ref: "#/components/schemas/AgentTokenForwardSettings" effectiveBackendA2aServers: type: array items: $ref: "#/components/schemas/ConnectionConfigA2a" routingModeRaw: type: string enum: - AGENT_EXPOSE - PASSTHROUGH AgentCardSettings: type: object properties: inputModes: type: array items: type: string outputModes: type: array items: type: string descriptionOverride: type: string skills: type: array items: $ref: "#/components/schemas/AgentSkillDef" AgentSkillDef: type: object properties: id: type: string name: type: string description: type: string tags: type: array items: type: string ApiProxyParseFromURLDTO: type: object description: ApiProxy ParseObject value has the metadata needed to create API Proxy and it is required properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string apiProxyCreationType: type: string enum: - WSDL - SWAGGER - OPEN_API - REVERSE_PROXY - EMPTY_API soapToRest: type: boolean reParse: type: boolean apiProxyGroupName: type: string apiProxyName: type: string apiProxyDescription: type: string clientRoute: $ref: "#/components/schemas/ClientRoute" backendApiVersion: type: string enableWSA: type: boolean enableWSRM: type: boolean routingInfo: $ref: "#/components/schemas/ApiProxyRoutingInfoDTO" maintenanceModeSetting: $ref: "#/components/schemas/MaintenanceModeSettingDTO" specUrl: type: string specAuthorizationValueList: type: array items: $ref: "#/components/schemas/SpecAuthorizationValue" specAuthUsername: type: string specAuthPassword: type: string useSpecAuthorization: type: boolean skipSslVerification: type: boolean trustStoreName: type: string uploadedTrustStoreContent: type: string uploadedTrustStorePassword: type: string uploadedTrustStoreType: type: string certificateName: type: string connectionTimeout: type: integer format: int32 ApiProxyRoutingAddress: type: object description: Backend routing address configuration properties: address: type: string description: Backend URL address description: type: string description: Description for this backend address weight: type: integer format: int64 description: Weight for weighted round-robin load balancing (required when algorithm is WEIGHTED_ROUND_ROBIN) soapType: type: string description: SOAP port type (required when API type is SOAP) enum: - SOAP11 - SOAP12 - HTTP addressType: type: string description: "Address type: PRIMARY, CANARY, MIRROR, FAILOVER_ONLY (defaults\ \ to PRIMARY)" enum: - PRIMARY - CANARY - MIRROR - FAILOVER_ONLY healthCheckPath: type: string description: Active health check path for this backend (only for PRIMARY and FAILOVER_ONLY) healthMonitoringEnabled: type: boolean description: Enable per-address health monitoring (only for HTTP type) required: - address ApiProxyRoutingInfoDTO: type: object description: API Proxy Routing Info DTO - used during proxy creation/update to configure routing settings properties: loadBalanceAlgorithm: type: string description: "Load balance algorithm: ROUND_ROBIN, WEIGHTED_ROUND_ROBIN,\ \ LEAST_CONNECTIONS, RANDOM, IP_HASH" enum: - ROUND_ROBIN - LRU - WEIGHTED - RANDOM - PICK_FIRST routingAddressList: type: array description: List of backend routing addresses items: $ref: "#/components/schemas/ApiProxyRoutingAddress" connectionSettingsEnabled: type: boolean description: Enable custom connection settings (overrides system defaults) connectTimeout: type: integer format: int32 description: Connection timeout in milliseconds readTimeout: type: integer format: int32 description: Read timeout in milliseconds connectionRequestTimeout: type: integer format: int32 description: Connection request timeout in milliseconds validateAfterInactivity: type: integer format: int32 description: "Stale connection check interval in milliseconds (default:\ \ 2000)" idleConnectionTimeout: type: integer format: int32 description: "Idle connection cleanup timeout in seconds (default: 30)" redirectsEnabled: type: boolean description: Enable HTTP redirect following maxRedirects: type: integer format: int32 description: Maximum number of redirects to follow relativeRedirectsAllowed: type: boolean description: Allow relative redirects preserveHttpMethodOnRedirect: type: boolean description: "Preserve HTTP method and body on 301/302/303/307/308 redirects\ \ (default: false — 301/302/303 downgrade to GET and drop the body)" enableStreaming: type: boolean description: Enable streaming for large responses connectionPoolManagementType: type: string description: "Connection pool management type: GENERAL, PER_ROUTE, CUSTOM" enum: - GENERAL - CUSTOM - NONE customConnectionPoolSize: type: integer format: int32 description: Custom connection pool size (only when connectionPoolManagementType is CUSTOM) retryCount: type: integer format: int32 description: "Number of retries for failed requests (default: 0)" failoverRetryCount: type: integer format: int32 description: "Number of retries during failover (default: 0)" ignoreRoutingError: type: boolean description: Ignore routing errors retryDelayType: type: string description: "Retry delay strategy: NO_DELAY, FIXED, EXPONENTIAL_BACKOFF" enum: - NO_DELAY - FIXED - EXPONENTIAL retryFixedDelayMs: type: integer format: int32 description: Fixed delay between retries in milliseconds retryInitialDelayMs: type: integer format: int32 description: Initial delay for exponential backoff in milliseconds retryMaxDelayMs: type: integer format: int32 description: Maximum delay for exponential backoff in milliseconds retryBackoffMultiplier: type: number format: double description: Backoff multiplier for exponential delay stickySessionEnabled: type: boolean description: Enable sticky sessions (session affinity) stickyType: type: string description: "Sticky session type: COOKIE, IP_HASH, HYBRID" enum: - COOKIE_ONLY - IP_HASH - HYBRID stickyCookieName: type: string description: Cookie name for sticky sessions (required when stickySessionEnabled=true) stickyCookieTtl: type: integer format: int32 description: Cookie TTL in seconds stickyCookieSecure: type: boolean description: Set Secure flag on sticky session cookie stickyCookieHttpOnly: type: boolean description: Set HttpOnly flag on sticky session cookie stickyHashSecret: type: string description: Secret for IP-hash cookie signing healthMonitoringCustomizationEnabled: type: boolean description: Enable custom health check settings healthCheckIntervalSeconds: type: integer format: int32 description: Health check interval in seconds healthCheckTimeoutSeconds: type: integer format: int32 description: Health check timeout in seconds healthCheckFailThreshold: type: integer format: int32 description: Consecutive failures before marking backend as unhealthy healthCheckPassThreshold: type: integer format: int32 description: Consecutive successes before marking backend as healthy trafficMirrorEnabled: type: boolean description: Enable traffic mirroring to MIRROR-type addresses mirrorPercentage: type: integer format: int64 description: Percentage of traffic to mirror (0-100) mirrorIgnoreCircuitBreaker: type: boolean description: Send mirrored requests even if circuit breaker is open mirrorRespectCircuitBreaker: type: boolean description: Mirrored requests must respect circuit breaker state canarySettings: $ref: "#/components/schemas/CanaryReleaseSettingsDTO" description: Canary release settings failoverOnlyEnabled: type: boolean description: Enable failover-only mode for FAILOVER_ONLY-type addresses queryEncodingMode: type: string description: "Query parameter encoding mode for backend routing: STANDARD\ \ (default; URL-encode all special chars), RFC3986 (preserve / + = : @),\ \ PASSTHROUGH (raw, only request-fatal chars encoded)" enum: - STANDARD - RFC3986 - PASSTHROUGH CanaryReleaseSettingsDTO: type: object properties: enabled: type: boolean trafficPercentage: type: integer format: int64 cooldownPeriodSeconds: type: integer format: int32 MaintenanceModeSettingDTO: type: object properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string enabled: type: boolean httpStatusCode: type: integer format: int32 contentType: type: string message: type: string SpecAuthorizationValue: type: object properties: value: type: string type: type: string keyName: type: string APIProxyTrafficPrivacySettings: type: object properties: enabled: type: boolean salt: type: string privacyDefinitionList: type: array items: $ref: "#/components/schemas/PrivacyDefinition" ApiProxy: type: object properties: id: type: string revision: type: integer format: int32 deprecated: true revisionName: type: string deprecated: true projectId: type: string name: type: string description: type: string createdDate: type: string format: date-time principal: type: string enumProxyCreationType: type: string enum: - WSDL - WADL - SWAGGER - OPEN_API - FAKE_API - MIRROR_API - KPS_API - NOTER_API - API_CREATOR_DB - EMPTY_API - API_CREATOR_SCRIPT - API_CREATOR_MOCK - REVERSE_PROXY - TASK_FLOW_MANAGER - HEART_BEAT_MONITOR - CONNECTOR - GRPC_PROTO - GRPC - WEBSOCKET importedContentOfBackendApi: type: string soapSchemaList: type: array items: $ref: "#/components/schemas/SoapSchema" soapApiPortType: type: string enum: - SOAP11 - SOAP12 - HTTP importedUrl: type: string importedFileName: type: string specDownloadTrustStoreId: type: string specDownloadCertificateId: type: string specDownloadSkipSslVerification: type: boolean clientRoute: $ref: "#/components/schemas/ClientRoute" type: type: string enum: - SOAP - REST - GRPC - WEBSOCKET - AI - MCP - A2A protocolTransformation: type: boolean categoryList: type: array items: type: string proxyApiSpecId: type: string proxyApiSpec: $ref: "#/components/schemas/SpecApi" apiMethodList: type: array items: $ref: "#/components/schemas/ApiMethod" routing: $ref: "#/components/schemas/Routing" aiRouting: $ref: "#/components/schemas/AiRouting" mcpRouting: $ref: "#/components/schemas/McpRouting" a2aRouting: $ref: "#/components/schemas/A2aRouting" corsSettings: $ref: "#/components/schemas/CorsSettings" cacheSettings: $ref: "#/components/schemas/CacheSettings" idempotencySettings: $ref: "#/components/schemas/IdempotencySettings" traceSettings: $ref: "#/components/schemas/TraceSettings" applicationLogSettings: $ref: "#/components/schemas/TraceSettings" maintenanceModeSetting: $ref: "#/components/schemas/MaintenanceModeSetting" logSettings: $ref: "#/components/schemas/LogSettings" deprecated: true forwardedIpHeaderParam: $ref: "#/components/schemas/ForwardedIpHeaderParam" xmlErrorResponseTemplate: $ref: "#/components/schemas/ErrorResponseTemplateXml" jsonErrorResponseTemplate: $ref: "#/components/schemas/ErrorResponseTemplateJson" publicKey: type: string secretKey: type: string enableApiCryptSettings: type: boolean sharingType: type: string enum: - BOTH - NONE - EXTERNAL - INTERNAL direction: type: string enum: - NONE - PUBLISHER - CONSUMER - BOTH disableDirectAccessToGateways: type: boolean proxyGroupId: type: string deprecated: true proxyGroupIdList: type: array items: type: string proxyGroup: $ref: "#/components/schemas/ProxyGroup" deprecated: true proxyGroupList: type: array items: $ref: "#/components/schemas/ProxyGroup" monitorList: type: array items: oneOf: - $ref: "#/components/schemas/UptimeMonitor" requestPolicyList: type: array items: oneOf: - $ref: "#/components/schemas/PolicyAiA2aAgentCall" - $ref: "#/components/schemas/PolicyAiA2aAgentInvoke" - $ref: "#/components/schemas/PolicyAiContextIntegrity" - $ref: "#/components/schemas/PolicyAiDlpGuard" - $ref: "#/components/schemas/PolicyAiGroundednessGuard" - $ref: "#/components/schemas/PolicyAiLoopGuard" - $ref: "#/components/schemas/PolicyAiMcpToolCall" - $ref: "#/components/schemas/PolicyAiMcpToolInvoke" - $ref: "#/components/schemas/PolicyAiPiiMask" - $ref: "#/components/schemas/PolicyAiPromptDecorator" - $ref: "#/components/schemas/PolicyAiPromptGuard" - $ref: "#/components/schemas/PolicyAiPromptTemplate" - $ref: "#/components/schemas/PolicyAiRagInjection" - $ref: "#/components/schemas/PolicyAiSemanticCache" - $ref: "#/components/schemas/PolicyAiTokenRateLimit" - $ref: "#/components/schemas/PolicyAiTopicGuard" - $ref: "#/components/schemas/PolicyAllowedHours" - $ref: "#/components/schemas/PolicyApiAuthentication" - $ref: "#/components/schemas/PolicyApiBasedQuota" - $ref: "#/components/schemas/PolicyApiBasedThrottling" - $ref: "#/components/schemas/PolicyBase64Authentication" - $ref: "#/components/schemas/PolicyBasicAuthentication" - $ref: "#/components/schemas/PolicyBusinessRule" - $ref: "#/components/schemas/PolicyCache" - $ref: "#/components/schemas/PolicyClientBanner" - $ref: "#/components/schemas/PolicyContentFilter" - $ref: "#/components/schemas/PolicyDecryption" - $ref: "#/components/schemas/PolicyDigestAuthentication" - $ref: "#/components/schemas/PolicyDigitalSign" - $ref: "#/components/schemas/PolicyDigitalSignVerification" - $ref: "#/components/schemas/PolicyEncryption" - $ref: "#/components/schemas/PolicyEndpointRateLimit" - $ref: "#/components/schemas/PolicyGroup" - $ref: "#/components/schemas/PolicyIpBlack" - $ref: "#/components/schemas/PolicyIpWhite" - $ref: "#/components/schemas/PolicyJoseImplementation" - $ref: "#/components/schemas/PolicyJoseValidation" - $ref: "#/components/schemas/PolicyJsonSchemaValidation" - $ref: "#/components/schemas/PolicyJsonTransformation" - $ref: "#/components/schemas/PolicyJwtAuthentication" - $ref: "#/components/schemas/PolicyLog" - $ref: "#/components/schemas/PolicyMTLSAuthentication" - $ref: "#/components/schemas/PolicyMaxMessageSize" - $ref: "#/components/schemas/PolicyMessageBuilder" - $ref: "#/components/schemas/PolicyMinMessageSize" - $ref: "#/components/schemas/PolicyOIDC" - $ref: "#/components/schemas/PolicyOauth2Authentication" - $ref: "#/components/schemas/PolicyRedaction" - $ref: "#/components/schemas/PolicyRest2SoapTransformationRequest" - $ref: "#/components/schemas/PolicyRest2SoapTransformationResponse" - $ref: "#/components/schemas/PolicyRestApi" - $ref: "#/components/schemas/PolicySaml" - $ref: "#/components/schemas/PolicyScript" - $ref: "#/components/schemas/PolicyWSSecuritySign" - $ref: "#/components/schemas/PolicyWSSecuritySignValidation" - $ref: "#/components/schemas/PolicyWsSecurityDecrypt" - $ref: "#/components/schemas/PolicyWsSecurityEncrypt" - $ref: "#/components/schemas/PolicyWsSecurityFromTarget" - $ref: "#/components/schemas/PolicyWsSecurityStsToken" - $ref: "#/components/schemas/PolicyWsSecurityTimestamp" - $ref: "#/components/schemas/PolicyWsSecurityToTarget" - $ref: "#/components/schemas/PolicyWsSecurityUsername" - $ref: "#/components/schemas/PolicyXmlSchemaValidation" - $ref: "#/components/schemas/PolicyXmlTransformation" responsePolicyList: type: array items: oneOf: - $ref: "#/components/schemas/PolicyAiA2aAgentCall" - $ref: "#/components/schemas/PolicyAiA2aAgentInvoke" - $ref: "#/components/schemas/PolicyAiContextIntegrity" - $ref: "#/components/schemas/PolicyAiDlpGuard" - $ref: "#/components/schemas/PolicyAiGroundednessGuard" - $ref: "#/components/schemas/PolicyAiLoopGuard" - $ref: "#/components/schemas/PolicyAiMcpToolCall" - $ref: "#/components/schemas/PolicyAiMcpToolInvoke" - $ref: "#/components/schemas/PolicyAiPiiMask" - $ref: "#/components/schemas/PolicyAiPromptDecorator" - $ref: "#/components/schemas/PolicyAiPromptGuard" - $ref: "#/components/schemas/PolicyAiPromptTemplate" - $ref: "#/components/schemas/PolicyAiRagInjection" - $ref: "#/components/schemas/PolicyAiSemanticCache" - $ref: "#/components/schemas/PolicyAiTokenRateLimit" - $ref: "#/components/schemas/PolicyAiTopicGuard" - $ref: "#/components/schemas/PolicyAllowedHours" - $ref: "#/components/schemas/PolicyApiAuthentication" - $ref: "#/components/schemas/PolicyApiBasedQuota" - $ref: "#/components/schemas/PolicyApiBasedThrottling" - $ref: "#/components/schemas/PolicyBase64Authentication" - $ref: "#/components/schemas/PolicyBasicAuthentication" - $ref: "#/components/schemas/PolicyBusinessRule" - $ref: "#/components/schemas/PolicyCache" - $ref: "#/components/schemas/PolicyClientBanner" - $ref: "#/components/schemas/PolicyContentFilter" - $ref: "#/components/schemas/PolicyDecryption" - $ref: "#/components/schemas/PolicyDigestAuthentication" - $ref: "#/components/schemas/PolicyDigitalSign" - $ref: "#/components/schemas/PolicyDigitalSignVerification" - $ref: "#/components/schemas/PolicyEncryption" - $ref: "#/components/schemas/PolicyEndpointRateLimit" - $ref: "#/components/schemas/PolicyGroup" - $ref: "#/components/schemas/PolicyIpBlack" - $ref: "#/components/schemas/PolicyIpWhite" - $ref: "#/components/schemas/PolicyJoseImplementation" - $ref: "#/components/schemas/PolicyJoseValidation" - $ref: "#/components/schemas/PolicyJsonSchemaValidation" - $ref: "#/components/schemas/PolicyJsonTransformation" - $ref: "#/components/schemas/PolicyJwtAuthentication" - $ref: "#/components/schemas/PolicyLog" - $ref: "#/components/schemas/PolicyMTLSAuthentication" - $ref: "#/components/schemas/PolicyMaxMessageSize" - $ref: "#/components/schemas/PolicyMessageBuilder" - $ref: "#/components/schemas/PolicyMinMessageSize" - $ref: "#/components/schemas/PolicyOIDC" - $ref: "#/components/schemas/PolicyOauth2Authentication" - $ref: "#/components/schemas/PolicyRedaction" - $ref: "#/components/schemas/PolicyRest2SoapTransformationRequest" - $ref: "#/components/schemas/PolicyRest2SoapTransformationResponse" - $ref: "#/components/schemas/PolicyRestApi" - $ref: "#/components/schemas/PolicySaml" - $ref: "#/components/schemas/PolicyScript" - $ref: "#/components/schemas/PolicyWSSecuritySign" - $ref: "#/components/schemas/PolicyWSSecuritySignValidation" - $ref: "#/components/schemas/PolicyWsSecurityDecrypt" - $ref: "#/components/schemas/PolicyWsSecurityEncrypt" - $ref: "#/components/schemas/PolicyWsSecurityFromTarget" - $ref: "#/components/schemas/PolicyWsSecurityStsToken" - $ref: "#/components/schemas/PolicyWsSecurityTimestamp" - $ref: "#/components/schemas/PolicyWsSecurityToTarget" - $ref: "#/components/schemas/PolicyWsSecurityUsername" - $ref: "#/components/schemas/PolicyXmlSchemaValidation" - $ref: "#/components/schemas/PolicyXmlTransformation" errorPolicyList: type: array items: oneOf: - $ref: "#/components/schemas/PolicyAiA2aAgentCall" - $ref: "#/components/schemas/PolicyAiA2aAgentInvoke" - $ref: "#/components/schemas/PolicyAiContextIntegrity" - $ref: "#/components/schemas/PolicyAiDlpGuard" - $ref: "#/components/schemas/PolicyAiGroundednessGuard" - $ref: "#/components/schemas/PolicyAiLoopGuard" - $ref: "#/components/schemas/PolicyAiMcpToolCall" - $ref: "#/components/schemas/PolicyAiMcpToolInvoke" - $ref: "#/components/schemas/PolicyAiPiiMask" - $ref: "#/components/schemas/PolicyAiPromptDecorator" - $ref: "#/components/schemas/PolicyAiPromptGuard" - $ref: "#/components/schemas/PolicyAiPromptTemplate" - $ref: "#/components/schemas/PolicyAiRagInjection" - $ref: "#/components/schemas/PolicyAiSemanticCache" - $ref: "#/components/schemas/PolicyAiTokenRateLimit" - $ref: "#/components/schemas/PolicyAiTopicGuard" - $ref: "#/components/schemas/PolicyAllowedHours" - $ref: "#/components/schemas/PolicyApiAuthentication" - $ref: "#/components/schemas/PolicyApiBasedQuota" - $ref: "#/components/schemas/PolicyApiBasedThrottling" - $ref: "#/components/schemas/PolicyBase64Authentication" - $ref: "#/components/schemas/PolicyBasicAuthentication" - $ref: "#/components/schemas/PolicyBusinessRule" - $ref: "#/components/schemas/PolicyCache" - $ref: "#/components/schemas/PolicyClientBanner" - $ref: "#/components/schemas/PolicyContentFilter" - $ref: "#/components/schemas/PolicyDecryption" - $ref: "#/components/schemas/PolicyDigestAuthentication" - $ref: "#/components/schemas/PolicyDigitalSign" - $ref: "#/components/schemas/PolicyDigitalSignVerification" - $ref: "#/components/schemas/PolicyEncryption" - $ref: "#/components/schemas/PolicyEndpointRateLimit" - $ref: "#/components/schemas/PolicyGroup" - $ref: "#/components/schemas/PolicyIpBlack" - $ref: "#/components/schemas/PolicyIpWhite" - $ref: "#/components/schemas/PolicyJoseImplementation" - $ref: "#/components/schemas/PolicyJoseValidation" - $ref: "#/components/schemas/PolicyJsonSchemaValidation" - $ref: "#/components/schemas/PolicyJsonTransformation" - $ref: "#/components/schemas/PolicyJwtAuthentication" - $ref: "#/components/schemas/PolicyLog" - $ref: "#/components/schemas/PolicyMTLSAuthentication" - $ref: "#/components/schemas/PolicyMaxMessageSize" - $ref: "#/components/schemas/PolicyMessageBuilder" - $ref: "#/components/schemas/PolicyMinMessageSize" - $ref: "#/components/schemas/PolicyOIDC" - $ref: "#/components/schemas/PolicyOauth2Authentication" - $ref: "#/components/schemas/PolicyRedaction" - $ref: "#/components/schemas/PolicyRest2SoapTransformationRequest" - $ref: "#/components/schemas/PolicyRest2SoapTransformationResponse" - $ref: "#/components/schemas/PolicyRestApi" - $ref: "#/components/schemas/PolicySaml" - $ref: "#/components/schemas/PolicyScript" - $ref: "#/components/schemas/PolicyWSSecuritySign" - $ref: "#/components/schemas/PolicyWSSecuritySignValidation" - $ref: "#/components/schemas/PolicyWsSecurityDecrypt" - $ref: "#/components/schemas/PolicyWsSecurityEncrypt" - $ref: "#/components/schemas/PolicyWsSecurityFromTarget" - $ref: "#/components/schemas/PolicyWsSecurityStsToken" - $ref: "#/components/schemas/PolicyWsSecurityTimestamp" - $ref: "#/components/schemas/PolicyWsSecurityToTarget" - $ref: "#/components/schemas/PolicyWsSecurityUsername" - $ref: "#/components/schemas/PolicyXmlSchemaValidation" - $ref: "#/components/schemas/PolicyXmlTransformation" apiProxyDeployList: type: array items: $ref: "#/components/schemas/ApiProxyDeploy" apiProxyPublishToPortal: $ref: "#/components/schemas/ApiProxyPublishToPortal" backendApiVersion: type: string globalApiProxySettingId: type: string proxyGroupInformationDtoList: type: array items: $ref: "#/components/schemas/ProxyGroupInformationDTO" enumSpecAccessType: type: string enum: - PUBLIC - AUTHENTICATED - HIDDEN - BACKEND_PROXY specAccessCheckApiProxyPermission: type: boolean backendProxyApplyPolicies: type: boolean hasRequestPoliciesComputed: type: boolean hasResponsePoliciesComputed: type: boolean rateLimitExistFirst: type: boolean rateLimitExistLast: type: boolean policyOauth2Authentication: oneOf: - $ref: "#/components/schemas/PolicyAiA2aAgentCall" - $ref: "#/components/schemas/PolicyAiA2aAgentInvoke" - $ref: "#/components/schemas/PolicyAiContextIntegrity" - $ref: "#/components/schemas/PolicyAiDlpGuard" - $ref: "#/components/schemas/PolicyAiGroundednessGuard" - $ref: "#/components/schemas/PolicyAiLoopGuard" - $ref: "#/components/schemas/PolicyAiMcpToolCall" - $ref: "#/components/schemas/PolicyAiMcpToolInvoke" - $ref: "#/components/schemas/PolicyAiPiiMask" - $ref: "#/components/schemas/PolicyAiPromptDecorator" - $ref: "#/components/schemas/PolicyAiPromptGuard" - $ref: "#/components/schemas/PolicyAiPromptTemplate" - $ref: "#/components/schemas/PolicyAiRagInjection" - $ref: "#/components/schemas/PolicyAiSemanticCache" - $ref: "#/components/schemas/PolicyAiTokenRateLimit" - $ref: "#/components/schemas/PolicyAiTopicGuard" - $ref: "#/components/schemas/PolicyAllowedHours" - $ref: "#/components/schemas/PolicyApiAuthentication" - $ref: "#/components/schemas/PolicyApiBasedQuota" - $ref: "#/components/schemas/PolicyApiBasedThrottling" - $ref: "#/components/schemas/PolicyBase64Authentication" - $ref: "#/components/schemas/PolicyBasicAuthentication" - $ref: "#/components/schemas/PolicyBusinessRule" - $ref: "#/components/schemas/PolicyCache" - $ref: "#/components/schemas/PolicyClientBanner" - $ref: "#/components/schemas/PolicyContentFilter" - $ref: "#/components/schemas/PolicyDecryption" - $ref: "#/components/schemas/PolicyDigestAuthentication" - $ref: "#/components/schemas/PolicyDigitalSign" - $ref: "#/components/schemas/PolicyDigitalSignVerification" - $ref: "#/components/schemas/PolicyEncryption" - $ref: "#/components/schemas/PolicyEndpointRateLimit" - $ref: "#/components/schemas/PolicyGroup" - $ref: "#/components/schemas/PolicyIpBlack" - $ref: "#/components/schemas/PolicyIpWhite" - $ref: "#/components/schemas/PolicyJoseImplementation" - $ref: "#/components/schemas/PolicyJoseValidation" - $ref: "#/components/schemas/PolicyJsonSchemaValidation" - $ref: "#/components/schemas/PolicyJsonTransformation" - $ref: "#/components/schemas/PolicyJwtAuthentication" - $ref: "#/components/schemas/PolicyLog" - $ref: "#/components/schemas/PolicyMTLSAuthentication" - $ref: "#/components/schemas/PolicyMaxMessageSize" - $ref: "#/components/schemas/PolicyMessageBuilder" - $ref: "#/components/schemas/PolicyMinMessageSize" - $ref: "#/components/schemas/PolicyOIDC" - $ref: "#/components/schemas/PolicyOauth2Authentication" - $ref: "#/components/schemas/PolicyRedaction" - $ref: "#/components/schemas/PolicyRest2SoapTransformationRequest" - $ref: "#/components/schemas/PolicyRest2SoapTransformationResponse" - $ref: "#/components/schemas/PolicyRestApi" - $ref: "#/components/schemas/PolicySaml" - $ref: "#/components/schemas/PolicyScript" - $ref: "#/components/schemas/PolicyWSSecuritySign" - $ref: "#/components/schemas/PolicyWSSecuritySignValidation" - $ref: "#/components/schemas/PolicyWsSecurityDecrypt" - $ref: "#/components/schemas/PolicyWsSecurityEncrypt" - $ref: "#/components/schemas/PolicyWsSecurityFromTarget" - $ref: "#/components/schemas/PolicyWsSecurityStsToken" - $ref: "#/components/schemas/PolicyWsSecurityTimestamp" - $ref: "#/components/schemas/PolicyWsSecurityToTarget" - $ref: "#/components/schemas/PolicyWsSecurityUsername" - $ref: "#/components/schemas/PolicyXmlSchemaValidation" - $ref: "#/components/schemas/PolicyXmlTransformation" policyJwtAuthentication: oneOf: - $ref: "#/components/schemas/PolicyAiA2aAgentCall" - $ref: "#/components/schemas/PolicyAiA2aAgentInvoke" - $ref: "#/components/schemas/PolicyAiContextIntegrity" - $ref: "#/components/schemas/PolicyAiDlpGuard" - $ref: "#/components/schemas/PolicyAiGroundednessGuard" - $ref: "#/components/schemas/PolicyAiLoopGuard" - $ref: "#/components/schemas/PolicyAiMcpToolCall" - $ref: "#/components/schemas/PolicyAiMcpToolInvoke" - $ref: "#/components/schemas/PolicyAiPiiMask" - $ref: "#/components/schemas/PolicyAiPromptDecorator" - $ref: "#/components/schemas/PolicyAiPromptGuard" - $ref: "#/components/schemas/PolicyAiPromptTemplate" - $ref: "#/components/schemas/PolicyAiRagInjection" - $ref: "#/components/schemas/PolicyAiSemanticCache" - $ref: "#/components/schemas/PolicyAiTokenRateLimit" - $ref: "#/components/schemas/PolicyAiTopicGuard" - $ref: "#/components/schemas/PolicyAllowedHours" - $ref: "#/components/schemas/PolicyApiAuthentication" - $ref: "#/components/schemas/PolicyApiBasedQuota" - $ref: "#/components/schemas/PolicyApiBasedThrottling" - $ref: "#/components/schemas/PolicyBase64Authentication" - $ref: "#/components/schemas/PolicyBasicAuthentication" - $ref: "#/components/schemas/PolicyBusinessRule" - $ref: "#/components/schemas/PolicyCache" - $ref: "#/components/schemas/PolicyClientBanner" - $ref: "#/components/schemas/PolicyContentFilter" - $ref: "#/components/schemas/PolicyDecryption" - $ref: "#/components/schemas/PolicyDigestAuthentication" - $ref: "#/components/schemas/PolicyDigitalSign" - $ref: "#/components/schemas/PolicyDigitalSignVerification" - $ref: "#/components/schemas/PolicyEncryption" - $ref: "#/components/schemas/PolicyEndpointRateLimit" - $ref: "#/components/schemas/PolicyGroup" - $ref: "#/components/schemas/PolicyIpBlack" - $ref: "#/components/schemas/PolicyIpWhite" - $ref: "#/components/schemas/PolicyJoseImplementation" - $ref: "#/components/schemas/PolicyJoseValidation" - $ref: "#/components/schemas/PolicyJsonSchemaValidation" - $ref: "#/components/schemas/PolicyJsonTransformation" - $ref: "#/components/schemas/PolicyJwtAuthentication" - $ref: "#/components/schemas/PolicyLog" - $ref: "#/components/schemas/PolicyMTLSAuthentication" - $ref: "#/components/schemas/PolicyMaxMessageSize" - $ref: "#/components/schemas/PolicyMessageBuilder" - $ref: "#/components/schemas/PolicyMinMessageSize" - $ref: "#/components/schemas/PolicyOIDC" - $ref: "#/components/schemas/PolicyOauth2Authentication" - $ref: "#/components/schemas/PolicyRedaction" - $ref: "#/components/schemas/PolicyRest2SoapTransformationRequest" - $ref: "#/components/schemas/PolicyRest2SoapTransformationResponse" - $ref: "#/components/schemas/PolicyRestApi" - $ref: "#/components/schemas/PolicySaml" - $ref: "#/components/schemas/PolicyScript" - $ref: "#/components/schemas/PolicyWSSecuritySign" - $ref: "#/components/schemas/PolicyWSSecuritySignValidation" - $ref: "#/components/schemas/PolicyWsSecurityDecrypt" - $ref: "#/components/schemas/PolicyWsSecurityEncrypt" - $ref: "#/components/schemas/PolicyWsSecurityFromTarget" - $ref: "#/components/schemas/PolicyWsSecurityStsToken" - $ref: "#/components/schemas/PolicyWsSecurityTimestamp" - $ref: "#/components/schemas/PolicyWsSecurityToTarget" - $ref: "#/components/schemas/PolicyWsSecurityUsername" - $ref: "#/components/schemas/PolicyXmlSchemaValidation" - $ref: "#/components/schemas/PolicyXmlTransformation" policyConfigurationTemplateFromService: $ref: "#/components/schemas/PolicyConfigurationTemplate" writeOnly: true relativePath: type: string ApiProxyDeploy: type: object properties: environmentSettingsId: type: string environmentName: type: string environmentType: type: string enum: - PRODUCTION - SANDBOX - TEST environmentCommunicationProtocolType: type: string enum: - HTTP - GRPC - WEBSOCKET accessUrl: type: string deploy: type: boolean redeployRequired: type: boolean ApiProxyPublishToPortal: type: object properties: sandboxEnvironmentSettingsId: type: string sandboxEnvironmentName: type: string prodEnvironmentSettingsId: type: string prodEnvironmentName: type: string enumApiProxyPublishToPortal: type: string enum: - ANALYSE - DESIGN - DEVELOPMENT - TEST - READY_TO_PUBLISH - PUBLISHED - UNPUBLISHED - RETIRED ApiProxyTrafficLogSettingsEnvironmentLogConnectorCheckDTO: type: object properties: environmentId: type: string connectorList: type: array items: $ref: "#/components/schemas/EnvironmentConnectorInfo" databaseEnabled: type: boolean elasticsearchEnabled: type: boolean graylogEnabled: type: boolean kafkaEnabled: type: boolean rabbitMqEnabled: type: boolean activeMqEnabled: type: boolean syslogEnabled: type: boolean webhookEnabled: type: boolean logbackEnabled: type: boolean ApiProxyTrafficLogSettingsLogConnectorCheckDTO: type: object properties: databaseExists: type: boolean elasticsearchExists: type: boolean graylogExists: type: boolean kafkaExists: type: boolean rabbitMqExists: type: boolean activeMqExists: type: boolean syslogExists: type: boolean webhookExists: type: boolean logbackExists: type: boolean environmentCheckList: type: array items: $ref: "#/components/schemas/ApiProxyTrafficLogSettingsEnvironmentLogConnectorCheckDTO" availableConnectors: type: array items: $ref: "#/components/schemas/EnvironmentConnectorInfo" CanaryReleaseSettings: type: object properties: enabled: type: boolean trafficPercentage: type: integer format: int64 cooldownPeriodSeconds: type: integer format: int32 Connector: type: object properties: id: type: string name: type: string description: type: string enabled: type: boolean enumExecutableType: type: string enum: - API_CALL - DB_INSERT_UPDATE_DELETE - DB_SELECT - DB_STORED_PROCEDURE - ELASTICSEARCH_INDEX - MAIL_SEND - KAFKA_SEND - GRAYLOG_SEND - LINUX_SCRIPT - NOTIFICATION - OPSGENIE_ALERT_CREATE_V2 - RABBITMQ_SEND - ACTIVEMQ_SEND - LOGBACK_APPEND - SCRIPT - SNMP - SYSLOG_SEND - WEBHOOK_SEND - FTP_READ_FILE - FTP_LIST_FILE - TASK_FLOW_MANAGER outputKey: type: string runTaskForOnce: type: boolean continueOnFail: type: boolean jsonPathXPathSyntax: type: string enableTrace: type: boolean connectionId: type: string ConnectorActiveMqSend: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: content: type: string enableApiProxyTrafficLogSettingDetail: type: boolean apiProxyTrafficLogSettingDetail: $ref: "#/components/schemas/ConnectorLogSettings" enableApiProxyTrafficPrivacySetting: type: boolean apiProxyTrafficPrivacySettings: $ref: "#/components/schemas/APIProxyTrafficPrivacySettings" enableLogDisabledFieldsOnBlock: type: boolean enableLogDisabledFieldsOnFailure: type: boolean enableExportAll: type: boolean enableFailoverConnector: type: boolean failoverExecutableType: type: string enum: - API_CALL - DB_INSERT_UPDATE_DELETE - DB_SELECT - DB_STORED_PROCEDURE - ELASTICSEARCH_INDEX - MAIL_SEND - KAFKA_SEND - GRAYLOG_SEND - LINUX_SCRIPT - NOTIFICATION - OPSGENIE_ALERT_CREATE_V2 - RABBITMQ_SEND - ACTIVEMQ_SEND - LOGBACK_APPEND - SCRIPT - SNMP - SYSLOG_SEND - WEBHOOK_SEND - FTP_READ_FILE - FTP_LIST_FILE - TASK_FLOW_MANAGER failoverConnectionId: type: string failoverDatabaseType: type: string enum: - ORACLE - MYSQL - POSTGRES - SQL_SERVER - SYBASE - DB2 - APACHE_HIVE - APACHE_IMPALA - MONGODB - TRINO connectionConfigActiveMqId: type: string ConnectorApiCall: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: testItem: $ref: "#/components/schemas/TestItem" ConnectorDbInsertUpdateDelete: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: content: type: string enableApiProxyTrafficLogSettingDetail: type: boolean apiProxyTrafficLogSettingDetail: $ref: "#/components/schemas/ConnectorLogSettings" enableApiProxyTrafficPrivacySetting: type: boolean apiProxyTrafficPrivacySettings: $ref: "#/components/schemas/APIProxyTrafficPrivacySettings" enableLogDisabledFieldsOnBlock: type: boolean enableLogDisabledFieldsOnFailure: type: boolean enableExportAll: type: boolean enableFailoverConnector: type: boolean failoverExecutableType: type: string enum: - API_CALL - DB_INSERT_UPDATE_DELETE - DB_SELECT - DB_STORED_PROCEDURE - ELASTICSEARCH_INDEX - MAIL_SEND - KAFKA_SEND - GRAYLOG_SEND - LINUX_SCRIPT - NOTIFICATION - OPSGENIE_ALERT_CREATE_V2 - RABBITMQ_SEND - ACTIVEMQ_SEND - LOGBACK_APPEND - SCRIPT - SNMP - SYSLOG_SEND - WEBHOOK_SEND - FTP_READ_FILE - FTP_LIST_FILE - TASK_FLOW_MANAGER failoverConnectionId: type: string failoverDatabaseType: type: string enum: - ORACLE - MYSQL - POSTGRES - SQL_SERVER - SYBASE - DB2 - APACHE_HIVE - APACHE_IMPALA - MONGODB - TRINO statement: type: string connectionPoolDefDbId: type: string parameterList: type: array items: $ref: "#/components/schemas/DatabaseParameter" queryTimeout: type: integer format: int32 exampleResponse: type: string parsed: type: boolean databaseType: type: string enum: - ORACLE - MYSQL - POSTGRES - SQL_SERVER - SYBASE - DB2 - APACHE_HIVE - APACHE_IMPALA - MONGODB - TRINO ConnectorDbSelect: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: content: type: string enableApiProxyTrafficLogSettingDetail: type: boolean apiProxyTrafficLogSettingDetail: $ref: "#/components/schemas/ConnectorLogSettings" enableApiProxyTrafficPrivacySetting: type: boolean apiProxyTrafficPrivacySettings: $ref: "#/components/schemas/APIProxyTrafficPrivacySettings" enableLogDisabledFieldsOnBlock: type: boolean enableLogDisabledFieldsOnFailure: type: boolean enableExportAll: type: boolean enableFailoverConnector: type: boolean failoverExecutableType: type: string enum: - API_CALL - DB_INSERT_UPDATE_DELETE - DB_SELECT - DB_STORED_PROCEDURE - ELASTICSEARCH_INDEX - MAIL_SEND - KAFKA_SEND - GRAYLOG_SEND - LINUX_SCRIPT - NOTIFICATION - OPSGENIE_ALERT_CREATE_V2 - RABBITMQ_SEND - ACTIVEMQ_SEND - LOGBACK_APPEND - SCRIPT - SNMP - SYSLOG_SEND - WEBHOOK_SEND - FTP_READ_FILE - FTP_LIST_FILE - TASK_FLOW_MANAGER failoverConnectionId: type: string failoverDatabaseType: type: string enum: - ORACLE - MYSQL - POSTGRES - SQL_SERVER - SYBASE - DB2 - APACHE_HIVE - APACHE_IMPALA - MONGODB - TRINO statement: type: string connectionPoolDefDbId: type: string parameterList: type: array items: $ref: "#/components/schemas/DatabaseParameter" queryTimeout: type: integer format: int32 exampleResponse: type: string parsed: type: boolean databaseType: type: string enum: - ORACLE - MYSQL - POSTGRES - SQL_SERVER - SYBASE - DB2 - APACHE_HIVE - APACHE_IMPALA - MONGODB - TRINO ConnectorDbStoredProcedure: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: content: type: string enableApiProxyTrafficLogSettingDetail: type: boolean apiProxyTrafficLogSettingDetail: $ref: "#/components/schemas/ConnectorLogSettings" enableApiProxyTrafficPrivacySetting: type: boolean apiProxyTrafficPrivacySettings: $ref: "#/components/schemas/APIProxyTrafficPrivacySettings" enableLogDisabledFieldsOnBlock: type: boolean enableLogDisabledFieldsOnFailure: type: boolean enableExportAll: type: boolean enableFailoverConnector: type: boolean failoverExecutableType: type: string enum: - API_CALL - DB_INSERT_UPDATE_DELETE - DB_SELECT - DB_STORED_PROCEDURE - ELASTICSEARCH_INDEX - MAIL_SEND - KAFKA_SEND - GRAYLOG_SEND - LINUX_SCRIPT - NOTIFICATION - OPSGENIE_ALERT_CREATE_V2 - RABBITMQ_SEND - ACTIVEMQ_SEND - LOGBACK_APPEND - SCRIPT - SNMP - SYSLOG_SEND - WEBHOOK_SEND - FTP_READ_FILE - FTP_LIST_FILE - TASK_FLOW_MANAGER failoverConnectionId: type: string failoverDatabaseType: type: string enum: - ORACLE - MYSQL - POSTGRES - SQL_SERVER - SYBASE - DB2 - APACHE_HIVE - APACHE_IMPALA - MONGODB - TRINO statement: type: string connectionPoolDefDbId: type: string parameterList: type: array items: $ref: "#/components/schemas/DatabaseParameter" queryTimeout: type: integer format: int32 exampleResponse: type: string parsed: type: boolean databaseType: type: string enum: - ORACLE - MYSQL - POSTGRES - SQL_SERVER - SYBASE - DB2 - APACHE_HIVE - APACHE_IMPALA - MONGODB - TRINO ConnectorElasticSearchIndex: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: content: type: string enableApiProxyTrafficLogSettingDetail: type: boolean apiProxyTrafficLogSettingDetail: $ref: "#/components/schemas/ConnectorLogSettings" enableApiProxyTrafficPrivacySetting: type: boolean apiProxyTrafficPrivacySettings: $ref: "#/components/schemas/APIProxyTrafficPrivacySettings" enableLogDisabledFieldsOnBlock: type: boolean enableLogDisabledFieldsOnFailure: type: boolean enableExportAll: type: boolean enableFailoverConnector: type: boolean failoverExecutableType: type: string enum: - API_CALL - DB_INSERT_UPDATE_DELETE - DB_SELECT - DB_STORED_PROCEDURE - ELASTICSEARCH_INDEX - MAIL_SEND - KAFKA_SEND - GRAYLOG_SEND - LINUX_SCRIPT - NOTIFICATION - OPSGENIE_ALERT_CREATE_V2 - RABBITMQ_SEND - ACTIVEMQ_SEND - LOGBACK_APPEND - SCRIPT - SNMP - SYSLOG_SEND - WEBHOOK_SEND - FTP_READ_FILE - FTP_LIST_FILE - TASK_FLOW_MANAGER failoverConnectionId: type: string failoverDatabaseType: type: string enum: - ORACLE - MYSQL - POSTGRES - SQL_SERVER - SYBASE - DB2 - APACHE_HIVE - APACHE_IMPALA - MONGODB - TRINO connectionConfigElasticsearchId: type: string ConnectorFtpListFile: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: connectionConfigFtpId: type: string caseInsensitive: type: boolean searchType: type: string enum: - starts_with - exact_match - contains - ends_with - wildcard searchPattern: type: string returnType: type: string enum: - first_match - all_matches maxFileSizeKB: type: integer format: int32 ConnectorFtpReadFile: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: connectionConfigFtpId: type: string caseInsensitive: type: boolean searchType: type: string enum: - starts_with - exact_match - contains - ends_with - wildcard searchPattern: type: string returnType: type: string enum: - first_match - all_matches outputFormat: type: string enum: - mtom - json_base64 - zip maxFileSizeKB: type: integer format: int32 ConnectorGraylogSend: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: content: type: string enableApiProxyTrafficLogSettingDetail: type: boolean apiProxyTrafficLogSettingDetail: $ref: "#/components/schemas/ConnectorLogSettings" enableApiProxyTrafficPrivacySetting: type: boolean apiProxyTrafficPrivacySettings: $ref: "#/components/schemas/APIProxyTrafficPrivacySettings" enableLogDisabledFieldsOnBlock: type: boolean enableLogDisabledFieldsOnFailure: type: boolean enableExportAll: type: boolean enableFailoverConnector: type: boolean failoverExecutableType: type: string enum: - API_CALL - DB_INSERT_UPDATE_DELETE - DB_SELECT - DB_STORED_PROCEDURE - ELASTICSEARCH_INDEX - MAIL_SEND - KAFKA_SEND - GRAYLOG_SEND - LINUX_SCRIPT - NOTIFICATION - OPSGENIE_ALERT_CREATE_V2 - RABBITMQ_SEND - ACTIVEMQ_SEND - LOGBACK_APPEND - SCRIPT - SNMP - SYSLOG_SEND - WEBHOOK_SEND - FTP_READ_FILE - FTP_LIST_FILE - TASK_FLOW_MANAGER failoverConnectionId: type: string failoverDatabaseType: type: string enum: - ORACLE - MYSQL - POSTGRES - SQL_SERVER - SYBASE - DB2 - APACHE_HIVE - APACHE_IMPALA - MONGODB - TRINO connectionConfigGraylogId: type: string ConnectorKafkaSend: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: content: type: string enableApiProxyTrafficLogSettingDetail: type: boolean apiProxyTrafficLogSettingDetail: $ref: "#/components/schemas/ConnectorLogSettings" enableApiProxyTrafficPrivacySetting: type: boolean apiProxyTrafficPrivacySettings: $ref: "#/components/schemas/APIProxyTrafficPrivacySettings" enableLogDisabledFieldsOnBlock: type: boolean enableLogDisabledFieldsOnFailure: type: boolean enableExportAll: type: boolean enableFailoverConnector: type: boolean failoverExecutableType: type: string enum: - API_CALL - DB_INSERT_UPDATE_DELETE - DB_SELECT - DB_STORED_PROCEDURE - ELASTICSEARCH_INDEX - MAIL_SEND - KAFKA_SEND - GRAYLOG_SEND - LINUX_SCRIPT - NOTIFICATION - OPSGENIE_ALERT_CREATE_V2 - RABBITMQ_SEND - ACTIVEMQ_SEND - LOGBACK_APPEND - SCRIPT - SNMP - SYSLOG_SEND - WEBHOOK_SEND - FTP_READ_FILE - FTP_LIST_FILE - TASK_FLOW_MANAGER failoverConnectionId: type: string failoverDatabaseType: type: string enum: - ORACLE - MYSQL - POSTGRES - SQL_SERVER - SYBASE - DB2 - APACHE_HIVE - APACHE_IMPALA - MONGODB - TRINO connectionConfigKafkaId: type: string ConnectorLinuxScript: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: script: type: string connectionConfigId: type: string ConnectorLogBackAppend: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: content: type: string enableApiProxyTrafficLogSettingDetail: type: boolean apiProxyTrafficLogSettingDetail: $ref: "#/components/schemas/ConnectorLogSettings" enableApiProxyTrafficPrivacySetting: type: boolean apiProxyTrafficPrivacySettings: $ref: "#/components/schemas/APIProxyTrafficPrivacySettings" enableLogDisabledFieldsOnBlock: type: boolean enableLogDisabledFieldsOnFailure: type: boolean enableExportAll: type: boolean enableFailoverConnector: type: boolean failoverExecutableType: type: string enum: - API_CALL - DB_INSERT_UPDATE_DELETE - DB_SELECT - DB_STORED_PROCEDURE - ELASTICSEARCH_INDEX - MAIL_SEND - KAFKA_SEND - GRAYLOG_SEND - LINUX_SCRIPT - NOTIFICATION - OPSGENIE_ALERT_CREATE_V2 - RABBITMQ_SEND - ACTIVEMQ_SEND - LOGBACK_APPEND - SCRIPT - SNMP - SYSLOG_SEND - WEBHOOK_SEND - FTP_READ_FILE - FTP_LIST_FILE - TASK_FLOW_MANAGER failoverConnectionId: type: string failoverDatabaseType: type: string enum: - ORACLE - MYSQL - POSTGRES - SQL_SERVER - SYBASE - DB2 - APACHE_HIVE - APACHE_IMPALA - MONGODB - TRINO connectionConfigLogbackId: type: string ConnectorMailSend: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: connectionConfigEmailId: type: string from: type: string toList: type: array items: type: string subject: type: string content: type: string html: type: boolean highImportance: type: boolean ConnectorNotification: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: allUser: type: boolean targetUserList: type: array items: type: string title: type: string message: type: string type: type: string enum: - INFO - WARN - ERROR ConnectorOpsgenieAlertCreateV2: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: connectionConfigId: type: string message: type: string ConnectorRabbitMqSend: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: content: type: string enableApiProxyTrafficLogSettingDetail: type: boolean apiProxyTrafficLogSettingDetail: $ref: "#/components/schemas/ConnectorLogSettings" enableApiProxyTrafficPrivacySetting: type: boolean apiProxyTrafficPrivacySettings: $ref: "#/components/schemas/APIProxyTrafficPrivacySettings" enableLogDisabledFieldsOnBlock: type: boolean enableLogDisabledFieldsOnFailure: type: boolean enableExportAll: type: boolean enableFailoverConnector: type: boolean failoverExecutableType: type: string enum: - API_CALL - DB_INSERT_UPDATE_DELETE - DB_SELECT - DB_STORED_PROCEDURE - ELASTICSEARCH_INDEX - MAIL_SEND - KAFKA_SEND - GRAYLOG_SEND - LINUX_SCRIPT - NOTIFICATION - OPSGENIE_ALERT_CREATE_V2 - RABBITMQ_SEND - ACTIVEMQ_SEND - LOGBACK_APPEND - SCRIPT - SNMP - SYSLOG_SEND - WEBHOOK_SEND - FTP_READ_FILE - FTP_LIST_FILE - TASK_FLOW_MANAGER failoverConnectionId: type: string failoverDatabaseType: type: string enum: - ORACLE - MYSQL - POSTGRES - SQL_SERVER - SYBASE - DB2 - APACHE_HIVE - APACHE_IMPALA - MONGODB - TRINO connectionConfigRabbitMqId: type: string ConnectorSNMP: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: connectionConfigSNMPId: type: string message: type: string ConnectorScript: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: scriptType: type: string enum: - GROOVY - JAVASCRIPT script: type: string ConnectorSyslogSend: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: content: type: string enableApiProxyTrafficLogSettingDetail: type: boolean apiProxyTrafficLogSettingDetail: $ref: "#/components/schemas/ConnectorLogSettings" enableApiProxyTrafficPrivacySetting: type: boolean apiProxyTrafficPrivacySettings: $ref: "#/components/schemas/APIProxyTrafficPrivacySettings" enableLogDisabledFieldsOnBlock: type: boolean enableLogDisabledFieldsOnFailure: type: boolean enableExportAll: type: boolean enableFailoverConnector: type: boolean failoverExecutableType: type: string enum: - API_CALL - DB_INSERT_UPDATE_DELETE - DB_SELECT - DB_STORED_PROCEDURE - ELASTICSEARCH_INDEX - MAIL_SEND - KAFKA_SEND - GRAYLOG_SEND - LINUX_SCRIPT - NOTIFICATION - OPSGENIE_ALERT_CREATE_V2 - RABBITMQ_SEND - ACTIVEMQ_SEND - LOGBACK_APPEND - SCRIPT - SNMP - SYSLOG_SEND - WEBHOOK_SEND - FTP_READ_FILE - FTP_LIST_FILE - TASK_FLOW_MANAGER failoverConnectionId: type: string failoverDatabaseType: type: string enum: - ORACLE - MYSQL - POSTGRES - SQL_SERVER - SYBASE - DB2 - APACHE_HIVE - APACHE_IMPALA - MONGODB - TRINO connectionConfigSyslogId: type: string ConnectorWebhookSend: allOf: - $ref: "#/components/schemas/Executable" - type: object properties: content: type: string enableApiProxyTrafficLogSettingDetail: type: boolean apiProxyTrafficLogSettingDetail: $ref: "#/components/schemas/ConnectorLogSettings" enableApiProxyTrafficPrivacySetting: type: boolean apiProxyTrafficPrivacySettings: $ref: "#/components/schemas/APIProxyTrafficPrivacySettings" enableLogDisabledFieldsOnBlock: type: boolean enableLogDisabledFieldsOnFailure: type: boolean enableExportAll: type: boolean enableFailoverConnector: type: boolean failoverExecutableType: type: string enum: - API_CALL - DB_INSERT_UPDATE_DELETE - DB_SELECT - DB_STORED_PROCEDURE - ELASTICSEARCH_INDEX - MAIL_SEND - KAFKA_SEND - GRAYLOG_SEND - LINUX_SCRIPT - NOTIFICATION - OPSGENIE_ALERT_CREATE_V2 - RABBITMQ_SEND - ACTIVEMQ_SEND - LOGBACK_APPEND - SCRIPT - SNMP - SYSLOG_SEND - WEBHOOK_SEND - FTP_READ_FILE - FTP_LIST_FILE - TASK_FLOW_MANAGER failoverConnectionId: type: string failoverDatabaseType: type: string enum: - ORACLE - MYSQL - POSTGRES - SQL_SERVER - SYBASE - DB2 - APACHE_HIVE - APACHE_IMPALA - MONGODB - TRINO connectionConfigWebhookId: type: string CorsSettings: type: object properties: name: type: string description: type: string corsActive: type: boolean origin: type: string requestMethod: type: string requestHeaderList: type: array items: type: string allowOriginList: type: array items: type: string allowCredentials: type: string exposeHeaderList: type: array items: type: string maxAge: type: integer format: int32 allowMethodList: type: array items: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY allowHeaderList: type: array items: type: string DatabaseParameter: type: object properties: name: type: string description: type: string dataType: type: string enum: - STRING - CLOB - BOOLEAN - INTEGER - LONG - DOUBLE - DATE - DATETIME - REF_CURSOR format: type: string paramType: type: string enum: - BODY - PATH - QUERY - HEADER - FORMDATA repetitionType: type: string enum: - SINGLE - MULTIPLE paramDirection: type: string enum: - OUT - IN booleanValue: type: boolean dateValue: type: string doubleValue: type: number format: double longValue: type: integer format: int64 intValue: type: integer format: int32 stringValue: type: string clobValue: type: string indexList: type: array items: type: integer format: int32 DbToApi: type: object properties: id: type: string name: type: string description: type: string projectId: type: string methodDefList: type: array items: $ref: "#/components/schemas/DbToApiMethod" DbToApiMethod: type: object properties: id: type: string name: type: string description: type: string httpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY sqlStatement: type: string connectionPoolDefId: type: string parameterList: type: array items: $ref: "#/components/schemas/DatabaseParameter" reqIgnoreNull: type: boolean reqIgnoreEmpty: type: boolean reqNumbersAsStrings: type: boolean queryTimeout: type: integer format: int32 exampleResponse: type: string parsed: type: boolean operationType: type: string enum: - SELECT - UPDATE - INSERT - DELETE - PROCEDURE - TRUNCATE - BATCH_INSERT databaseType: type: string enum: - ORACLE - MYSQL - POSTGRES - SQL_SERVER - SYBASE - DB2 - APACHE_HIVE - APACHE_IMPALA - MONGODB - TRINO environmentSettingsId: type: string EnvironmentConnectorInfo: type: object properties: connectorId: type: string connectorType: type: string connectorName: type: string displayLabel: type: string restoreOnBlock: type: boolean restoreOnFailure: type: boolean restrictedFields: type: array items: type: string ErrorResponseTemplateJson: type: object properties: permitSpecialChars: type: boolean contentType: type: string jsonValue: type: string jsonErrorResponseTemplateActive: type: boolean ErrorResponseTemplateXml: type: object properties: permitSpecialChars: type: boolean contentType: type: string xmlValue: type: string xmlErrorResponseTemplateActive: type: boolean Executable: type: object discriminator: propertyName: _class properties: id: type: string name: type: string description: type: string enabled: type: boolean enumExecutableType: type: string enum: - API_CALL - DB_INSERT_UPDATE_DELETE - DB_SELECT - DB_STORED_PROCEDURE - ELASTICSEARCH_INDEX - MAIL_SEND - KAFKA_SEND - GRAYLOG_SEND - LINUX_SCRIPT - NOTIFICATION - OPSGENIE_ALERT_CREATE_V2 - RABBITMQ_SEND - ACTIVEMQ_SEND - LOGBACK_APPEND - SCRIPT - SNMP - SYSLOG_SEND - WEBHOOK_SEND - FTP_READ_FILE - FTP_LIST_FILE - TASK_FLOW_MANAGER outputKey: type: string runTaskForOnce: type: boolean continueOnFail: type: boolean jsonPathXPathSyntax: type: string enableTrace: type: boolean connectionId: type: string _class: type: string required: - _class ForwardedIpHeaderParam: type: object properties: forwardedIpHeaderParamActive: type: boolean value: type: string xffOrder: type: string enum: - FIRST - SECOND - THIRD - FOURTH - FIFTH - LAST IdempotencySettings: type: object properties: name: type: string description: type: string idempotencyActive: type: boolean keyType: type: string enum: - HEADER - CUSTOM headerName: type: string variableList: type: array items: $ref: "#/components/schemas/Variable" keyRequired: type: boolean missingKeyHttpStatus: type: integer format: int32 applicableHttpMethods: type: array items: type: string payloadHashEnabled: type: boolean processingTimeoutInSeconds: type: integer format: int32 retentionInDays: type: integer format: int32 maximum: 30 minimum: 1 cacheStorageType: type: string enum: - LOCAL - DISTRIBUTED handlingAction: type: string enum: - CONTINUE - STOP cacheConnectionTimeoutInSeconds: type: integer format: int32 conflictHttpStatus: type: integer format: int32 mismatchHttpStatus: type: integer format: int32 replayCompletedResponse: type: boolean conflictMessage: type: string mismatchMessage: type: string missingKeyMessage: type: string errorContentType: type: string missingKeyBodyEnabled: type: boolean conflictBodyEnabled: type: boolean mismatchBodyEnabled: type: boolean JobRecord: type: object properties: jobName: type: string cronExpression: type: string scheduleTime: type: string format: date-time lastFiredTime: type: string format: date-time groupName: type: string endDateTimeValue: type: string format: date-time jobStatus: type: string nextFireTime: type: string format: date-time startDateTimeValue: type: string format: date-time enumJobStatus: type: string enum: - NONE - START - PAUSE - DELETE - RESUME - STOP jobClassName: type: string aiJob: type: boolean name: type: string KpsSettings: type: object properties: id: type: string enable: type: boolean configurationList: type: array items: $ref: "#/components/schemas/KpsSettingsConfiguration" expirationPeriodInMin: type: integer format: int32 KpsSettingsConfiguration: type: object properties: id: type: integer format: int32 condition: $ref: "#/components/schemas/PolicyCondition" username: type: string password: type: string environmentIdList: type: array items: type: string LogExecutableExecutionDetail: type: object properties: taskName: type: string executableType: type: string enum: - API_CALL - DB_INSERT_UPDATE_DELETE - DB_SELECT - DB_STORED_PROCEDURE - ELASTICSEARCH_INDEX - MAIL_SEND - KAFKA_SEND - GRAYLOG_SEND - LINUX_SCRIPT - NOTIFICATION - OPSGENIE_ALERT_CREATE_V2 - RABBITMQ_SEND - ACTIVEMQ_SEND - LOGBACK_APPEND - SCRIPT - SNMP - SYSLOG_SEND - WEBHOOK_SEND - FTP_READ_FILE - FTP_LIST_FILE - TASK_FLOW_MANAGER logDetail: type: string executionTime: type: string format: date-time resultType: type: string enum: - SUCCESS - FAILURE - IN_PROGRESS - INTERRUPTED apiProxyId: type: string LogSettings: type: object properties: logSettingsActive: type: boolean projectId: type: string logBodyRequestFromClient: type: boolean logBodyRequestToTarget: type: boolean logBodyResponseFromTarget: type: boolean logBodyResponseToClient: type: boolean logHeaderRequestFromClient: type: boolean logHeaderRequestToTarget: type: boolean logHeaderResponseFromTarget: type: boolean logHeaderResponseToClient: type: boolean logParamRequestFromClient: type: boolean logParamRequestToTarget: type: boolean enableSyslogSetting: type: boolean enableWebhookSetting: type: boolean enableRabbitMqSetting: type: boolean enableKafkaSetting: type: boolean MaintenanceModeSetting: type: object properties: maintenanceModeStatus: type: boolean httpStatusCode: type: integer format: int32 contentType: type: string maintenanceModeResponseMessage: type: string MaintenanceWindow: type: object properties: start: type: string end: type: string zoneId: type: string MockApi: type: object properties: id: type: string name: type: string description: type: string version: type: string projectId: type: string methodDefList: type: array items: $ref: "#/components/schemas/MockApiMethod" specApi: $ref: "#/components/schemas/SpecApi" MockApiMethod: type: object properties: id: type: string name: type: string description: type: string httpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY responseList: type: array items: $ref: "#/components/schemas/MockApiMethodResponse" summary: type: string operationId: type: string tag: type: string parameterList: type: array items: $ref: "#/components/schemas/MockApiMethodParameter" requestBody: $ref: "#/components/schemas/MockApiMethodRequestBody" MockApiMethodParameter: type: object properties: name: type: string location: type: string type: type: string required: type: boolean example: type: string description: type: string MockApiMethodRequestBody: type: object properties: mediaType: type: string required: type: boolean schema: type: string MockApiMethodResponse: type: object properties: uuid: type: string httpStatusCode: type: string enum: - CONTINUE - SWITCHING_PROTOCOLS - PROCESSING - OK - CREATED - ACCEPTED - NON_AUTHORITATIVE_INFORMATION - NO_CONTENT - RESET_CONTENT - PARTIAL_CONTENT - MULTI_STATUS - ALREADY_REPORTED - IM_USED - MULTIPLE_CHOICES - MOVED_PERMANENTLY - FOUND - SEE_OTHER - NOT_MODIFIED - USE_PROXY - UNUSED - TEMPORARY_REDIRECT - PERMANENT_REDIRECT - BAD_REQUEST - UNAUTHORIZED - PAYMENT_REQUIRED - FORBIDDEN - NOT_FOUND - METHOD_NOT_ALLOWED - NOT_ACCEPTABLE - PROXY_AUTHENTICATION_REQUIRED - REQUEST_TIMEOUT - CONFLICT - GONE - LENGTH_REQUIRED - PRECONDITION_FAILED - REQUEST_ENTITY_TOO_LARGE - REQUEST_ENTITY_TOO_LONG - UNSUPPORTED_MEDIA_TYPE - REQUESTED_RANGE_NOT_SATISFIABLE - EXPECTED_FAILED - I_AM_TEAPOT - ENHANCE_YOUR_CALM - UNPROCESSABLE_ENTITY - LOCKED - FAILED_DEPENDENCY - TOO_EARLY - UPGRADE_REQUIRED - PRECONDITION_REQUIRED - TOO_MANY_REQUESTS - REQUEST_HEADER_FIELDS_TOO_LARGE - NO_RESPONSE - RETRY_WITH - BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS - CLIENT_CLOSED_REQUEST - INTERNAL_SERVER_ERROR - NOT_IMPLEMENTED - BAD_GATEWAY - SERVICE_UNAVAILABLE - GATEWAY_TIMEOUT - HTTP_VERSION_NOT_SUPPORTED - VARIANT_ALSO_NEGOTIATES - INSUFFICIENT_STROAGE - LOOP_DETECTED - BANDWIDTH_LIMIT_EXCEEDED - NOT_EXTENDED headerList: type: array items: $ref: "#/components/schemas/ApinizerBasicHeader" description: type: string exampleList: type: array items: $ref: "#/components/schemas/MockApiMethodResponseExample" MockApiMethodResponseExample: type: object properties: uuid: type: string name: type: string responseContentType: type: string responseBody: type: string policyCondition: $ref: "#/components/schemas/PolicyCondition" Monitor: type: object discriminator: propertyName: _class properties: id: type: string name: type: string description: type: string apiProxyId: type: string projectId: type: string recipientList: type: array items: oneOf: - $ref: "#/components/schemas/ConnectorActiveMqSend" - $ref: "#/components/schemas/ConnectorApiCall" - $ref: "#/components/schemas/ConnectorDbInsertUpdateDelete" - $ref: "#/components/schemas/ConnectorDbSelect" - $ref: "#/components/schemas/ConnectorDbStoredProcedure" - $ref: "#/components/schemas/ConnectorElasticSearchIndex" - $ref: "#/components/schemas/ConnectorFtpListFile" - $ref: "#/components/schemas/ConnectorFtpReadFile" - $ref: "#/components/schemas/ConnectorGraylogSend" - $ref: "#/components/schemas/ConnectorKafkaSend" - $ref: "#/components/schemas/ConnectorLinuxScript" - $ref: "#/components/schemas/ConnectorLogBackAppend" - $ref: "#/components/schemas/ConnectorMailSend" - $ref: "#/components/schemas/ConnectorNotification" - $ref: "#/components/schemas/ConnectorOpsgenieAlertCreateV2" - $ref: "#/components/schemas/ConnectorRabbitMqSend" - $ref: "#/components/schemas/ConnectorSNMP" - $ref: "#/components/schemas/ConnectorScript" - $ref: "#/components/schemas/ConnectorSyslogSend" - $ref: "#/components/schemas/ConnectorWebhookSend" - $ref: "#/components/schemas/TaskFlowManager" active: type: boolean _class: type: string required: - _class MonitorRunInfo: type: object properties: lastResult: type: string lastWarmingUp: type: boolean lastRunAt: type: string format: date-time lastResultSince: type: string format: date-time sinceLowerBound: type: boolean nextRunAt: type: string format: date-time recentRuns: type: array items: $ref: "#/components/schemas/RunPoint" executions24h: type: integer format: int32 violations24h: type: integer format: int32 errors24h: type: integer format: int32 health: type: string NameIdTypeDto: type: object properties: id: type: string name: type: string type: type: string PolicyConfigurationTemplate: type: object properties: id: type: string projectId: type: string name: type: string description: type: string corsSettings: $ref: "#/components/schemas/CorsSettings" cacheSettings: $ref: "#/components/schemas/CacheSettings" idempotencySettings: $ref: "#/components/schemas/IdempotencySettings" xmlErrorResponseTemplate: $ref: "#/components/schemas/ErrorResponseTemplateXml" jsonErrorResponseTemplate: $ref: "#/components/schemas/ErrorResponseTemplateJson" maintenanceModeSetting: $ref: "#/components/schemas/MaintenanceModeSetting" forwardedIpHeaderParam: $ref: "#/components/schemas/ForwardedIpHeaderParam" enumSpecAccessType: type: string enum: - PUBLIC - AUTHENTICATED - HIDDEN - BACKEND_PROXY specAccessCheckApiProxyPermission: type: boolean routing: $ref: "#/components/schemas/Routing" enabledApiProxyTrafficLogSettings: type: boolean apiProxyTrafficLogSettingsList: type: array items: $ref: "#/components/schemas/ApiProxyTrafficLogSettings" makeDefault: type: boolean logConnectorCheck: $ref: "#/components/schemas/ApiProxyTrafficLogSettingsLogConnectorCheckDTO" logSettings: $ref: "#/components/schemas/LogSettings" deprecated: true ProxyGroup: type: object properties: id: type: string projectId: type: string name: type: string description: type: string clientRoute: $ref: "#/components/schemas/ClientRoute" applicationKey: type: string secretKey: type: string apiProxyIdList: type: array items: type: string requestPolicyList: type: array items: oneOf: - $ref: "#/components/schemas/PolicyAiA2aAgentCall" - $ref: "#/components/schemas/PolicyAiA2aAgentInvoke" - $ref: "#/components/schemas/PolicyAiContextIntegrity" - $ref: "#/components/schemas/PolicyAiDlpGuard" - $ref: "#/components/schemas/PolicyAiGroundednessGuard" - $ref: "#/components/schemas/PolicyAiLoopGuard" - $ref: "#/components/schemas/PolicyAiMcpToolCall" - $ref: "#/components/schemas/PolicyAiMcpToolInvoke" - $ref: "#/components/schemas/PolicyAiPiiMask" - $ref: "#/components/schemas/PolicyAiPromptDecorator" - $ref: "#/components/schemas/PolicyAiPromptGuard" - $ref: "#/components/schemas/PolicyAiPromptTemplate" - $ref: "#/components/schemas/PolicyAiRagInjection" - $ref: "#/components/schemas/PolicyAiSemanticCache" - $ref: "#/components/schemas/PolicyAiTokenRateLimit" - $ref: "#/components/schemas/PolicyAiTopicGuard" - $ref: "#/components/schemas/PolicyAllowedHours" - $ref: "#/components/schemas/PolicyApiAuthentication" - $ref: "#/components/schemas/PolicyApiBasedQuota" - $ref: "#/components/schemas/PolicyApiBasedThrottling" - $ref: "#/components/schemas/PolicyBase64Authentication" - $ref: "#/components/schemas/PolicyBasicAuthentication" - $ref: "#/components/schemas/PolicyBusinessRule" - $ref: "#/components/schemas/PolicyCache" - $ref: "#/components/schemas/PolicyClientBanner" - $ref: "#/components/schemas/PolicyContentFilter" - $ref: "#/components/schemas/PolicyDecryption" - $ref: "#/components/schemas/PolicyDigestAuthentication" - $ref: "#/components/schemas/PolicyDigitalSign" - $ref: "#/components/schemas/PolicyDigitalSignVerification" - $ref: "#/components/schemas/PolicyEncryption" - $ref: "#/components/schemas/PolicyEndpointRateLimit" - $ref: "#/components/schemas/PolicyGroup" - $ref: "#/components/schemas/PolicyIpBlack" - $ref: "#/components/schemas/PolicyIpWhite" - $ref: "#/components/schemas/PolicyJoseImplementation" - $ref: "#/components/schemas/PolicyJoseValidation" - $ref: "#/components/schemas/PolicyJsonSchemaValidation" - $ref: "#/components/schemas/PolicyJsonTransformation" - $ref: "#/components/schemas/PolicyJwtAuthentication" - $ref: "#/components/schemas/PolicyLog" - $ref: "#/components/schemas/PolicyMTLSAuthentication" - $ref: "#/components/schemas/PolicyMaxMessageSize" - $ref: "#/components/schemas/PolicyMessageBuilder" - $ref: "#/components/schemas/PolicyMinMessageSize" - $ref: "#/components/schemas/PolicyOIDC" - $ref: "#/components/schemas/PolicyOauth2Authentication" - $ref: "#/components/schemas/PolicyRedaction" - $ref: "#/components/schemas/PolicyRest2SoapTransformationRequest" - $ref: "#/components/schemas/PolicyRest2SoapTransformationResponse" - $ref: "#/components/schemas/PolicyRestApi" - $ref: "#/components/schemas/PolicySaml" - $ref: "#/components/schemas/PolicyScript" - $ref: "#/components/schemas/PolicyWSSecuritySign" - $ref: "#/components/schemas/PolicyWSSecuritySignValidation" - $ref: "#/components/schemas/PolicyWsSecurityDecrypt" - $ref: "#/components/schemas/PolicyWsSecurityEncrypt" - $ref: "#/components/schemas/PolicyWsSecurityFromTarget" - $ref: "#/components/schemas/PolicyWsSecurityStsToken" - $ref: "#/components/schemas/PolicyWsSecurityTimestamp" - $ref: "#/components/schemas/PolicyWsSecurityToTarget" - $ref: "#/components/schemas/PolicyWsSecurityUsername" - $ref: "#/components/schemas/PolicyXmlSchemaValidation" - $ref: "#/components/schemas/PolicyXmlTransformation" responsePolicyList: type: array items: oneOf: - $ref: "#/components/schemas/PolicyAiA2aAgentCall" - $ref: "#/components/schemas/PolicyAiA2aAgentInvoke" - $ref: "#/components/schemas/PolicyAiContextIntegrity" - $ref: "#/components/schemas/PolicyAiDlpGuard" - $ref: "#/components/schemas/PolicyAiGroundednessGuard" - $ref: "#/components/schemas/PolicyAiLoopGuard" - $ref: "#/components/schemas/PolicyAiMcpToolCall" - $ref: "#/components/schemas/PolicyAiMcpToolInvoke" - $ref: "#/components/schemas/PolicyAiPiiMask" - $ref: "#/components/schemas/PolicyAiPromptDecorator" - $ref: "#/components/schemas/PolicyAiPromptGuard" - $ref: "#/components/schemas/PolicyAiPromptTemplate" - $ref: "#/components/schemas/PolicyAiRagInjection" - $ref: "#/components/schemas/PolicyAiSemanticCache" - $ref: "#/components/schemas/PolicyAiTokenRateLimit" - $ref: "#/components/schemas/PolicyAiTopicGuard" - $ref: "#/components/schemas/PolicyAllowedHours" - $ref: "#/components/schemas/PolicyApiAuthentication" - $ref: "#/components/schemas/PolicyApiBasedQuota" - $ref: "#/components/schemas/PolicyApiBasedThrottling" - $ref: "#/components/schemas/PolicyBase64Authentication" - $ref: "#/components/schemas/PolicyBasicAuthentication" - $ref: "#/components/schemas/PolicyBusinessRule" - $ref: "#/components/schemas/PolicyCache" - $ref: "#/components/schemas/PolicyClientBanner" - $ref: "#/components/schemas/PolicyContentFilter" - $ref: "#/components/schemas/PolicyDecryption" - $ref: "#/components/schemas/PolicyDigestAuthentication" - $ref: "#/components/schemas/PolicyDigitalSign" - $ref: "#/components/schemas/PolicyDigitalSignVerification" - $ref: "#/components/schemas/PolicyEncryption" - $ref: "#/components/schemas/PolicyEndpointRateLimit" - $ref: "#/components/schemas/PolicyGroup" - $ref: "#/components/schemas/PolicyIpBlack" - $ref: "#/components/schemas/PolicyIpWhite" - $ref: "#/components/schemas/PolicyJoseImplementation" - $ref: "#/components/schemas/PolicyJoseValidation" - $ref: "#/components/schemas/PolicyJsonSchemaValidation" - $ref: "#/components/schemas/PolicyJsonTransformation" - $ref: "#/components/schemas/PolicyJwtAuthentication" - $ref: "#/components/schemas/PolicyLog" - $ref: "#/components/schemas/PolicyMTLSAuthentication" - $ref: "#/components/schemas/PolicyMaxMessageSize" - $ref: "#/components/schemas/PolicyMessageBuilder" - $ref: "#/components/schemas/PolicyMinMessageSize" - $ref: "#/components/schemas/PolicyOIDC" - $ref: "#/components/schemas/PolicyOauth2Authentication" - $ref: "#/components/schemas/PolicyRedaction" - $ref: "#/components/schemas/PolicyRest2SoapTransformationRequest" - $ref: "#/components/schemas/PolicyRest2SoapTransformationResponse" - $ref: "#/components/schemas/PolicyRestApi" - $ref: "#/components/schemas/PolicySaml" - $ref: "#/components/schemas/PolicyScript" - $ref: "#/components/schemas/PolicyWSSecuritySign" - $ref: "#/components/schemas/PolicyWSSecuritySignValidation" - $ref: "#/components/schemas/PolicyWsSecurityDecrypt" - $ref: "#/components/schemas/PolicyWsSecurityEncrypt" - $ref: "#/components/schemas/PolicyWsSecurityFromTarget" - $ref: "#/components/schemas/PolicyWsSecurityStsToken" - $ref: "#/components/schemas/PolicyWsSecurityTimestamp" - $ref: "#/components/schemas/PolicyWsSecurityToTarget" - $ref: "#/components/schemas/PolicyWsSecurityUsername" - $ref: "#/components/schemas/PolicyXmlSchemaValidation" - $ref: "#/components/schemas/PolicyXmlTransformation" errorPolicyList: type: array items: oneOf: - $ref: "#/components/schemas/PolicyAiA2aAgentCall" - $ref: "#/components/schemas/PolicyAiA2aAgentInvoke" - $ref: "#/components/schemas/PolicyAiContextIntegrity" - $ref: "#/components/schemas/PolicyAiDlpGuard" - $ref: "#/components/schemas/PolicyAiGroundednessGuard" - $ref: "#/components/schemas/PolicyAiLoopGuard" - $ref: "#/components/schemas/PolicyAiMcpToolCall" - $ref: "#/components/schemas/PolicyAiMcpToolInvoke" - $ref: "#/components/schemas/PolicyAiPiiMask" - $ref: "#/components/schemas/PolicyAiPromptDecorator" - $ref: "#/components/schemas/PolicyAiPromptGuard" - $ref: "#/components/schemas/PolicyAiPromptTemplate" - $ref: "#/components/schemas/PolicyAiRagInjection" - $ref: "#/components/schemas/PolicyAiSemanticCache" - $ref: "#/components/schemas/PolicyAiTokenRateLimit" - $ref: "#/components/schemas/PolicyAiTopicGuard" - $ref: "#/components/schemas/PolicyAllowedHours" - $ref: "#/components/schemas/PolicyApiAuthentication" - $ref: "#/components/schemas/PolicyApiBasedQuota" - $ref: "#/components/schemas/PolicyApiBasedThrottling" - $ref: "#/components/schemas/PolicyBase64Authentication" - $ref: "#/components/schemas/PolicyBasicAuthentication" - $ref: "#/components/schemas/PolicyBusinessRule" - $ref: "#/components/schemas/PolicyCache" - $ref: "#/components/schemas/PolicyClientBanner" - $ref: "#/components/schemas/PolicyContentFilter" - $ref: "#/components/schemas/PolicyDecryption" - $ref: "#/components/schemas/PolicyDigestAuthentication" - $ref: "#/components/schemas/PolicyDigitalSign" - $ref: "#/components/schemas/PolicyDigitalSignVerification" - $ref: "#/components/schemas/PolicyEncryption" - $ref: "#/components/schemas/PolicyEndpointRateLimit" - $ref: "#/components/schemas/PolicyGroup" - $ref: "#/components/schemas/PolicyIpBlack" - $ref: "#/components/schemas/PolicyIpWhite" - $ref: "#/components/schemas/PolicyJoseImplementation" - $ref: "#/components/schemas/PolicyJoseValidation" - $ref: "#/components/schemas/PolicyJsonSchemaValidation" - $ref: "#/components/schemas/PolicyJsonTransformation" - $ref: "#/components/schemas/PolicyJwtAuthentication" - $ref: "#/components/schemas/PolicyLog" - $ref: "#/components/schemas/PolicyMTLSAuthentication" - $ref: "#/components/schemas/PolicyMaxMessageSize" - $ref: "#/components/schemas/PolicyMessageBuilder" - $ref: "#/components/schemas/PolicyMinMessageSize" - $ref: "#/components/schemas/PolicyOIDC" - $ref: "#/components/schemas/PolicyOauth2Authentication" - $ref: "#/components/schemas/PolicyRedaction" - $ref: "#/components/schemas/PolicyRest2SoapTransformationRequest" - $ref: "#/components/schemas/PolicyRest2SoapTransformationResponse" - $ref: "#/components/schemas/PolicyRestApi" - $ref: "#/components/schemas/PolicySaml" - $ref: "#/components/schemas/PolicyScript" - $ref: "#/components/schemas/PolicyWSSecuritySign" - $ref: "#/components/schemas/PolicyWSSecuritySignValidation" - $ref: "#/components/schemas/PolicyWsSecurityDecrypt" - $ref: "#/components/schemas/PolicyWsSecurityEncrypt" - $ref: "#/components/schemas/PolicyWsSecurityFromTarget" - $ref: "#/components/schemas/PolicyWsSecurityStsToken" - $ref: "#/components/schemas/PolicyWsSecurityTimestamp" - $ref: "#/components/schemas/PolicyWsSecurityToTarget" - $ref: "#/components/schemas/PolicyWsSecurityUsername" - $ref: "#/components/schemas/PolicyXmlSchemaValidation" - $ref: "#/components/schemas/PolicyXmlTransformation" corsSettings: $ref: "#/components/schemas/CorsSettings" cacheSettings: $ref: "#/components/schemas/CacheSettings" idempotencySettings: $ref: "#/components/schemas/IdempotencySettings" xmlErrorResponseTemplate: $ref: "#/components/schemas/ErrorResponseTemplateXml" jsonErrorResponseTemplate: $ref: "#/components/schemas/ErrorResponseTemplateJson" maintenanceModeSetting: $ref: "#/components/schemas/MaintenanceModeSetting" forwardedIpHeaderParam: $ref: "#/components/schemas/ForwardedIpHeaderParam" proxyGroupDeployList: type: array items: $ref: "#/components/schemas/ProxyGroupDeploy" proxyGroupDeployHistoryList: type: array items: $ref: "#/components/schemas/ProxyGroupDeployHistory" hasRequestPoliciesComputed: type: boolean hasResponsePoliciesComputed: type: boolean ignoreRoutingError: type: boolean globalApiProxySettingId: type: string enableRelativePath: type: boolean deprecated: true allowMultipleApiProxies: type: boolean deprecated: true disableDirectAccessToGateways: type: boolean deprecated: true applySettingsToRelatedProxies: type: boolean deprecated: true policyOauth2Authentication: oneOf: - $ref: "#/components/schemas/PolicyAiA2aAgentCall" - $ref: "#/components/schemas/PolicyAiA2aAgentInvoke" - $ref: "#/components/schemas/PolicyAiContextIntegrity" - $ref: "#/components/schemas/PolicyAiDlpGuard" - $ref: "#/components/schemas/PolicyAiGroundednessGuard" - $ref: "#/components/schemas/PolicyAiLoopGuard" - $ref: "#/components/schemas/PolicyAiMcpToolCall" - $ref: "#/components/schemas/PolicyAiMcpToolInvoke" - $ref: "#/components/schemas/PolicyAiPiiMask" - $ref: "#/components/schemas/PolicyAiPromptDecorator" - $ref: "#/components/schemas/PolicyAiPromptGuard" - $ref: "#/components/schemas/PolicyAiPromptTemplate" - $ref: "#/components/schemas/PolicyAiRagInjection" - $ref: "#/components/schemas/PolicyAiSemanticCache" - $ref: "#/components/schemas/PolicyAiTokenRateLimit" - $ref: "#/components/schemas/PolicyAiTopicGuard" - $ref: "#/components/schemas/PolicyAllowedHours" - $ref: "#/components/schemas/PolicyApiAuthentication" - $ref: "#/components/schemas/PolicyApiBasedQuota" - $ref: "#/components/schemas/PolicyApiBasedThrottling" - $ref: "#/components/schemas/PolicyBase64Authentication" - $ref: "#/components/schemas/PolicyBasicAuthentication" - $ref: "#/components/schemas/PolicyBusinessRule" - $ref: "#/components/schemas/PolicyCache" - $ref: "#/components/schemas/PolicyClientBanner" - $ref: "#/components/schemas/PolicyContentFilter" - $ref: "#/components/schemas/PolicyDecryption" - $ref: "#/components/schemas/PolicyDigestAuthentication" - $ref: "#/components/schemas/PolicyDigitalSign" - $ref: "#/components/schemas/PolicyDigitalSignVerification" - $ref: "#/components/schemas/PolicyEncryption" - $ref: "#/components/schemas/PolicyEndpointRateLimit" - $ref: "#/components/schemas/PolicyGroup" - $ref: "#/components/schemas/PolicyIpBlack" - $ref: "#/components/schemas/PolicyIpWhite" - $ref: "#/components/schemas/PolicyJoseImplementation" - $ref: "#/components/schemas/PolicyJoseValidation" - $ref: "#/components/schemas/PolicyJsonSchemaValidation" - $ref: "#/components/schemas/PolicyJsonTransformation" - $ref: "#/components/schemas/PolicyJwtAuthentication" - $ref: "#/components/schemas/PolicyLog" - $ref: "#/components/schemas/PolicyMTLSAuthentication" - $ref: "#/components/schemas/PolicyMaxMessageSize" - $ref: "#/components/schemas/PolicyMessageBuilder" - $ref: "#/components/schemas/PolicyMinMessageSize" - $ref: "#/components/schemas/PolicyOIDC" - $ref: "#/components/schemas/PolicyOauth2Authentication" - $ref: "#/components/schemas/PolicyRedaction" - $ref: "#/components/schemas/PolicyRest2SoapTransformationRequest" - $ref: "#/components/schemas/PolicyRest2SoapTransformationResponse" - $ref: "#/components/schemas/PolicyRestApi" - $ref: "#/components/schemas/PolicySaml" - $ref: "#/components/schemas/PolicyScript" - $ref: "#/components/schemas/PolicyWSSecuritySign" - $ref: "#/components/schemas/PolicyWSSecuritySignValidation" - $ref: "#/components/schemas/PolicyWsSecurityDecrypt" - $ref: "#/components/schemas/PolicyWsSecurityEncrypt" - $ref: "#/components/schemas/PolicyWsSecurityFromTarget" - $ref: "#/components/schemas/PolicyWsSecurityStsToken" - $ref: "#/components/schemas/PolicyWsSecurityTimestamp" - $ref: "#/components/schemas/PolicyWsSecurityToTarget" - $ref: "#/components/schemas/PolicyWsSecurityUsername" - $ref: "#/components/schemas/PolicyXmlSchemaValidation" - $ref: "#/components/schemas/PolicyXmlTransformation" policyJwtAuthentication: oneOf: - $ref: "#/components/schemas/PolicyAiA2aAgentCall" - $ref: "#/components/schemas/PolicyAiA2aAgentInvoke" - $ref: "#/components/schemas/PolicyAiContextIntegrity" - $ref: "#/components/schemas/PolicyAiDlpGuard" - $ref: "#/components/schemas/PolicyAiGroundednessGuard" - $ref: "#/components/schemas/PolicyAiLoopGuard" - $ref: "#/components/schemas/PolicyAiMcpToolCall" - $ref: "#/components/schemas/PolicyAiMcpToolInvoke" - $ref: "#/components/schemas/PolicyAiPiiMask" - $ref: "#/components/schemas/PolicyAiPromptDecorator" - $ref: "#/components/schemas/PolicyAiPromptGuard" - $ref: "#/components/schemas/PolicyAiPromptTemplate" - $ref: "#/components/schemas/PolicyAiRagInjection" - $ref: "#/components/schemas/PolicyAiSemanticCache" - $ref: "#/components/schemas/PolicyAiTokenRateLimit" - $ref: "#/components/schemas/PolicyAiTopicGuard" - $ref: "#/components/schemas/PolicyAllowedHours" - $ref: "#/components/schemas/PolicyApiAuthentication" - $ref: "#/components/schemas/PolicyApiBasedQuota" - $ref: "#/components/schemas/PolicyApiBasedThrottling" - $ref: "#/components/schemas/PolicyBase64Authentication" - $ref: "#/components/schemas/PolicyBasicAuthentication" - $ref: "#/components/schemas/PolicyBusinessRule" - $ref: "#/components/schemas/PolicyCache" - $ref: "#/components/schemas/PolicyClientBanner" - $ref: "#/components/schemas/PolicyContentFilter" - $ref: "#/components/schemas/PolicyDecryption" - $ref: "#/components/schemas/PolicyDigestAuthentication" - $ref: "#/components/schemas/PolicyDigitalSign" - $ref: "#/components/schemas/PolicyDigitalSignVerification" - $ref: "#/components/schemas/PolicyEncryption" - $ref: "#/components/schemas/PolicyEndpointRateLimit" - $ref: "#/components/schemas/PolicyGroup" - $ref: "#/components/schemas/PolicyIpBlack" - $ref: "#/components/schemas/PolicyIpWhite" - $ref: "#/components/schemas/PolicyJoseImplementation" - $ref: "#/components/schemas/PolicyJoseValidation" - $ref: "#/components/schemas/PolicyJsonSchemaValidation" - $ref: "#/components/schemas/PolicyJsonTransformation" - $ref: "#/components/schemas/PolicyJwtAuthentication" - $ref: "#/components/schemas/PolicyLog" - $ref: "#/components/schemas/PolicyMTLSAuthentication" - $ref: "#/components/schemas/PolicyMaxMessageSize" - $ref: "#/components/schemas/PolicyMessageBuilder" - $ref: "#/components/schemas/PolicyMinMessageSize" - $ref: "#/components/schemas/PolicyOIDC" - $ref: "#/components/schemas/PolicyOauth2Authentication" - $ref: "#/components/schemas/PolicyRedaction" - $ref: "#/components/schemas/PolicyRest2SoapTransformationRequest" - $ref: "#/components/schemas/PolicyRest2SoapTransformationResponse" - $ref: "#/components/schemas/PolicyRestApi" - $ref: "#/components/schemas/PolicySaml" - $ref: "#/components/schemas/PolicyScript" - $ref: "#/components/schemas/PolicyWSSecuritySign" - $ref: "#/components/schemas/PolicyWSSecuritySignValidation" - $ref: "#/components/schemas/PolicyWsSecurityDecrypt" - $ref: "#/components/schemas/PolicyWsSecurityEncrypt" - $ref: "#/components/schemas/PolicyWsSecurityFromTarget" - $ref: "#/components/schemas/PolicyWsSecurityStsToken" - $ref: "#/components/schemas/PolicyWsSecurityTimestamp" - $ref: "#/components/schemas/PolicyWsSecurityToTarget" - $ref: "#/components/schemas/PolicyWsSecurityUsername" - $ref: "#/components/schemas/PolicyXmlSchemaValidation" - $ref: "#/components/schemas/PolicyXmlTransformation" policyConfigurationTemplateFromService: $ref: "#/components/schemas/PolicyConfigurationTemplate" writeOnly: true relativePath: type: string ProxyGroupDeploy: type: object properties: environmentSettingsId: type: string environmentName: type: string environmentType: type: string enum: - PRODUCTION - SANDBOX - TEST deploy: type: boolean redeployRequired: type: boolean communicationProtocolType: type: string enum: - HTTP - GRPC - WEBSOCKET ProxyGroupDeployHistory: type: object properties: revision: type: integer format: int64 username: type: string date: type: string format: date-time description: type: string environment: type: string deploy: type: boolean persistent: type: boolean ProxyGroupInformationDTO: type: object properties: id: type: string name: type: string Routing: type: object properties: routingEnabled: type: boolean mirrorEnabled: type: boolean deprecated: true echoEnabled: type: boolean mirrorRespectCircuitBreaker: type: boolean enumRoutingAlgorithm: type: string enum: - ROUND_ROBIN - LRU - WEIGHTED - RANDOM - PICK_FIRST loadBalanceAlgorithm: type: string deprecated: true enum: - SINGLE - DISTRIBUTED routingAddressWrapperList: type: array items: $ref: "#/components/schemas/RoutingAddressWrapper" connectionSettingsEnabled: type: boolean connectionPoolManagementType: type: string enum: - GENERAL - CUSTOM - NONE customConnectionPoolSize: type: integer format: int32 validateAfterInactivity: type: integer format: int32 idleConnectionTimeout: type: integer format: int32 connectTimeout: type: integer format: int32 readTimeout: type: integer format: int32 connectionRequestTimeout: type: integer format: int32 redirectsEnabled: type: boolean maxRedirects: type: integer format: int32 relativeRedirectsAllowed: type: boolean preserveHttpMethodOnRedirect: type: boolean retryCount: type: integer format: int32 failoverRetryCount: type: integer format: int32 retryDelayType: type: string enum: - NO_DELAY - FIXED - EXPONENTIAL retryFixedDelayMs: type: integer format: int32 retryInitialDelayMs: type: integer format: int32 retryMaxDelayMs: type: integer format: int32 retryBackoffMultiplier: type: number format: double stickySessionEnabled: type: boolean stickyType: type: string enum: - COOKIE_ONLY - IP_HASH - HYBRID stickyCookieName: type: string stickyCookieTtl: type: integer format: int32 stickyCookieSecure: type: boolean stickyCookieHttpOnly: type: boolean stickyHashSecret: type: string healthMonitoringCustomizationEnabled: type: boolean healthCheckIntervalSeconds: type: integer format: int32 healthCheckTimeoutSeconds: type: integer format: int32 healthCheckFailThreshold: type: integer format: int32 healthCheckPassThreshold: type: integer format: int32 trafficMirrorEnabled: type: boolean mirrorPercentage: type: integer format: int64 mirrorIgnoreCircuitBreaker: type: boolean canarySettings: $ref: "#/components/schemas/CanaryReleaseSettings" failoverOnlyEnabled: type: boolean ignoreRoutingError: type: boolean errorHandlingType: type: string enum: - DEFAULT - ADVANCED - STATUS_CODE_LIST statusCodeList: type: array items: type: integer format: int32 policyConditionForErrorHandling: $ref: "#/components/schemas/PolicyCondition" hopByHopHeaders: type: array items: type: string sendUserAgentToBackend: type: boolean doNotRouteZeroValueContentLength: type: boolean enableStreaming: type: boolean httpVersionPolicy: type: string enum: - HTTP_1_1 - HTTP_2 - HTTP_2_PRIOR_KNOWLEDGE userAgentValue: type: string circuitBreakerEnabled: type: boolean errorWindow: type: integer format: int32 errorThresholdValue: type: integer format: int32 enumErrorThresholdType: type: string enum: - COUNT - PERCENT sleepWindow: type: integer format: int32 halfOpenEnabled: type: boolean proxyEnabled: type: boolean proxyFromHeaderEnabled: type: boolean proxyHost: type: string proxyPort: type: integer format: int32 proxyAuthorizationNeeded: type: boolean proxyUsername: type: string proxyPassword: type: string enableDownload: type: boolean useBase64TextForCompressedResponse: type: boolean requestCharsetOverride: type: string responseCharsetOverride: type: string requestDecompressOverride: type: string enum: - GZIP - DEFLATE - BR - ZSTD - NOT_APPLY - MIRROR_SERVER_RESPONSE - AUTO_BY_CLIENT_ACCEPT_ENCODING requestCompressOverride: type: string enum: - GZIP - DEFLATE - BR - ZSTD - NOT_APPLY - MIRROR_SERVER_RESPONSE - AUTO_BY_CLIENT_ACCEPT_ENCODING responseDecompressOverride: type: string enum: - GZIP - DEFLATE - BR - ZSTD - NOT_APPLY - MIRROR_SERVER_RESPONSE - AUTO_BY_CLIENT_ACCEPT_ENCODING responseCompressOverride: type: string enum: - GZIP - DEFLATE - BR - ZSTD - NOT_APPLY - MIRROR_SERVER_RESPONSE - AUTO_BY_CLIENT_ACCEPT_ENCODING queryEncodingMode: type: string enum: - STANDARD - RFC3986 - PASSTHROUGH customizeErrorMessageEnabled: type: boolean errorMessageList: type: array items: $ref: "#/components/schemas/ErrorMessage" buildCustomMessage: type: boolean customMessageTemplate: type: string customMessageContentType: type: string customMessageHttpStatusCode: type: integer format: int32 routingMTLSSettings: $ref: "#/components/schemas/RoutingMTLSSettings" routingNTLMSettings: $ref: "#/components/schemas/RoutingNTLMSettings" fixSoapApiPortType: type: boolean routingGrpcSettings: $ref: "#/components/schemas/RoutingGrpcSettings" routingWebsocketSettings: $ref: "#/components/schemas/RoutingWebsocketSettings" disableSslValidation: type: boolean kpsSettings: $ref: "#/components/schemas/KpsSettings" dbToApi: $ref: "#/components/schemas/DbToApi" scriptToApi: $ref: "#/components/schemas/ScriptToApi" mockApi: $ref: "#/components/schemas/MockApi" taskFlowManagerToApi: $ref: "#/components/schemas/TaskFlowManager" connector: $ref: "#/components/schemas/Connector" connectionPoolManagementTypeGeneral: type: boolean connectionPoolManagementTypeCustom: type: boolean resolvedUserAgentValue: type: string connectionPoolManagementTypeNone: type: boolean resolvedStickyCookieName: type: string resolvedProxyHost: type: string resolvedProxyUsername: type: string RoutingAddressWrapper: type: object properties: id: type: string address: type: string description: type: string weight: type: integer format: int64 soapType: type: string enum: - SOAP11 - SOAP12 - HTTP policyCondition: $ref: "#/components/schemas/PolicyCondition" addressType: type: string enum: - PRIMARY - CANARY - MIRROR - FAILOVER_ONLY healthCheckPath: type: string healthMonitoringEnabled: type: boolean backendHttpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY resolvedHealthCheckPath: type: string RoutingGrpcSettings: type: object properties: maxInboundMessageSize: type: integer format: int32 maxInboundMetadataSize: type: integer format: int32 keepAliveTime: type: integer format: int32 keepAliveTimeout: type: integer format: int32 keepAliveWithoutCalls: type: boolean channelIdleTimeout: type: integer format: int32 perRpcBufferLimit: type: integer format: int32 maxRetryAttempts: type: integer format: int32 maxHedgedAttempts: type: integer format: int32 maxTraceEvents: type: integer format: int32 RoutingNTLMSettings: type: object properties: enabled: type: boolean domain: type: string username: type: string password: type: string workstation: type: string RoutingWebsocketSettings: type: object properties: connectionLostTimeout: type: integer format: int32 reuseAddr: type: boolean connectTimeout: type: integer format: int32 maxRetries: type: integer format: int32 retryDelay: type: integer format: int32 autoReconnect: type: boolean autoReconnectMaxRetries: type: integer format: int32 autoReconnectRetryDelay: type: integer format: int32 RunPoint: type: object properties: at: type: string format: date-time result: type: string warmingUp: type: boolean ScriptToApi: type: object properties: id: type: string name: type: string description: type: string projectId: type: string methodDefList: type: array items: $ref: "#/components/schemas/ScriptToApiMethod" specApi: $ref: "#/components/schemas/SpecApi" ScriptToApiMethod: type: object properties: id: type: string name: type: string description: type: string httpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY scriptType: type: string enum: - GROOVY - JAVASCRIPT script: type: string TaskFlowManager: type: object properties: id: type: string name: type: string description: type: string enabled: type: boolean enumExecutableType: type: string enum: - API_CALL - DB_INSERT_UPDATE_DELETE - DB_SELECT - DB_STORED_PROCEDURE - ELASTICSEARCH_INDEX - MAIL_SEND - KAFKA_SEND - GRAYLOG_SEND - LINUX_SCRIPT - NOTIFICATION - OPSGENIE_ALERT_CREATE_V2 - RABBITMQ_SEND - ACTIVEMQ_SEND - LOGBACK_APPEND - SCRIPT - SNMP - SYSLOG_SEND - WEBHOOK_SEND - FTP_READ_FILE - FTP_LIST_FILE - TASK_FLOW_MANAGER outputKey: type: string runTaskForOnce: type: boolean continueOnFail: type: boolean jsonPathXPathSyntax: type: string enableTrace: type: boolean projectId: type: string enumMonitorLogRetention: type: string deprecated: true enum: - ONE_DAY - THREE_DAY - FIVE_DAY - THIRTY_DAY - NO_LIMIT executableList: type: array items: oneOf: - $ref: "#/components/schemas/ConnectorActiveMqSend" - $ref: "#/components/schemas/ConnectorApiCall" - $ref: "#/components/schemas/ConnectorDbInsertUpdateDelete" - $ref: "#/components/schemas/ConnectorDbSelect" - $ref: "#/components/schemas/ConnectorDbStoredProcedure" - $ref: "#/components/schemas/ConnectorElasticSearchIndex" - $ref: "#/components/schemas/ConnectorFtpListFile" - $ref: "#/components/schemas/ConnectorFtpReadFile" - $ref: "#/components/schemas/ConnectorGraylogSend" - $ref: "#/components/schemas/ConnectorKafkaSend" - $ref: "#/components/schemas/ConnectorLinuxScript" - $ref: "#/components/schemas/ConnectorLogBackAppend" - $ref: "#/components/schemas/ConnectorMailSend" - $ref: "#/components/schemas/ConnectorNotification" - $ref: "#/components/schemas/ConnectorOpsgenieAlertCreateV2" - $ref: "#/components/schemas/ConnectorRabbitMqSend" - $ref: "#/components/schemas/ConnectorSNMP" - $ref: "#/components/schemas/ConnectorScript" - $ref: "#/components/schemas/ConnectorSyslogSend" - $ref: "#/components/schemas/ConnectorWebhookSend" - $ref: "#/components/schemas/TaskFlowManager" failureActionList: type: array items: oneOf: - $ref: "#/components/schemas/ConnectorActiveMqSend" - $ref: "#/components/schemas/ConnectorApiCall" - $ref: "#/components/schemas/ConnectorDbInsertUpdateDelete" - $ref: "#/components/schemas/ConnectorDbSelect" - $ref: "#/components/schemas/ConnectorDbStoredProcedure" - $ref: "#/components/schemas/ConnectorElasticSearchIndex" - $ref: "#/components/schemas/ConnectorFtpListFile" - $ref: "#/components/schemas/ConnectorFtpReadFile" - $ref: "#/components/schemas/ConnectorGraylogSend" - $ref: "#/components/schemas/ConnectorKafkaSend" - $ref: "#/components/schemas/ConnectorLinuxScript" - $ref: "#/components/schemas/ConnectorLogBackAppend" - $ref: "#/components/schemas/ConnectorMailSend" - $ref: "#/components/schemas/ConnectorNotification" - $ref: "#/components/schemas/ConnectorOpsgenieAlertCreateV2" - $ref: "#/components/schemas/ConnectorRabbitMqSend" - $ref: "#/components/schemas/ConnectorSNMP" - $ref: "#/components/schemas/ConnectorScript" - $ref: "#/components/schemas/ConnectorSyslogSend" - $ref: "#/components/schemas/ConnectorWebhookSend" - $ref: "#/components/schemas/TaskFlowManager" token: type: string jobRecord: $ref: "#/components/schemas/JobRecord" scheduleState: type: string tmpNameIdType: $ref: "#/components/schemas/NameIdTypeDto" type: type: string enableEndpoint: type: boolean connectionId: type: string TestCase: type: object properties: testCaseRequest: $ref: "#/components/schemas/TestCaseRequest" testCaseResponse: $ref: "#/components/schemas/TestCaseResponse" testCaseAssertion: $ref: "#/components/schemas/TestCaseAssertion" TestCaseAssertion: type: object properties: useTimoutForAssertion: type: boolean assertResultBody: type: boolean expectedResultBody: type: string assertResultStatusCode: type: boolean expectedStatusCode: type: integer format: int32 assertResultXPath: type: boolean expectedXPath: type: string expectedXPathResult: type: string assertResultJsonPath: type: boolean expectedJsonPath: type: string expectedJsonPathResult: type: string TestCaseResponse: type: object properties: statusCode: type: integer format: int32 statusMessage: type: string responseSize: type: string responseTime: type: integer format: int64 timeoutInSeconds: type: integer format: int32 responseString: type: string headerList: type: array items: $ref: "#/components/schemas/ApinizerBasicHeader" enumTestCaseResponseBodyDisplayType: type: string enum: - PRETTY - ROW enumTestCaseResponseBodyPrettyDisplayType: type: string enum: - TEXT - JSON - XML - HTML httpLog: type: string resultTimeoutSucceed: type: boolean resultBody: type: string resultBodySucceed: type: boolean resultStatusCode: type: integer format: int32 resultStatusCodeSucceed: type: boolean resultXPathBody: type: string resultXPathBodySucceed: type: boolean resultJsonPathBody: type: string resultJsonPathBodySucceed: type: boolean result: type: boolean errorMessageBuilder: type: object properties: empty: type: boolean length: type: integer format: int32 writeOnly: true TestHelper: type: object properties: testType: type: string enum: - PROXY - PROXY_GROUP - API - RESOURCE - SWAGGER - OPENAPI - WADL - WSDL serviceUrl: type: string apiMethodList: type: array items: $ref: "#/components/schemas/ApiMethod" selectedApiMethod: $ref: "#/components/schemas/ApiMethod" envId: type: string TestItem: type: object properties: id: type: string referenceId: type: string name: type: string description: type: string createdDate: type: string format: date-time projectId: type: string parentTestCollectionId: type: string parentTestCollectionName: type: string apiProxyID: type: string apiProxyRevision: type: integer format: int32 specApiId: type: string specApi: $ref: "#/components/schemas/SpecApi" envId: type: string apiMethodID: type: string proxyGroupId: type: string backUpUrl: type: string testHistoryMode: type: boolean testCase: $ref: "#/components/schemas/TestCase" testType: type: string enum: - PROXY - PROXY_GROUP - API - RESOURCE - SWAGGER - OPENAPI - WADL - WSDL apiType: type: string enum: - SOAP - REST - GRPC - WEBSOCKET - AI - MCP - A2A testHelper: $ref: "#/components/schemas/TestHelper" requestBodyTruncated: type: boolean requestBodyTruncationReason: type: string TraceSettings: type: object properties: startTime: type: string format: date-time stopTime: type: string format: date-time enableTraceLog: type: boolean environmentName: type: string customQueryId: type: string customQuery: $ref: "#/components/schemas/CustomQuery" UptimeMonitor: allOf: - $ref: "#/components/schemas/Monitor" - type: object properties: delayBetweenRequests: type: boolean retryOnFail: type: boolean retryCount: type: integer format: int32 delay: type: integer format: int32 alertAfterConsecutiveFailures: type: integer format: int32 responseTimeBudgetMs: type: integer format: int32 targetUptimePercent: type: number format: double maintenanceWindow: $ref: "#/components/schemas/MaintenanceWindow" executeForEachFailedCheck: type: boolean retention: type: string deprecated: true enum: - ONE_DAY - THREE_DAY - FIVE_DAY - THIRTY_DAY - NO_LIMIT environmentSettingsIdList: type: array items: type: string testItem: $ref: "#/components/schemas/TestItem" apiProxyName: type: string apiProxyRelativePath: type: string stats: $ref: "#/components/schemas/UptimeMonitorStatsDto" jobRecord: $ref: "#/components/schemas/JobRecord" uptimeMonitorResultList: type: array items: $ref: "#/components/schemas/UptimeMonitorResult" enumMonitorType: type: string enum: - UPTIME UptimeMonitorResult: type: object properties: id: type: string apiProxyId: type: string uptimeMonitorId: type: string createdRequestSent: type: string format: date-time responseTime: type: integer format: int64 resultTimeoutSucceed: type: boolean resultBody: type: string resultBodySucceed: type: boolean resultStatusCode: type: integer format: int32 resultStatusCodeSucceed: type: boolean resultXPathBody: type: string resultXPathBodySucceed: type: boolean resultJsonPathBody: type: string resultJsonPathBodySucceed: type: boolean result: type: boolean resultType: type: string enum: - UP - DOWN - EVALUATION_ERROR - NO_DATA - SUPPRESSED resultErrorMessage: type: string failureResponseBody: type: string requestType: type: string enum: - FIRST - RETRY actionLogDetailList: type: array items: $ref: "#/components/schemas/LogExecutableExecutionDetail" event: type: string UptimeMonitorStatsDto: type: object properties: id: type: string state: type: string enum: - UP - DEGRADED - DOWN - PAUSED - MAINTENANCE - NO_DATA uptimePercent: type: number format: double averageResponseTime: type: integer format: int32 p95ResponseTime: type: integer format: int32 lastCheck: type: integer format: int64 lastResultSuccess: type: boolean totalChecks: type: integer format: int32 last24hBuckets: type: array items: type: integer format: int32 responseSparkline: type: array items: type: integer format: int64 targetUptimePercent: type: number format: double responseTimeBudgetMs: type: integer format: int32 slaConfigured: type: boolean slaBreached: type: boolean runInfo: $ref: "#/components/schemas/MonitorRunInfo" degradedReason: type: string consecutiveFailures: type: integer format: int32 alertAfter: type: integer format: int32 slaState: type: string ApiOpsApiClientCreateDTO: type: object properties: owner: $ref: "#/components/schemas/ApiOpsApiClientOwnerDTO" organizationCode: type: string description: type: string clientId: type: string validFrom: type: string format: date-time expiresAt: type: string format: date-time allowedGrantTypes: type: array items: type: string tokenEndpointAuthMethod: type: string redirectUris: type: array items: type: string tokenIssuanceProfile: type: string tokenNeverExpires: type: boolean tokenExpiresInAmount: type: integer format: int64 tokenExpiresInUnit: type: string enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS refreshTokenAllowed: type: boolean refreshTokenCount: type: integer format: int32 refreshTokenExpiresInAmount: type: integer format: int64 refreshTokenExpiresInUnit: type: string enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS jwtSignatureAlgorithm: type: string secret: $ref: "#/components/schemas/SecretVersionRequest" version: type: integer format: int64 ApiOpsApiClientOwnerDTO: type: object properties: type: type: string enum: - CONSUMER - APPLICATION key: type: string SecretVersionRequest: type: object properties: materialType: type: string enum: - LOCAL_SECRET - SECRET_REFERENCE generate: type: boolean value: type: string reference: type: string label: type: string validFrom: type: string format: date-time expiresAt: type: string format: date-time graceWindowSeconds: type: integer format: int64 storageMode: type: string enum: - ENCRYPTED - HASHED ApiOpsResponseApiClient: type: object properties: apiClientKey: type: string clientId: type: string description: type: string owner: $ref: "#/components/schemas/ApiOpsApiClientOwnerDTO" organizationCode: type: string operationalState: type: string enum: - DRAFT - ACTIVE - SUSPENDED - REVOKED readiness: type: string enum: - READY - PENDING_SECRET - UNRESOLVED_DEPENDENCY validFrom: type: string format: date-time expiresAt: type: string format: date-time allowedGrantTypes: type: array items: type: string tokenEndpointAuthMethod: type: string redirectUris: type: array items: type: string tokenIssuanceProfile: type: string tokenNeverExpires: type: boolean tokenExpiresInAmount: type: integer format: int64 tokenExpiresInUnit: type: string enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS refreshTokenAllowed: type: boolean refreshTokenCount: type: integer format: int32 refreshTokenExpiresInAmount: type: integer format: int64 refreshTokenExpiresInUnit: type: string enum: - MILLI_SECONDS - SECONDS - MINUTES - HOURS - DAYS - WEEKS - MONTHS - YEARS jwtSignatureAlgorithm: type: string revokedAt: type: string format: date-time revokedBy: type: string revokedReason: type: string lifecycleRevision: type: integer format: int64 version: type: integer format: int64 secretVersions: type: array items: $ref: "#/components/schemas/ApiOpsResponseApiClientSecretVersion" ApiOpsResponseApiClientMutation: type: object properties: apiClient: $ref: "#/components/schemas/ApiOpsResponseApiClient" runtimeDeployment: $ref: "#/components/schemas/ApiOpsRuntimeDeploymentDTO" ApiOpsResponseApiClientSecretVersion: type: object properties: versionId: type: string label: type: string status: type: string enum: - PENDING_ACTIVATION - ACTIVE - GRACE - REVOKED materialType: type: string storageMode: type: string enum: - ENCRYPTED - HASHED recoveryState: type: string enum: - AVAILABLE - UNAVAILABLE - SHREDDED validFrom: type: string format: date-time expiresAt: type: string format: date-time graceUntil: type: string format: date-time createdAt: type: string format: date-time revokedAt: type: string format: date-time revokedReason: type: string version: type: integer format: int32 ApiOpsResponseNameBatch: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/NameByIdDTO" resultCount: type: integer format: int32 NameByIdDTO: type: object properties: id: type: string name: type: string ApiOpsResponseTransferImportResult: type: object properties: formatVersion: type: integer format: int32 type: type: string conflictPolicy: type: string imported: type: array items: $ref: "#/components/schemas/ApiOpsResponseTransferObject" advisories: type: array items: $ref: "#/components/schemas/ApiOpsAdvisoryDTO" unresolvedReferences: type: array items: type: string ApiOpsResponseTransferObject: type: object properties: name: type: string kind: type: string type: type: string ApiOpsResponseTransferBlocker: type: object properties: code: type: string entryFileName: type: string detail: type: string ApiOpsResponseTransferDependency: type: object properties: type: type: string name: type: string secret: type: boolean resolvedByName: type: boolean candidateNames: type: array items: type: string ApiOpsResponseTransferImportPreflight: type: object properties: formatVersion: type: integer format: int32 type: type: string detectedType: type: string objects: type: array items: $ref: "#/components/schemas/ApiOpsResponseTransferObject" dependencies: type: array items: $ref: "#/components/schemas/ApiOpsResponseTransferDependency" replaceTargets: type: array items: type: string packageEnvironments: type: array items: type: string installationEnvironments: type: array items: type: string blockers: type: array items: $ref: "#/components/schemas/ApiOpsResponseTransferBlocker" advisories: type: array items: $ref: "#/components/schemas/ApiOpsAdvisoryDTO" preflightDigest: type: string ApiOpsTransferExportRequestDTO: type: object properties: formatVersion: type: integer format: int32 type: type: string names: type: array items: type: string kind: type: string withDependencies: type: boolean expectedExportDigest: type: string ApiOpsResponseTransferExportPreview: type: object properties: formatVersion: type: integer format: int32 type: type: string withDependencies: type: boolean objects: type: array items: $ref: "#/components/schemas/ApiOpsResponseTransferObject" dependencies: type: array items: $ref: "#/components/schemas/ApiOpsResponseTransferDependency" secretHandling: type: string advisories: type: array items: $ref: "#/components/schemas/ApiOpsAdvisoryDTO" exportDigest: type: string ApiOpsSavedQuerySearchRequestDTO: type: object properties: environmentName: type: string description: Name of the environment whose traffic log is searched. Required. example: prod from: type: string description: "Range start: ISO-8601 (for example 2026-10-27T08:00:00Z) or\ \ Elasticsearch date math (for example now-1h). Default now-24h." example: now-24h to: type: string description: "Range end, same formats as from. Default now." example: now fields: type: array description: "Columns to return. Omit for the default set. Allowed: timestamp,\ \ apiType, statusCode, apiProxyName, endpoint, httpMethod, remoteAddress,\ \ consumer, routingAddress, serverName, serverPort, requestPipelineMs,\ \ routingMs, responsePipelineMs, totalMs, requestBytes, responseBytes,\ \ source. The default set leaves out consumer. Bodies, headers and credentials\ \ are never returned by this endpoint." example: - timestamp - statusCode - apiProxyName - totalMs items: type: string ApiOpsPagedSavedQueryResponse: type: object properties: status: type: string enum: - SUCCESS - FAILURE items: type: array items: $ref: "#/components/schemas/ApiOpsResponseSavedQueryRow" page: type: integer format: int32 size: type: integer format: int32 totalElements: type: integer format: int64 totalPages: type: integer format: int32 sort: type: array items: type: string queryName: type: string description: Name of the saved Query that was run. queryScope: type: string description: "PROJECT for a Query of the project in the path, GLOBAL for\ \ a Query shared by the whole installation." example: PROJECT totalRelation: type: string description: Records are counted exactly (eq). gte would mean the count is a lower bound. example: eq resultWindow: type: integer format: int32 description: Deepest page * size + size a search can reach. totalElements above this means the range holds more records than can be paged; narrow from/to to read them. example: 10000 ApiOpsResponseSavedQueryRow: type: object description: One traffic log record. Only the selected columns are present. properties: timestamp: type: string format: date-time description: When the gateway handled the request (UTC). apiType: type: string description: API type of the proxy that served the request. example: REST statusCode: type: integer format: int32 description: HTTP status code returned to the client; 0 when no status was recorded. example: 200 apiProxyName: type: string description: Name of the API proxy that served the request. example: PetstoreProxy endpoint: type: string description: Endpoint (method name or path) that was called. example: "/pet/{petId}" httpMethod: type: string description: HTTP method of the request. example: GET remoteAddress: type: string description: Client address of the request. consumer: type: string description: Identity the client presented (user name or client key). Returned only when asked for. routingAddress: type: string description: Backend address the request was routed to. serverName: type: string description: Gateway host name the request arrived on. serverPort: type: integer format: int32 description: Gateway port the request arrived on. requestPipelineMs: type: integer format: int32 description: Milliseconds spent in the request pipeline. routingMs: type: integer format: int32 description: Milliseconds spent in routing (the backend call). responsePipelineMs: type: integer format: int32 description: Milliseconds spent in the response pipeline. totalMs: type: integer format: int32 description: Total milliseconds the gateway spent on the request. Omitted when the record has no total time. requestBytes: type: integer format: int32 description: Request size in bytes. responseBytes: type: integer format: int32 description: Response size in bytes. source: type: string description: API proxy group the request came through; null for a direct call. ApiOpsLimitPlanCreateDTO: type: object properties: family: type: string enum: - REQUEST_RATE - AI_TOKEN_BUDGET name: type: string nameTr: type: string description: type: string labels: type: array items: type: string initialRuleSpec: $ref: "#/components/schemas/ApiOpsLimitRuleSpecDTO" ApiOpsLimitAssignmentActionDTO: type: object properties: version: type: integer format: int64 reason: type: string ApiOpsLimitAssignmentRequestDTO: type: object properties: selector: $ref: "#/components/schemas/ApiOpsLimitAssignmentSelectorDTO" content: $ref: "#/components/schemas/ApiOpsLimitAssignmentContentDTO" conflictPolicy: type: string previewFingerprint: type: string expectedCount: type: integer format: int32 ApiOpsLimitAssignmentSelectorDTO: type: object properties: subjectType: type: string enum: - PLATFORM - PROJECT - ORGANIZATION - CONSUMER - APPLICATION - API_CLIENT - API_PROXY - AUDIENCE_RULE organizationCodes: type: array items: type: string includeSubOrganizations: type: boolean search: type: string enabledOnly: type: boolean existingAssignment: type: string subjectKeys: type: array items: type: string excludeSubjectKeys: type: array items: type: string ApiOpsResponseLimitAssignmentRunAccepted: type: object properties: status: type: string enum: - SUCCESS - FAILURE runId: type: string kind: type: string runStatus: type: string queuedAt: type: string format: date-time expectedCount: type: integer format: int32 ApiOpsResponseLimitAssignmentRun: type: object properties: status: type: string enum: - SUCCESS - FAILURE runId: type: string runStatus: type: string kind: type: string phase: type: string startedAt: type: string format: date-time runningAt: type: string format: date-time heartbeatAt: type: string format: date-time finishedAt: type: string format: date-time durationMs: type: integer format: int64 trigger: type: string triggeredBy: type: string selector: $ref: "#/components/schemas/ApiOpsLimitAssignmentSelectorDTO" includedSubjectCount: type: integer format: int32 excludedSubjectCount: type: integer format: int32 selectorFingerprint: type: string content: $ref: "#/components/schemas/ApiOpsLimitAssignmentContentDTO" conflictPolicy: type: string expectedCount: type: integer format: int32 actualCount: type: integer format: int32 processedCount: type: integer format: int32 createdCount: type: integer format: int32 replacedCount: type: integer format: int32 skippedCount: type: integer format: int32 failedCount: type: integer format: int32 licenseSkippedCount: type: integer format: int32 issueCount: type: integer format: int32 issuesTruncated: type: boolean cancelRequested: type: boolean rollbackOfRunId: type: string retryOfRunId: type: string idempotencyKey: type: string deploymentState: type: string messageKey: type: string messageParams: type: object additionalProperties: type: string ApiOpsResponseLimitAssignmentPreview: type: object properties: status: type: string enum: - SUCCESS - FAILURE selectorFingerprint: type: string expectedCount: type: integer format: int32 willCreate: type: integer format: int32 willSkip: type: integer format: int32 willReplace: type: integer format: int32 licenseBlocked: type: integer format: int32 estimated: type: boolean sample: type: array items: $ref: "#/components/schemas/SampleRow" SampleRow: type: object properties: subjectName: type: string outcome: type: string existingBindingKey: type: string ApiOpsLifecyclePurgeRequestDTO: type: object properties: mode: type: string subject: $ref: "#/components/schemas/ApiOpsLifecycleSubjectDTO" retentionDays: type: integer format: int32 runId: type: string digest: type: string ApiOpsLifecycleSubjectDTO: type: object properties: subjectType: type: string enum: - ORGANIZATION - CONSUMER - APPLICATION - API_CLIENT consumerKey: type: string apiClientKey: type: string applicationKey: type: string organizationCode: type: string ApiOpsResponseLifecyclePurgeRunAccepted: type: object properties: status: type: string enum: - SUCCESS - FAILURE runId: type: string mode: type: string subjectType: type: string enum: - ORGANIZATION - CONSUMER - APPLICATION - API_CLIENT subjectKey: type: string runStatus: type: string manifestDigest: type: string queuedAt: type: string format: date-time ApiOpsResponseLifecyclePurgeManifestItem: type: object properties: collection: type: string action: type: string criteriaSummary: type: string expectedCount: type: integer format: int64 note: type: string ApiOpsResponseLifecyclePurgeRun: type: object properties: runId: type: string mode: type: string subjectType: type: string enum: - ORGANIZATION - CONSUMER - APPLICATION - API_CLIENT subjectKey: type: string subjectLabel: type: string status: type: string manifest: type: array items: $ref: "#/components/schemas/ApiOpsResponseLifecyclePurgeManifestItem" manifestDigest: type: string retentionDays: type: integer format: int32 retentionDaysForTrafficLogs: type: integer format: int32 previewedBy: type: string previewedAt: type: string format: date-time approvedBy: type: string approvedAt: type: string format: date-time executedBy: type: string createdAt: type: string format: date-time queuedAt: type: string format: date-time runningAt: type: string format: date-time heartbeatAt: type: string format: date-time pointOfNoReturnAt: type: string format: date-time cancelRequested: type: boolean finishedAt: type: string format: date-time durationMs: type: integer format: int64 processedCount: type: integer format: int32 anonymizedCount: type: integer format: int32 deletedCount: type: integer format: int32 revokedCount: type: integer format: int32 endedCount: type: integer format: int32 failedCount: type: integer format: int32 issueCount: type: integer format: int32 issuesTruncated: type: boolean messageKey: type: string messageParams: type: object additionalProperties: {} ApiOpsLegalHoldRequestDTO: type: object properties: subject: $ref: "#/components/schemas/ApiOpsLifecycleSubjectDTO" reason: type: string reference: type: string ApiOpsResponseLegalHold: type: object properties: holdId: type: string subjectType: type: string enum: - ORGANIZATION - CONSUMER - APPLICATION - API_CLIENT subjectKey: type: string status: type: string reason: type: string reference: type: string placedBy: type: string placedAt: type: string format: date-time releasedBy: type: string releasedAt: type: string format: date-time releaseReason: type: string AiKnowledgeDocumentDTO: type: object properties: id: type: string knowledgeBaseId: type: string projectId: type: string fileName: type: string contentType: type: string sizeBytes: type: integer format: int64 sha256: type: string status: type: string chunkCount: type: integer format: int32 uploadedAt: type: string format: date-time errorMessage: type: string ApiOpsResponseKnowledgeDocument: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/AiKnowledgeDocumentDTO" resultCount: type: integer format: int32 KeystoreCreateDTO: type: object properties: name: type: string description: type: string keyStoreEnvironmentList: type: array items: $ref: "#/components/schemas/KeystoreEnvironmentDTO" KeyCreateDTO: type: object properties: name: type: string description: type: string keyType: type: string enum: - SECRET_KEY - PRIVATE_KEY - PUBLIC_KEY algorithm: type: string enum: - AES - DES - DESede - RSA cryptoKeyInfoEnvironmentList: type: array items: $ref: "#/components/schemas/KeyEnvironmentDTO" JwkCreateDTO: type: object properties: name: type: string description: type: string sourceType: type: string enum: - GENERATE - URL - COPY_PASTE - CERTIFICATE - PUBLIC_KEY - PRIVATE_KEY - KEYSTORE - AUTO_DETECT sourceId: type: string sourceUrl: type: string type: type: string enum: - RSA - EC - OCT - OKP kid: type: string url: type: string urlOptionConnectTimeout: type: integer format: int32 urlOptionReadTimeout: type: integer format: int32 urlOptionSizeLimit: type: integer format: int32 jwkStr: type: string certificateName: type: string keyName: type: string keyStoreName: type: string environmentName: type: string aliasName: type: string useType: type: string enum: - SIGNATURE - ENCRYPTION algorithm: type: string rsa: $ref: "#/components/schemas/JwkTypeRsa" ec: $ref: "#/components/schemas/JwkTypeEc" oct: $ref: "#/components/schemas/JwkTypeOct" okp: $ref: "#/components/schemas/JwkTypeOkp" JwkGenerateDTO: type: object properties: name: type: string description: type: string type: type: string enum: - RSA - EC - OCT - OKP rsa: $ref: "#/components/schemas/JwkTypeRsa" ec: $ref: "#/components/schemas/JwkTypeEc" oct: $ref: "#/components/schemas/JwkTypeOct" okp: $ref: "#/components/schemas/JwkTypeOkp" ApiOpsIdentitySyncRunRequestDTO: type: object properties: mode: type: string ApiOpsResponseIdentitySyncRunAccepted: type: object properties: runId: type: string sourceName: type: string sourceType: type: string status: type: string runMode: type: string queuedAt: type: string format: date-time ApiOpsResponseIdentitySyncRun: type: object properties: runId: type: string sourceName: type: string sourceType: type: string status: type: string runMode: type: string approvalPending: type: boolean trigger: type: string triggeredBy: type: string startedAt: type: string format: date-time runningAt: type: string format: date-time heartbeatAt: type: string format: date-time finishedAt: type: string format: date-time durationMs: type: integer format: int64 phase: type: string processedCount: type: integer format: int32 issueCount: type: integer format: int32 issuesTruncated: type: boolean upserted: type: integer format: int32 deactivated: type: integer format: int32 skipped: type: integer format: int32 filtered: type: integer format: int32 errors: type: integer format: int32 message: type: string messages: type: array items: $ref: "#/components/schemas/IdentitySyncMessage" failureReason: type: string failureHttpStatus: type: integer format: int32 failureScope: type: string unchanged: type: integer format: int32 cancelRequested: type: boolean reactivated: type: integer format: int32 usersRead: type: integer format: int32 usersWithUserAttr: type: integer format: int32 groupsRead: type: integer format: int32 groupsWithMembers: type: integer format: int32 groupsFiltered: type: integer format: int32 linkedByS1: type: integer format: int32 linkedByS2: type: integer format: int32 linkedByS3: type: integer format: int32 unlinked: type: integer format: int32 orgsRead: type: integer format: int32 orgsDerived: type: integer format: int32 linked: type: integer format: int32 disabledAtSource: type: integer format: int32 pagesRead: type: integer format: int32 IdentitySyncMessage: type: object properties: key: type: string params: type: object additionalProperties: type: string ApiOpsExportRequestDTO: type: object properties: names: type: array description: "Names of the objects to export. At least one is required;\ \ an unknown name fails the call instead of being skipped, so a CI/CD\ \ run can never ship a silently incomplete package." example: - openai-prod - anthropic-prod items: type: string kind: type: string description: "Optional, and only meaningful for the types that cover several\ \ entities behind one type key (CERTIFICATE, API_CREATOR, IDENTITY_SERVICE):\ \ which entity the names refer to. Needed when two objects of different\ \ kinds share a name — the listing endpoint reports each object's kind." example: KEY_STORE ApiOpsOwnerTransferRequestDTO: type: object properties: organizationCode: type: string ApiOpsConsumerSyncMatchDTO: type: object properties: sourceType: type: string sourceName: type: string username: type: string email: type: string fullName: type: string ldapDn: type: string ApiOpsConsumerPasswordDTO: type: object properties: password: type: string ApiOpsConsumerAccessListDTO: type: object properties: accessList: type: array items: $ref: "#/components/schemas/ApiOpsConsumerAccessDTO" ApiOpsMutationResponseListApiOpsConsumerAccessDTO: type: object properties: status: type: string enum: - SUCCESS - FAILURE resourceVersion: type: integer format: int64 runtimeDeployment: $ref: "#/components/schemas/ApiOpsRuntimeDeploymentDTO" result: type: array items: $ref: "#/components/schemas/ApiOpsConsumerAccessDTO" ApiOpsResponseApplication: type: object properties: applicationKey: type: string name: type: string referenceId: type: string applicationKind: type: string enum: - PORTAL - INTERNAL appStatus: type: string enum: - ACTIVE - SUSPENDED - PENDING_DELETION - ARCHIVED description: type: string organizationCode: type: string created: type: string format: date-time lifecycleRevision: type: integer format: int64 trafficLogDisabled: type: boolean runtimeDeployment: $ref: "#/components/schemas/ApiOpsRuntimeDeploymentDTO" ApiOpsDeployRequestDTO: type: object description: Optional deploy/undeploy request body with history metadata properties: description: type: string description: Deploy history description/notes persistent: type: boolean description: "If true, this deploy history record will not be auto-deleted" AiMcpToolRegistryDTO: type: object properties: name: type: string description: type: string inputSchema: type: string type: type: string connectionId: type: string cachedAt: type: string ttlRemainingSeconds: type: integer format: int32 ApiOpsResponseMcpParseTools: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/AiMcpToolRegistryDTO" resultCount: type: integer format: int32 pinnedCatalogHash: type: string parsedAt: type: string ApiOpsResponseA2aParseSkills: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/A2aDiscoveredSkill" resultCount: type: integer format: int32 pinnedCatalogHash: type: string parsedAt: type: string ApiProxyEndpointDTO: type: object properties: endpoint: type: string description: type: string active: type: boolean httpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY backendResourceUrl: type: string backendHttpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY requestPolicyList: type: array items: $ref: "#/components/schemas/PolicyDTO" responsePolicyList: type: array items: $ref: "#/components/schemas/PolicyDTO" errorPolicyList: type: array items: $ref: "#/components/schemas/PolicyDTO" ApiOpsMcpGatewayCreateDTO: type: object description: "Optional overrides: name, relativePath, description of the MCP\ \ proxy to create." properties: name: type: string relativePath: type: string description: type: string ApiOpsResponseMcpGateway: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/McpGatewayToolDTO" resultCount: type: integer format: int32 apiProxyName: type: string relativePath: type: string sourceApiProxyName: type: string deployed: type: boolean McpGatewayToolDTO: type: object properties: toolName: type: string httpMethod: type: string path: type: string description: type: string schemaSource: type: string enum: - AUTO - OVERRIDE ApiProxyEndpointCreateDTO: type: object properties: name: type: string description: type: string httpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY backendResourceUrl: type: string backendHttpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY ApiOpsResponseApiProxy: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/ApiProxyInfoDTO" resultCount: type: integer format: int32 ApiProxyInfoDTO: type: object properties: name: type: string description: type: string type: type: string enum: - SOAP - REST - GRPC - WEBSOCKET - AI - MCP - A2A clientRoute: $ref: "#/components/schemas/ClientRoute" soapToRest: type: boolean mcpRouting: $ref: "#/components/schemas/McpRouting" a2aRouting: $ref: "#/components/schemas/A2aRouting" aiRouting: $ref: "#/components/schemas/AiRouting" description: "AI routing (AI proxy / AGENT_EXPOSE A2A proxy). proxyPassword\ \ is never returned. PUT .../ai-routing/ replaces the whole object: send\ \ proxyPassword again when the outbound proxy needs it." requestPolicyList: type: array items: $ref: "#/components/schemas/PolicyDTO" responsePolicyList: type: array items: $ref: "#/components/schemas/PolicyDTO" errorPolicyList: type: array items: $ref: "#/components/schemas/PolicyDTO" endpointList: type: array items: $ref: "#/components/schemas/ApiProxyEndpointDTO" ApiOpsMcpApiProxyCreateDTO: type: object description: "MCP proxy create body: relativePath + routingMode (required),\ \ optional protocolVersion." properties: relativePath: type: string description: type: string routingMode: type: string enum: - TOOL_EXPOSE - PASSTHROUGH protocolVersion: type: string backendServers: type: array items: $ref: "#/components/schemas/ConnectionConfigMcp" ApiOpsAiApiProxyCreateDTO: type: object description: "AI proxy create body: relativePath (required), optional llmProviderName/modelId/streaming/clientStreamPresentBehavior\ \ (USE_CLIENT default: the client's \"stream\" field decides; OVERWRITE: the\ \ streaming flag always wins)." properties: relativePath: type: string description: type: string llmProviderName: type: string modelId: type: string streaming: type: boolean clientStreamPresentBehavior: type: string enum: - USE_CLIENT - OVERWRITE ApiOpsA2aApiProxyCreateDTO: type: object description: "A2A proxy create body: relativePath (required), optional routingMode\ \ (default AGENT_EXPOSE)/protocolVersion." properties: relativePath: type: string description: type: string routingMode: type: string enum: - AGENT_EXPOSE - PASSTHROUGH protocolVersion: type: string ApiOpsResponseApiClientCreated: type: object properties: apiClient: $ref: "#/components/schemas/ApiOpsResponseApiClient" runtimeDeployment: $ref: "#/components/schemas/ApiOpsRuntimeDeploymentDTO" versionId: type: string secret: type: string ApiOpsResponseSecretVersionIssued: type: object properties: apiClient: $ref: "#/components/schemas/ApiOpsResponseApiClient" versionId: type: string secret: type: string runtimeDeployment: $ref: "#/components/schemas/ApiOpsRuntimeDeploymentDTO" ApiOpsLifecycleActionDTO: type: object properties: version: type: integer format: int64 reason: type: string AppPart: type: object properties: referenceId: type: string sandboxAppId: type: string name: type: string description: type: string OrganizationPart: type: object properties: referenceId: type: string nameDefault: type: string nameSecondary: type: string code: type: string prodOrganizationId: type: string createNewOrganization: type: boolean ProdProvisionRequestDTO: type: object properties: organization: $ref: "#/components/schemas/OrganizationPart" app: $ref: "#/components/schemas/AppPart" registers: type: array items: $ref: "#/components/schemas/RegisterPart" contactEmail: type: string prodPortalId: type: string RegisterPart: type: object properties: prodProductRefId: type: string prodPlanRefId: type: string planName: type: string productName: type: string TokenResponse: type: object properties: error: type: string error_description: type: string access_token: type: string expires_in: type: integer format: int64 ApiPlanDTO: type: object properties: id: type: string referenceId: type: string prodPlanRefId: type: string productId: type: string name: type: string rateLimit: type: integer format: int32 quota: type: integer format: int32 rateLimitInterval: type: string enum: - SECOND - MINUTE quotaInterval: type: string enum: - DAY - WEEK - MONTH approvalType: type: string enum: - AUTO - MANUAL state: type: string enum: - ACTIVE - RETIRED pricingType: type: string enum: - FREE - FLAT - METERED - TIERED fee: type: number format: double currency: type: string enum: - TURKISH_LIRA - DOLLAR - EURO billingPeriod: type: string enum: - MONTHLY - ANNUALLY feePerCall: type: number format: double tiers: type: array items: $ref: "#/components/schemas/ApiPlanPricingTier" exceedBehavior: type: string enum: - BLOCK - CHARGE overageFee: type: number format: double requestRateLimitRef: $ref: "#/components/schemas/LimitProfileRef" aiTokenBudgetRef: $ref: "#/components/schemas/LimitProfileRef" createdDate: type: string format: date-time lastModifiedDate: type: string format: date-time subscriptionCount: type: integer format: int64 requestRateLimitManaged: type: boolean limitsNotEnforced: type: boolean aiTokenBudgetName: type: string aiTokenBudgetCountsOnly: type: boolean ApiPlanPricingTier: type: object properties: upTo: type: integer format: int64 pricePerCall: type: number format: double LimitProfileRef: type: object properties: mode: type: string enum: - "OFF" - PLAN planKey: type: string ProdProductPromoteRequestDTO: type: object properties: referenceId: type: string nameDefault: type: string nameSecondary: type: string titleDefault: type: string titleSecondary: type: string descriptionDefault: type: string descriptionSecondary: type: string proxyRefs: type: array items: $ref: "#/components/schemas/ProxyRefByName" plans: type: array items: $ref: "#/components/schemas/ApiPlanDTO" prodPortalId: type: string ProxyRefByName: type: object properties: type: type: string name: type: string ApiOpsXmlErrorTemplatePatchDTO: type: object description: Partial update body for the XML error response template. Every field is optional; an omitted (or null) field keeps the stored value. properties: xmlValue: type: string description: XML error response template body. Omitted = unchanged. xmlErrorResponseTemplateActive: type: boolean description: Whether the XML error response template is applied. Omitted = unchanged. permitSpecialChars: type: boolean description: Whether special characters in the rendered template are left unescaped. Omitted = unchanged. contentType: type: string description: Content-Type header written on the error response. Omitted = unchanged. ApiProxyXmlErrorTemplateUpdateDTO: type: object properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string xmlErrorResponseTemplate: $ref: "#/components/schemas/ApiOpsXmlErrorTemplatePatchDTO" ApiOpsWebsocketSettingsPatchDTO: type: object description: Partial update body for API Proxy WebSocket routing settings. Every field is optional; an omitted (or null) field keeps the stored value. properties: connectionLostTimeout: type: integer format: int32 description: Connection-lost timeout in seconds; 0 disables the lost-connection detector. Omitted = unchanged. reuseAddr: type: boolean description: Whether the socket is opened with the SO_REUSEADDR option. Omitted = unchanged. connectTimeout: type: integer format: int32 description: Connect timeout in seconds. Omitted = unchanged. maxRetries: type: integer format: int32 description: Maximum connect retries for the initial handshake. Omitted = unchanged. retryDelay: type: integer format: int32 description: Delay between connect retries in milliseconds. Omitted = unchanged. autoReconnect: type: boolean description: Whether a dropped connection is reconnected automatically. Omitted = unchanged. autoReconnectMaxRetries: type: integer format: int32 description: Maximum automatic reconnect attempts. Omitted = unchanged. autoReconnectRetryDelay: type: integer format: int32 description: Delay between automatic reconnect attempts in milliseconds. Omitted = unchanged. ApiProxyWebsocketSettingsUpdateDTO: type: object properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string websocketSettings: $ref: "#/components/schemas/ApiOpsWebsocketSettingsPatchDTO" TraceSettingsDTO: type: object properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string enableTraceLog: type: boolean environmentName: type: string ApiOpsDeployableRequest: type: object description: Base request with optional deployment support properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string ApiProxyRoutingStatusUpdateDTO: type: object description: API Proxy Routing Status Update DTO - used to enable/disable routing and echo mode properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string routingEnabled: type: boolean description: Enable or disable backend routing echoEnabled: type: boolean description: Enable echo mode (returns the request as the response without routing to backend) ApiProxyProxyServerUpdateDTO: type: object properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string proxyEnabled: type: boolean proxyFromHeaderEnabled: type: boolean proxyHost: type: string proxyPort: type: integer format: int32 proxyAuthorizationNeeded: type: boolean proxyUsername: type: string proxyPassword: type: string ApiProxyNtlmSettingsUpdateDTO: type: object properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string ntlmSettings: $ref: "#/components/schemas/RoutingNTLMSettings" RoutingMTLSSettingsDTO: type: object description: Routing mTLS Settings DTO properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string enabled: type: boolean description: Enable mTLS keyStoreName: type: string description: KeyStore name trustStoreName: type: string description: TrustStore name supportedProtocolList: type: array description: Supported SSL/TLS protocols items: type: string enum: - TLS_1_3 - TLS_1_2 - TLS_1_1 - TLS_1_0 - SSL_3_0 hostnameVerifierType: type: string description: Hostname verifier type enum: - NOOP - DEFAULT - STRICT - BROWSER_COMPAT disableSslValidation: type: boolean description: Disable SSL/TLS certificate validation ApiProxyMetadataUpdateDTO: type: object description: "API Proxy Metadata Update DTO - used to update proxy name, description,\ \ categories, and general settings" properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string name: type: string description: API Proxy display name (must be unique within the project) description: type: string description: API Proxy description categoryList: type: array description: List of category names for classification items: type: string sharingType: type: string description: "Sharing type: PUBLIC, PRIVATE, INTERNAL" enum: - BOTH - NONE - EXTERNAL - INTERNAL direction: type: string description: "API contract direction: REQUEST_RESPONSE, REQUEST_ONLY, RESPONSE_ONLY" enum: - NONE - PUBLISHER - CONSUMER - BOTH disableDirectAccessToGateways: type: boolean description: Disable direct access to gateways (force access through API Portal) globalApiProxySettingName: type: string description: Global API Proxy Setting name (resolved to ID internally) backendProxyApplyPolicies: type: boolean description: Apply policies when this proxy acts as a backend proxy fixSoapApiPortType: type: boolean description: Fix SOAP API port type naming ApiProxyKeysUpdateDTO: type: object description: API Proxy Keys Update DTO - used to update API key and secret key properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string publicKey: type: string description: Public API key secretKey: type: string description: Secret API key ApiOpsJsonErrorTemplatePatchDTO: type: object description: Partial update body for the JSON error response template. Every field is optional; an omitted (or null) field keeps the stored value. properties: jsonValue: type: string description: JSON error response template body. Omitted = unchanged. jsonErrorResponseTemplateActive: type: boolean description: Whether the JSON error response template is applied. Omitted = unchanged. permitSpecialChars: type: boolean description: Whether special characters in the rendered template are left unescaped. Omitted = unchanged. contentType: type: string description: Content-Type header written on the error response. Omitted = unchanged. ApiProxyJsonErrorTemplateUpdateDTO: type: object properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string jsonErrorResponseTemplate: $ref: "#/components/schemas/ApiOpsJsonErrorTemplatePatchDTO" ApiOpsIdempotencySettingsPatchDTO: type: object description: Partial update body for API Proxy Idempotency-Key settings. Every field is optional; an omitted (or null) field keeps the stored value. properties: name: type: string description: Name of the idempotency settings object. Omitted = unchanged. description: type: string description: Description of the idempotency settings object. Omitted = unchanged. idempotencyActive: type: boolean description: Enables Idempotency-Key handling for this API Proxy. Omitted = unchanged. keyType: type: string description: Where the idempotency key is read from (HEADER or VARIABLE). Omitted = unchanged. enum: - HEADER - CUSTOM headerName: type: string description: Request header carrying the idempotency key. Omitted = unchanged. variableList: type: array description: Variables that make up the idempotency key when keyType is VARIABLE. Omitted = unchanged; an empty array clears the list. items: $ref: "#/components/schemas/Variable" keyRequired: type: boolean description: Rejects requests that do not carry an idempotency key. Omitted = unchanged. missingKeyHttpStatus: type: integer format: int32 description: HTTP status returned when the key is required but missing. Omitted = unchanged. applicableHttpMethods: type: array description: HTTP methods the idempotency check applies to. Omitted = unchanged; an empty array clears the list. items: type: string payloadHashEnabled: type: boolean description: Compares the request payload hash of a replayed key. Omitted = unchanged. processingTimeoutInSeconds: type: integer format: int32 description: "How long an in-flight request may hold its key, in seconds.\ \ Omitted = unchanged." retentionInDays: type: integer format: int32 description: "How long completed idempotency records are kept, in days (1-30).\ \ Omitted = unchanged." cacheStorageType: type: string description: Where idempotency records are stored (DISTRIBUTED or LOCAL). Omitted = unchanged. enum: - LOCAL - DISTRIBUTED handlingAction: type: string description: What the gateway does when the cache cannot be reached. Omitted = unchanged. enum: - CONTINUE - STOP cacheConnectionTimeoutInSeconds: type: integer format: int32 description: "Connection timeout towards the distributed cache, in seconds.\ \ Omitted = unchanged." conflictHttpStatus: type: integer format: int32 description: HTTP status returned while the same key is still being processed. Omitted = unchanged. mismatchHttpStatus: type: integer format: int32 description: HTTP status returned when the key was used with a different payload. Omitted = unchanged. replayCompletedResponse: type: boolean description: Replays the stored response of a completed request instead of calling the target. Omitted = unchanged. conflictMessage: type: string description: Response body returned on an in-flight key conflict. Omitted = unchanged. mismatchMessage: type: string description: Response body returned on a payload mismatch. Omitted = unchanged. missingKeyMessage: type: string description: Response body returned when the key is required but missing. Omitted = unchanged. errorContentType: type: string description: Content-Type of the three idempotency error bodies. Omitted = unchanged. missingKeyBodyEnabled: type: boolean description: Returns a body with the missing-key error instead of an empty response. Omitted = unchanged. conflictBodyEnabled: type: boolean description: Returns a body with the conflict error instead of an empty response. Omitted = unchanged. mismatchBodyEnabled: type: boolean description: Returns a body with the payload-mismatch error instead of an empty response. Omitted = unchanged. ApiProxyIdempotencySettingsUpdateDTO: type: object properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string idempotencySettings: $ref: "#/components/schemas/ApiOpsIdempotencySettingsPatchDTO" ApiOpsGrpcSettingsPatchDTO: type: object description: Partial update body for API Proxy gRPC routing settings. Every field is optional; an omitted (or null) field keeps the stored value. properties: maxInboundMessageSize: type: integer format: int32 description: Maximum inbound message size in bytes. Omitted = unchanged. maxInboundMetadataSize: type: integer format: int32 description: Maximum inbound metadata (header) size in bytes. Omitted = unchanged. keepAliveTime: type: integer format: int32 description: Keep-alive ping interval in seconds. Omitted = unchanged. keepAliveTimeout: type: integer format: int32 description: Keep-alive ping timeout in seconds. Omitted = unchanged. keepAliveWithoutCalls: type: boolean description: Whether keep-alive pings are sent while there is no active call. Omitted = unchanged. channelIdleTimeout: type: integer format: int32 description: Channel idle timeout in seconds. Omitted = unchanged. perRpcBufferLimit: type: integer format: int32 description: "Per-RPC buffer limit in bytes, used for retry and hedging\ \ buffering. Omitted = unchanged." maxRetryAttempts: type: integer format: int32 description: Maximum retry attempts; 0 disables retries. Omitted = unchanged. maxHedgedAttempts: type: integer format: int32 description: Maximum hedged attempts. Omitted = unchanged. maxTraceEvents: type: integer format: int32 description: Maximum number of channel trace events kept for diagnostics. Omitted = unchanged. ApiProxyGrpcSettingsUpdateDTO: type: object properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string grpcSettings: $ref: "#/components/schemas/ApiOpsGrpcSettingsPatchDTO" ApiOpsForwardedIpHeaderParamPatchDTO: type: object description: Partial update body for the API Proxy forwarded IP header parameter. Every field is optional; an omitted (or null) field keeps the stored value. properties: forwardedIpHeaderParamActive: type: boolean description: Enables reading the client IP from a forwarded IP header. Omitted = unchanged. value: type: string description: Name of the header carrying the forwarded client IP (for example X-Forwarded-For). Omitted = unchanged. xffOrder: type: string description: Which address of the header chain is taken as the client IP (FIRST or LAST). Omitted = unchanged. enum: - FIRST - SECOND - THIRD - FOURTH - FIFTH - LAST ApiProxyForwardedIpHeaderUpdateDTO: type: object properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string forwardedIpHeaderParam: $ref: "#/components/schemas/ApiOpsForwardedIpHeaderParamPatchDTO" ApiProxyErrorHandlingUpdateDTO: type: object description: API Proxy Error Handling Update DTO - used to configure error handling strategy properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string errorHandlingType: type: string description: "Error handling strategy: DEFAULT, CUSTOM" enum: - DEFAULT - ADVANCED - STATUS_CODE_LIST statusCodeList: type: array description: List of HTTP status codes that trigger custom error handling items: type: integer format: int32 customizeErrorMessageEnabled: type: boolean description: Enable custom error messages for matching status codes errorMessageList: type: array description: List of custom error messages items: $ref: "#/components/schemas/ErrorMessage" ApiProxyCustomMessageUpdateDTO: type: object description: API Proxy Custom Message Update DTO - used to configure custom response messages properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string buildCustomMessage: type: boolean description: Enable custom response message building customMessageTemplate: type: string description: Custom response message template (supports variables) customMessageContentType: type: string description: "Content type of the custom response (e.g. application/json,\ \ application/xml)" customMessageHttpStatusCode: type: integer format: int32 description: HTTP status code for the custom response ApiOpsCorsSettingsPatchDTO: type: object description: Partial update body for API Proxy CORS settings. Every field is optional; an omitted (or null) field keeps the stored value. properties: name: type: string description: Name of the CORS settings object. Omitted = unchanged. description: type: string description: Description of the CORS settings object. Omitted = unchanged. corsActive: type: boolean description: Enables CORS handling for this API Proxy. Omitted = unchanged. origin: type: string description: Expected value of the Origin request header. Omitted = unchanged. requestMethod: type: string description: Expected value of the Access-Control-Request-Method request header. Omitted = unchanged. requestHeaderList: type: array description: Expected values of the Access-Control-Request-Headers request header. Omitted = unchanged; an empty array clears the list. items: type: string allowOriginList: type: array description: Values returned in the Access-Control-Allow-Origin response header. Omitted = unchanged; an empty array clears the list. items: type: string allowCredentials: type: string description: Value returned in the Access-Control-Allow-Credentials response header. Omitted = unchanged. exposeHeaderList: type: array description: Values returned in the Access-Control-Expose-Headers response header. Omitted = unchanged; an empty array clears the list. items: type: string maxAge: type: integer format: int32 description: "Value returned in the Access-Control-Max-Age response header,\ \ in seconds. Omitted = unchanged." allowMethodList: type: array description: Values returned in the Access-Control-Allow-Methods response header. Omitted = unchanged; an empty array clears the list. items: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY allowHeaderList: type: array description: Values returned in the Access-Control-Allow-Headers response header. Omitted = unchanged; an empty array clears the list. items: type: string ApiProxyCorsSettingsUpdateDTO: type: object properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string corsSettings: $ref: "#/components/schemas/ApiOpsCorsSettingsPatchDTO" ApiProxyConnectionSettingsUpdateDTO: type: object description: "API Proxy Connection Settings Update DTO - used to update connection,\ \ retry, and header settings" properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string connectionSettingsEnabled: type: boolean description: Enable custom connection settings (overrides system defaults) connectTimeout: type: integer format: int32 description: Connection timeout in milliseconds readTimeout: type: integer format: int32 description: Read timeout in milliseconds connectionRequestTimeout: type: integer format: int32 description: Connection request timeout in milliseconds redirectsEnabled: type: boolean description: Enable HTTP redirect following maxRedirects: type: integer format: int32 description: Maximum number of redirects to follow relativeRedirectsAllowed: type: boolean description: Allow relative redirects preserveHttpMethodOnRedirect: type: boolean description: "Preserve HTTP method and body on 301/302/303/307/308 redirects\ \ (default: false — 301/302/303 downgrade to GET and drop the body)" enableStreaming: type: boolean description: Enable streaming for large responses retryCount: type: integer format: int32 description: "Number of retries for failed requests (default: 0)" failoverRetryCount: type: integer format: int32 description: "Number of retries during failover (default: 0)" ignoreRoutingError: type: boolean description: Ignore routing errors connectionPoolManagementType: type: string description: "Connection pool management type: GENERAL, PER_ROUTE, CUSTOM" enum: - GENERAL - CUSTOM - NONE customConnectionPoolSize: type: integer format: int32 description: Custom connection pool size (only when connectionPoolManagementType is CUSTOM) validateAfterInactivity: type: integer format: int32 description: "Stale connection check interval in milliseconds (default:\ \ 2000)" idleConnectionTimeout: type: integer format: int32 description: "Idle connection cleanup timeout in seconds (default: 30)" hopByHopHeaders: type: array description: List of hop-by-hop headers to remove before forwarding to backend items: type: string sendUserAgentToBackend: type: boolean description: Send User-Agent header to backend userAgentValue: type: string description: Custom User-Agent header value doNotRouteZeroValueContentLength: type: boolean description: "Do not route requests with Content-Length: 0" enableDownload: type: boolean description: Enable file download support useBase64TextForCompressedResponse: type: boolean description: "When true, gateway returns Base64-encoded text for compressed\ \ response (legacy client compatibility). When false (default), gateway\ \ returns raw byte array." requestCharsetOverride: type: string description: "Override request charset (e.g. ISO-8859-9, windows-1252).\ \ null = read from header" responseCharsetOverride: type: string description: "Override response charset (e.g. ISO-8859-9, windows-1252).\ \ null = read from header" requestDecompressOverride: type: string description: "Override request decompress encoding. null = auto (CE header\ \ + magic byte), NOT_APPLY = skip decompress" enum: - GZIP - DEFLATE - BR - ZSTD - NOT_APPLY - MIRROR_SERVER_RESPONSE - AUTO_BY_CLIENT_ACCEPT_ENCODING requestCompressOverride: type: string description: "Override request compress encoding (to backend). null = auto,\ \ NOT_APPLY = skip compress" enum: - GZIP - DEFLATE - BR - ZSTD - NOT_APPLY - MIRROR_SERVER_RESPONSE - AUTO_BY_CLIENT_ACCEPT_ENCODING responseDecompressOverride: type: string description: "Override response decompress encoding (from backend). null\ \ = auto (CE header + magic byte), NOT_APPLY = skip decompress" enum: - GZIP - DEFLATE - BR - ZSTD - NOT_APPLY - MIRROR_SERVER_RESPONSE - AUTO_BY_CLIENT_ACCEPT_ENCODING responseCompressOverride: type: string description: "Override response compress encoding (to client). null = auto,\ \ NOT_APPLY = skip compress" enum: - GZIP - DEFLATE - BR - ZSTD - NOT_APPLY - MIRROR_SERVER_RESPONSE - AUTO_BY_CLIENT_ACCEPT_ENCODING retryDelayType: type: string description: "Retry delay strategy: NO_DELAY, FIXED, EXPONENTIAL_BACKOFF" enum: - NO_DELAY - FIXED - EXPONENTIAL retryFixedDelayMs: type: integer format: int32 description: Fixed delay between retries in milliseconds retryInitialDelayMs: type: integer format: int32 description: Initial delay for exponential backoff in milliseconds retryMaxDelayMs: type: integer format: int32 description: Maximum delay for exponential backoff in milliseconds retryBackoffMultiplier: type: number format: double description: Backoff multiplier for exponential delay ApiProxyClientRouteUpdateDTO: type: object properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string clientRoute: $ref: "#/components/schemas/ClientRoute" ApiProxyCircuitBreakerUpdateDTO: type: object properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string circuitBreakerEnabled: type: boolean errorWindow: type: integer format: int32 errorThresholdValue: type: integer format: int32 enumErrorThresholdType: type: string enum: - COUNT - PERCENT sleepWindow: type: integer format: int32 halfOpenEnabled: type: boolean ApiOpsCacheSettingsPatchDTO: type: object description: Partial update body for API Proxy cache settings. Every field is optional; an omitted (or null) field keeps the stored value. properties: name: type: string description: Name of the cache settings object. Omitted = unchanged. description: type: string description: Description of the cache settings object. Omitted = unchanged. cacheActive: type: boolean description: Enables response caching for this API Proxy. Omitted = unchanged. cacheOnlyHttpGetRequests: type: boolean description: Caches only HTTP GET requests. Omitted = unchanged. cacheKeyType: type: string description: "How the cache key is built (QUERY_PARAMS, BODY, VARIABLE,\ \ ...). Omitted = unchanged." enum: - QUERY_PARAMS - CUSTOM cacheStorageType: type: string description: Where cached entries are stored (DISTRIBUTED or LOCAL). Omitted = unchanged. enum: - LOCAL - DISTRIBUTED variableList: type: array description: Variables that take part in the cache key. Omitted = unchanged; an empty array clears the list. items: $ref: "#/components/schemas/Variable" capacity: type: integer format: int32 description: Maximum number of cached entries. Omitted = unchanged. ttl: type: integer format: int32 description: "Time to live of a cached entry, in seconds. Omitted = unchanged." invalidationRequiresAuthn: type: boolean description: Requires an authenticated caller for cache invalidation requests. Omitted = unchanged. cacheNullValue: type: boolean description: Caches empty/null backend responses as well. Omitted = unchanged. handlingAction: type: string description: What the gateway does when the cache cannot be reached. Omitted = unchanged. enum: - CONTINUE - STOP cacheConnectionTimeoutInSeconds: type: integer format: int32 description: "Connection timeout towards the distributed cache, in seconds.\ \ Omitted = unchanged." ApiProxyCacheSettingsUpdateDTO: type: object properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string cacheSettings: $ref: "#/components/schemas/ApiOpsCacheSettingsPatchDTO" ApiProxyRoutingAddressListDTO: type: object description: List of API proxy routing addresses properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string routingAddressList: type: array description: List of routing addresses items: $ref: "#/components/schemas/ApiProxyRoutingAddress" routingAlgorithm: type: string description: "Routing (load balance) algorithm. Optional: when provided\ \ it is applied, otherwise the existing algorithm is preserved." enum: - ROUND_ROBIN - LRU - WEIGHTED - RANDOM - PICK_FIRST required: - routingAddressList ApiProxyEndpointWsaUpdateDTO: type: object properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string identifierName: type: string identifierHttpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY wsaSettings: $ref: "#/components/schemas/SoapApiMethodWsaSettings" ApiProxyEndpointStatusUpdateDTO: type: object properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string identifierName: type: string identifierHttpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY active: type: boolean ApiProxyEndpointCacheUpdateDTO: type: object properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string identifierName: type: string identifierHttpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY cacheSettings: $ref: "#/components/schemas/CacheSettings" ApiProxyEndpointUpdateDTO: type: object properties: deploy: type: boolean description: "If true, deploy the API Proxy after saving changes" deployTargetEnvironmentNameList: type: array description: List of environment names to deploy to (required when deploy=true) items: type: string name: type: string newName: type: string description: type: string httpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY newHttpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY backendResourceUrl: type: string backendHttpMethod: type: string enum: - GET - POST - PUT - HEAD - OPTIONS - DELETE - PATCH - TRACE - ALL - QUERY ApiOpsResponseProject: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/ProjectDTO" resultCount: type: integer format: int32 ProjectDTO: type: object properties: id: type: string name: type: string description: type: string relativePath: type: string enableRelativePath: type: boolean tags: type: array items: type: string ApiOpsResponseEnvironment: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/EnvironmentDTO" resultCount: type: integer format: int32 EnvironmentDTO: type: object properties: id: type: string name: type: string description: type: string type: type: string enum: - PRODUCTION - SANDBOX - TEST status: type: string enum: - UNPUBLISHED - PUBLISHED - REPUBLISH_REQUIRED accessUrl: type: string deployed: type: boolean redeployRequired: type: boolean ApiOpsResponseConnectionName: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/ConnectionNameDTO" resultCount: type: integer format: int32 ConnectionNameDTO: type: object properties: id: type: string name: type: string description: type: string ApiOpsResponseConnection: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: oneOf: - $ref: "#/components/schemas/ConnectionConfigApacheActiveMqDTO" - $ref: "#/components/schemas/ConnectionConfigElasticsearchDTO" - $ref: "#/components/schemas/ConnectionConfigEmailDTO" - $ref: "#/components/schemas/ConnectionConfigFtpDTO" - $ref: "#/components/schemas/ConnectionConfigGraylogDTO" - $ref: "#/components/schemas/ConnectionConfigKafkaDTO" - $ref: "#/components/schemas/ConnectionConfigLinuxScriptDTO" - $ref: "#/components/schemas/ConnectionConfigLogbackDTO" - $ref: "#/components/schemas/ConnectionConfigRabbitMqDTO" - $ref: "#/components/schemas/ConnectionConfigSNMPDTO" - $ref: "#/components/schemas/ConnectionConfigSyslogDTO" - $ref: "#/components/schemas/ConnectionConfigWebhookDTO" - $ref: "#/components/schemas/ConnectionPoolDefDbDTO" - $ref: "#/components/schemas/ConnectionPoolDefLdapDTO" resultCount: type: integer format: int32 ApiOpsResponseApiProxyName: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/ApiProxyNameDTO" resultCount: type: integer format: int32 ApiProxyNameDTO: type: object properties: name: type: string description: type: string ApiOpsResponseGeoLocation: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/GeolocationDTO" resultCount: type: integer format: int32 GeolocationDTO: type: object properties: enabled: type: boolean name: type: string fileName: type: string uploadDate: type: string format: date-time mmdbFileUploaded: type: boolean ApiOpsResponseAiTopicCategoryPreset: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/AiTopicCategoryPresetDTO" resultCount: type: integer format: int32 ApiOpsResponseAiPromptTemplate: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/AiPromptTemplateDTO" resultCount: type: integer format: int32 ApiOpsResponseAiPromptGuardPreset: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/AiPromptGuardPresetDTO" resultCount: type: integer format: int32 ApiOpsResponseAiPromptDecoratorPreset: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/AiPromptDecoratorPresetDTO" resultCount: type: integer format: int32 ApiOpsResponseAiPreset: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/AiPrivacyPresetDTO" resultCount: type: integer format: int32 ApiOpsResponseAiDlpPreset: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/AiDlpPresetDTO" resultCount: type: integer format: int32 ApiOpsResponseReportOrganizationACL: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/ApiProxyOrganizationAccessReportDTOWrapper" resultCount: type: integer format: int32 result: $ref: "#/components/schemas/ApiProxyOrganizationAccessReportDTOWrapper" ApiProxyOrganizationAccessReportApiMethodDTO: type: object properties: id: type: string name: type: string description: type: string httpMethod: type: string uvsRequestDataElementUuid: type: string uvsResponseDataElementUuid: type: string dataModelId: type: string dataModelName: type: string dataModelDescription: type: string credentialList: type: array items: $ref: "#/components/schemas/ApiProxyOrganizationAccessReportCredentialDTO" rowSpan: type: integer format: int32 ApiProxyOrganizationAccessReportCredentialDTO: type: object properties: id: type: string email: type: string username: type: string description: type: string limitPlan: type: string organization: $ref: "#/components/schemas/ApiProxyOrganizationAccessReportOrganizationDTO" ApiProxyOrganizationAccessReportDTO: type: object properties: id: type: string name: type: string description: type: string sharingType: type: string enum: - BOTH - NONE - EXTERNAL - INTERNAL routingUrl: type: string projectId: type: string projectName: type: string methodList: type: array items: $ref: "#/components/schemas/ApiProxyOrganizationAccessReportApiMethodDTO" rowSpan: type: integer format: int32 ApiProxyOrganizationAccessReportDTOWrapper: type: object properties: apiAccessList: type: array items: $ref: "#/components/schemas/ApiProxyOrganizationAccessReportDTO" schemaMap: type: object additionalProperties: $ref: "#/components/schemas/SpecSchemaDTO" ApiProxyOrganizationAccessReportOrganizationDTO: type: object properties: id: type: string name: type: string code: type: string parentId: type: string parentName: type: string parentCode: type: string SpecSchemaDTO: type: object properties: modelName: type: string name: type: string title: type: string multipleOf: type: number maximum: type: number exclusiveMaximum: type: boolean minimum: type: number exclusiveMinimum: type: boolean maxLength: type: integer format: int32 minLength: type: integer format: int32 pattern: type: string maxItems: type: integer format: int32 minItems: type: integer format: int32 uniqueItems: type: boolean maxProperties: type: integer format: int32 minProperties: type: integer format: int32 required: type: array items: type: string type: type: string description: type: string format: type: string ref: type: string nullable: type: boolean readOnly: type: boolean writeOnly: type: boolean deprecated: type: boolean JsonDiffEntry: type: object properties: path: type: string type: type: string oldVal: {} newVal: {} complex: type: boolean PromotionExecution: type: object properties: id: type: string executionId: type: string mappingId: type: string mappingName: type: string sourceInstanceId: type: string sourceInstanceName: type: string sourceInstanceColor: type: string targetInstanceId: type: string targetInstanceName: type: string targetInstanceColor: type: string sourceApiName: type: string targetApiName: type: string status: type: string enum: - PENDING - APPROVAL_WAITING - SCHEDULED - RUNNING - SUCCESS - FAILED - CANCELLED approvalRequired: type: boolean approvedBy: type: string approvedAt: type: string format: date-time scheduledAt: type: string format: date-time progress: type: integer format: int32 currentStep: type: integer format: int32 totalSteps: type: integer format: int32 steps: type: array items: $ref: "#/components/schemas/PromotionExecutionStep" executionName: type: string executionDescription: type: string executionNotes: type: string executedBy: type: string startedAt: type: string format: date-time completedAt: type: string format: date-time errorMessage: type: string errorDetail: type: string jsonDiff: type: array items: $ref: "#/components/schemas/JsonDiffEntry" approverUserIds: type: array items: type: string durationMs: type: integer format: int64 PromotionExecutionStep: type: object properties: stepNumber: type: integer format: int32 stepName: type: string status: type: string enum: - PENDING - APPROVAL_WAITING - SCHEDULED - RUNNING - SUCCESS - FAILED - CANCELLED message: type: string errorDetail: type: string startedAt: type: string format: date-time completedAt: type: string format: date-time durationMs: type: integer format: int64 detailData: type: array items: type: object additionalProperties: {} ApiOpsResponseVectorDb: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/ConnectionConfigVectorDbDTO" resultCount: type: integer format: int32 ConnectionConfigVectorDbDTO: type: object properties: id: type: string projectId: type: string projectName: type: string name: type: string description: type: string enabled: type: boolean dbType: type: string enum: - redis - pgvector - qdrant - weaviate - milvus - chroma - pinecone - other family: type: string connectTimeoutMs: type: integer format: int32 requestTimeoutMs: type: integer format: int32 jdbcUrl: type: string jdbcUsername: type: string jdbcPasswordSet: type: boolean jdbcPassword: type: string jdbcSchema: type: string poolMinimumIdle: type: integer format: int32 poolMaximumPoolSize: type: integer format: int32 poolConnectionTimeoutMs: type: integer format: int32 poolIdleTimeoutMs: type: integer format: int32 poolMaxLifetimeMs: type: integer format: int32 endpoint: type: string apiVersion: type: string authScheme: type: string enum: - BEARER - API_KEY_HEADER - BASIC - AWS_SIGV4 - OAUTH2 - NONE - CUSTOM authHeaderName: type: string apiKeySet: type: boolean apiSecretSet: type: boolean apiKey: type: string apiSecret: type: string regionCode: type: string redisUri: type: string redisUsername: type: string redisPasswordSet: type: boolean redisPassword: type: string defaultCollectionName: type: string embeddingDimension: type: integer format: int32 distanceMetric: type: string enum: - COSINE - EUCLIDEAN - DOT_PRODUCT maxBatchSize: type: integer format: int32 builtIn: type: boolean usedByRefs: type: array items: type: string ApiOpsUsageRankingDTO: type: object description: "Ranked consumption of one dimension for a period, with each row's\ \ share of the total." properties: dimension: type: string description: "The ranked dimension, as asked for." example: consumers metric: type: string description: The metric rows are ordered and shared out by. example: cost unit: type: string description: Unit of value and total. example: USD period: $ref: "#/components/schemas/Period" description: The requested period and the period actually measured. filters: $ref: "#/components/schemas/Filters" description: "The filters that were applied, and whether each one could\ \ be applied." dataSource: type: string description: ROLLUP_DAILY or TRAFFIC_LOG — which source produced these numbers. freshness: type: string description: "How fresh the source is: hourly for the rollup, near-real-time\ \ for the traffic log." total: type: number description: "The metric summed over EVERY matching row, including rows\ \ the limit cut off." limit: type: integer format: int32 description: "Rows the answer may carry, as applied." example: 50 truncated: type: boolean description: True when the dimension has more rows than the answer carries. items: type: array description: "The ranked rows, biggest first." items: $ref: "#/components/schemas/Row" partial: type: boolean description: True when at least one source could not be read; the answer is still 200 with what was readable. unavailableEnvironments: type: array description: Names of the environments whose traffic log could not be read. items: type: string notes: type: array description: "Machine-readable notes explaining zero, missing or unattributed\ \ numbers." items: type: string Filters: type: object description: Applied filters. properties: model: type: string description: "Exact LLM model id the report was narrowed to, or null." environmentName: type: string description: "Environment name the traffic-log blocks were narrowed to,\ \ or null for every environment of the project." environmentApplied: type: boolean description: False when environmentName could not be applied to a block because its source carries no environment dimension. Period: type: object description: "Requested and effective period, always UTC." properties: from: type: string example: 2026-08-12T00:00:00Z to: type: string example: 2026-09-11T00:00:00Z effectiveFrom: type: string description: "from, rounded down to the UTC day start when a day-grained\ \ source was read." effectiveTo: type: string description: "to, rounded up to the end of its UTC day when a day-grained\ \ source was read." timeZone: type: string example: UTC Row: type: object description: One child's live quota window. properties: key: type: string description: "The child's portable key: consumerKey or apiClientKey." name: type: string description: Display name. family: type: string description: Which ceiling this row describes. enum: - AI_TOKEN - AI_COST - REQUEST_QUOTA unit: type: string description: Unit of limit/consumed/remaining. enum: - TOKENS - USD - REQUESTS window: type: string description: The quota window. example: ONE_MONTH limit: type: number description: The ceiling. Null when the counter has none. consumed: type: number description: Spent so far in this window. remaining: type: number description: "limit - consumed, never negative. Null when there is no ceiling." percent: type: number format: double description: Percentage of the ceiling used. Null when there is no ceiling. windowStartsAt: type: string description: When the window opened. resetsAt: type: string description: When the window resets. assignmentKey: type: string description: Portable key of the limit assignment behind this counter. planKey: type: string description: Portable key of the limit plan behind this counter. source: type: string description: Where the ceiling comes from. enum: - TYPED - LEGACY_BUDGET - POLICY status: type: string description: "OK, WARNING at 80% or more, EXCEEDED at 100% or more, NO_BUDGET\ \ when there is no ceiling." enum: - OK - WARNING - EXCEEDED - NO_BUDGET ApiOpsErrorResponse: type: object properties: status: type: string enum: - SUCCESS - FAILURE errorKey: type: string message: type: string params: type: object additionalProperties: {} correlationId: type: string Ai: type: object description: AI token and cost consumption. properties: dataSource: type: string description: ROLLUP_DAILY or TRAFFIC_LOG. enum: - ROLLUP_DAILY - TRAFFIC_LOG granularity: type: string description: "DAY for the rollup, EXACT for the traffic log." enum: - DAY - EXACT freshness: type: string description: How far behind the source runs. enum: - hourly - near-real-time totals: $ref: "#/components/schemas/Totals" byModel: type: array description: "Per-model breakdown, biggest first, at most 200 rows." items: $ref: "#/components/schemas/ModelRow" ApiOpsUsageProxyBreakdownDTO: type: object description: Per-API-proxy usage of one consumer or application in a period. properties: scope: $ref: "#/components/schemas/Scope" description: Whose breakdown this is. period: $ref: "#/components/schemas/Period" description: The requested period and the period actually measured. filters: $ref: "#/components/schemas/Filters" description: "The filters that were applied, and whether each one could\ \ be applied." trafficDataSource: type: string description: Source of the request/latency figures. Always TRAFFIC_LOG. aiDataSource: type: string description: "Source of the token/cost figures: ROLLUP_DAILY for a consumer,\ \ TRAFFIC_LOG for an application." limit: type: integer format: int32 description: "Rows the answer may carry, as applied." example: 50 truncated: type: boolean description: True when the subject called more proxies than the answer carries. items: type: array description: "One row per API proxy, most requests first." items: $ref: "#/components/schemas/Row" partial: type: boolean description: True when at least one source could not be read; the answer is still 200 with what was readable. unavailableEnvironments: type: array description: Names of the environments whose traffic log could not be read. items: type: string notes: type: array description: Machine-readable notes explaining zero or missing numbers. items: type: string Scope: type: object description: The subject of the report. properties: type: type: string enum: - ORGANIZATION - CONSUMER - APPLICATION - API_CLIENT - API_PROXY key: type: string description: "The subject's stable key: organization code, consumerKey,\ \ applicationKey, apiClientKey or api proxy name." name: type: string description: Display name of the subject. ApiOpsResponseRLCL: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/RLCLDTO" resultCount: type: integer format: int32 RLCLDTO: type: object properties: name: type: string description: type: string enabled: type: boolean executionOrder: type: string description: Detail field. Populated by the single RLCL GET and by the list endpoint when withDetails=true. enum: - BEFORE_PROXY_GROUP - AFTER_PROXY_GROUP - BEFORE_API_PROXY - AFTER_API_PROXY - BEFORE_API_METHOD - AFTER_API_METHOD - FIRST - LAST cacheConnectionTimeoutInSeconds: type: integer format: int32 description: Detail field. cacheErrorHandlingType: type: string description: Detail field. enum: - FAIL - CONTINUE timeIntervalWindowType: type: string description: Detail field. enum: - FIXED - SLIDING showRateLimitStatisticsInResponseHeader: type: boolean description: Detail field. identitySource: type: string description: "Detail field. Identity source: VARIABLE or AUTH_RESOLVED." enum: - VARIABLE - AUTH_RESOLVED targetVariable: $ref: "#/components/schemas/VariableDTO" description: Detail field. Only meaningful when identitySource=VARIABLE. targetAudienceRuleList: type: array description: Detail field. Target audience rules (OR semantics). items: $ref: "#/components/schemas/TargetAudienceRuleDTO" outOfTargetAction: type: string description: "Detail field. Behaviour for requests outside the target audience:\ \ BLOCK, GENERAL_QUOTA or NONE." enum: - BLOCK - GENERAL_QUOTA - NONE generalQuotaMode: type: string description: Detail field. enum: - TOTAL - PER_IDENTITY generalQuotaPermittedMessageCount: type: integer format: int32 description: Detail field. generalQuotaTimeIntervalPeriodLength: type: integer format: int32 description: Detail field. generalQuotaTimeInterval: type: string description: Detail field. enum: - ONE_SECOND - ONE_MINUTE - ONE_HOUR - ONE_DAY - ONE_MONTH credentialNameList: type: array description: Detail field. Usernames of the credentials attached to this RLCL. items: type: string endpointRateLimitList: type: array description: Detail field. Endpoint rate limits defined in this RLCL. items: $ref: "#/components/schemas/PolicyEndpointRateLimitDTO" condition: $ref: "#/components/schemas/PolicyConditionDTO" description: Detail field. Condition of the RLCL. ApiOpsPagedInactiveEndpointsResponse: type: object properties: status: type: string enum: - SUCCESS - FAILURE items: type: array items: $ref: "#/components/schemas/ApiOpsResponseInactiveEndpoint" page: type: integer format: int32 size: type: integer format: int32 totalElements: type: integer format: int64 totalPages: type: integer format: int32 sort: type: array items: type: string coverage: $ref: "#/components/schemas/Coverage" ApiOpsResponseInactiveEndpoint: type: object description: One endpoint of an API proxy and its request counts for the period. properties: apiProxyName: type: string description: Name of the API proxy that owns the endpoint. example: PetstoreProxy httpMethod: type: string description: HTTP method of the endpoint; null for SOAP operations and method-less proxies. example: GET endpoint: type: string description: Endpoint path as defined on the proxy; "/" for a proxy that has no methods. example: "/pet/{petId}" counts: $ref: "#/components/schemas/Counts" Counts: type: object properties: success: type: integer format: int64 blocked: type: integer format: int64 error: type: integer format: int64 total: type: integer format: int64 Coverage: type: object properties: dataAvailableFrom: type: string format: date-time description: Oldest traffic log record inside this scope; null when the log holds none. warning: type: string description: Set when the requested range is not fully covered by the traffic log. example: apinizerManagerApp.inactiveClients.coverageWarning retentionDays: type: integer format: int32 description: "Traffic log retention in days, when a delete phase is configured." ApiClientRef: type: object properties: key: type: string name: type: string clientId: type: string ApiOpsPagedInactiveClientsResponse: type: object properties: status: type: string enum: - SUCCESS - FAILURE items: type: array items: $ref: "#/components/schemas/ApiOpsResponseInactiveClient" page: type: integer format: int32 size: type: integer format: int32 totalElements: type: integer format: int64 totalPages: type: integer format: int32 sort: type: array items: type: string coverage: $ref: "#/components/schemas/Coverage" ApiOpsResponseInactiveClient: type: object properties: identityType: type: string description: "CONSUMER for a consumer identity, API_CLIENT for a key owned\ \ by one." example: API_CLIENT consumer: $ref: "#/components/schemas/Consumer" organization: $ref: "#/components/schemas/Organization" apiClient: $ref: "#/components/schemas/ApiClientRef" createdAt: type: string format: date-time description: When the identity was created. Derived from the record id for an API client. lastUsedAt: type: string format: date-time description: Most recent request inside the retained traffic log; null when there is none. status: type: string description: "enabled | disabled | expired for a consumer, ACTIVE | SUSPENDED\ \ for an API client." example: ACTIVE usedViaApiClient: type: boolean description: True when the consumer produced no request of its own but one of its API clients did. counts: $ref: "#/components/schemas/Counts" Consumer: type: object properties: username: type: string fullName: type: string Organization: type: object properties: code: type: string name: type: string ApiOpsResponseLlmProvider: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/ConnectionConfigLlmDTO" resultCount: type: integer format: int32 ConnectionConfigLlmDTO: type: object properties: id: type: string projectId: type: string projectName: type: string name: type: string description: type: string enabled: type: boolean providerType: type: string enum: - OPENAI - ANTHROPIC - AZURE_OPENAI - BEDROCK - VERTEX - COHERE - MISTRAL - DEEPSEEK - GROQ - MOONSHOT - ZHIPU - QWEN_DASHSCOPE - XAI - GOOGLE_AI_STUDIO - TOGETHER - FIREWORKS - CEREBRAS - HUGGINGFACE - OPENROUTER - PERPLEXITY - NVIDIA_NIM - VLLM - OLLAMA - CUSTOM_OPENAI_COMPAT - VOYAGE - TYPESAFE - TEI - OTHER endpoint: type: string apiVersion: type: string organizationId: type: string authScheme: type: string enum: - BEARER - API_KEY_HEADER - BASIC - AWS_SIGV4 - OAUTH2 - NONE - CUSTOM authHeaderName: type: string credentialSource: type: string enum: - GATEWAY - CLIENT apiKeyLocation: type: string enum: - HEADER - QUERY apiKeyPrefix: type: string allowClientOverride: type: boolean serviceAccountJsonSet: type: boolean apiKeySet: type: boolean apiSecretSet: type: boolean apiKey: type: string apiSecret: type: string serviceAccountJson: type: string supportedModels: type: array items: $ref: "#/components/schemas/LlmModel" onlyListedModels: type: boolean coldStartRetryEnabled: type: boolean deprecated: true lastHealthCheckAt: type: string format: date-time healthStatus: type: string enum: - UNKNOWN - HEALTHY - DOWN lastLatencyMs: type: integer format: int64 wireProtocol: type: string enum: - OPENAI_COMPATIBLE - ANTHROPIC - GEMINI - BEDROCK - VLLM - TYPESAFE - TEI defaultChatCompletionPath: type: string defaultEmbeddingPath: type: string defaultAudioTranscriptionPath: type: string defaultAudioSpeechPath: type: string defaultImageGenerationPath: type: string defaultResponsesPath: type: string deploymentType: type: string enum: - CLOUD - ON_PREM - OTHER region: type: string builtIn: type: boolean metadata: type: array items: $ref: "#/components/schemas/LlmProviderMetadataEntry" usedByRefs: type: array items: type: string ApiOpsPagedResponseApiOpsResponseLimitPlan: type: object properties: status: type: string enum: - SUCCESS - FAILURE items: type: array items: $ref: "#/components/schemas/ApiOpsResponseLimitPlan" page: type: integer format: int32 size: type: integer format: int32 totalElements: type: integer format: int64 totalPages: type: integer format: int32 sort: type: array items: type: string ApiOpsPagedResponseApiOpsResponseLimitAssignment: type: object properties: status: type: string enum: - SUCCESS - FAILURE items: type: array items: $ref: "#/components/schemas/ApiOpsResponseLimitAssignment" page: type: integer format: int32 size: type: integer format: int32 totalElements: type: integer format: int64 totalPages: type: integer format: int32 sort: type: array items: type: string ApiOpsPagedResponseApiOpsResponseLimitAssignmentRun: type: object properties: status: type: string enum: - SUCCESS - FAILURE items: type: array items: $ref: "#/components/schemas/ApiOpsResponseLimitAssignmentRun" page: type: integer format: int32 size: type: integer format: int32 totalElements: type: integer format: int64 totalPages: type: integer format: int32 sort: type: array items: type: string ApiOpsPagedResponseApiOpsResponseLimitAssignmentIssue: type: object properties: status: type: string enum: - SUCCESS - FAILURE items: type: array items: $ref: "#/components/schemas/ApiOpsResponseLimitAssignmentIssue" page: type: integer format: int32 size: type: integer format: int32 totalElements: type: integer format: int64 totalPages: type: integer format: int32 sort: type: array items: type: string ApiOpsResponseLimitAssignmentIssue: type: object properties: seq: type: integer format: int32 subjectType: type: string enum: - PLATFORM - PROJECT - ORGANIZATION - CONSUMER - APPLICATION - API_CLIENT - API_PROXY - AUDIENCE_RULE subjectName: type: string outcome: type: string bindingKey: type: string messageKey: type: string messageParams: type: object additionalProperties: type: string occurredAt: type: string format: date-time ApiOpsPagedResponseApiOpsResponseLifecyclePurgeRun: type: object properties: status: type: string enum: - SUCCESS - FAILURE items: type: array items: $ref: "#/components/schemas/ApiOpsResponseLifecyclePurgeRun" page: type: integer format: int32 size: type: integer format: int32 totalElements: type: integer format: int64 totalPages: type: integer format: int32 sort: type: array items: type: string ApiOpsPagedResponseApiOpsResponseLifecyclePurgeIssue: type: object properties: status: type: string enum: - SUCCESS - FAILURE items: type: array items: $ref: "#/components/schemas/ApiOpsResponseLifecyclePurgeIssue" page: type: integer format: int32 size: type: integer format: int32 totalElements: type: integer format: int64 totalPages: type: integer format: int32 sort: type: array items: type: string ApiOpsResponseLifecyclePurgeIssue: type: object properties: seq: type: integer format: int32 collection: type: string action: type: string outcome: type: string messageKey: type: string messageParams: type: object additionalProperties: {} occurredAt: type: string format: date-time ApiOpsPagedResponseApiOpsResponseLegalHold: type: object properties: status: type: string enum: - SUCCESS - FAILURE items: type: array items: $ref: "#/components/schemas/ApiOpsResponseLegalHold" page: type: integer format: int32 size: type: integer format: int32 totalElements: type: integer format: int64 totalPages: type: integer format: int32 sort: type: array items: type: string ApiOpsResponseKnowledgeBase: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/AiKnowledgeBaseDTO" resultCount: type: integer format: int32 ApiOpsResponseJwk: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/JwkManagementDTO" resultCount: type: integer format: int32 JwkManagementDTO: type: object properties: id: type: string name: type: string description: type: string projectId: type: string sourceType: type: string enum: - GENERATE - URL - COPY_PASTE - CERTIFICATE - PUBLIC_KEY - PRIVATE_KEY - KEYSTORE - AUTO_DETECT sourceId: type: string sourceUrl: type: string type: type: string enum: - RSA - EC - OCT - OKP kid: type: string ApiOpsResponseIPGroups: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/IPGroupDTO" resultCount: type: integer format: int32 IPGroupDTO: type: object properties: name: type: string description: type: string ipList: type: array items: type: string ApiOpsPagedResponseApiOpsResponseIdentitySyncRun: type: object properties: status: type: string enum: - SUCCESS - FAILURE items: type: array items: $ref: "#/components/schemas/ApiOpsResponseIdentitySyncRun" page: type: integer format: int32 size: type: integer format: int32 totalElements: type: integer format: int64 totalPages: type: integer format: int32 sort: type: array items: type: string ApiOpsPagedResponseApiOpsResponseIdentitySyncRunIssue: type: object properties: status: type: string enum: - SUCCESS - FAILURE items: type: array items: $ref: "#/components/schemas/ApiOpsResponseIdentitySyncRunIssue" page: type: integer format: int32 size: type: integer format: int32 totalElements: type: integer format: int64 totalPages: type: integer format: int32 sort: type: array items: type: string ApiOpsResponseIdentitySyncRunIssue: type: object properties: seq: type: integer format: int32 severity: type: string message: $ref: "#/components/schemas/IdentitySyncMessage" subject: type: string occurredAt: type: string format: date-time ApiOpsExportImportObjectDTO: type: object properties: name: type: string description: Object name — the value the export call expects in its 'names' list. example: openai-prod kind: type: string description: "Which entity this object is, for the multi-kind types (CERTIFICATE,\ \ API_CREATOR, IDENTITY_SERVICE). Absent for single-kind types." example: KEY_STORE ApiOpsResponseExportImportObject: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/ApiOpsExportImportObjectDTO" resultCount: type: integer format: int32 ApiOpsResponseEnvironmentVariable: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/EnvironmentVariableDTO" resultCount: type: integer format: int32 ApiOpsResponseCredentialAccess: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/CredentialAccessDTO" resultCount: type: integer format: int32 ApiOpsResponseCredential: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/CredentialDTO" resultCount: type: integer format: int32 ApiOpsUsageTimeseriesDTO: type: object description: "Period trend of one subject, bucketed by day, week or month." properties: scope: $ref: "#/components/schemas/Scope" description: Which subject this trend describes. period: $ref: "#/components/schemas/Period" description: The requested period and the period actually measured. filters: $ref: "#/components/schemas/Filters" description: "The filters that were applied, and whether each one could\ \ be applied." granularity: type: string description: Bucket width of the series. enum: - DAY - WEEK - MONTH example: DAY aiDataSource: type: string description: "Where the AI figures came from: ROLLUP_DAILY or TRAFFIC_LOG.\ \ Null when AI was not requested." aiFreshness: type: string description: How fresh the AI figures are. example: hourly trafficDataSource: type: string description: Where the traffic figures came from. Null when traffic was not requested. series: type: array description: "One row per bucket, oldest first. Empty buckets are present\ \ with zeros." items: $ref: "#/components/schemas/Point" total: type: integer format: int32 description: Number of buckets in the series. partial: type: boolean description: True when at least one source could not be read; the answer is still 200 with what was readable. unavailableEnvironments: type: array description: Names of the environments whose traffic log could not be read. items: type: string notes: type: array description: Machine-readable notes explaining zero or missing numbers. items: type: string Point: type: object description: One bucket of the trend. properties: bucketStart: type: string description: "Start of the bucket, UTC. A day, the Monday of the week, or\ \ the 1st of the month." example: 2026-09-01T00:00:00Z tokenInput: type: integer format: int64 description: Prompt tokens. Null when AI was not requested. tokenOutput: type: integer format: int64 description: Completion tokens. Null when AI was not requested. tokenCached: type: integer format: int64 description: Cached input tokens. Null when AI was not requested. tokenTotal: type: integer format: int64 description: tokenInput + tokenOutput + tokenCached. Null when AI was not requested. costUsd: type: number description: Cost in US dollars. Null when AI was not requested. aiRequests: type: integer format: int64 description: Calls that carried an LLM model. Null when AI was not requested. aiFailedRequests: type: integer format: int64 description: "Of those, the ones that did not succeed. Null when AI was\ \ not requested." requests: type: integer format: int64 description: Gateway requests. Null when traffic was not requested. failedRequests: type: integer format: int64 description: Gateway requests that did not end in SUCCESS (errored or blocked). Null when traffic was not requested. avgTimeMs: type: number format: double description: Average total gateway time in milliseconds. Null for a bucket with no request. ApiOpsUsageHierarchyDTO: type: object description: "Organization subtree with direct and rolled-up AI consumption,\ \ or one page of its consumers." properties: scope: $ref: "#/components/schemas/Scope" description: The organization the tree is rooted at. period: $ref: "#/components/schemas/Period" description: The requested period and the period actually measured. filters: $ref: "#/components/schemas/Filters" description: "The filters that were applied, and whether each one could\ \ be applied." level: type: string description: Which level was asked for. enum: - ORGANIZATION - CONSUMER dataSource: type: string description: Where the figures came from. example: ROLLUP_DAILY freshness: type: string description: How fresh the figures are. example: hourly nodes: type: array description: "The subtree, when level=ORGANIZATION. Null otherwise." items: $ref: "#/components/schemas/Node" members: $ref: "#/components/schemas/MemberPage" description: "One page of consumers, when level=CONSUMER. Null otherwise." partial: type: boolean description: True when a source could not be read; the answer is still 200 with what was readable. notes: type: array description: Machine-readable notes explaining zero or missing numbers. items: type: string Member: type: object description: One consumer row. properties: consumerKey: type: string description: The consumer's portable key. Null when the consumer no longer resolves; its figures are still counted. name: type: string description: Display name. Null together with consumerKey. organizationCode: type: string description: Code of the organization the consumer belongs to. organizationPath: type: string description: "Human-readable organization path, root first." example: Acme / Partners usage: $ref: "#/components/schemas/Totals" budgetPercent: type: number format: double description: "Percentage of the consumer's monthly token budget. Null when\ \ there is no budget, or the period is not a single calendar month." MemberPage: type: object description: A page of consumers. properties: content: type: array items: $ref: "#/components/schemas/Member" totalElements: type: integer format: int64 description: "Consumers in the whole (filtered) list, not only on this page." page: type: integer format: int32 size: type: integer format: int32 Node: type: object description: One organization node. properties: code: type: string description: The organization's portable code. Null for a synthetic node. example: acme-partners name: type: string description: Display name. classification: type: string description: What this node is. enum: - ORGANIZATION - UNASSIGNED - ANONYMOUS depth: type: integer format: int32 description: Depth below the requested root; the root itself is 0. shared: type: boolean description: True when the organization is owned by another project and only shared with this one. memberCount: type: integer format: int32 description: Consumers that belong to this organization directly. descendantMemberCount: type: integer format: int32 description: Consumers of this organization and of every organization below it. direct: $ref: "#/components/schemas/Totals" description: What the organization's OWN consumers spent. rollup: $ref: "#/components/schemas/Totals" description: direct plus every descendant's rollup — the invariant of this report. budgetPercent: type: number format: double description: "Percentage of the node's monthly token budget the rollup represents.\ \ Null when there is no budget, or the period is not a single calendar\ \ month." children: description: "Sub-organizations, same shape." Totals: type: object description: Summed consumption. properties: tokenInput: type: integer format: int64 tokenOutput: type: integer format: int64 tokenCached: type: integer format: int64 tokenTotal: type: integer format: int64 description: tokenInput + tokenOutput + tokenCached. costUsd: type: number description: Cost in US dollars. requests: type: integer format: int64 failedRequests: type: integer format: int64 ApiOpsUsageBudgetBoardDTO: type: object description: Live quota windows of the direct children of an organization or an application. properties: scope: $ref: "#/components/schemas/Scope" description: Whose children these are. childType: type: string description: "What kind of child each row is: CONSUMER under an organization,\ \ API_CLIENT under an application." enum: - ORGANIZATION - CONSUMER - APPLICATION - API_CLIENT - API_PROXY summary: $ref: "#/components/schemas/Summary" description: "Counts over EVERY child, not only the page below." items: type: array description: "One page of rows, worst first by default." items: $ref: "#/components/schemas/Row" totalElements: type: integer format: int64 description: "Children in the whole list, not only on this page." page: type: integer format: int32 description: Zero-based page index. size: type: integer format: int32 description: Page size actually used. asOf: type: string description: How fresh the rows are (the quota snapshot's last sync). example: 2026-09-11T08:31:02Z notes: type: array description: Machine-readable notes. items: type: string Summary: type: object description: Board-wide counters. properties: total: type: integer format: int32 description: Direct children of the subject. ok: type: integer format: int32 description: Children below the warning threshold. warning: type: integer format: int32 description: Children at 80% or more of a ceiling. exceeded: type: integer format: int32 description: Children at 100% or more of a ceiling. noBudget: type: integer format: int32 description: Children with no live ceiling at all. ApiOpsUsageReportDTO: type: object description: "Token / cost / request consumption of one subject for a period,\ \ plus its live quota budgets." properties: scope: $ref: "#/components/schemas/Scope" description: Which subject this report describes. period: $ref: "#/components/schemas/Period" description: The requested period and the period actually measured. filters: $ref: "#/components/schemas/Filters" description: "The filters that were applied, and whether each one could\ \ be applied." ai: $ref: "#/components/schemas/Ai" description: AI token and cost consumption. Null when there is no AI picture for this subject. aiLicensed: type: boolean description: Whether the AI Gateway module is licensed on this installation. Informational only — the blocks below are answered either way. traffic: $ref: "#/components/schemas/Traffic" description: "Gateway traffic of the same subject and period, from the traffic\ \ log." children: $ref: "#/components/schemas/Children" description: "The breakdown one level below the scope (organization -> consumers,\ \ application -> api clients). Null for the other scopes." budgets: type: array description: "Live quota windows of the subject: limit, consumed, remaining,\ \ percent and reset time. Independent of from/to." items: $ref: "#/components/schemas/Budget" budgetsAsOf: type: string description: "How fresh the budget rows are (the quota snapshot's last sync,\ \ about one minute behind the gateway)." example: 2026-09-11T08:31:02Z partial: type: boolean description: True when at least one source could not be read; the answer is still 200 with what was readable. unavailableEnvironments: type: array description: Names of the environments whose traffic log could not be read. items: type: string notes: type: array description: Machine-readable notes explaining zero or missing numbers. items: type: string Budget: type: object description: One live quota window of the subject. properties: family: type: string enum: - AI_TOKEN - AI_COST - REQUEST_QUOTA unit: type: string enum: - TOKENS - USD - REQUESTS window: type: string description: Quota window length. enum: - ONE_HOUR - ONE_DAY - ONE_MONTH dimension: $ref: "#/components/schemas/Dimension" description: "The sub-limit axis this row belongs to, or null for the scope\ \ total." limit: type: number description: "The ceiling, in unit. Null when the counter has no ceiling\ \ or the row is a POLICY summary." consumed: type: number description: "Consumed so far in this window, in unit. Null on a POLICY\ \ summary row." remaining: type: number description: "max(limit - consumed, 0). Null when limit or consumed is null." usagePercent: type: number format: double description: "consumed * 100 / limit, one decimal." windowStartsAt: type: string resetsAt: type: string description: When the window closes and the counter resets. assignmentKey: type: string description: "Public handle of the limit assignment this counter accrues\ \ under, when there is one." planKey: type: string description: "Key of the limit plan the assignment references, when there\ \ is one." source: type: string enum: - TYPED - LEGACY_BUDGET - POLICY ChildRow: type: object description: One child row of the breakdown. properties: key: type: string description: consumerKey or apiClientKey. name: type: string tokenTotal: type: integer format: int64 costUsd: type: number requests: type: integer format: int64 usagePercent: type: number format: double description: "This row's share of the scope's token total, one decimal;\ \ null when the scope total is zero. The denominator is the whole scope,\ \ so the answered rows add up to less than 100% whenever rows were dropped\ \ or traffic could not be attributed to a child." Children: type: object description: Breakdown one level below the scope. properties: type: type: string description: What the rows are. enum: - CONSUMER - API_CLIENT items: type: array description: "At most 200 rows, biggest token total first." items: $ref: "#/components/schemas/ChildRow" total: type: integer format: int32 description: How many distinct rows the scope has. Exact when 'truncated' is false; a lower bound when it is true. truncated: type: boolean description: "True when rows were dropped: either by the 200-row answer\ \ cap, or by the source's own bucket window before the report saw them.\ \ The report is then also marked partial with the 'child-list-truncated'\ \ note." Dimension: type: object description: Sub-limit axis of a budget row. properties: type: type: string enum: - MODEL - PROVIDER ref: type: string description: The model id (MODEL) or the provider reference (PROVIDER). ModelRow: type: object description: Per-model consumption row. properties: provider: type: string description: "LLM provider code, when the source carries it." model: type: string description: "LLM model id, e.g. gpt-5." tokenInput: type: integer format: int64 tokenOutput: type: integer format: int64 tokenCached: type: integer format: int64 tokenTotal: type: integer format: int64 costUsd: type: number requests: type: integer format: int64 Traffic: type: object description: Gateway traffic of the subject. properties: dataSource: type: string description: Always TRAFFIC_LOG. totalRequests: type: integer format: int64 successfulRequests: type: integer format: int64 blockedRequests: type: integer format: int64 erroredRequests: type: integer format: int64 successRatePercent: type: number format: double description: "successfulRequests * 100 / totalRequests, one decimal." avgTimeMs: type: number format: double description: Average total gateway time in milliseconds. ApiOpsPagedResponseApiOpsResponseConsumer: type: object properties: status: type: string enum: - SUCCESS - FAILURE items: type: array items: $ref: "#/components/schemas/ApiOpsResponseConsumer" page: type: integer format: int32 size: type: integer format: int32 totalElements: type: integer format: int64 totalPages: type: integer format: int32 sort: type: array items: type: string ApiOpsResponseConsumerSecrets: type: object properties: secretKey: $ref: "#/components/schemas/Reference" certificate: $ref: "#/components/schemas/Reference" publicKey: $ref: "#/components/schemas/Reference" privateKey: $ref: "#/components/schemas/Reference" keystore: $ref: "#/components/schemas/Reference" truststore: $ref: "#/components/schemas/Reference" jwkValidation: $ref: "#/components/schemas/Reference" jwkEncryption: $ref: "#/components/schemas/Reference" Reference: type: object properties: name: type: string scope: type: string enum: - PROJECT - ADMIN ApiOpsResponseApiClientSummary: type: object properties: apiClientKey: type: string clientId: type: string operationalState: type: string enum: - DRAFT - ACTIVE - SUSPENDED - REVOKED readiness: type: string enum: - READY - PENDING_SECRET - UNRESOLVED_DEPENDENCY validFrom: type: string format: date-time expiresAt: type: string format: date-time version: type: integer format: int64 ApiOpsPagedResponseApiOpsResponseConsumerRole: type: object properties: status: type: string enum: - SUCCESS - FAILURE items: type: array items: $ref: "#/components/schemas/ApiOpsResponseConsumerRole" page: type: integer format: int32 size: type: integer format: int32 totalElements: type: integer format: int64 totalPages: type: integer format: int32 sort: type: array items: type: string ApiOpsPagedResponseApiOpsResponseConsumerOrganization: type: object properties: status: type: string enum: - SUCCESS - FAILURE items: type: array items: $ref: "#/components/schemas/ApiOpsResponseConsumerOrganization" page: type: integer format: int32 size: type: integer format: int32 totalElements: type: integer format: int64 totalPages: type: integer format: int32 sort: type: array items: type: string ApiOpsPagedResponseApiOpsResponseApplication: type: object properties: status: type: string enum: - SUCCESS - FAILURE items: type: array items: $ref: "#/components/schemas/ApiOpsResponseApplication" page: type: integer format: int32 size: type: integer format: int32 totalElements: type: integer format: int64 totalPages: type: integer format: int32 sort: type: array items: type: string ApiOpsResponseApiProxyForPromotion: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/ApiProxyForPromotionDTO" resultCount: type: integer format: int32 ApiProxyForPromotionDTO: type: object properties: id: type: string name: type: string description: type: string type: type: string enum: - SOAP - REST - GRPC - WEBSOCKET - AI - MCP - A2A protocolTransformation: type: boolean enumProxyCreationType: type: string enum: - WSDL - WADL - SWAGGER - OPEN_API - FAKE_API - MIRROR_API - KPS_API - NOTER_API - API_CREATOR_DB - EMPTY_API - API_CREATOR_SCRIPT - API_CREATOR_MOCK - REVERSE_PROXY - TASK_FLOW_MANAGER - HEART_BEAT_MONITOR - CONNECTOR - GRPC_PROTO - GRPC - WEBSOCKET relativePath: type: string clientRoute: $ref: "#/components/schemas/ClientRoute" routing: $ref: "#/components/schemas/Routing" categoryList: type: array items: type: string apiProxyDeployList: type: array items: $ref: "#/components/schemas/ApiProxyDeploy" ApiOpsResponseProxyGroupDeployHistory: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/ProxyGroupDeployHistoryDTO" resultCount: type: integer format: int32 ProxyGroupDeployHistoryDTO: type: object description: Deploy history record for an API Proxy Group properties: revision: type: integer format: int64 description: Revision number (sequential per API Proxy Group) username: type: string description: Username who performed the deployment date: type: string format: date-time description: Deployment timestamp description: type: string description: Deployment description/notes environment: type: string description: Target environment name deploy: type: boolean description: "true = deploy, false = undeploy" persistent: type: boolean description: Whether this history record is persistent (will not be auto-deleted) ApiOpsResponseApiProxyGroup: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/ApiProxyGroupInfoDTO" resultCount: type: integer format: int32 ApiOpsResponseEndpoint: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/ApiProxyEndpointDTO" resultCount: type: integer format: int32 ApiOpsResponseInvokeInfo: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/ApiProxyInvokeInfoDTO" resultCount: type: integer format: int32 ApiProxyInvokeInfoDTO: type: object properties: environmentName: type: string gatewayBaseUrl: type: string rootContext: type: string fullPaths: type: array items: type: string methods: type: array items: type: string schemes: type: array items: type: string deployed: type: boolean ApiOpsResponseRouteHealth: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/ApiOpsRouteHealthDTO" resultCount: type: integer format: int32 ApiOpsRouteHealthDTO: type: object properties: routeActive: type: boolean servedPath: type: string methods: type: array items: type: string apinizerRootContext: type: string podsResponded: type: integer format: int32 podsActive: type: integer format: int32 deployedInManager: type: boolean inconsistent: type: boolean pods: type: array items: $ref: "#/components/schemas/RouteHealthResponseDTO" RouteHealthResponseDTO: type: object properties: routeActive: type: boolean servedPath: type: string methods: type: array items: type: string workerPodIp: type: string apinizerRootContext: type: string error: type: string ApiOpsResponseDeployStatus: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/ApiProxyDeployStatusDTO" resultCount: type: integer format: int32 ApiProxyDeployStatusDTO: type: object description: Deploy status of an API Proxy in a specific environment properties: deployed: type: boolean description: true if the proxy is currently deployed in the given environment lastDeployTime: type: string format: date-time description: Timestamp of the most recent successful deploy (null if never deployed) revision: type: integer format: int64 description: Revision number of the most recent successful deploy (null if never deployed) redeployRequired: type: boolean description: true if the proxy was modified after the last deploy and needs to be redeployed ApiOpsResponseEnvironmentVariables: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: type: string resultCount: type: integer format: int32 ApiOpsResponseDeployHistory: type: object properties: status: type: string enum: - SUCCESS - FAILURE resultMessage: type: string resultList: type: array items: $ref: "#/components/schemas/DeployHistoryDTO" resultCount: type: integer format: int32 DeployHistoryDTO: type: object description: Deploy history record for an API Proxy properties: revision: type: integer format: int64 description: Revision number (sequential per API Proxy) username: type: string description: Username who performed the deployment deploymentTime: type: string format: date-time description: Deployment timestamp description: type: string description: Deployment description/notes environment: type: string description: Target environment name deploy: type: boolean description: "true = deploy, false = undeploy" persistent: type: boolean description: Whether this history record is persistent (will not be auto-deleted) backendApiVersion: type: string description: Backend API version at the time of deployment ApiOpsPagedResponseApiOpsResponseApiClient: type: object properties: status: type: string enum: - SUCCESS - FAILURE items: type: array items: $ref: "#/components/schemas/ApiOpsResponseApiClient" page: type: integer format: int32 size: type: integer format: int32 totalElements: type: integer format: int64 totalPages: type: integer format: int32 sort: type: array items: type: string ApiOpsResponseCurrentUser: type: object properties: login: type: string fullName: type: string email: type: string