{
  "components": {
    "schemas": {
      "Action": {
        "properties": {
          "name": {
            "type": "string"
          },
          "properties": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "type": "object"
      },
      "AdminApiKeyView": {
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "managedBy": {
            "type": "string"
          },
          "revokedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AuditLogDto": {
        "properties": {
          "clientId": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "endpoint": {
            "type": "string"
          },
          "flowId": {
            "type": "string"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "ip": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "outcome": {
            "type": "string"
          },
          "policyDecision": {
            "additionalProperties": {},
            "type": "object"
          },
          "policyInput": {
            "additionalProperties": {},
            "type": "object"
          },
          "requestId": {
            "type": "string"
          },
          "requestSummary": {
            "additionalProperties": {},
            "type": "object"
          },
          "subjectId": {
            "type": "string"
          },
          "userAgent": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "BundleAuditLogDto": {
        "properties": {
          "bundleSizeBytes": {
            "format": "int32",
            "type": "integer"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "dataKeys": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "etag": {
            "type": "string"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "previousEtag": {
            "type": "string"
          },
          "ruleCount": {
            "format": "int32",
            "type": "integer"
          },
          "rulePaths": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "triggerSource": {
            "type": "string"
          },
          "triggeredBy": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ClientBreakdown": {
        "properties": {
          "clientId": {
            "type": "string"
          },
          "clientName": {
            "type": "string"
          },
          "decisions": {
            "format": "int64",
            "type": "integer"
          },
          "pct": {
            "format": "double",
            "type": "number"
          }
        },
        "type": "object"
      },
      "ClientDto": {
        "properties": {
          "clientId": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string"
          },
          "clientName": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string"
          },
          "clientSecret": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          },
          "clientType": {
            "minLength": 1,
            "pattern": "confidential|public",
            "type": "string"
          },
          "clientUri": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "issuedSoftwareStatementJwt": {
            "type": "string"
          },
          "jwks": {
            "additionalProperties": {},
            "type": "object"
          },
          "jwksUri": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          },
          "logoUri": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          },
          "postLogoutRedirectUris": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "redirectUris": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "registrationType": {
            "type": "string"
          },
          "softwareStatement": {
            "additionalProperties": {},
            "type": "object"
          },
          "softwareStatementJson": {
            "type": "string"
          },
          "tokenEndpointAuthMethod": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string"
          }
        },
        "required": [
          "clientId",
          "clientType"
        ],
        "type": "object"
      },
      "ConnectorDto": {
        "properties": {
          "category": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "installed": {
            "type": "boolean"
          },
          "installedAt": {
            "format": "date-time",
            "type": "string"
          },
          "manifest": {
            "$ref": "#/components/schemas/JsonNode"
          },
          "name": {
            "type": "string"
          },
          "resourceType": {
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ConnectorSync": {
        "properties": {
          "connectorId": {
            "type": "string"
          },
          "resources": {
            "items": {
              "$ref": "#/components/schemas/ResourceSync"
            },
            "type": "array"
          },
          "version": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DataEntry": {
        "properties": {
          "dataKey": {
            "minLength": 1,
            "type": "string"
          },
          "payload": {
            "$ref": "#/components/schemas/JsonNode"
          }
        },
        "required": [
          "dataKey",
          "payload"
        ],
        "type": "object"
      },
      "DenialReason": {
        "properties": {
          "count": {
            "format": "int64",
            "type": "integer"
          },
          "pct": {
            "format": "double",
            "type": "number"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "EndpointBreakdown": {
        "properties": {
          "decisions": {
            "format": "int64",
            "type": "integer"
          },
          "endpoint": {
            "type": "string"
          },
          "pct": {
            "format": "double",
            "type": "number"
          }
        },
        "type": "object"
      },
      "EvaluationRequest": {
        "properties": {
          "action": {
            "$ref": "#/components/schemas/Action"
          },
          "context": {
            "additionalProperties": {},
            "type": "object"
          },
          "resource": {
            "$ref": "#/components/schemas/Resource"
          },
          "subject": {
            "$ref": "#/components/schemas/Subject"
          }
        },
        "type": "object"
      },
      "EvaluationResponse": {
        "properties": {
          "context": {
            "additionalProperties": {},
            "type": "object"
          },
          "decision": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "GovernanceReportDto": {
        "properties": {
          "activeAgentCount": {
            "format": "int32",
            "type": "integer"
          },
          "activeRules": {
            "format": "int64",
            "type": "integer"
          },
          "allowed": {
            "format": "int64",
            "type": "integer"
          },
          "allowedPct": {
            "format": "double",
            "type": "number"
          },
          "byClient": {
            "items": {
              "$ref": "#/components/schemas/ClientBreakdown"
            },
            "type": "array"
          },
          "byEndpoint": {
            "items": {
              "$ref": "#/components/schemas/EndpointBreakdown"
            },
            "type": "array"
          },
          "clients": {
            "items": {
              "$ref": "#/components/schemas/RegisteredClient"
            },
            "type": "array"
          },
          "dataKeys": {
            "format": "int64",
            "type": "integer"
          },
          "denialReasons": {
            "items": {
              "$ref": "#/components/schemas/DenialReason"
            },
            "type": "array"
          },
          "denied": {
            "format": "int64",
            "type": "integer"
          },
          "deniedPct": {
            "format": "double",
            "type": "number"
          },
          "errors": {
            "format": "int64",
            "type": "integer"
          },
          "errorsPct": {
            "format": "double",
            "type": "number"
          },
          "generatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "identityProviderCount": {
            "format": "int32",
            "type": "integer"
          },
          "identityProviders": {
            "items": {
              "$ref": "#/components/schemas/IdpSummary"
            },
            "type": "array"
          },
          "periodEnd": {
            "format": "date",
            "type": "string"
          },
          "periodStart": {
            "format": "date",
            "type": "string"
          },
          "protectedResourceCount": {
            "format": "int32",
            "type": "integer"
          },
          "recentPolicyChanges": {
            "items": {
              "$ref": "#/components/schemas/PolicyChange"
            },
            "type": "array"
          },
          "resources": {
            "items": {
              "$ref": "#/components/schemas/ResourceSummary"
            },
            "type": "array"
          },
          "totalDecisions": {
            "format": "int64",
            "type": "integer"
          },
          "totalRules": {
            "format": "int64",
            "type": "integer"
          },
          "trendAllowed": {
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": "array"
          },
          "trendDenied": {
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": "array"
          },
          "trendErrors": {
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": "array"
          },
          "trendLabels": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "IdentityProviderDto": {
        "properties": {
          "authorizationEndpoint": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          },
          "authorizeParams": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "backchannelNotificationEndpoint": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          },
          "clientId": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string"
          },
          "clientSecret": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "idpId": {
            "type": "string"
          },
          "issuer": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          },
          "jwksUri": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          },
          "name": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string"
          },
          "scopes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tokenEndpoint": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          },
          "userinfoEndpoint": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          }
        },
        "required": [
          "issuer"
        ],
        "type": "object"
      },
      "IdpSummary": {
        "properties": {
          "issuer": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "IntrospectResponse": {
        "properties": {
          "act": {
            "additionalProperties": {},
            "type": "object"
          },
          "active": {
            "type": "boolean"
          },
          "authorization_details": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": "array"
          },
          "client_id": {
            "type": "string"
          },
          "cnf": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "deny_reasons": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": "array"
          },
          "exp": {
            "format": "int64",
            "type": "integer"
          },
          "extensions": {
            "additionalProperties": {},
            "type": "object"
          },
          "flow_id": {
            "type": "string"
          },
          "iat": {
            "format": "int64",
            "type": "integer"
          },
          "idp": {
            "type": "string"
          },
          "inactive_reason": {
            "type": "string"
          },
          "iss": {
            "type": "string"
          },
          "matched_segments": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "obligations": {
            "additionalProperties": {},
            "type": "object"
          },
          "reason": {
            "type": "string"
          },
          "resource": {
            "type": "string"
          },
          "resource_types": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "scope": {
            "type": "string"
          },
          "sub": {
            "type": "string"
          },
          "token_type": {
            "type": "string"
          },
          "username": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "JsonNode": {},
      "ManagedResourceDto": {
        "properties": {
          "connectorId": {
            "type": "string"
          },
          "connectorVersion": {
            "type": "string"
          },
          "defaultScope": {
            "type": "string"
          },
          "displayName": {
            "minLength": 1,
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "resourceType": {
            "type": "string"
          },
          "routes": {
            "$ref": "#/components/schemas/JsonNode"
          },
          "status": {
            "type": "string"
          },
          "tools": {
            "$ref": "#/components/schemas/JsonNode"
          },
          "upstreamAuth": {
            "$ref": "#/components/schemas/JsonNode"
          },
          "upstreamType": {
            "enum": [
              "REST",
              "MCP",
              "STATIC"
            ],
            "type": "string"
          },
          "upstreamUrl": {
            "type": "string"
          }
        },
        "required": [
          "displayName",
          "name",
          "upstreamType"
        ],
        "type": "object"
      },
      "PageAuditLogDto": {
        "properties": {
          "content": {
            "items": {
              "$ref": "#/components/schemas/AuditLogDto"
            },
            "type": "array"
          },
          "empty": {
            "type": "boolean"
          },
          "first": {
            "type": "boolean"
          },
          "last": {
            "type": "boolean"
          },
          "number": {
            "format": "int32",
            "type": "integer"
          },
          "numberOfElements": {
            "format": "int32",
            "type": "integer"
          },
          "pageable": {
            "$ref": "#/components/schemas/PageableObject"
          },
          "size": {
            "format": "int32",
            "type": "integer"
          },
          "sort": {
            "$ref": "#/components/schemas/SortObject"
          },
          "totalElements": {
            "format": "int64",
            "type": "integer"
          },
          "totalPages": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "PageableObject": {
        "properties": {
          "offset": {
            "format": "int64",
            "type": "integer"
          },
          "pageNumber": {
            "format": "int32",
            "type": "integer"
          },
          "pageSize": {
            "format": "int32",
            "type": "integer"
          },
          "paged": {
            "type": "boolean"
          },
          "sort": {
            "$ref": "#/components/schemas/SortObject"
          },
          "unpaged": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "PolicyBundleDeployRequest": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/DataEntry"
            },
            "type": "array"
          },
          "mode": {
            "type": "string"
          },
          "rules": {
            "items": {
              "$ref": "#/components/schemas/RuleEntry"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "PolicyBundleDeployResult": {
        "properties": {
          "activation": {
            "type": "string"
          },
          "dataDeleted": {
            "format": "int32",
            "type": "integer"
          },
          "dataProtected": {
            "format": "int32",
            "type": "integer"
          },
          "dataUpserted": {
            "format": "int32",
            "type": "integer"
          },
          "mode": {
            "type": "string"
          },
          "newEtag": {
            "type": "string"
          },
          "previousEtag": {
            "type": "string"
          },
          "revision": {
            "type": "string"
          },
          "rulesDeleted": {
            "format": "int32",
            "type": "integer"
          },
          "rulesProtected": {
            "format": "int32",
            "type": "integer"
          },
          "rulesUpserted": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "PolicyChange": {
        "properties": {
          "action": {
            "type": "string"
          },
          "entityId": {
            "type": "string"
          },
          "entityType": {
            "type": "string"
          },
          "timestamp": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PolicyDataDto": {
        "properties": {
          "dataKey": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "inBundle": {
            "type": "boolean"
          },
          "payload": {
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAtFormatted": {
            "type": "string"
          },
          "version": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string"
          }
        },
        "required": [
          "dataKey"
        ],
        "type": "object"
      },
      "PolicyRuleDto": {
        "properties": {
          "content": {
            "minLength": 1,
            "type": "string"
          },
          "createdAtFormatted": {
            "type": "string"
          },
          "digest": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "kind": {
            "minLength": 1,
            "pattern": "rego|cedar",
            "type": "string"
          },
          "path": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          },
          "version": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string"
          }
        },
        "required": [
          "content",
          "kind",
          "path",
          "version"
        ],
        "type": "object"
      },
      "RegisterRequest": {
        "properties": {
          "client_name": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string"
          },
          "client_uri": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          },
          "contacts": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dpop_bound_access_tokens": {
            "type": "boolean"
          },
          "grant_types": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "jwks": {
            "additionalProperties": {},
            "type": "object"
          },
          "jwks_uri": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          },
          "logo_uri": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          },
          "policy_uri": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          },
          "redirect_uris": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          },
          "response_types": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "scope": {
            "maxLength": 1024,
            "minLength": 0,
            "type": "string"
          },
          "software_id": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string"
          },
          "software_statement": {
            "type": "string"
          },
          "software_version": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string"
          },
          "token_endpoint_auth_method": {
            "pattern": "none|client_secret_post|client_secret_basic|private_key_jwt",
            "type": "string"
          },
          "tos_uri": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          }
        },
        "required": [
          "redirect_uris"
        ],
        "type": "object"
      },
      "RegisterResponse": {
        "properties": {
          "client_id": {
            "type": "string"
          },
          "client_id_issued_at": {
            "format": "int64",
            "type": "integer"
          },
          "client_name": {
            "type": "string"
          },
          "client_secret": {
            "type": "string"
          },
          "client_secret_expires_at": {
            "format": "int64",
            "type": "integer"
          },
          "client_uri": {
            "type": "string"
          },
          "contacts": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dpop_bound_access_tokens": {
            "type": "boolean"
          },
          "grant_types": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "jwks": {
            "additionalProperties": {},
            "type": "object"
          },
          "jwks_uri": {
            "type": "string"
          },
          "logo_uri": {
            "type": "string"
          },
          "policy_uri": {
            "type": "string"
          },
          "redirect_uris": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "response_types": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "scope": {
            "type": "string"
          },
          "software_id": {
            "type": "string"
          },
          "software_statement": {
            "type": "string"
          },
          "software_version": {
            "type": "string"
          },
          "token_endpoint_auth_method": {
            "type": "string"
          },
          "tos_uri": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "RegisteredClient": {
        "properties": {
          "clientId": {
            "type": "string"
          },
          "clientName": {
            "type": "string"
          },
          "clientType": {
            "type": "string"
          },
          "registrationType": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Resource": {
        "properties": {
          "id": {
            "type": "string"
          },
          "properties": {
            "additionalProperties": {},
            "type": "object"
          },
          "type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ResourceSummary": {
        "properties": {
          "decisionCount": {
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "resourceIndicator": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ResourceSync": {
        "properties": {
          "resource": {
            "type": "string"
          },
          "routeCount": {
            "format": "int32",
            "type": "integer"
          },
          "scopesAdded": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "RuleEntry": {
        "properties": {
          "content": {
            "minLength": 1,
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "path": {
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "content",
          "path"
        ],
        "type": "object"
      },
      "SortObject": {
        "properties": {
          "empty": {
            "type": "boolean"
          },
          "sorted": {
            "type": "boolean"
          },
          "unsorted": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "Subject": {
        "properties": {
          "id": {
            "type": "string"
          },
          "properties": {
            "additionalProperties": {},
            "type": "object"
          },
          "type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "SyncReport": {
        "properties": {
          "connectors": {
            "items": {
              "$ref": "#/components/schemas/ConnectorSync"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "AdminApiKey": {
        "description": "An admin API key, set as PBAC_ADMIN_API_KEY or minted through the admin keys endpoints.",
        "in": "header",
        "name": "X-Admin-API-Key",
        "type": "apiKey"
      },
      "BasicAuth": {
        "description": "Client credentials, `client_id:client_secret`.",
        "scheme": "basic",
        "type": "http"
      },
      "BearerAuth": {
        "description": "An OAuth 2.0 access token.",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "OAuth 2.0 and AuthZEN authorization server that decides with an OPA policy engine.",
    "title": "PolicyArc",
    "version": "0.65.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/.well-known/jwks.json": {
      "get": {
        "operationId": "get-the-signing-keys",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {},
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "Get the signing keys",
        "tags": [
          "oauth-discovery"
        ]
      }
    },
    "/.well-known/oauth-authorization-server": {
      "get": {
        "operationId": "get-authorization-server-metadata-rfc-8414",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {},
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "Get authorization server metadata (RFC 8414)",
        "tags": [
          "oauth-discovery"
        ]
      }
    },
    "/.well-known/oauth-protected-resource": {
      "get": {
        "operationId": "get-protected-resource-metadata-for-the-gateway",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {},
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "Get protected resource metadata for the gateway",
        "tags": [
          "gateway-discovery"
        ]
      }
    },
    "/.well-known/openid-configuration": {
      "get": {
        "operationId": "get-openid-connect-discovery-metadata",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {},
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "Get OpenID Connect discovery metadata",
        "tags": [
          "oauth-discovery"
        ]
      }
    },
    "/access/v1/evaluation": {
      "post": {
        "operationId": "evaluate-an-access-request",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EvaluationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EvaluationResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Evaluate an access request",
        "tags": [
          "authzen-access-evaluation"
        ]
      }
    },
    "/admin/api/admin-keys": {
      "get": {
        "operationId": "list-admin-api-keys",
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AdminApiKeyView"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "List admin API keys",
        "tags": [
          "admin-admin-keys"
        ]
      }
    },
    "/admin/api/audit-logs": {
      "get": {
        "description": "Rows come back newest first. The `sort` parameter is accepted and ignored. Pages are zero-based and hold 20 rows by default.",
        "operationId": "list-audit-rows",
        "parameters": [
          {
            "in": "query",
            "name": "endpoint",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "clientId",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "subjectId",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "outcome",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "flowId",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "description": "Zero-based page index (0..N)",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "The size of the page to be returned",
            "in": "query",
            "name": "size",
            "required": false,
            "schema": {
              "default": 20,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/PageAuditLogDto"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "List audit rows",
        "tags": [
          "admin-audit"
        ]
      }
    },
    "/admin/api/audit-logs/export": {
      "get": {
        "operationId": "export-audit-rows",
        "parameters": [
          {
            "in": "query",
            "name": "endpoint",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "clientId",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "subjectId",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "outcome",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "flowId",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fromInstant",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "toInstant",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "format",
            "required": false,
            "schema": {
              "default": "json",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Export audit rows",
        "tags": [
          "admin-audit"
        ]
      }
    },
    "/admin/api/audit-logs/{id}": {
      "get": {
        "operationId": "get-an-audit-row",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AuditLogDto"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Get an audit row",
        "tags": [
          "admin-audit"
        ]
      }
    },
    "/admin/api/bundle-audit": {
      "get": {
        "operationId": "list-bundle-revisions",
        "parameters": [
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "default": 0,
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "size",
            "required": false,
            "schema": {
              "default": 50,
              "format": "int32",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/BundleAuditLogDto"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "List bundle revisions",
        "tags": [
          "admin-policy-bundle"
        ]
      }
    },
    "/admin/api/bundle-audit/at": {
      "get": {
        "operationId": "get-the-bundle-revision-active-at-a-time",
        "parameters": [
          {
            "in": "query",
            "name": "timestamp",
            "required": true,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/BundleAuditLogDto"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Get the bundle revision active at a time",
        "tags": [
          "admin-policy-bundle"
        ]
      }
    },
    "/admin/api/bundle-audit/latest": {
      "get": {
        "operationId": "get-the-latest-bundle-revision",
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/BundleAuditLogDto"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Get the latest bundle revision",
        "tags": [
          "admin-policy-bundle"
        ]
      }
    },
    "/admin/api/clients": {
      "get": {
        "operationId": "list-clients",
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ClientDto"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "List clients",
        "tags": [
          "admin-clients"
        ]
      },
      "post": {
        "operationId": "create-a-client",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClientDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ClientDto"
                }
              }
            },
            "description": "Created"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Create a client",
        "tags": [
          "admin-clients"
        ]
      }
    },
    "/admin/api/clients/{clientId}": {
      "delete": {
        "operationId": "delete-a-client",
        "parameters": [
          {
            "in": "path",
            "name": "clientId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Delete a client",
        "tags": [
          "admin-clients"
        ]
      },
      "get": {
        "operationId": "get-a-client",
        "parameters": [
          {
            "in": "path",
            "name": "clientId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ClientDto"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Get a client",
        "tags": [
          "admin-clients"
        ]
      },
      "put": {
        "operationId": "update-a-client",
        "parameters": [
          {
            "in": "path",
            "name": "clientId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClientDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ClientDto"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Update a client",
        "tags": [
          "admin-clients"
        ]
      }
    },
    "/admin/api/clients/{clientId}/rotate-secret": {
      "post": {
        "operationId": "rotate-a-client-secret",
        "parameters": [
          {
            "in": "path",
            "name": "clientId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Rotate a client secret",
        "tags": [
          "admin-clients"
        ]
      }
    },
    "/admin/api/connectors": {
      "get": {
        "operationId": "list-installed-connectors",
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ConnectorDto"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "List installed connectors",
        "tags": [
          "gateway-connectors"
        ]
      }
    },
    "/admin/api/connectors/available": {
      "get": {
        "operationId": "list-available-connectors",
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ConnectorDto"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "List available connectors",
        "tags": [
          "gateway-connectors"
        ]
      }
    },
    "/admin/api/connectors/sync": {
      "post": {
        "operationId": "sync-all-connectors",
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/SyncReport"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Sync all connectors",
        "tags": [
          "gateway-connectors"
        ]
      }
    },
    "/admin/api/connectors/{id}": {
      "delete": {
        "operationId": "uninstall-a-connector",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Uninstall a connector",
        "tags": [
          "gateway-connectors"
        ]
      },
      "get": {
        "operationId": "get-an-installed-connector",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorDto"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Get an installed connector",
        "tags": [
          "gateway-connectors"
        ]
      }
    },
    "/admin/api/connectors/{id}/install": {
      "post": {
        "operationId": "install-a-connector",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorDto"
                }
              }
            },
            "description": "OK"
          },
          "201": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorDto"
                }
              }
            },
            "description": "Installed now"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Install a connector",
        "tags": [
          "gateway-connectors"
        ]
      }
    },
    "/admin/api/connectors/{id}/sync": {
      "post": {
        "operationId": "sync-one-connector",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/SyncReport"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Sync one connector",
        "tags": [
          "gateway-connectors"
        ]
      }
    },
    "/admin/api/controls": {
      "get": {
        "description": "One compact row per control: what it decides, at which entrypoints, whether an operator can configure it, and which settings it owns.",
        "operationId": "list-controls",
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "items": {
                    "additionalProperties": {},
                    "type": "object"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "List controls",
        "tags": [
          "admin-policy-controls"
        ]
      }
    },
    "/admin/api/controls/settings": {
      "get": {
        "description": "Each entry is `<policy-data row>#<path>`. This is the deployment's complete configuration surface for policy — the list an operator would otherwise have to assemble by reading every Rego file.",
        "operationId": "get-control-settings",
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "additionalProperties": {},
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Get control settings",
        "tags": [
          "admin-policy-controls"
        ]
      }
    },
    "/admin/api/controls/{id}": {
      "get": {
        "description": "Every part of the control: implementation sites (including whether the logic lives in its own Rego package, a fragment file declaring another package, inline in an entrypoint, or Java), the policy-data rows it owns and who may write them, what it reads from the PDP input, what it emits, and every reason code it can produce with that code's category.",
        "operationId": "get-a-control",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/JsonNode"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Get a control",
        "tags": [
          "admin-policy-controls"
        ]
      }
    },
    "/admin/api/identity-providers": {
      "get": {
        "operationId": "list-identity-providers",
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/IdentityProviderDto"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "List identity providers",
        "tags": [
          "admin-identity-providers"
        ]
      },
      "post": {
        "operationId": "create-an-identity-provider",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdentityProviderDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityProviderDto"
                }
              }
            },
            "description": "Created"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Create an identity provider",
        "tags": [
          "admin-identity-providers"
        ]
      }
    },
    "/admin/api/identity-providers/{idpId}": {
      "delete": {
        "operationId": "delete-an-identity-provider",
        "parameters": [
          {
            "in": "path",
            "name": "idpId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Delete an identity provider",
        "tags": [
          "admin-identity-providers"
        ]
      },
      "get": {
        "operationId": "get-an-identity-provider",
        "parameters": [
          {
            "in": "path",
            "name": "idpId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityProviderDto"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Get an identity provider",
        "tags": [
          "admin-identity-providers"
        ]
      },
      "put": {
        "operationId": "update-an-identity-provider",
        "parameters": [
          {
            "in": "path",
            "name": "idpId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdentityProviderDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityProviderDto"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Update an identity provider",
        "tags": [
          "admin-identity-providers"
        ]
      }
    },
    "/admin/api/managed-resources": {
      "get": {
        "operationId": "list-managed-resources",
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ManagedResourceDto"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "List managed resources",
        "tags": [
          "gateway-managed-resources"
        ]
      },
      "post": {
        "operationId": "register-a-managed-resource",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ManagedResourceDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedResourceDto"
                }
              }
            },
            "description": "Created"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Register a managed resource",
        "tags": [
          "gateway-managed-resources"
        ]
      }
    },
    "/admin/api/managed-resources/{name}": {
      "delete": {
        "operationId": "delete-a-managed-resource",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Delete a managed resource",
        "tags": [
          "gateway-managed-resources"
        ]
      },
      "get": {
        "operationId": "get-a-managed-resource",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedResourceDto"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Get a managed resource",
        "tags": [
          "gateway-managed-resources"
        ]
      },
      "put": {
        "operationId": "update-a-managed-resource",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ManagedResourceDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedResourceDto"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Update a managed resource",
        "tags": [
          "gateway-managed-resources"
        ]
      }
    },
    "/admin/api/managed-resources/{name}/update-routes": {
      "post": {
        "operationId": "update-a-managed-resource-s-routes",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedResourceDto"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Update a managed resource's routes",
        "tags": [
          "gateway-managed-resources"
        ]
      }
    },
    "/admin/api/policy-bundle/deploy": {
      "post": {
        "operationId": "deploy-rules-and-data-as-one-bundle",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PolicyBundleDeployRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/PolicyBundleDeployResult"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "description": "The save was not activated by OPA and was rolled back. The body carries `error` (`bundle_not_activated` or `opa_unreachable`), `expectedRevision`, `activeRevision` and `rolledBack`."
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Deploy rules and data as one bundle",
        "tags": [
          "admin-policy-bundle"
        ]
      }
    },
    "/admin/api/policy-data": {
      "get": {
        "operationId": "list-policy-data-rows",
        "parameters": [
          {
            "in": "query",
            "name": "bundledOnly",
            "required": false,
            "schema": {
              "default": false,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PolicyDataDto"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "List policy data rows",
        "tags": [
          "admin-policy-data"
        ]
      },
      "post": {
        "operationId": "create-a-policy-data-row",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PolicyDataDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/PolicyDataDto"
                }
              }
            },
            "description": "Created"
          },
          "422": {
            "description": "The document does not satisfy the schema its control declares. The body lists `dataKey` and `failures`."
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Create a policy data row",
        "tags": [
          "admin-policy-data"
        ]
      }
    },
    "/admin/api/policy-data/by-key": {
      "patch": {
        "operationId": "merge-into-policy-data-by-key",
        "parameters": [
          {
            "in": "query",
            "name": "dataKey",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JsonNode"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/PolicyDataDto"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "description": "The document does not satisfy the schema its control declares. The body lists `dataKey` and `failures`."
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Merge into policy data by key",
        "tags": [
          "admin-policy-data"
        ]
      },
      "put": {
        "operationId": "create-or-replace-policy-data-by-key",
        "parameters": [
          {
            "in": "query",
            "name": "dataKey",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PolicyDataDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/PolicyDataDto"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "description": "The document does not satisfy the schema its control declares. The body lists `dataKey` and `failures`."
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Create or replace policy data by key",
        "tags": [
          "admin-policy-data"
        ]
      }
    },
    "/admin/api/policy-data/{id}": {
      "delete": {
        "operationId": "delete-a-policy-data-row",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Delete a policy data row",
        "tags": [
          "admin-policy-data"
        ]
      },
      "get": {
        "operationId": "get-a-policy-data-row",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/PolicyDataDto"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Get a policy data row",
        "tags": [
          "admin-policy-data"
        ]
      },
      "put": {
        "operationId": "update-a-policy-data-row",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PolicyDataDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/PolicyDataDto"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "description": "The document does not satisfy the schema its control declares. The body lists `dataKey` and `failures`."
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Update a policy data row",
        "tags": [
          "admin-policy-data"
        ]
      }
    },
    "/admin/api/policy-rules": {
      "get": {
        "operationId": "list-policy-rules",
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PolicyRuleDto"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "List policy rules",
        "tags": [
          "admin-policy-rules"
        ]
      },
      "post": {
        "operationId": "create-a-policy-rule",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PolicyRuleDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/PolicyRuleDto"
                }
              }
            },
            "description": "Created"
          },
          "422": {
            "description": "The save was not activated by OPA and was rolled back. The body carries `error` (`bundle_not_activated` or `opa_unreachable`), `expectedRevision`, `activeRevision` and `rolledBack`."
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Create a policy rule",
        "tags": [
          "admin-policy-rules"
        ]
      }
    },
    "/admin/api/policy-rules/by-path": {
      "put": {
        "operationId": "create-or-update-a-policy-rule-by-path",
        "parameters": [
          {
            "in": "query",
            "name": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PolicyRuleDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/PolicyRuleDto"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "description": "The save was not activated by OPA and was rolled back. The body carries `error` (`bundle_not_activated` or `opa_unreachable`), `expectedRevision`, `activeRevision` and `rolledBack`."
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Create or update a policy rule by path",
        "tags": [
          "admin-policy-rules"
        ]
      }
    },
    "/admin/api/policy-rules/{id}": {
      "delete": {
        "operationId": "delete-a-policy-rule",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Delete a policy rule",
        "tags": [
          "admin-policy-rules"
        ]
      },
      "get": {
        "operationId": "get-a-policy-rule",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/PolicyRuleDto"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Get a policy rule",
        "tags": [
          "admin-policy-rules"
        ]
      },
      "put": {
        "operationId": "update-a-policy-rule",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PolicyRuleDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/PolicyRuleDto"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "description": "The save was not activated by OPA and was rolled back. The body carries `error` (`bundle_not_activated` or `opa_unreachable`), `expectedRevision`, `activeRevision` and `rolledBack`."
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Update a policy rule",
        "tags": [
          "admin-policy-rules"
        ]
      }
    },
    "/admin/api/reports/governance": {
      "get": {
        "operationId": "get-the-governance-report",
        "parameters": [
          {
            "in": "query",
            "name": "from",
            "required": true,
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "to",
            "required": true,
            "schema": {
              "format": "date",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/GovernanceReportDto"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "AdminApiKey": []
          }
        ],
        "summary": "Get the governance report",
        "tags": [
          "admin-audit"
        ]
      }
    },
    "/authorize": {
      "get": {
        "description": "A browser request. The user signs in at the upstream identity provider.",
        "operationId": "start-an-authorization-code-flow",
        "parameters": [
          {
            "in": "query",
            "name": "response_type",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "client_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "redirect_uri",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "scope",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "state",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "nonce",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resource",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resource_types",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "authorization_details",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "acr_values",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prompt",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "code_challenge",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "code_challenge_method",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "login_hint",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [],
        "summary": "Start an authorization code flow",
        "tags": [
          "oauth-authorization"
        ]
      }
    },
    "/bc-authorize": {
      "post": {
        "description": "Confidential clients only. Client authentication is the same as for `/token`.",
        "operationId": "start-a-backchannel-ciba-request",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "authorization_details": {
                    "type": "string"
                  },
                  "binding_message": {
                    "type": "string"
                  },
                  "client_assertion": {
                    "type": "string"
                  },
                  "client_assertion_type": {
                    "type": "string"
                  },
                  "client_id": {
                    "type": "string"
                  },
                  "client_secret": {
                    "type": "string"
                  },
                  "id_token_hint": {
                    "type": "string"
                  },
                  "login_hint": {
                    "type": "string"
                  },
                  "login_hint_token": {
                    "type": "string"
                  },
                  "resource": {
                    "type": "string"
                  },
                  "scope": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "BasicAuth": []
          }
        ],
        "summary": "Start a backchannel (CIBA) request",
        "tags": [
          "oauth-authorization"
        ]
      }
    },
    "/introspect": {
      "post": {
        "description": "The caller sends a Bearer token with the `introspection` or `uma_protection` scope, or HTTP Basic client credentials.",
        "operationId": "introspect-a-token",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "client_assertion": {
                    "type": "string"
                  },
                  "client_assertion_type": {
                    "type": "string"
                  },
                  "client_id": {
                    "type": "string"
                  },
                  "client_secret": {
                    "type": "string"
                  },
                  "context": {
                    "type": "string"
                  },
                  "token": {
                    "type": "string"
                  },
                  "token_type_hint": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/IntrospectResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "BasicAuth": []
          }
        ],
        "summary": "Introspect a token",
        "tags": [
          "oauth-tokens"
        ]
      }
    },
    "/register": {
      "post": {
        "description": "No credential is required. A request without a `software_statement` is checked against the public client policy.",
        "operationId": "register-a-client-rfc-7591",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/RegisterResponse"
                }
              }
            },
            "description": "Created"
          }
        },
        "security": [],
        "summary": "Register a client (RFC 7591)",
        "tags": [
          "oauth-authorization"
        ]
      }
    },
    "/revoke": {
      "post": {
        "description": "Client authentication is the same as for `/token`. The response is 200 even when the token is unknown.",
        "operationId": "revoke-a-token-rfc-7009",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "client_assertion": {
                    "type": "string"
                  },
                  "client_assertion_type": {
                    "type": "string"
                  },
                  "client_id": {
                    "type": "string"
                  },
                  "client_secret": {
                    "type": "string"
                  },
                  "token": {
                    "type": "string"
                  },
                  "token_type_hint": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [
          {
            "BasicAuth": []
          }
        ],
        "summary": "Revoke a token (RFC 7009)",
        "tags": [
          "oauth-tokens"
        ]
      }
    },
    "/token": {
      "post": {
        "description": "Client authentication is HTTP Basic, `client_secret` in the body, or a `private_key_jwt` assertion. Public clients send `client_id` only.",
        "operationId": "request-an-access-token",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "actor_token": {
                    "type": "string"
                  },
                  "actor_token_type": {
                    "type": "string"
                  },
                  "audience": {
                    "type": "string"
                  },
                  "auth_req_id": {
                    "type": "string"
                  },
                  "authorization_details": {
                    "type": "string"
                  },
                  "client_assertion": {
                    "type": "string"
                  },
                  "client_assertion_type": {
                    "type": "string"
                  },
                  "client_id": {
                    "type": "string"
                  },
                  "client_secret": {
                    "type": "string"
                  },
                  "code": {
                    "type": "string"
                  },
                  "code_verifier": {
                    "type": "string"
                  },
                  "grant_type": {
                    "type": "string"
                  },
                  "redirect_uri": {
                    "type": "string"
                  },
                  "refresh_token": {
                    "type": "string"
                  },
                  "requested_token_type": {
                    "type": "string"
                  },
                  "resource": {
                    "type": "string"
                  },
                  "resource_types": {
                    "type": "string"
                  },
                  "scope": {
                    "type": "string"
                  },
                  "subject_token": {
                    "type": "string"
                  },
                  "subject_token_type": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "BasicAuth": []
          }
        ],
        "summary": "Request an access token",
        "tags": [
          "oauth-tokens"
        ]
      }
    },
    "/userinfo": {
      "get": {
        "operationId": "get-claims-for-the-access-token-get",
        "parameters": [
          {
            "in": "header",
            "name": "Authorization",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get claims for the access token (GET)",
        "tags": [
          "oauth-tokens"
        ]
      },
      "post": {
        "operationId": "get-claims-for-the-access-token-post",
        "parameters": [
          {
            "in": "header",
            "name": "Authorization",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get claims for the access token (POST)",
        "tags": [
          "oauth-tokens"
        ]
      }
    }
  },
  "servers": [
    {
      "description": "Your PolicyArc environment",
      "url": "https://<your-environment>"
    }
  ],
  "tags": [
    {
      "name": "admin-admin-keys",
      "x-displayName": "Admin - Admin keys"
    },
    {
      "name": "admin-audit",
      "x-displayName": "Admin - Audit"
    },
    {
      "name": "admin-clients",
      "x-displayName": "Admin - Clients"
    },
    {
      "name": "admin-identity-providers",
      "x-displayName": "Admin - Identity providers"
    },
    {
      "name": "admin-policy-bundle",
      "x-displayName": "Admin - Policy bundle"
    },
    {
      "name": "admin-policy-controls",
      "x-displayName": "Admin - Policy controls"
    },
    {
      "name": "admin-policy-data",
      "x-displayName": "Admin - Policy data"
    },
    {
      "name": "admin-policy-rules",
      "x-displayName": "Admin - Policy rules"
    },
    {
      "name": "authzen-access-evaluation",
      "x-displayName": "AuthZEN - Access evaluation"
    },
    {
      "name": "gateway-connectors",
      "x-displayName": "Gateway - Connectors"
    },
    {
      "name": "gateway-discovery",
      "x-displayName": "Gateway - Discovery"
    },
    {
      "name": "gateway-managed-resources",
      "x-displayName": "Gateway - Managed resources"
    },
    {
      "name": "oauth-authorization",
      "x-displayName": "OAuth - Authorization"
    },
    {
      "name": "oauth-discovery",
      "x-displayName": "OAuth - Discovery"
    },
    {
      "name": "oauth-tokens",
      "x-displayName": "OAuth - Tokens"
    }
  ]
}
