{"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":"GlobalPolicy","description":"Set of endpoints for Creating, Retrieving, Updating and Deleting a project's global policies."},{"name":"Application","description":"Applications: list, read, suspend/resume, and their API clients, entitlements and limit assignments."},{"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":"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":"ProjectReports","description":"Project-scoped analytics reports: identities and endpoints that produced no traffic in a period."},{"name":"CredentialOrganization","description":"Set of endpoints for managing Credential Organizations."},{"name":"Environment","description":"Set of endpoints for Listing Environments."},{"name":"Auth","description":"Set of endpoints for Creating and Retrieving Authorization Tokens."},{"name":"Consumer","description":"Consumers: list, read, their API clients, entitlements and limit assignments, and the organization transfer action."},{"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":"Credential","description":"Set of endpoints for Listing Credentials."},{"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":"ApiClient","description":"API clients: list, read, create, edit, activate/suspend/resume/revoke, secret generations, authorization restrictions."},{"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":"LimitPlan","description":"Limit plans: descriptive metadata, draft revisions, publish, retire."},{"name":"ApiProxyGroup","description":"Set of endpoints for Creating, Retrieving, Updating and Deleting Api Proxy Group."},{"name":"ModelCatalog","description":"Set of endpoints for Creating, Retrieving, Updating and Deleting AI Gateway model catalog entries."},{"name":"Policy","description":"Set of endpoints for Creating, Retrieving, Updating and Deleting ApiProxy."},{"name":"RLCL","description":"Set of endpoints for Creating, Retrieving, Updating and Deleting Rate Limit Control Lists."},{"name":"Utility","description":"Set of utility endpoints for retrieving basic resource information by ID."},{"name":"AiBudget","description":"Set of endpoints for viewing AI token budget scope-rules/hierarchy/effective-limit and updating owner budgets."},{"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":"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":"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. 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/ConnectionConfigLlm"}}},"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). 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/ConnectionConfigLlm"}}},"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}/llm-models/{modelName}/":{"get":{"tags":["ModelCatalog"],"summary":"Gets a model catalog entry by name","description":"Gets a model catalog entry by name.","operationId":"getModelCatalog","parameters":[{"name":"projectName","in":"path","description":"Project name","required":true,"schema":{"type":"string"}},{"name":"modelName","in":"path","description":"Model catalog entry name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation!","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOpsResponseModelCatalog"}}}},"401":{"description":"not 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":["ModelCatalog"],"summary":"Updates an existing model catalog entry at specified project","description":"Updates an existing model catalog entry at specified project.","operationId":"updateModelCatalog","parameters":[{"name":"projectName","in":"path","description":"Project name","required":true,"schema":{"type":"string"}},{"name":"modelName","in":"path","description":"Model catalog entry name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LlmModelDefinition"}}},"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":["ModelCatalog"],"summary":"Add a model catalog entry to specified project","description":"Adds a model catalog entry to specified project. If an entry with the same name exists, it is updated (upsert).","operationId":"addModelCatalog","parameters":[{"name":"projectName","in":"path","description":"Project name","required":true,"schema":{"type":"string"}},{"name":"modelName","in":"path","description":"Model catalog entry name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LlmModelDefinition"}}},"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":["ModelCatalog"],"summary":"Deletes an existing model catalog entry from specified project","description":"Deletes an existing model catalog entry from specified project.","operationId":"deleteModelCatalog","parameters":[{"name":"projectName","in":"path","description":"Project name","required":true,"schema":{"type":"string"}},{"name":"modelName","in":"path","description":"Model catalog entry 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's descriptive half and lifecycle; revisions are listed separately.","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 a never-published draft plan","description":"Removes a plan that has never been published and is referenced by nothing (204).","operationId":"deleteDraftPlan","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}/draft-revisions/{revision}":{"put":{"tags":["LimitPlan"],"summary":"Replace a draft revision's rule spec","description":"Rewrites the rule spec of an open DRAFT revision; a published revision is immutable.","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/LimitRuleSpecUpdateDTO"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOpsResponseLimitPlanRevision"}}}}}}},"/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.","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).","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, and NOT the pre-encrypted cross-instance snapshot that POST accepts.","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.","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"}}}}}}},"/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"}}}}}},"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"}}}}}}},"/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"}}}}}}},"/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"}}}}}}},"/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"}}}}}}},"/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"}}}}}}},"/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"}}}}}}},"/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"}}}}}}},"/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"}}}}}}},"/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"}}}}}},"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"}}}}}},"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"}}}}}}},"/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"}}}}}},"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"}}}}}},"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"}}}}}}},"/apiops/projects/{projectName}/credential-organizations/{code}":{"get":{"tags":["CredentialOrganization"],"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"}}}}}},"put":{"tags":["CredentialOrganization"],"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"}}}}}},"delete":{"tags":["CredentialOrganization"],"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"}}}},"/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":"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":"Replaces the AiRouting config of an AI proxy (name-based). Provider references may be given by name (llmProviderRefName on the routing/conditional-route/failover entries) — resolved to ids within the project. When a name sidecar is blank the raw llmProviderRef (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":"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.","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"}}}}}},"delete":{"tags":["ApiClient"],"summary":"Discard a draft API client","description":"Deletes a client that was never activated; refuses anything else. The version query parameter must match the stored one.","operationId":"discardDraftApiClient","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"}}],"responses":{"200":{"description":"OK"}}}},"/apiops/projects/{projectName}/api-clients/{apiClientKey}/authorization-restrictions/{restrictionKey}":{"put":{"tags":["ApiClient"],"summary":"Update an authorization restriction","description":"Edits a DRAFT restriction row; an active row's reach is changed by ending it and writing a new one. The body's version must match.","operationId":"updateRestriction","parameters":[{"name":"projectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"apiClientKey","in":"path","required":true,"schema":{"type":"string"}},{"name":"restrictionKey","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOpsApiClientRestrictionDTO"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOpsResponseApiClientRestriction"}}}}}}},"/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/projects/{projectName}/ai-budgets/":{"put":{"tags":["AiBudget"],"summary":"Updates an owner AI token budget","description":"Updates the AI token budget for an owner entity (CredentialOrganization / ApiProxy / Project / CredentialAllowedApiProxy) within the path project.","operationId":"updateBudget","parameters":[{"name":"projectName","in":"path","description":"Project name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiBudgetUpdateDTO"}}},"required":true},"responses":{"200":{"description":"successful operation!","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOpsResponseAiTokenBudget"}}}},"401":{"description":"not 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}/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/ConnectionConfigLlm"}}}},"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, lifecycle. 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 first DRAFT revision (201 + Location). 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","description":"Makes the DRAFT revision the plan's published rule; assignments referencing the plan are recompiled and re-pushed.","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"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimitPlanPublishDTO"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOpsResponseLimitPlanRevision"}}}}}}},"/apiops/projects/{projectName}/limit-plans/{planKey}/draft-revisions":{"post":{"tags":["LimitPlan"],"summary":"Open a draft revision","description":"Creates the plan's next revision as a DRAFT from the given rule spec (201 + Location). A plan holds at most one open draft.","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/LimitRuleSpecUpdateDTO"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOpsResponseLimitPlanRevision"}}}}}}},"/apiops/projects/{projectName}/limit-plans/{planKey}/actions/retire":{"post":{"tags":["LimitPlan"],"summary":"Retire a plan","description":"Closes the plan to new assignments; existing ones keep applying its published rule until they end.","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"}}}}}}},"/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","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.","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"],"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"}}}}}}},"/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}/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 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).","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).","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":"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 '<source name> MCP' and a blank relativePath to '<source relativePath>-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","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":"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":"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 a ConnectionConfigLlm 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":"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 a DRAFT client holding no material (201 + Location). Requires the Idempotency-Key header; the client id is minted when the body leaves it blank.","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/ApiOpsResponseApiClientMutation"}}}}}}},"/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}/authorization-restrictions":{"get":{"tags":["ApiClient"],"summary":"List an API client's authorization restrictions","description":"Every restriction row of the client, active or not; ended rows are the history of how its reach changed.","operationId":"listRestrictions","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/ApiOpsResponseApiClientRestriction"}}}}}}},"post":{"tags":["ApiClient"],"summary":"Create an authorization restriction","description":"Adds a DRAFT restriction row to the client (201 + Location); the owning client comes from the path, never from the body.","operationId":"createRestriction","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/ApiOpsApiClientRestrictionDTO"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOpsResponseApiClientRestriction"}}}}}}},"/apiops/projects/{projectName}/api-clients/{apiClientKey}/authorization-restrictions/{restrictionKey}/actions/end":{"post":{"tags":["ApiClient"],"summary":"End an authorization restriction","description":"Lifts a restriction row; the row is ENDED, never deleted, because its history is the only record of what the client could reach and when.","operationId":"endRestriction","parameters":[{"name":"projectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"apiClientKey","in":"path","required":true,"schema":{"type":"string"}},{"name":"restrictionKey","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/ApiOpsResponseApiClientRestriction"}}}}}}},"/apiops/projects/{projectName}/api-clients/{apiClientKey}/authorization-restrictions/{restrictionKey}/actions/activate":{"post":{"tags":["ApiClient"],"summary":"Activate an authorization restriction","description":"Puts a drafted restriction into force; the shape and the narrowing rule are re-checked. The body's version must match.","operationId":"activateRestriction","parameters":[{"name":"projectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"apiClientKey","in":"path","required":true,"schema":{"type":"string"}},{"name":"restrictionKey","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/ApiOpsResponseApiClientRestriction"}}}}}}},"/apiops/projects/{projectName}/api-clients/{apiClientKey}/authorization-restrictions/actions/change-mode":{"post":{"tags":["ApiClient"],"summary":"Change an API client's default restriction mode","description":"Ends the active client-general restriction row and writes a new one with the given mode; the version is that of the current row, or absent when there is none.","operationId":"changeRestrictionMode","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/ApiOpsApiClientRestrictionModeDTO"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOpsResponseApiClientRestriction"}}}}}}},"/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. Answers 202 + Location when the withdrawal was handed to the durable sweeper, 200 otherwise. 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/projects/{projectName}/api-clients/{apiClientKey}/actions/activate":{"post":{"tags":["ApiClient"],"summary":"Activate an API client","description":"Moves a DRAFT client that holds usable material into service; the body's version must match.","operationId":"activateApiClient","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"}}}}}},"patch":{"tags":["Credential"],"summary":"Change Credential Password","description":"Changes credential password specified by username and deploys it to environments","operationId":"changePassword","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"}}}}}}},"/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"}}}}}}},"/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","required":true,"allowEmptyValue":true,"schema":{"type":"boolean"}}],"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}/llm-models/":{"get":{"tags":["ModelCatalog"],"summary":"Lists existing model catalog entries of specified project","description":"Lists existing model catalog entries of specified project.","operationId":"listModelCatalog","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/ApiOpsResponseModelCatalog"}}}},"401":{"description":"not 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}/revisions":{"get":{"tags":["LimitPlan"],"summary":"List a plan's revisions","description":"Every revision of the plan, oldest first, with its status and checksum.","operationId":"listRevisions","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":{"type":"array","items":{"$ref":"#/components/schemas/ApiOpsResponseLimitPlanRevision"}}}}}}}},"/apiops/projects/{projectName}/limit-plans/{planKey}/revisions/{revision}":{"get":{"tags":["LimitPlan"],"summary":"Get one revision","description":"One revision of the plan by its number, rule spec included.","operationId":"getRevision","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/ApiOpsResponseLimitPlanRevision"}}}}}}},"/apiops/projects/{projectName}/limit-plans/{planKey}/published":{"get":{"tags":["LimitPlan"],"summary":"Get the published revision","description":"The revision assignments currently apply; 404 while the plan has never been published.","operationId":"getPublishedRevision","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/ApiOpsResponseLimitPlanRevision"}}}}}}},"/apiops/projects/{projectName}/limit-plans/{planKey}/draft":{"get":{"tags":["LimitPlan"],"summary":"Get the open draft revision","description":"The plan's single open DRAFT revision; 404 when there is none.","operationId":"getOpenDraft","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/ApiOpsResponseLimitPlanRevision"}}}}}}},"/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":{"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}/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}/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","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}/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"}}}}}}},"/apiops/projects/{projectName}/consumers/{consumerKey}":{"get":{"tags":["Consumer"],"summary":"Get one consumer","description":"The consumer addressed by its consumer key; no secret material is ever included.","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"}}}}}}},"/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}/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}/entitlements":{"get":{"tags":["Consumer"],"summary":"List a consumer's access entitlements","description":"Every entitlement whose subject is the consumer, in the stable reference form.","operationId":"listEntitlements","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/ApiOpsResponseAccessEntitlement"}}}}}}}},"/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 applications, 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}/entitlements":{"get":{"tags":["Application"],"summary":"List an application's access entitlements","description":"Every entitlement whose subject is the application, in the stable reference form.","operationId":"listEntitlements_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/ApiOpsResponseAccessEntitlement"}}}}}}}},"/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","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}/api-clients/{apiClientKey}/entitlements":{"get":{"tags":["ApiClient"],"summary":"List the entitlements of an API client's owner","description":"Every access entitlement whose subject is the client's owner (a consumer or an application); an API client is never itself an entitlement subject.","operationId":"listEntitlements_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/ApiOpsResponseAccessEntitlement"}}}}}}}},"/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/{projectName}/ai-budgets/scope-rules/":{"get":{"tags":["AiBudget"],"summary":"Lists AI budget scope-rules of specified project","description":"Returns the flat list of AI budget scope rules aggregated from all owner sources.","operationId":"getScopeRules","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/ApiOpsResponseAiScopeRule"}}}},"401":{"description":"not 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-budgets/hierarchy/{nodeType}/{nodeId}/effective-limit/":{"get":{"tags":["AiBudget"],"summary":"Gets the effective AI budget limit for a hierarchy node","description":"Returns an effective limit preview for a single hierarchy node (nodeType: CREDENTIAL | CREDENTIAL_ORGANIZATION | API_PROXY | PROJECT).","operationId":"getEffectiveLimit","parameters":[{"name":"projectName","in":"path","description":"Project name","required":true,"schema":{"type":"string"}},{"name":"nodeType","in":"path","required":true,"schema":{"type":"string"}},{"name":"nodeId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation!","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOpsResponseAiEffectiveLimit"}}}},"401":{"description":"not 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-budgets/hierarchy/":{"get":{"tags":["AiBudget"],"summary":"Gets the AI budget hierarchy of specified project","description":"Returns the AI budget hierarchy tree rooted at the Project (Tenant) node.","operationId":"getHierarchy","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/ApiOpsResponseAiHierarchy"}}}},"401":{"description":"not 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/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"}}}}}}},"/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"}}}}}}},"/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"}}}}}}},"/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"}}}}}}},"/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"}}}}}}},"/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"}}}}}}},"/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"}}}}}}},"/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"}}}}}}},"/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":{"defaultBudget":{"$ref":"#/components/schemas/AiTokenBudgetDTO"},"defaultAnonymousBudget":{"$ref":"#/components/schemas/AiTokenBudgetDTO"},"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"}}},"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},"usdPerHour":{"type":"number","minimum":0.00},"usdPerDay":{"type":"number","minimum":0.00},"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/AiModelBudgetDTO"},"maxItems":50,"minItems":0},"providerBudgets":{"type":"array","items":{"$ref":"#/components/schemas/AiProviderBudgetDTO"},"maxItems":50,"minItems":0}}},"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"},"resolvedApiVersion":{"type":"string"},"resolvedApiKey":{"type":"string"},"resolvedAuthHeaderName":{"type":"string"},"resolvedApiSecret":{"type":"string"},"resolvedEndpoint":{"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"},"resolvedJdbcUrl":{"type":"string"},"resolvedSchema":{"type":"string"},"resolvedUsername":{"type":"string"},"resolvedPassword":{"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"},"resolvedUri":{"type":"string"},"resolvedUsername":{"type":"string"},"resolvedPassword":{"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_AI_TOKEN_QUOTA_EXCEEDED","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","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_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_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_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"},"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"},"resolvedAudienceAllowList":{"type":"array","items":{"type":"string"}}}},"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"}}},"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"},"resolvedValue":{"type":"string"},"resolvedName":{"type":"string"}}},"ArgumentConstraintRule":{"type":"object","properties":{"argumentPath":{"type":"string"},"ruleType":{"type":"string","enum":["REGEX","MAX_LENGTH","ENUM","REQUIRED"]},"value":{"type":"string"},"resolvedArgumentPath":{"type":"string"},"resolvedValue":{"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"}}},"CircuitBreakerForClientBan":{"type":"object","properties":{"cacheDetail":{"$ref":"#/components/schemas/ICacheCircuitBreaker","writeOnly":true},"cacheSummary":{"$ref":"#/components/schemas/ICacheCircuitBreaker","writeOnly":true},"cacheKey":{"type":"string"}}},"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"]},"bearerToken":{"type":"string"},"credentialRef":{"type":"string","deprecated":true},"tokenEndpoint":{"type":"string"},"clientId":{"type":"string"},"clientSecret":{"type":"string"},"scope":{"type":"string"},"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"},"resolvedBearerToken":{"type":"string"},"resolvedTokenEndpoint":{"type":"string"},"resolvedClientId":{"type":"string"},"resolvedClientSecret":{"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"]},"bearerToken":{"type":"string"},"credentialRef":{"type":"string"},"tokenEndpoint":{"type":"string"},"clientId":{"type":"string"},"clientSecret":{"type":"string"},"scope":{"type":"string"},"capabilityCacheTtlSeconds":{"type":"integer","format":"int32"},"capabilityCacheEnabled":{"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"},"resolvedBearerToken":{"type":"string"},"resolvedTokenEndpoint":{"type":"string"},"resolvedClientId":{"type":"string"},"resolvedClientSecret":{"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"}}},"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"}}}]},"ICacheCircuitBreaker":{},"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"}},"resolvedPrincipalName":{"type":"string"},"resolvedAllow":{"type":"array","items":{"type":"string"}},"resolvedDeny":{"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"}}}},"private":{"type":"boolean"},"algorithm":{"$ref":"#/components/schemas/Algorithm"},"keyOperations":{"type":"array","items":{"type":"string","enum":["sign","verify","encrypt","decrypt","wrapKey","unwrapKey","deriveKey","deriveBits"]},"uniqueItems":true},"x509CertThumbprint":{"$ref":"#/components/schemas/Base64URL","deprecated":true},"x509CertSHA256Thumbprint":{"$ref":"#/components/schemas/Base64URL"},"x509CertChain":{"type":"array","items":{"$ref":"#/components/schemas/Base64"}},"parsedX509CertChain":{"type":"array","items":{"type":"object","properties":{"signature":{"type":"string","format":"byte"},"basicConstraints":{"type":"integer","format":"int32"},"version":{"type":"integer","format":"int32"},"extendedKeyUsage":{"type":"array","items":{"type":"string"}},"serialNumber":{"type":"integer"},"subjectX500Principal":{"type":"object","properties":{"name":{"type":"string"},"encoded":{"type":"string","format":"byte"}}},"issuerX500Principal":{"type":"object","properties":{"name":{"type":"string"},"encoded":{"type":"string","format":"byte"}}},"notBefore":{"type":"string","format":"date-time"},"notAfter":{"type":"string","format":"date-time"},"subjectDN":{"type":"object","deprecated":true,"properties":{"name":{"type":"string"}}},"subjectAlternativeNames":{"type":"array","items":{"type":"array","items":{}}},"keyUsage":{"type":"array","items":{"type":"boolean"}},"sigAlgName":{"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"}},"criticalExtensionOIDs":{"type":"array","items":{"type":"string"},"uniqueItems":true},"nonCriticalExtensionOIDs":{"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"}}}}}},"keyRevocation":{"$ref":"#/components/schemas/KeyRevocation"},"requiredParams":{"type":"object","additionalProperties":{}},"keyUse":{"$ref":"#/components/schemas/KeyUse"},"x509CertURL":{"type":"string","format":"uri"},"issueTime":{"type":"string","format":"date-time"},"notBeforeTime":{"type":"string","format":"date-time"},"keyID":{"type":"string"},"expirationTime":{"type":"string","format":"date-time"},"keyType":{"$ref":"#/components/schemas/KeyType"}}},"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"},"expirationTime":{"type":"string","format":"date-time"},"algorithm":{"$ref":"#/components/schemas/Algorithm"},"expirationDateValid":{"type":"boolean"},"notBeforeTimeValid":{"type":"boolean"},"notBeforeTime":{"type":"string","format":"date-time"},"useType":{"type":"string","enum":["SIGNATURE","ENCRYPTION"]}}},"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"},"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"},"resolvedAllowedSkillNames":{"type":"array","items":{"type":"string"}}}}]},"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"},"resolvedTargetSkillName":{"type":"string"},"resolvedMessageTemplate":{"type":"string"}}}]},"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"},"resolvedAllowedToolNames":{"type":"array","items":{"type":"string"}}}}]},"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"},"resolvedTargetToolName":{"type":"string"},"resolvedArgumentsTemplate":{"type":"string"}}}]},"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"},"resolvedEmbeddingModelId":{"type":"string"},"resolvedVectorCollectionName":{"type":"string"},"vectorLayerConfigured":{"type":"boolean"}}}]},"PolicyAiTokenRateLimit":{"allOf":[{"$ref":"#/components/schemas/Policy"},{"type":"object","properties":{"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"]},"contextWindowSource":{"type":"string","enum":["EXPLICIT","MODEL_CATALOG"]}}}]},"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"},"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"},"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"},"clientKey":{"type":"string"},"circuitBreakerForClientBan":{"$ref":"#/components/schemas/CircuitBreakerForClientBan"}}}]},"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"},"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"},"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"},"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"},"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"]},"jwtSignatureAlgorithm":{"type":"string"}}}]},"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"},"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"},"validateACLForIssuer":{"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"},"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"},"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"]},"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"]},"selectVariable":{"type":"boolean"},"specifyValue":{"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"},"selectVariable":{"type":"boolean"},"specifyValue":{"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"}}},"ConnectionConfigLlm":{"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"},"environmentId":{"type":"string"},"circuitBreakerEnabled":{"type":"boolean"},"errorThresholdValue":{"type":"integer","format":"int32"},"sleepWindow":{"type":"integer","format":"int32"},"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","OTHER"]},"wireProtocol":{"type":"string","enum":["OPENAI_COMPATIBLE","ANTHROPIC","GEMINI","BEDROCK","VLLM"]},"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/LlmModelDef"}},"providerRpmLimit":{"type":"integer","format":"int32"},"providerTpmLimit":{"type":"integer","format":"int32"},"coldStartRetryEnabled":{"type":"boolean"},"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"]},"region":{"type":"string"},"serviceAccountJson":{"type":"string"},"providerDefinitionId":{"type":"string"},"allowedModelIds":{"type":"array","items":{"type":"string"}},"builtIn":{"type":"boolean"},"builtInKey":{"type":"string"},"metadata":{"type":"array","items":{"$ref":"#/components/schemas/LlmProviderMetadataEntry"}},"effectiveApiKeyPrefix":{"type":"string"},"resolvedApiVersion":{"type":"string"},"resolvedOrganizationId":{"type":"string"},"resolvedApiKey":{"type":"string"},"clientProvidedCredential":{"type":"boolean"},"apiKeyInQuery":{"type":"boolean"},"resolvedAuthHeaderName":{"type":"string"},"resolvedApiSecret":{"type":"string"},"resolvedRegion":{"type":"string"},"resolvedServiceAccountJson":{"type":"string"},"resolvedDefaultChatCompletionPath":{"type":"string"},"resolvedDefaultEmbeddingPath":{"type":"string"},"resolvedDefaultAudioTranscriptionPath":{"type":"string"},"resolvedDefaultAudioSpeechPath":{"type":"string"},"resolvedDefaultImageGenerationPath":{"type":"string"},"resolvedDefaultResponsesPath":{"type":"string"},"resolvedEndpoint":{"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"}}},"LlmModelDef":{"type":"object","properties":{"modelId":{"type":"string"},"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"]},"isDeprecated":{"type":"boolean"},"deprecatedAt":{"type":"string","format":"date-time"},"sunsetAt":{"type":"string","format":"date-time"}}},"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"}}},"LlmModelDefinition":{"type":"object","description":"Model catalog entry value to be added","properties":{"id":{"type":"string"},"projectId":{"type":"string"},"name":{"type":"string"},"providerDefinitionId":{"type":"string"},"providerCode":{"type":"string"},"modelId":{"type":"string"},"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"]},"isDeprecated":{"type":"boolean"},"deprecatedAt":{"type":"string","format":"date-time"},"sunsetAt":{"type":"string","format":"date-time"},"builtIn":{"type":"boolean"},"lastUpdatedAt":{"type":"string","format":"date-time"}}},"ApiOpsLimitPlanUpdateDTO":{"type":"object","properties":{"name":{"type":"string"},"nameTr":{"type":"string"},"description":{"type":"string"},"labels":{"type":"array","items":{"type":"string"}},"version":{"type":"integer","format":"int64"}}},"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"}},"lifecycle":{"type":"string","enum":["DRAFT","PUBLISHED","RETIRED"]},"currentPublishedRevision":{"type":"integer","format":"int64"},"platformScoped":{"type":"boolean"},"managedBySubscriptionPlanId":{"type":"string"},"managedBySubscriptionPlanName":{"type":"string"},"retiredAt":{"type":"string","format":"date-time"},"retiredBy":{"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"]}}},"LimitRuleSpecDTO":{"type":"object","properties":{"aiBudget":{"$ref":"#/components/schemas/AiTokenBudgetDTO"},"requestRate":{"$ref":"#/components/schemas/LimitRequestRateSpecDTO"}}},"LimitRuleSpecUpdateDTO":{"type":"object","properties":{"ruleSpec":{"$ref":"#/components/schemas/LimitRuleSpecDTO"},"changeReason":{"type":"string"}}},"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"]}},"required":["interval","permittedMessageCount"]},"ApiOpsResponseLimitPlanRevision":{"type":"object","properties":{"planKey":{"type":"string"},"revision":{"type":"integer","format":"int64"},"status":{"type":"string","enum":["DRAFT","PUBLISHED","SUPERSEDED"]},"ruleSpec":{"$ref":"#/components/schemas/LimitRuleSpecDTO"},"semanticChecksum":{"type":"string"},"changeReason":{"type":"string"},"publishedAt":{"type":"string","format":"date-time"},"publishedBy":{"type":"string"}}},"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"}}},"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"}}},"ApiOpsLimitAssignmentTargetDTO":{"type":"object","properties":{"type":{"type":"string","enum":["ALL","API_PROXY","API_PROXY_ENV","API_PROXY_GROUP","API_PROXY_GROUP_ENV","API_ENDPOINT","AI_MODEL","AI_PROVIDER"]},"apiProxyName":{"type":"string"},"apiProxyGroupName":{"type":"string"},"environmentName":{"type":"string"},"targetKey":{"type":"string"},"httpMethods":{"type":"array","items":{"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"}}}},"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"}}},"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"},"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"},"enabledAiModelRestriction":{"type":"boolean","description":"Optional (API_PROXY only). When true, the credential may call only the models listed in allowedAiModelIds on this AI proxy; an empty list with true means unrestricted."},"allowedAiModelIds":{"type":"array","description":"Optional (API_PROXY only). Model ids the credential may call when enabledAiModelRestriction is true.","items":{"type":"string"}}}},"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"}},"defaultLimitPlans":{"type":"array","items":{"$ref":"#/components/schemas/DefaultLimitPlanDTO"}}}},"DefaultLimitPlanDTO":{"type":"object","properties":{"family":{"type":"string","enum":["REQUEST_RATE","AI_TOKEN_BUDGET"]},"planKey":{"type":"string"},"scope":{"type":"string"}}},"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"},"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"}}}]},"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"},"resolvedKey":{"type":"string"},"resolvedValue":{"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"},"logPolicyExecutionTime":{"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"},"default":{},"modelName":{"type":"string"},"enum":{"type":"array","items":{}}}}},"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":{"default":{"type":"string","format":"byte"},"enum":{"type":"array","items":{"type":"string","format":"byte"}}}},{"$ref":"#/components/schemas/SpecSchema"}]},"SpecBooleanSchema":{"allOf":[{"$ref":"#/components/schemas/SpecSchemaObject"},{"type":"object","properties":{"default":{"type":"boolean"},"enum":{"type":"array","items":{"type":"boolean"}}}},{"$ref":"#/components/schemas/SpecSchema"}]},"SpecByteArraySchema":{"allOf":[{"$ref":"#/components/schemas/SpecSchemaObject"},{"type":"object","properties":{"default":{"type":"string","format":"byte"},"enum":{"type":"array","items":{"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"},"default":{},"modelName":{"type":"string"},"enum":{"type":"array","items":{}},"_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":{"default":{"type":"string","format":"date-time"},"enum":{"type":"array","items":{"type":"string","format":"date-time"}}}},{"$ref":"#/components/schemas/SpecSchema"}]},"SpecDateTimeSchema":{"allOf":[{"$ref":"#/components/schemas/SpecSchemaObject"},{"type":"object","properties":{"default":{"type":"string","format":"date-time"},"enum":{"type":"array","items":{"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":{"default":{"type":"string"},"enum":{"type":"array","items":{"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":{"default":{"type":"string"},"enum":{"type":"array","items":{"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":{"default":{"type":"number"},"enum":{"type":"array","items":{"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":{"default":{"type":"number"},"enum":{"type":"array","items":{"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":{"default":{"type":"string"},"enum":{"type":"array","items":{"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"},"default":{},"modelName":{"type":"string"},"enum":{"type":"array","items":{}},"_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"},"default":{},"modelName":{"type":"string"},"enum":{"type":"array","items":{}}}}},"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"},"default":{},"modelName":{"type":"string"},"enum":{"type":"array","items":{}},"_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":{}},"default":{"type":"string"},"enum":{"type":"array","items":{"type":"string"}}}},"SpecStringSchema":{"allOf":[{"$ref":"#/components/schemas/SpecSchemaObject"},{"type":"object","properties":{"default":{"type":"string"},"enum":{"type":"array","items":{"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":{"default":{"type":"string","format":"uuid"},"enum":{"type":"array","items":{"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"}},"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"]},"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 ConnectionConfigLlm.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."},"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."},"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"}}}}]},"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 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."},"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)"}}}]},"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 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."},"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"}}}}]},"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 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."},"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"}}}}]},"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 ConnectionConfigLlm.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 ConnectionConfigLlm.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 on context-window overflow: BLOCK (default) or TRUNCATE_OLDEST","enum":["BLOCK","TRUNCATE_OLDEST"]},"contextWindowSource":{"type":"string","description":"Effective token limit source: EXPLICIT (default, maxTokensPerRequest) or MODEL_CATALOG","enum":["EXPLICIT","MODEL_CATALOG"]}}}]},"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."},"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."},"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 <key>' 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."},"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"},"grantType":{"type":"string","description":"Grant type","enum":["CLIENT_CREDENTIALS","PASSWORD"]},"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."}}}]},"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"},"grantType":{"type":"string","description":"Grant type","enum":["CLIENT_CREDENTIALS","PASSWORD"]},"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."}}}]},"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":{"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":{"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 <token>' to 'DPoP <token>'. 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"},"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"}},"argumentConstraints":{"type":"array","items":{"$ref":"#/components/schemas/ArgumentConstraintRule"}},"resolvedRequiredScopes":{"type":"array","items":{"type":"string"}}}},"McpRouting":{"type":"object","properties":{"routingMode":{"type":"string","enum":["TOOL_EXPOSE","PASSTHROUGH"]},"protocolVersion":{"type":"string"},"exposedTools":{"type":"array","items":{"$ref":"#/components/schemas/McpExposedTool"}},"backendServers":{"type":"array","items":{"$ref":"#/components/schemas/ConnectionConfigMcp"}},"allowedToolNames":{"type":"array","items":{"type":"string"}},"forwardClientToken":{"type":"boolean"},"tokenForwardSettings":{"$ref":"#/components/schemas/AgentTokenForwardSettings"},"toolOutputFilter":{"$ref":"#/components/schemas/McpToolOutputFilter"},"identityAcl":{"type":"array","items":{"$ref":"#/components/schemas/IdentityAclRule"}},"argumentConstraints":{"type":"array","items":{"$ref":"#/components/schemas/McpToolArgumentConstraints"}},"callQuota":{"$ref":"#/components/schemas/CallQuotaConfig"},"effectiveTokenForwardSettings":{"$ref":"#/components/schemas/AgentTokenForwardSettings"},"routingModeRaw":{"type":"string","enum":["TOOL_EXPOSE","PASSTHROUGH"]},"resolvedAllowedToolNames":{"type":"array","items":{"type":"string"}},"effectiveBackendServers":{"type":"array","items":{"$ref":"#/components/schemas/ConnectionConfigMcp"}}}},"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"}}}},"AiFailoverEntry":{"type":"object","properties":{"llmProviderRef":{"type":"string"},"llmProviderRefName":{"type":"string"},"modelId":{"type":"string"},"credentialRef":{"type":"string"},"timeoutMs":{"type":"integer","format":"int32"},"orderIndex":{"type":"integer","format":"int32"},"displayName":{"type":"string"},"maxCostUsd":{"type":"number"},"weight":{"type":"integer","format":"int32"}}},"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"]},"AiPrimaryEntry":{"type":"object","properties":{"llmProviderRef":{"type":"string"},"llmProviderRefName":{"type":"string"},"modelId":{"type":"string"},"weight":{"type":"integer","format":"int32"},"displayName":{"type":"string"}}},"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"]},"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"},"llmProviderRef":{"type":"string"},"llmProviderRefName":{"type":"string"},"modelId":{"type":"string"},"timeoutSeconds":{"type":"integer","format":"int32"},"streaming":{"type":"boolean"},"clientModelPresentBehavior":{"type":"string","enum":["USE_CLIENT","OVERWRITE","ERROR"]},"clientModelAbsentBehavior":{"type":"string","enum":["KEEP_ABSENT","ADD_ROUTING_MODEL","ERROR"]},"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"},"semanticEmbeddingModelId":{"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"},"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"},"anonymousBudget":{"$ref":"#/components/schemas/AiTokenBudget"},"blockAnonymousRequests":{"type":"boolean"},"resolvedAffinityKeyHeader":{"type":"string"},"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"}}},"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},"usdPerDay":{"type":"number","minimum":0.00},"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"}}}},"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"},"resolvedSemanticUtterances":{"type":"array","items":{"type":"string"}}}},"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"}},"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"]},"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"]},"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"}},"callQuota":{"$ref":"#/components/schemas/CallQuotaConfig"},"effectiveTokenForwardSettings":{"$ref":"#/components/schemas/AgentTokenForwardSettings"},"routingModeRaw":{"type":"string","enum":["AGENT_EXPOSE","PASSTHROUGH"]},"resolvedAllowedSkillNames":{"type":"array","items":{"type":"string"}},"effectiveBackendA2aServers":{"type":"array","items":{"$ref":"#/components/schemas/ConnectionConfigA2a"}}}},"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"},"aiAppBudget":{"$ref":"#/components/schemas/AiTokenBudget"},"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"},"policyConfigurationTemplateFromService":{"$ref":"#/components/schemas/PolicyConfigurationTemplate","writeOnly":true},"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"}]},"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"}]},"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"}}},"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"]}}},"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"}}},"MockApi":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"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"}}}},"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"},"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"]},"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},"policyConfigurationTemplateFromService":{"$ref":"#/components/schemas/PolicyConfigurationTemplate","writeOnly":true},"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"}]},"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"}]},"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"},"connectionPoolManagementTypeNone":{"type":"boolean"},"resolvedUserAgentValue":{"type":"string"},"resolvedStickyCookieName":{"type":"string"},"resolvedStickyHashSecret":{"type":"string"},"resolvedProxyHost":{"type":"string"},"resolvedProxyUsername":{"type":"string"},"resolvedProxyPassword":{"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"}}},"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"},"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"},"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"},"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"},"resultErrorMessage":{"type":"string"},"requestType":{"type":"string","enum":["FIRST","RETRY"]},"actionLogDetailList":{"type":"array","items":{"$ref":"#/components/schemas/LogExecutableExecutionDetail"}}}},"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"},"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"},"version":{"type":"integer","format":"int64"}}},"ApiOpsApiClientOwnerDTO":{"type":"object","properties":{"type":{"type":"string","enum":["CONSUMER","APPLICATION"]},"key":{"type":"string"}}},"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"},"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"}}},"ApiOpsRuntimeDeploymentDTO":{"type":"object","properties":{"state":{"type":"string","enum":["IN_SYNC","DEGRADED","PENDING"]},"revision":{"type":"integer","format":"int64"},"environments":{"type":"array","items":{"$ref":"#/components/schemas/Environment"}}}},"Environment":{"type":"object","properties":{"name":{"type":"string"},"acknowledged":{"type":"boolean"},"detail":{"type":"string"}}},"ApiOpsApiClientRestrictionDTO":{"type":"object","properties":{"mode":{"type":"string","enum":["DENY_ALL","OWNER_DEFAULT","ALLOW_SUBSET"]},"targetType":{"type":"string","enum":["API_PROXY","API_PROXY_GROUP","API_PRODUCT","API_PROXY_ENV"]},"targetStableRef":{"type":"string"},"environmentRef":{"type":"string"},"version":{"type":"integer","format":"int32"}}},"ApiOpsResponseApiClientRestriction":{"type":"object","properties":{"restrictionKey":{"type":"string"},"apiClientKey":{"type":"string"},"mode":{"type":"string","enum":["DENY_ALL","OWNER_DEFAULT","ALLOW_SUBSET"]},"targetType":{"type":"string","enum":["API_PROXY","API_PROXY_GROUP","API_PRODUCT","API_PROXY_ENV"]},"targetStableRef":{"type":"string"},"environmentRef":{"type":"string"},"status":{"type":"string","enum":["DRAFT","ACTIVE","ENDED"]},"version":{"type":"integer","format":"int32"},"assignedAt":{"type":"string","format":"date-time"},"assignedBy":{"type":"string"},"endedAt":{"type":"string","format":"date-time"},"endedBy":{"type":"string"},"endedReason":{"type":"string"}}},"AiBudgetUpdateDTO":{"type":"object","properties":{"targetType":{"type":"string","minLength":1},"targetId":{"type":"string","minLength":1},"targetProjectId":{"type":"string","minLength":1},"budget":{"$ref":"#/components/schemas/AiTokenBudgetDTO"},"budgetSource":{"type":"string"}},"required":["budget","targetId","targetProjectId","targetType"]},"ApiOpsResponseAiTokenBudget":{"type":"object","properties":{"status":{"type":"string","enum":["SUCCESS","FAILURE"]},"resultMessage":{"type":"string"},"resultList":{"type":"array","items":{"$ref":"#/components/schemas/AiTokenBudgetDTO"}},"resultCount":{"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"}}},"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/LimitRuleSpecDTO"}}},"LimitPlanPublishDTO":{"type":"object","properties":{"changeReason":{"type":"string"}}},"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"}}},"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"}}},"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"}}},"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"}}},"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"}}},"ApiProxyEndpointIdentifierDTO":{"type":"object","properties":{"name":{"type":"string"},"httpMethod":{"type":"string","enum":["GET","POST","PUT","HEAD","OPTIONS","DELETE","PATCH","TRACE","ALL","QUERY"]}}},"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"},"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"}}},"ApiOpsAiApiProxyCreateDTO":{"type":"object","description":"AI proxy create body: relativePath (required), optional llmProviderName/modelId/streaming.","properties":{"relativePath":{"type":"string"},"description":{"type":"string"},"llmProviderName":{"type":"string"},"modelId":{"type":"string"},"streaming":{"type":"boolean"}}},"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"}}},"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"]}}},"ApiOpsResponseSecretVersionIssued":{"type":"object","properties":{"apiClient":{"$ref":"#/components/schemas/ApiOpsResponseApiClient"},"versionId":{"type":"string"},"secret":{"type":"string"}}},"ApiOpsLifecycleActionDTO":{"type":"object","properties":{"version":{"type":"integer","format":"int64"},"reason":{"type":"string"}}},"ApiOpsApiClientRestrictionModeDTO":{"type":"object","properties":{"mode":{"type":"string","enum":["DENY_ALL","OWNER_DEFAULT","ALLOW_SUBSET"]},"version":{"type":"integer","format":"int32"},"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"}}},"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"},"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"},"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","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/LlmModelDef"}},"providerRpmLimit":{"type":"integer","format":"int32"},"providerTpmLimit":{"type":"integer","format":"int32"},"coldStartRetryEnabled":{"type":"boolean"},"lastHealthCheckAt":{"type":"string","format":"date-time"},"healthStatus":{"type":"string","enum":["UNKNOWN","HEALTHY","DOWN"]},"lastLatencyMs":{"type":"integer","format":"int64"},"providerDefinitionId":{"type":"string"},"allowedModelIds":{"type":"array","items":{"type":"string"}},"wireProtocol":{"type":"string","enum":["OPENAI_COMPATIBLE","ANTHROPIC","GEMINI","BEDROCK","VLLM"]},"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"]},"region":{"type":"string"},"builtIn":{"type":"boolean"},"metadata":{"type":"array","items":{"$ref":"#/components/schemas/LlmProviderMetadataEntry"}},"usedByRefs":{"type":"array","items":{"type":"string"}}}},"ApiOpsResponseModelCatalog":{"type":"object","properties":{"status":{"type":"string","enum":["SUCCESS","FAILURE"]},"resultMessage":{"type":"string"},"resultList":{"type":"array","items":{"$ref":"#/components/schemas/LlmModelDefinitionDTO"}},"resultCount":{"type":"integer","format":"int32"}}},"LlmModelDefinitionDTO":{"type":"object","properties":{"id":{"type":"string"},"projectId":{"type":"string"},"name":{"type":"string"},"providerDefinitionId":{"type":"string"},"providerCode":{"type":"string"},"modelId":{"type":"string"},"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"]},"isDeprecated":{"type":"boolean"},"deprecatedAt":{"type":"string","format":"date-time"},"sunsetAt":{"type":"string","format":"date-time"},"builtIn":{"type":"boolean"},"lastUpdatedAt":{"type":"string","format":"date-time"}}},"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"}}},"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"}}},"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"}}},"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."}}},"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."}}},"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."}}},"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"}}}},"ApiOpsResponseAccessEntitlement":{"type":"object","properties":{"entitlementKey":{"type":"string"},"subjectType":{"type":"string","enum":["CONSUMER","APPLICATION"]},"subjectKey":{"type":"string"},"targetType":{"type":"string","enum":["API_PROXY","API_PROXY_GROUP","API_PRODUCT","API_PROXY_ENV"]},"targetRef":{"type":"string"},"environmentRef":{"type":"string"},"status":{"type":"string","enum":["DRAFT","ACTIVE","ENDED"]},"validFrom":{"type":"string","format":"date-time"},"validUntil":{"type":"string","format":"date-time"},"source":{"type":"string","enum":["LEGACY_CAP","MANUAL","IMPORT","PORTAL","MIGRATION"]},"version":{"type":"integer","format":"int32"},"assignedAt":{"type":"string","format":"date-time"},"assignedBy":{"type":"string"},"endedAt":{"type":"string","format":"date-time"},"endedBy":{"type":"string"},"endedReason":{"type":"string"}}},"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"}}},"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"}}}},"AiScopeRuleDTO":{"type":"object","properties":{"id":{"type":"string"},"entityType":{"type":"string"},"entityName":{"type":"string"},"scope":{"type":"string"},"scopeRef":{"type":"string"},"tokensPerMonth":{"type":"integer","format":"int64"},"tokensPerDay":{"type":"integer","format":"int64"},"tokensPerHour":{"type":"integer","format":"int64"},"tokensPerMinute":{"type":"integer","format":"int64"},"overflowAction":{"type":"string"},"sourceType":{"type":"string"},"enabled":{"type":"boolean"},"usagePercent":{"type":"number","format":"double"},"budgetSource":{"type":"string"},"monthlyBudgetUsd":{"type":"number"},"usdPerHour":{"type":"number"},"usdPerDay":{"type":"number"},"softCapPercents":{"type":"array","items":{"type":"integer","format":"int32"}},"hardCapPercent":{"type":"integer","format":"int32"},"cheaperModelId":{"type":"string"},"modelBudgets":{"type":"array","items":{"$ref":"#/components/schemas/AiModelBudgetDTO"}},"providerBudgets":{"type":"array","items":{"$ref":"#/components/schemas/AiProviderBudgetDTO"}},"ownerProjectId":{"type":"string"},"shared":{"type":"boolean"},"readOnly":{"type":"boolean"}}},"ApiOpsResponseAiScopeRule":{"type":"object","properties":{"status":{"type":"string","enum":["SUCCESS","FAILURE"]},"resultMessage":{"type":"string"},"resultList":{"type":"array","items":{"$ref":"#/components/schemas/AiScopeRuleDTO"}},"resultCount":{"type":"integer","format":"int32"}}},"AiEffectiveLimitDTO":{"type":"object","properties":{"credentialLeafTokensPerMonth":{"type":"integer","format":"int64"},"orgChain":{"type":"array","items":{"$ref":"#/components/schemas/OrgLimitEntry"}},"appCapTokensPerMonth":{"type":"integer","format":"int64"},"tenantCapTokensPerMonth":{"type":"integer","format":"int64"},"effectiveMonthlyTokens":{"type":"integer","format":"int64"},"effectiveDailyTokens":{"type":"integer","format":"int64"},"effectiveMinuteTokens":{"type":"integer","format":"int64"},"status":{"type":"string"}}},"ApiOpsResponseAiEffectiveLimit":{"type":"object","properties":{"status":{"type":"string","enum":["SUCCESS","FAILURE"]},"resultMessage":{"type":"string"},"resultList":{"type":"array","items":{"$ref":"#/components/schemas/AiEffectiveLimitDTO"}},"resultCount":{"type":"integer","format":"int32"}}},"OrgLimitEntry":{"type":"object","properties":{"orgId":{"type":"string"},"orgName":{"type":"string"},"tokensPerMonth":{"type":"integer","format":"int64"}}},"AiHierarchyNodeDTO":{"type":"object","properties":{"nodeId":{"type":"string"},"nodeType":{"type":"string"},"name":{"type":"string"},"tokensPerMonth":{"type":"integer","format":"int64"},"enabled":{"type":"boolean"},"tokensPerDay":{"type":"integer","format":"int64"},"tokensPerHour":{"type":"integer","format":"int64"},"tokensPerMinute":{"type":"integer","format":"int64"},"monthlyBudgetUsd":{"type":"number"},"softCapPercents":{"type":"array","items":{"type":"integer","format":"int32"}},"hardCapPercent":{"type":"integer","format":"int32"},"overflowAction":{"type":"string"},"cheaperModelId":{"type":"string"},"usagePercent":{"type":"number","format":"double"},"status":{"type":"string"},"inheritedFrom":{"type":"string"},"ownerProjectId":{"type":"string"},"shared":{"type":"boolean"},"readOnly":{"type":"boolean"},"effectiveLimitPreview":{"type":"integer","format":"int64"}}},"ApiOpsResponseAiHierarchy":{"type":"object","properties":{"status":{"type":"string","enum":["SUCCESS","FAILURE"]},"resultMessage":{"type":"string"},"resultList":{"type":"array","items":{"$ref":"#/components/schemas/AiHierarchyNodeDTO"}},"resultCount":{"type":"integer","format":"int32"}}}}}}