import {z} from 'zod' export type ApiOpsLimitAssignmentSubjectDTO = {type?: ('PLATFORM' | 'PROJECT' | 'ORGANIZATION' | 'CONSUMER' | 'APPLICATION' | 'API_CLIENT' | 'API_PROXY' | 'AUDIENCE_RULE') | undefined, key?: string | undefined}; export type ApiOpsLimitAssignmentTargetDTO = {type?: ('ALL' | 'API_PROXY' | 'API_PROXY_ENV' | 'API_PROXY_GROUP' | 'API_PROXY_GROUP_ENV' | 'API_ENDPOINT' | 'API_ENDPOINT_ENV' | 'AI_MODEL' | 'AI_PROVIDER') | undefined, apiProxyName?: string | undefined, apiProxyGroupName?: string | undefined, environmentName?: string | undefined, targetKey?: string | undefined, endpointHttpMethod?: string | undefined, endpointPath?: string | undefined, llmProviderName?: string | undefined, projectName?: string | undefined, httpMethods?: Array | undefined}; export type AiModelBudgetDTO = {modelId: string, tokensPerHour?: number | undefined, tokensPerDay?: number | undefined, tokensPerMonth?: number | undefined, monthlyBudgetUsd?: number | undefined, usdPerHour?: number | undefined, usdPerDay?: number | undefined, overflowAction?: ('BLOCK' | 'FAILOVER' | 'ALERT_ONLY' | 'CHEAPER_MODEL') | undefined}; export type AiProviderBudgetDTO = {providerRef: string, tokensPerHour?: number | undefined, tokensPerDay?: number | undefined, tokensPerMonth?: number | undefined, monthlyBudgetUsd?: number | undefined, usdPerHour?: number | undefined, usdPerDay?: number | undefined, overflowAction?: ('BLOCK' | 'FAILOVER' | 'ALERT_ONLY' | 'CHEAPER_MODEL') | undefined}; export type AiTokenBudgetDTO = {enabled?: boolean | undefined, tokensPerHour?: number | undefined, tokensPerMinute?: number | undefined, tokensPerDay?: number | undefined, tokensPerMonth?: number | undefined, monthlyBudgetUsd?: number | undefined, usdPerMinute?: number | undefined, usdPerHour?: number | undefined, usdPerDay?: number | undefined, requestsPerMinute?: number | undefined, requestsPerHour?: number | undefined, requestsPerDay?: number | undefined, requestsPerMonth?: number | undefined, softCapPercents?: Array | undefined, hardCapPercent?: number | undefined, overflowAction?: ('BLOCK' | 'FAILOVER' | 'ALERT_ONLY' | 'CHEAPER_MODEL') | undefined, cheaperModelId?: string | undefined, customMessageTemplate?: string | undefined, customMessageContentType?: string | undefined, customMessageHttpStatusCode?: number | undefined, cacheErrorHandlingType?: string | undefined, showRateLimitStatisticsInResponseHeader?: boolean | undefined, cacheConnectionTimeoutInSeconds?: number | undefined, modelBudgets?: Array | undefined, providerBudgets?: Array | undefined}; export type WindowDTO = {permittedMessageCount: number, interval: 'ONE_SECOND' | 'ONE_MINUTE' | 'ONE_HOUR' | 'ONE_DAY' | 'ONE_MONTH', periodLength?: number | undefined, windowType?: ('FIXED' | 'SLIDING') | undefined, countingMode?: ('ALL_REQUESTS' | 'ACCEPTED_ONLY') | undefined, limitChangeAction?: ('CLAMP' | 'RESET' | 'NONE') | undefined}; export type LimitRequestRateSpecDTO = {windows?: Array | undefined, overflowAction?: ('BLOCK' | 'COUNT_ONLY') | undefined, cacheErrorHandlingType?: ('FAIL' | 'CONTINUE') | undefined, cacheConnectionTimeoutInSeconds?: number | undefined, showRateLimitStatisticsInResponseHeader?: boolean | undefined, customMessageTemplate?: string | undefined, customMessageContentType?: string | undefined, customMessageHttpStatusCode?: number | undefined}; export type LimitTargetDTO = {type?: ('ALL' | 'API_PROXY' | 'API_PROXY_ENV' | 'API_PROXY_GROUP' | 'API_PROXY_GROUP_ENV' | 'API_ENDPOINT' | 'API_ENDPOINT_ENV' | 'AI_MODEL' | 'AI_PROVIDER') | undefined, targetId?: string | undefined, environmentId?: string | undefined, httpMethods?: Array | undefined, methodSignature?: string | undefined, targetName?: string | undefined, environmentName?: string | undefined, apiProxyId?: string | undefined, apiProxyName?: string | undefined, endpointName?: string | undefined, targetProjectId?: string | undefined}; export type Variable = {id?: string | undefined, projectId?: string | undefined, projectName?: string | undefined, name?: string | undefined, description?: string | undefined, type?: ('HEADER' | 'PARAMETER' | 'BODY' | 'CONTEXT_VALUES' | 'CUSTOM') | undefined, headerName?: string | undefined, paramType?: ('QUERY' | 'PATH' | 'FORM') | undefined, paramName?: string | undefined, paramPath?: string | undefined, formName?: string | undefined, xpathValue?: string | undefined, jsonPathValue?: string | undefined, messageContentType?: ('XML' | 'JSON' | 'ALL_BODY') | undefined, contextValue?: ('REQUEST_REMOTE_ADDRESS' | 'REQUEST_HTTP_METHOD' | 'REQUEST_CONTENT_TYPE' | 'REQUEST_PATH_INFO' | 'REQUEST_CONTEXT_PATH' | 'REQUEST_QUERY_STRING' | 'REQUEST_REMOTE_USER' | 'REQUEST_USERNAME_KEY' | 'REQUEST_REQUESTED_SESSION_ID' | 'REQUEST_REQUEST_URI' | 'REQUEST_CHARACTER_ENCODING' | 'REQUEST_CHARSET' | 'REQUEST_CONTENT_LENGTH' | 'REQUEST_PROTOCOL' | 'REQUEST_SCHEME' | 'REQUEST_SERVER_NAME' | 'REQUEST_SERVER_PORT' | 'REQUEST_REMOTE_HOST' | 'REQUEST_REMOTE_PORT' | 'REQUEST_LOCAL_NAME' | 'REQUEST_LOCAL_ADDR' | 'REQUEST_LOCAL_PORT' | 'REQUEST_XFORWARDED_FOR' | 'REQUEST_ESTIMATED_TOKEN_COUNT' | 'REQUEST_MCP_TOOL_NAME' | 'REQUEST_OAUTH_CLIENT_ID' | 'REQUEST_IS_SOAP_TO_REST' | 'REQUEST_IS_APIPROXY' | 'REQUEST_IS_APIPROXYGROUP' | 'REQUEST_IS_XWWW_FORM_URL_ENCODED' | 'REQUEST_IS_FORM_DATA' | 'REQUEST_IS_BYTE_ARRAY' | 'REQUEST_HAS_ATTACHMENT' | 'REQUEST_GZIP' | 'REQUEST_DEFLATE' | 'REQUEST_BR' | 'REQUEST_ZSTD' | 'REQUEST_IDENTITY' | 'REQUEST_COMPRESS' | 'REQUEST_HTTP_SERVLET' | 'RESPONSE_IS_BYTE_ARRAY' | 'RESPONSE_GZIP' | 'RESPONSE_DEFLATE' | 'RESPONSE_BR' | 'RESPONSE_ZSTD' | 'RESPONSE_IDENTITY' | 'RESPONSE_COMPRESS' | 'RESPONSE_BACKEND_CONTENT_ENCODING' | 'RESPONSE_CHARSET' | 'RESPONSE_STATUS_CODE' | 'RESPONSE_HTTP_SERVLET' | 'ERROR_CATEGORY' | 'ERROR_TYPE' | 'ERROR_PARENT' | 'ERROR_RESULT_TYPE' | 'ERROR_MESSAGE' | 'ERROR_CODE' | 'ERROR_HTTP_CODE' | 'MESSAGE_CORRELATION_ID' | 'MESSAGE_CACHE_HIT' | 'ENVIRONMENT_ID' | 'ENVIRONMENT_NAME' | 'ENVIRONMENT_CERTIFICATE' | 'ENVIRONMENT_PRIVATEKEY' | 'ENVIRONMENT_PUBLICKEY' | 'ENVIRONMENT_SECRETKEY' | 'ENVIRONMENT_KEYSTORE' | 'ENVIRONMENT_JWK' | 'APIPROXYGROUP_ID' | 'APIPROXYGROUP_NAME' | 'APIPROXY_ID' | 'APIPROXY_NAME' | 'APIPROXY_RELATIVE_PATH' | 'APIMETHOD_ID' | 'APIMETHOD_NAME' | 'APIMETHOD_SOAP_ACTION' | 'APIMETHOD_HTTPMETHOD' | 'APIMETHOD_ENDPOINT' | 'APIMETHOD_BACKEND_HTTPMETHOD' | 'APIMETHOD_BACKEND_ENDPOINT' | 'DATETIME_YEAR' | 'DATETIME_MONTH' | 'DATETIME_DAY_OF_WEEK' | 'DATETIME_DAY_OF_MONTH' | 'DATETIME_HOUR' | 'DATETIME_MINUTE' | 'DATETIME_SECOND' | 'DATETIME_EPOCH_MILLIS' | 'DATETIME_FORMATTED_TEXT' | 'DATE_FORMATTED_TEXT' | 'TIME_FORMATTED_TEXT' | 'CREDENTIAL_USERNAME' | 'CREDENTIAL_EMAIL' | 'CREDENTIAL_FULLNAME' | 'CREDENTIAL_SECRETKEY' | 'CREDENTIAL_CERTIFICATE' | 'CREDENTIAL_PUBLICKEY' | 'CREDENTIAL_PRIVATEKEY' | 'CREDENTIAL_KEYSTORE' | 'CREDENTIAL_TRUSTSTORE' | 'CREDENTIAL_JWK_SIGNANDVALIDATION' | 'CREDENTIAL_JWK_ENCRYPTIONANDDECRYPTION') | undefined, zoneId?: string | undefined, initWithScript?: boolean | undefined, scriptLanguage?: ('GROOVY' | 'JAVASCRIPT') | undefined, scriptBody?: string | undefined}; export type ConditionRule = {conditionCriteria?: ('VALUE' | 'NOT' | 'AND' | 'OR') | undefined, firstVariable?: Variable | undefined, variableDataType?: ('NUMERIC' | 'STRING' | 'DATE') | undefined, dateFormat?: string | undefined, valueComparisonOperator?: ('LT' | 'LE' | 'GT' | 'GE' | 'EQ' | 'NE' | 'EQ_IGNORE_CASE' | 'NE_IGNORE_CASE' | 'STARTS_WITH' | 'NOT_STARTS_WITH' | 'STARTS_WITH_IGNORE_CASE' | 'NOT_STARTS_WITH_IGNORE_CASE' | 'ENDS_WITH' | 'NOT_ENDS_WITH' | 'ENDS_WITH_IGNORE_CASE' | 'NOT_ENDS_WITH_IGNORE_CASE' | 'CONTAINS' | 'NOT_CONTAINS' | 'CONTAINS_IGNORE_CASE' | 'NOT_CONTAINS_IGNORE_CASE' | 'IS_EMPTY' | 'IS_NOT_EMPTY' | 'EXISTS_AND_EMPTY' | 'IS_EXISTS' | 'IS_NOT_EXISTS' | 'IN' | 'NOT_IN' | 'IN_IGNORE_CASE' | 'NOT_IN_IGNORE_CASE') | undefined, secondValueSource?: ('VALUE' | 'VARIABLE') | undefined, secondValue?: string | undefined, secondVariable?: Variable | undefined}; export type PolicyCondition = {conditionRuleList?: Array | undefined}; export type ErrorResponseRule = {name?: string | undefined, order?: number | undefined, active?: boolean | undefined, builtIn?: boolean | undefined, condition?: PolicyCondition | undefined, template?: string | undefined, contentType?: string | undefined, httpStatusCode?: number | undefined}; export type ErrorMessage = {id?: string | undefined, errorType?: ('APIPROXY' | 'APIPROXY_HIDDENSPEC' | 'APIPROXY_SPEC_AUTH_REQUIRED' | 'API_METHOD_NOTFOUND' | 'DBTOAPI_DB_OPERATION_TYPE_NOTFOUND' | 'DBTOAPI_DB_BATCH_ARRAY_LENGTH' | 'APIPROXY_NOTFOUND' | 'APIPROXY_ENDPOINT_MISMATCH' | 'APIPROXY_ENDPOINT_MISSING_PATH_PARAM_DEFINITION' | 'APIPROXYGROUP_ACCESS_DISABLED_FROM_PROXY' | 'APIPROXY_BACKEND_ADDRESS_NOTFOUND' | 'APIPROXY_BACKEND_MTLS_SETTINGS_NOTFOUND' | 'APICRYPT_EX' | 'NOTER_SETTINGS_NOTFOUND' | 'KPS_SETTINGS_NOTFOUND' | 'KPS_SECURITY_TOKEN_FAULT' | 'KPS_SECURITY_TOKEN_NOT_VALID' | 'SCRIPT_API_NOTFOUND' | 'CONNECTION_CONFIG_DB_NOTFOUND' | 'CONNECTION_CONFIG_DB_DISABLED' | 'DATABASE_CONNECTION_EX' | 'DB_API_NOTFOUND' | 'JOB_API_NOTFOUND' | 'KPS_EX' | 'CONDITION_RULE_FORMAT_NUMERIC' | 'CONDITION_RULE_FORMAT_DATE' | 'CONDITION_RULE_CONFIGURATION' | 'CONDITION_RULE_EX' | 'POLICY_AUTH_EMPTYUSERNAMEORPSSWD' | 'POLICY_AUTH_EMPTYUSERNAME' | 'POLICY_AUTH_EMPTYPSSWD' | 'POLICY_AUTH_USERNOTEXISTS' | 'POLICY_AUTH_EX_LDAP' | 'POLICY_AUTH_EX_API' | 'POLICY_AUTH_TYPE' | 'POLICY_AUTH_EX_DB' | 'POLICY_AUTH_NOT_FOUND' | 'POLICY_AUTH_BASIC_EX' | 'POLICY_AUTH_BASE64_EX' | 'POLICY_AUTH_DIGEST_EX' | 'POLICY_AUTH_JWT3RD_EX' | 'POLICY_AUTH_JWT3RD_MISSING_CONFIG' | 'POLICY_AUTH_JWT3RD_NOT_VALID' | 'POLICY_AUTH_JWT_EX' | 'POLICY_AUTH_JWT_MISSING_CONFIG' | 'POLICY_AUTH_JWT_NOT_VALID' | 'POLICY_AUTH_OAUTH2_EX' | 'POLICY_AUTH_OAUTH2_TOKEN_EXPIRED' | 'POLICY_AUTH_OAUTH2_TOKEN_NOT_VALID' | 'POLICY_AUTH_OIDC_PROTOCOL_EX' | 'POLICY_AUTH_OIDC_AUTHENTICATION_EX' | 'POLICY_AUTH_OIDC_STOP_FLOW' | 'POLICY_AUTH_OIDC_REDIRECT' | 'POLICY_AUTH_OIDC_INVALID_TOKEN' | 'POLICY_AUTHORIZATION_EX' | 'POLICY_AUTHORIZATION_METHOD_NOT_FOUND' | 'POLICY_AUTHORIZATION_WRONG_SCOPE' | 'POLICY_API_AUTHENTICATION' | 'POLICY_API_AUTHENTICATION_NOTFOUND' | 'POLICY_SAML' | 'POLICY_SAML_SIGNATURENOTEXISTS' | 'POLICY_SAML_SIGNATURENOTVALID' | 'POLICY_SAML_KEYSTORENOTVALID' | 'POLICY_SAML_SIGNERUNKNOWN' | 'POLICY_CONTENTFILTER' | 'POLICY_CONTENTFILTER_HEADER' | 'POLICY_CONTENTFILTER_PARAM' | 'POLICY_CONTENTFILTER_BODY' | 'POLICY_CONTENTFILTER_BODY_PATH' | 'POLICY_IPWHITE_FAILED' | 'POLICY_IPWHITE_EX' | 'POLICY_IPBLACK_FAILED' | 'POLICY_IPBLACK_EX' | 'POLICY_RESTRICTION_ALLOWEDHOUR_FAILED' | 'POLICY_RESTRICTION_ALLOWEDHOUR_EX' | 'POLICY_RESTRICTION_MINMESSAGESIZE_FAILED' | 'POLICY_RESTRICTION_MAXMESSAGESIZE_FAILED' | 'POLICY_JSONSCHEMAVALIDATION' | 'POLICY_JSONSCHEMAVALIDATION_FAILED' | 'POLICY_JSONSCHEMAVALIDATION_PATH' | 'POLICY_XMLSCHEMAVALIDATION' | 'POLICY_XMLSCHEMAVALIDATION_FAILED' | 'POLICY_XMLSCHEMAVALIDATION_UNEXPECTEDBODY' | 'POLICY_XMLSCHEMAVALIDATION_PATH' | 'POLICY_XMLTRANSFORMATION' | 'POLICY_JSONTRANSFORMATION' | 'POLICY_APIBASEDTHROTTLING' | 'POLICY_APIBASEDTHROTTLING_CACHE_SERVICE' | 'POLICY_APIBASEDTHROTTLING_STOP' | 'POLICY_APIBASEDQUOTA' | 'POLICY_APIBASEDQUOTA_CACHE_SERVICE' | 'POLICY_APIBASEDQUOTA_STOP' | 'POLICY_REST2SOAP_TRANSFORMATION_REQUEST' | 'POLICY_REST2SOAP_TRANSFORMATION_RESPONSE' | 'POLICY_SCRIPT_USERSTOPPEDFLOW' | 'POLICY_SCRIPT_USERSTOPPEDFLOW_SUCCESS' | 'POLICY_SCRIPT' | 'POLICY_WSSECURITY_FROMTARGET' | 'POLICY_WSSECURITY_TOTARGET' | 'POLICY_WSSECURITY_STSTOKEN' | 'POLICY_WSSECURITY_STSTOKEN_NOTFOUND' | 'POLICY_WSSECURITY_STSTOKEN_NOTVALID' | 'POLICY_WSSECURITY_STSTOKEN_FAULT' | 'CIRCUITBREAKEROPEN_EX' | 'CIRCUITBREAKEROPEN_NO_ROUTE_EX' | 'CLIENTFLOWBANNER_EX' | 'POLICY_ROUTING_TIMEOUT' | 'POLICY_ROUTING_UNKNOWNHOST' | 'POLICY_ROUTING_MALFORMED' | 'POLICY_ROUTING_CONNECTIONREFUSED' | 'POLICY_ROUTING_CONNECTION' | 'POLICY_ROUTING_ERRORHANDLINGCONDITION' | 'POLICY_ROUTING_PROXY_EMPTY' | 'POLICY_ROUTING_PROXY_AUTHORIZATION_EMPTY' | 'POLICY_ROUTING_CONNECTION_CLOSED_CLIENT' | 'POLICY_ROUTING_CONNECTION_CLOSED_SERVER' | 'POLICY_ROUTING_SSE_CLIENT' | 'POLICY_ROUTING_SSE_SERVER' | 'POLICY_ROUTING_AI_PROVIDER_EXHAUSTED' | 'POLICY_ROUTING_AI_PROVIDER_ERROR' | 'POLICY_ROUTING_AI_NO_SUITABLE_PROVIDER' | 'POLICY_ROUTING_AI_CONTEXT_WINDOW_EXCEEDED' | 'POLICY_ROUTING_AI_MODEL_ACCESS_DENIED' | 'POLICY_AI_TOKEN_QUOTA_EXCEEDED' | 'POLICY_AI_TOKEN_COUNTER_UNAVAILABLE' | 'POLICY_AI_ANONYMOUS_NOT_ALLOWED' | 'MCP_INBOUND_BAD_REQUEST' | 'MCP_INBOUND_SERVER_NOT_FOUND' | 'MCP_INBOUND_METHOD_NOT_ALLOWED' | 'MCP_INBOUND_UNAUTHORIZED' | 'MCP_INBOUND_SESSION_LIMIT_EXCEEDED' | 'MCP_INBOUND_PARSE_ERROR' | 'MCP_INBOUND_METHOD_NOT_FOUND' | 'MCP_INBOUND_TOOL_NOT_FOUND' | 'MCP_INBOUND_TOOL_PROXY_UNAVAILABLE' | 'MCP_INBOUND_TOOL_POLICY_GATE_BLOCKED' | 'MCP_INBOUND_TOOL_EXECUTION_FAILED' | 'MCP_INBOUND_CALL_QUOTA_EXCEEDED' | 'MCP_INBOUND_TOOL_APPROVAL_REQUIRED' | 'MCP_INBOUND_ELICITATION_UNSUPPORTED' | 'A2A_INBOUND_BAD_REQUEST' | 'A2A_INBOUND_AGENT_NOT_FOUND' | 'A2A_INBOUND_METHOD_NOT_ALLOWED' | 'A2A_INBOUND_UNAUTHORIZED' | 'A2A_INBOUND_PARSE_ERROR' | 'A2A_INBOUND_METHOD_NOT_FOUND' | 'A2A_INBOUND_TASK_NOT_FOUND' | 'A2A_INBOUND_TASK_EXECUTION_UNAVAILABLE' | 'A2A_INBOUND_CONCURRENCY_LIMIT_EXCEEDED' | 'A2A_INBOUND_CALL_QUOTA_EXCEEDED' | 'POLICY_REDACTION' | 'POLICY_REDACTION_VARIABLE_NOT_FOUND' | 'POLICY_REDACTION_DATA_FORMAT' | 'POLICY_ENCRYPTION' | 'POLICY_ENCRYPTION_MISSING_CONFIG' | 'POLICY_DECRYPTION' | 'POLICY_DIGITALSIGN' | 'POLICY_DIGITALSIGNVALIDATION' | 'POLICY_DIGITALSIGNVALIDATION_FAILED' | 'POLICY_RESTAPI_RESPONSE' | 'POLICY_RESTAPI_CONNECTION' | 'POLICY_RESTAPI' | 'CACHE_AUTHREQUIREDTOREFRESH' | 'POLICY_ROLE_GROUP_BASED_ACCESS' | 'POLICY_ROLE_GROUP_BASED_IP_CHECK_ACCESS' | 'POLICY_PROTOCOL_TRANSFORMATION' | 'POLICY_BUSINESS_RULE' | 'POLICY_BUSINESS_RULE_DATA_FORMAT' | 'POLICY_BUSINESS_RULE_STOP' | 'POLICY_BUSINESS_RULE_VARIABLE_NOT_FOUND' | 'POLICY_MESSAGE_BUILDER' | 'POLICY_LOG' | 'APIPROXY_NOTFOUND_FORTOKEN' | 'CREDENTIAL_NOTFOUND_FORTOKEN' | 'CREDENTIAL_NOTVALID_FORTOKEN' | 'URL_TOKEN_MANAGEMENT_TYPE_MISMATCH' | 'TOKEN_POLICY_NOT_CONFIGURED' | 'POLICY_ROUTING_SSLHANDSHAKE' | 'POLICY_ROUTING_SSLEXPIRED' | 'POLICY_AUTH_CREDENTIAL_NOTEXISTS' | 'POLICY_AUTH_CREDENTIAL_PROXYNOTALLOWED' | 'POLICY_AUTH_IDENTITY_AMBIGUOUS' | 'API_CLIENT_NOT_VALID_AS_RESOURCE_OWNER' | 'POLICY_AUTH_CREDENTIAL_METHODNOTALLOWED' | 'POLICY_AUTH_CREDENTIAL_IPNOTALLOWED' | 'POLICY_AUTH_CREDENTIAL_EXPIRED' | 'POLICY_AUTH_CONTRACT_PROXY_EXPIRED' | 'POLICY_AUTH_CONTRACT_CREDENTIAL_EXPIRED' | 'POLICY_AUTH_CREDENTIAL_PSSWD' | 'POLICY_AUTH_CREDENTIAL_ENVNOTALLOWED' | 'POLICY_CLIENTBASEDTHROTTLING' | 'POLICY_CLIENTBASEDTHROTTLING_CACHE_SERVICE' | 'POLICY_CLIENTBASEDTHROTTLING_STOP' | 'POLICY_CLIENTBASEDQUOTA' | 'POLICY_CLIENTBASEDQUOTA_CACHE_SERVICE' | 'POLICY_CLIENTBASEDQUOTA_STOP' | 'POLICY_JOSE_IMPLEMENTATION_JWK_EMPTY_APIPROXY_VALIDATION' | 'POLICY_JOSE_IMPLEMENTATION_JWK_NOT_FOUND_VALIDATION' | 'POLICY_JOSE_IMPLEMENTATION_JWK_EMPTY_APIPROXY_ENCRYPTION' | 'POLICY_JOSE_IMPLEMENTATION_JWK_NOT_FOUND_ENCRYPTION' | 'POLICY_JOSE_IMPLEMENTATION_JWK_EMPTY_CREDENTIAL_VALIDATION' | 'POLICY_JOSE_IMPLEMENTATION_JWK_NOT_FOUND_CREDENTIAL_VALIDATION' | 'POLICY_JOSE_IMPLEMENTATION_JWK_EMPTY_CREDENTIAL_ENCRYPTION' | 'POLICY_JOSE_IMPLEMENTATION_JWK_NOT_FOUND_CREDENTIAL_ENCRYPTION' | 'POLICY_JOSE_IMPLEMENTATION_SIGN' | 'POLICY_JOSE_IMPLEMENTATION_ENCRYPTION' | 'POLICY_JOSE_IMPLEMENTATION_ENCRYPTION_NEED_SIGN' | 'POLICY_JOSE_IMPLEMENTATION_EX' | 'POLICY_JOSE_IMPLEMENTATION_TARGET_VALUE_NOT_FOUND' | 'POLICY_JOSE_VALIDATION_JWK_EMPTY_APIPROXY_ENCRYPTION' | 'POLICY_JOSE_VALIDATION_JWK_NOT_FOUND_ENCRYPTION' | 'POLICY_JOSE_VALIDATION_JWK_EMPTY_APIPROXY_VALIDATE' | 'POLICY_JOSE_VALIDATION_JWK_NOT_FOUND_VALIDATE' | 'POLICY_JOSE_VALIDATION_JWK_EMPTY_CREDENTIAL_SIGN' | 'POLICY_JOSE_VALIDATION_JWK_EMPTY_CREDENTIAL_ENC' | 'POLICY_JOSE_VALIDATION_JWK_NOT_FOUND_CREDENTIAL_ENC' | 'POLICY_JOSE_VALIDATION_JWK_NOT_FOUND_CREDENTIAL_SIGN' | 'POLICY_JOSE_VALIDATION_TARGET_VALUE_EMPTY' | 'POLICY_JOSE_VALIDATION_ISSUER_EMPTY' | 'POLICY_JOSE_VALIDATION_PARSE_JWT' | 'POLICY_JOSE_VALIDATION_DECRYPTION' | 'POLICY_JOSE_VALIDATION_JWT_IS_NOT_ENCRYPTED' | 'POLICY_JOSE_VALIDATION_SIGNVALIDATION' | 'POLICY_JOSE_VALIDATION_JWT_IS_NOT_SIGNED' | 'POLICY_JOSE_VALIDATION_CLAIMVALIDATION' | 'POLICY_JOSE_VALIDATION_SIGNATUREINVALID' | 'POLICY_JOSE_VALIDATION_EX' | 'POLICY_MTLS_AUTHENTICATION_CERTIFICATE_MISSING' | 'POLICY_MTLS_AUTHENTICATION_CERTIFICATE_NOTVALID' | 'POLICY_MTLS_AUTHENTICATION_CERTIFICATE_ISSUER_MISSING' | 'POLICY_MTLS_AUTHENTICATION_EX' | 'POLICY_MTLS_AUTHENTICATION_ISSUER_MTLS_MISSING' | 'POLICY_MTLS_AUTHENTICATION_ISSUER_CERT_NOT_MATCH' | 'CONNECTOR_SETTINGS_NOTFOUND' | 'CONNECTOR_SETTINGS_DISABLED' | 'CONNECTOR_EX' | 'POLICY_ROUTING_ILLEGAL_ARGUMENT' | 'POLICY_ROUTING_CLIENT_PROTOCOL' | 'POLICY_JOSE_IMPLEMENTATION_JWK_EXPIRED' | 'POLICY_JOSE_VALIDATION_JWK_EXPIRED' | 'POLICY_GROUP_EX' | 'POLICY_ENDPOINTRATELIMIT' | 'POLICY_ENDPOINTRATELIMIT_CACHE_SERVICE' | 'POLICY_ENDPOINTRATELIMIT_STOP' | 'POLICY_ENDPOINTRATELIMIT_TARGETNOTEXIST' | 'POLICY_CLIENTBANNER_BANNED' | 'POLICY_CLIENTBANNER_EX' | 'POLICY_CLIENTBANNER_IDENTITYNOTFOUND' | 'POLICY_WSSECURITY_SIGN' | 'POLICY_WSSECURITY_SIGN_VALIDATION' | 'POLICY_WSSECURITY_ENCRYPT' | 'POLICY_WSSECURITY_DECRYPT' | 'POLICY_WSSECURITY_USERNAME' | 'POLICY_WSSECURITY_TIMESTAMP' | 'POLICY_AUTH_EX' | 'POLICY_AUTH_CREDENTIALS_MISSING' | 'JOSE_VAL_CONFIG_ERROR' | 'JOSE_VAL_EX' | 'JOSE_VAL_TOKEN_INVALID' | 'POLICY_JOSE_VALIDATION_DPOP_INVALID' | 'POLICY_JOSE_VALIDATION_DPOP_BINDING_MISMATCH' | 'JOSE_IMPL_CONFIG_ERROR' | 'APIPROXY_CONFIG_ERROR' | 'APIPROXY_EX' | 'CONTENTFILTER_VIOLATION' | 'THROTTLING_STOP' | 'THROTTLING_EX' | 'THROTTLING_CACHE_SERVICE' | 'QUOTA_STOP' | 'QUOTA_EX' | 'QUOTA_CACHE_SERVICE' | 'ROUTING_CIRCUITBREAKER' | 'ROUTING_CLIENT_ERROR' | 'ROUTING_CONFIG_ERROR' | 'ROUTING_MTLS_CONFIG_FAILED' | 'ROUTING_SSE_EX' | 'ENDPOINT_RATELIMIT_EX' | 'ENDPOINT_RATELIMIT_EXCEEDED' | 'ENDPOINT_RATELIMIT_IDENTITY_NOT_ALLOWED' | 'ENDPOINT_RATELIMIT_IDENTITY_NOT_RESOLVED' | 'RLCL_AUTHENTICATION_POLICY_REQUIRED' | 'REST2SOAP_EX' | 'REDACTION_EX' | 'BUSINESS_RULE_EX' | 'MTLS_CERTIFICATE_MISSING' | 'MTLS_CERTIFICATE_NOTVALID' | 'KPS_TOKEN_EX' | 'JSON_SCHEMA_VALIDATION_FAILED' | 'XML_SCHEMA_VALIDATION_FAILED' | 'WSSECURITY_STSTOKEN_NOTVALID' | 'RESTAPI_EX' | 'CONDITION_EX' | 'POLICY_CACHE_EX' | 'POLICY_CACHE_INVALID_CONFIG' | 'POLICY_AI_MCP_TOOL_CALL_CONFIG_MISSING' | 'POLICY_AI_A2A_AGENT_CALL_CONFIG_MISSING' | 'POLICY_AI_A2A_AGENT_INVOKE_CONFIG_MISSING' | 'POLICY_AI_A2A_AGENT_INVOKE_INVOCATION_FAILED' | 'POLICY_AI_MCP_TOOL_INVOKE_CONFIG_MISSING' | 'POLICY_AI_MCP_TOOL_INVOKE_INVOCATION_FAILED' | 'POLICY_AI_PROMPT_GUARD_BLOCKED' | 'POLICY_AI_SEMANTIC_CACHE_ERROR' | 'POLICY_AI_RAG_INJECTION_NO_MATCH' | 'POLICY_AI_RAG_INJECTION_RETRIEVAL_ERROR' | 'POLICY_AI_DLP_BLOCKED' | 'POLICY_AI_PII_ENCODED_BLOCKED' | 'POLICY_AI_PII_MASK_FAILED' | 'POLICY_AI_LOOP_DETECTED' | 'POLICY_AI_OFF_TOPIC' | 'POLICY_AI_TOPIC_JUDGE_BLOCKED' | 'POLICY_AI_PII_JUDGE_BLOCKED' | 'POLICY_AI_CONTEXT_INTEGRITY_BLOCKED' | 'POLICY_AI_PROMPT_DECORATOR_LIMIT_EXCEEDED' | 'POLICY_AI_DENIED_TOPIC' | 'POLICY_AI_PROMPT_TEMPLATE_UNKNOWN_TEMPLATE' | 'POLICY_AI_PROMPT_TEMPLATE_MISSING_PARAM' | 'POLICY_AI_PROMPT_TEMPLATE_LIMIT_EXCEEDED' | 'POLICY_AI_GROUNDEDNESS_VIOLATION') | undefined, parentErrorType?: ('API_PROXY' | 'APICREATOR' | 'FAKE_API' | 'KPS_API' | 'CONDITION_ERR' | 'CONDITION_EX' | 'POLICY_GROUP' | 'POLICY_AUTHENTICATION' | 'POLICY_OIDC' | 'POLICY_AUTHORIZATION' | 'POLICY_API_AUTHENTICATION' | 'POLICY_THROTTLING_PER_CLIENT' | 'POLICY_APIBASEDTHROTTLING' | 'POLICY_ENDPOINTRATELIMIT' | 'POLICY_APIBASEDQUOTA' | 'POLICY_CLIENTBASEDTHROTTLING' | 'POLICY_CLIENTBASEDQUOTA' | 'POLICY_CLIENTBANNER' | 'POLICY_QUOTA_PER_CLIENT' | 'POLICY_SCRIPT' | 'POLICY_OAUTH2' | 'POLICY_SAML' | 'POLICY_JOSE_IMPLEMENTATION' | 'POLICY_JOSE_VALIDATION' | 'POLICY_MTLS_AUTHENTICATION' | 'POLICY_CONTENTFILTER' | 'POLICY_IPWHITE' | 'POLICY_IPBLACK' | 'POLICY_ALLOWEDHOUR' | 'POLICY_MINMESSAGESIZE' | 'POLICY_MAXMESSAGESIZE' | 'POLICY_JSONSCHEMAVALIDATION' | 'POLICY_XMLSCHEMAVALIDATION' | 'POLICY_JSONTRANSFORMATION' | 'POLICY_XMLTRANSFORMATION' | 'POLICY_JSONRESPONSEMESSAGETRANS' | 'POLICY_XMLRESPONSEMESSAGETRANS' | 'POLICY_REST2SOAP_TRANSFORMATION' | 'POLICY_CACHE' | 'POLICY_ROUTING' | 'POLICY_REDACTION' | 'POLICY_CORS' | 'POLICY_ENCRYPTION' | 'POLICY_DECRYPTION' | 'POLICY_ROLE_GROUP' | 'POLICY_DIGITALSIGN' | 'POLICY_DIGITALSIGNVALIDATION' | 'POLICY_RESTAPI' | 'POLICY_WSSECURITY' | 'POLICY_WSSECURITY_ENCRYPT' | 'POLICY_WSSECURITY_DECRYPT' | 'POLICY_WSSECURITY_USERNAME' | 'POLICY_WSSECURITY_TIMESTAMP' | 'POLICY_WSSECURITY_SIGN' | 'POLICY_WSSECURITY_SIGN_VALIDATION' | 'POLICY_WSSECURITY_STSTOKEN' | 'POLICY_BUSINESS_RULE' | 'POLICY_MESSAGE_BUILDER' | 'POLICY_LOG' | 'POLICY_AI_PII_MASK' | 'POLICY_AI_PROMPT_GUARD' | 'POLICY_AI_TOKEN_RATE_LIMIT' | 'POLICY_AI_SEMANTIC_CACHE' | 'POLICY_AI_MCP_TOOL_CALL' | 'POLICY_AI_A2A_AGENT_CALL' | 'POLICY_AI_RAG_INJECTION' | 'POLICY_AI_DLP_GUARD' | 'POLICY_AI_LOOP_GUARD' | 'POLICY_AI_TOPIC_GUARD' | 'POLICY_AI_CONTEXT_INTEGRITY' | 'POLICY_AI_ROUTING' | 'POLICY_AI_A2A_AGENT_INVOKE' | 'POLICY_AI_MCP_TOOL_INVOKE' | 'POLICY_AI_PROMPT_DECORATOR' | 'POLICY_AI_PROMPT_TEMPLATE' | 'POLICY_AI_GROUNDEDNESS_GUARD' | 'LICENSE') | undefined, httpStatusCode?: number | undefined, errorCode?: string | undefined, originalMessage?: string | undefined, customizedHttpStatusCode?: number | undefined, customizedErrorCode?: string | undefined, customizedMessage?: string | undefined, buildCustomMessage?: boolean | undefined, customMessageTemplate?: string | undefined, customMessageContentType?: string | undefined, customMessageHttpStatusCode?: number | undefined, errorResponseRules?: Array | undefined, customized?: boolean | undefined}; export type LimitRuleSpecDTO = {aiBudget?: AiTokenBudgetDTO | undefined, requestRate?: LimitRequestRateSpecDTO | undefined, target?: LimitTargetDTO | undefined, targetedRules?: Array | undefined, validFrom?: string | undefined, validUntil?: string | undefined, listViaProxyGroup?: boolean | undefined, listProxyGroupId?: string | undefined, ownBudgetThresholds?: boolean | undefined, condition?: PolicyCondition | undefined, conditionSummary?: string | undefined, errorMessageList?: Array | undefined}; export type ApiOpsLimitAssignmentContentDTO = {family?: ('REQUEST_RATE' | 'AI_TOKEN_BUDGET') | undefined, actorScope?: ('ANY' | 'AUTHENTICATED' | 'ANONYMOUS') | undefined, target?: ApiOpsLimitAssignmentTargetDTO | undefined, mode?: ('PLAN' | 'CUSTOM' | 'INHERIT' | 'OFF') | undefined, planKeys?: Array | undefined, customRuleSpec?: LimitRuleSpecDTO | undefined, cacheErrorHandlingType?: ('FAIL' | 'CONTINUE') | undefined, cacheConnectionTimeoutInSeconds?: number | undefined, showRateLimitStatisticsInResponseHeader?: boolean | undefined, customMessageTemplate?: string | undefined, customMessageContentType?: string | undefined, customMessageHttpStatusCode?: number | undefined, validFrom?: string | undefined, validUntil?: string | undefined, assignmentMode?: ('SELF' | 'DESCENDANTS') | undefined, inheritTo?: ('PLATFORM' | 'PROJECT' | 'ORGANIZATION' | 'CONSUMER' | 'APPLICATION' | 'API_CLIENT' | 'API_PROXY' | 'AUDIENCE_RULE') | undefined}; export type ClauseDTO = {identitySource?: ('VARIABLE' | 'AUTH_RESOLVED') | undefined, variableId?: string | undefined, variableName?: string | undefined, operator?: ('LT' | 'LE' | 'GT' | 'GE' | 'EQ' | 'NE' | 'EQ_IGNORE_CASE' | 'NE_IGNORE_CASE' | 'STARTS_WITH' | 'NOT_STARTS_WITH' | 'STARTS_WITH_IGNORE_CASE' | 'NOT_STARTS_WITH_IGNORE_CASE' | 'ENDS_WITH' | 'NOT_ENDS_WITH' | 'ENDS_WITH_IGNORE_CASE' | 'NOT_ENDS_WITH_IGNORE_CASE' | 'CONTAINS' | 'NOT_CONTAINS' | 'CONTAINS_IGNORE_CASE' | 'NOT_CONTAINS_IGNORE_CASE' | 'IS_EMPTY' | 'IS_NOT_EMPTY' | 'EXISTS_AND_EMPTY' | 'IS_EXISTS' | 'IS_NOT_EXISTS' | 'IN' | 'NOT_IN' | 'IN_IGNORE_CASE' | 'NOT_IN_IGNORE_CASE') | undefined, value?: string | undefined}; export type LimitAudienceRuleDTO = {identitySource?: ('VARIABLE' | 'AUTH_RESOLVED') | undefined, variableId?: string | undefined, operator?: ('LT' | 'LE' | 'GT' | 'GE' | 'EQ' | 'NE' | 'EQ_IGNORE_CASE' | 'NE_IGNORE_CASE' | 'STARTS_WITH' | 'NOT_STARTS_WITH' | 'STARTS_WITH_IGNORE_CASE' | 'NOT_STARTS_WITH_IGNORE_CASE' | 'ENDS_WITH' | 'NOT_ENDS_WITH' | 'ENDS_WITH_IGNORE_CASE' | 'NOT_ENDS_WITH_IGNORE_CASE' | 'CONTAINS' | 'NOT_CONTAINS' | 'CONTAINS_IGNORE_CASE' | 'NOT_CONTAINS_IGNORE_CASE' | 'IS_EMPTY' | 'IS_NOT_EMPTY' | 'EXISTS_AND_EMPTY' | 'IS_EXISTS' | 'IS_NOT_EXISTS' | 'IN' | 'NOT_IN' | 'IN_IGNORE_CASE' | 'NOT_IN_IGNORE_CASE') | undefined, value?: string | undefined, outOfTargetAction?: ('BLOCK' | 'GENERAL_QUOTA' | 'NONE') | undefined, generalQuotaMode?: ('TOTAL' | 'PER_IDENTITY') | undefined, generalQuotaWindows?: Array | undefined, generalQuotaBudget?: AiTokenBudgetDTO | undefined, additionalClauses?: Array | undefined, identityRegexList?: Array | undefined}; export type ApiOpsLimitAssignmentCreateDTO = {subject?: ApiOpsLimitAssignmentSubjectDTO | undefined, content?: ApiOpsLimitAssignmentContentDTO | undefined, audienceRule?: LimitAudienceRuleDTO | undefined, status?: ('DRAFT' | 'ACTIVE' | 'ENDED') | undefined, version?: number | undefined}; export type UpdateApiApiopsProjectsProjectNameLimitAssignmentsBindingKeyArgs = {projectName: string, bindingKey: string, body: ApiOpsLimitAssignmentCreateDTO}; export type UpdateApiApiopsProjectsProjectNameLimitAssignmentsBindingKeyOptions = {baseUrl?: string | undefined, fetch?: typeof fetch | undefined}; export const apiOpsLimitAssignmentSubjectDTO = z.object({type: z.enum(["PLATFORM", "PROJECT", "ORGANIZATION", "CONSUMER", "APPLICATION", "API_CLIENT", "API_PROXY", "AUDIENCE_RULE"]).optional(), key: z.string().optional()}); export const apiOpsLimitAssignmentTargetDTO = z.object({type: z.enum(["ALL", "API_PROXY", "API_PROXY_ENV", "API_PROXY_GROUP", "API_PROXY_GROUP_ENV", "API_ENDPOINT", "API_ENDPOINT_ENV", "AI_MODEL", "AI_PROVIDER"]).optional(), apiProxyName: z.string().optional(), apiProxyGroupName: z.string().optional(), environmentName: z.string().optional(), targetKey: z.string().optional(), endpointHttpMethod: z.string().optional(), endpointPath: z.string().optional(), llmProviderName: z.string().optional(), projectName: z.string().optional(), httpMethods: z.array(z.string()).optional()}); export const aiModelBudgetDTO = z.object({modelId: z.string().min(1), tokensPerHour: z.number().int().gte(1).optional(), tokensPerDay: z.number().int().gte(1).optional(), tokensPerMonth: z.number().int().gte(1).optional(), monthlyBudgetUsd: z.number().gte(0).optional(), usdPerHour: z.number().gte(0).optional(), usdPerDay: z.number().gte(0).optional(), overflowAction: z.enum(["BLOCK", "FAILOVER", "ALERT_ONLY", "CHEAPER_MODEL"]).optional()}); export const aiProviderBudgetDTO = z.object({providerRef: z.string().min(1), tokensPerHour: z.number().int().gte(1).optional(), tokensPerDay: z.number().int().gte(1).optional(), tokensPerMonth: z.number().int().gte(1).optional(), monthlyBudgetUsd: z.number().gte(0).optional(), usdPerHour: z.number().gte(0).optional(), usdPerDay: z.number().gte(0).optional(), overflowAction: z.enum(["BLOCK", "FAILOVER", "ALERT_ONLY", "CHEAPER_MODEL"]).optional()}); export const aiTokenBudgetDTO = z.object({enabled: z.boolean().optional(), tokensPerHour: z.number().int().gte(1).optional(), tokensPerMinute: z.number().int().gte(1).optional(), tokensPerDay: z.number().int().gte(1).optional(), tokensPerMonth: z.number().int().gte(1).optional(), monthlyBudgetUsd: z.number().gte(0).optional(), usdPerMinute: z.number().gte(0).optional(), usdPerHour: z.number().gte(0).optional(), usdPerDay: z.number().gte(0).optional(), requestsPerMinute: z.number().int().gte(1).optional(), requestsPerHour: z.number().int().gte(1).optional(), requestsPerDay: z.number().int().gte(1).optional(), requestsPerMonth: z.number().int().gte(1).optional(), softCapPercents: z.array(z.number().int().gte(0).lte(100)).optional(), hardCapPercent: z.number().int().gte(1).lte(100).optional(), overflowAction: z.enum(["BLOCK", "FAILOVER", "ALERT_ONLY", "CHEAPER_MODEL"]).optional(), cheaperModelId: z.string().optional(), customMessageTemplate: z.string().optional(), customMessageContentType: z.string().optional(), customMessageHttpStatusCode: z.number().int().optional(), cacheErrorHandlingType: z.string().optional(), showRateLimitStatisticsInResponseHeader: z.boolean().optional(), cacheConnectionTimeoutInSeconds: z.number().int().gte(1).optional(), modelBudgets: z.array(aiModelBudgetDTO).optional(), providerBudgets: z.array(aiProviderBudgetDTO).optional()}); export const windowDTO = z.object({permittedMessageCount: z.number().int().gte(1), interval: z.enum(["ONE_SECOND", "ONE_MINUTE", "ONE_HOUR", "ONE_DAY", "ONE_MONTH"]), periodLength: z.number().int().gte(1).optional(), windowType: z.enum(["FIXED", "SLIDING"]).optional(), countingMode: z.enum(["ALL_REQUESTS", "ACCEPTED_ONLY"]).optional(), limitChangeAction: z.enum(["CLAMP", "RESET", "NONE"]).optional()}); export const limitRequestRateSpecDTO = z.object({windows: z.array(windowDTO).optional(), overflowAction: z.enum(["BLOCK", "COUNT_ONLY"]).optional(), cacheErrorHandlingType: z.enum(["FAIL", "CONTINUE"]).optional(), cacheConnectionTimeoutInSeconds: z.number().int().optional(), showRateLimitStatisticsInResponseHeader: z.boolean().optional(), customMessageTemplate: z.string().optional(), customMessageContentType: z.string().optional(), customMessageHttpStatusCode: z.number().int().optional()}); export const limitTargetDTO = z.object({type: z.enum(["ALL", "API_PROXY", "API_PROXY_ENV", "API_PROXY_GROUP", "API_PROXY_GROUP_ENV", "API_ENDPOINT", "API_ENDPOINT_ENV", "AI_MODEL", "AI_PROVIDER"]).optional(), targetId: z.string().optional(), environmentId: z.string().optional(), httpMethods: z.array(z.string()).optional(), methodSignature: z.string().optional(), targetName: z.string().optional(), environmentName: z.string().optional(), apiProxyId: z.string().optional(), apiProxyName: z.string().optional(), endpointName: z.string().optional(), targetProjectId: z.string().optional()}); export const variable = z.object({id: z.string().optional(), projectId: z.string().optional(), projectName: z.string().optional(), name: z.string().optional(), description: z.string().optional(), type: z.enum(["HEADER", "PARAMETER", "BODY", "CONTEXT_VALUES", "CUSTOM"]).optional(), headerName: z.string().optional(), paramType: z.enum(["QUERY", "PATH", "FORM"]).optional(), paramName: z.string().optional(), paramPath: z.string().optional(), formName: z.string().optional(), xpathValue: z.string().optional(), jsonPathValue: z.string().optional(), messageContentType: z.enum(["XML", "JSON", "ALL_BODY"]).optional(), contextValue: z.enum(["REQUEST_REMOTE_ADDRESS", "REQUEST_HTTP_METHOD", "REQUEST_CONTENT_TYPE", "REQUEST_PATH_INFO", "REQUEST_CONTEXT_PATH", "REQUEST_QUERY_STRING", "REQUEST_REMOTE_USER", "REQUEST_USERNAME_KEY", "REQUEST_REQUESTED_SESSION_ID", "REQUEST_REQUEST_URI", "REQUEST_CHARACTER_ENCODING", "REQUEST_CHARSET", "REQUEST_CONTENT_LENGTH", "REQUEST_PROTOCOL", "REQUEST_SCHEME", "REQUEST_SERVER_NAME", "REQUEST_SERVER_PORT", "REQUEST_REMOTE_HOST", "REQUEST_REMOTE_PORT", "REQUEST_LOCAL_NAME", "REQUEST_LOCAL_ADDR", "REQUEST_LOCAL_PORT", "REQUEST_XFORWARDED_FOR", "REQUEST_ESTIMATED_TOKEN_COUNT", "REQUEST_MCP_TOOL_NAME", "REQUEST_OAUTH_CLIENT_ID", "REQUEST_IS_SOAP_TO_REST", "REQUEST_IS_APIPROXY", "REQUEST_IS_APIPROXYGROUP", "REQUEST_IS_XWWW_FORM_URL_ENCODED", "REQUEST_IS_FORM_DATA", "REQUEST_IS_BYTE_ARRAY", "REQUEST_HAS_ATTACHMENT", "REQUEST_GZIP", "REQUEST_DEFLATE", "REQUEST_BR", "REQUEST_ZSTD", "REQUEST_IDENTITY", "REQUEST_COMPRESS", "REQUEST_HTTP_SERVLET", "RESPONSE_IS_BYTE_ARRAY", "RESPONSE_GZIP", "RESPONSE_DEFLATE", "RESPONSE_BR", "RESPONSE_ZSTD", "RESPONSE_IDENTITY", "RESPONSE_COMPRESS", "RESPONSE_BACKEND_CONTENT_ENCODING", "RESPONSE_CHARSET", "RESPONSE_STATUS_CODE", "RESPONSE_HTTP_SERVLET", "ERROR_CATEGORY", "ERROR_TYPE", "ERROR_PARENT", "ERROR_RESULT_TYPE", "ERROR_MESSAGE", "ERROR_CODE", "ERROR_HTTP_CODE", "MESSAGE_CORRELATION_ID", "MESSAGE_CACHE_HIT", "ENVIRONMENT_ID", "ENVIRONMENT_NAME", "ENVIRONMENT_CERTIFICATE", "ENVIRONMENT_PRIVATEKEY", "ENVIRONMENT_PUBLICKEY", "ENVIRONMENT_SECRETKEY", "ENVIRONMENT_KEYSTORE", "ENVIRONMENT_JWK", "APIPROXYGROUP_ID", "APIPROXYGROUP_NAME", "APIPROXY_ID", "APIPROXY_NAME", "APIPROXY_RELATIVE_PATH", "APIMETHOD_ID", "APIMETHOD_NAME", "APIMETHOD_SOAP_ACTION", "APIMETHOD_HTTPMETHOD", "APIMETHOD_ENDPOINT", "APIMETHOD_BACKEND_HTTPMETHOD", "APIMETHOD_BACKEND_ENDPOINT", "DATETIME_YEAR", "DATETIME_MONTH", "DATETIME_DAY_OF_WEEK", "DATETIME_DAY_OF_MONTH", "DATETIME_HOUR", "DATETIME_MINUTE", "DATETIME_SECOND", "DATETIME_EPOCH_MILLIS", "DATETIME_FORMATTED_TEXT", "DATE_FORMATTED_TEXT", "TIME_FORMATTED_TEXT", "CREDENTIAL_USERNAME", "CREDENTIAL_EMAIL", "CREDENTIAL_FULLNAME", "CREDENTIAL_SECRETKEY", "CREDENTIAL_CERTIFICATE", "CREDENTIAL_PUBLICKEY", "CREDENTIAL_PRIVATEKEY", "CREDENTIAL_KEYSTORE", "CREDENTIAL_TRUSTSTORE", "CREDENTIAL_JWK_SIGNANDVALIDATION", "CREDENTIAL_JWK_ENCRYPTIONANDDECRYPTION"]).optional(), zoneId: z.string().optional(), initWithScript: z.boolean().optional(), scriptLanguage: z.enum(["GROOVY", "JAVASCRIPT"]).optional(), scriptBody: z.string().optional()}); export const conditionRule = z.object({conditionCriteria: z.enum(["VALUE", "NOT", "AND", "OR"]).optional(), firstVariable: variable.optional(), variableDataType: z.enum(["NUMERIC", "STRING", "DATE"]).optional(), dateFormat: z.string().optional(), valueComparisonOperator: z.enum(["LT", "LE", "GT", "GE", "EQ", "NE", "EQ_IGNORE_CASE", "NE_IGNORE_CASE", "STARTS_WITH", "NOT_STARTS_WITH", "STARTS_WITH_IGNORE_CASE", "NOT_STARTS_WITH_IGNORE_CASE", "ENDS_WITH", "NOT_ENDS_WITH", "ENDS_WITH_IGNORE_CASE", "NOT_ENDS_WITH_IGNORE_CASE", "CONTAINS", "NOT_CONTAINS", "CONTAINS_IGNORE_CASE", "NOT_CONTAINS_IGNORE_CASE", "IS_EMPTY", "IS_NOT_EMPTY", "EXISTS_AND_EMPTY", "IS_EXISTS", "IS_NOT_EXISTS", "IN", "NOT_IN", "IN_IGNORE_CASE", "NOT_IN_IGNORE_CASE"]).optional(), secondValueSource: z.enum(["VALUE", "VARIABLE"]).optional(), secondValue: z.string().optional(), secondVariable: variable.optional()}); export const policyCondition = z.object({conditionRuleList: z.array(conditionRule).optional()}); export const errorResponseRule = z.object({name: z.string().optional(), order: z.number().int().optional(), active: z.boolean().optional(), builtIn: z.boolean().optional(), condition: policyCondition.optional(), template: z.string().optional(), contentType: z.string().optional(), httpStatusCode: z.number().int().optional()}); export const errorMessage = z.object({id: z.string().optional(), errorType: z.enum(["APIPROXY", "APIPROXY_HIDDENSPEC", "APIPROXY_SPEC_AUTH_REQUIRED", "API_METHOD_NOTFOUND", "DBTOAPI_DB_OPERATION_TYPE_NOTFOUND", "DBTOAPI_DB_BATCH_ARRAY_LENGTH", "APIPROXY_NOTFOUND", "APIPROXY_ENDPOINT_MISMATCH", "APIPROXY_ENDPOINT_MISSING_PATH_PARAM_DEFINITION", "APIPROXYGROUP_ACCESS_DISABLED_FROM_PROXY", "APIPROXY_BACKEND_ADDRESS_NOTFOUND", "APIPROXY_BACKEND_MTLS_SETTINGS_NOTFOUND", "APICRYPT_EX", "NOTER_SETTINGS_NOTFOUND", "KPS_SETTINGS_NOTFOUND", "KPS_SECURITY_TOKEN_FAULT", "KPS_SECURITY_TOKEN_NOT_VALID", "SCRIPT_API_NOTFOUND", "CONNECTION_CONFIG_DB_NOTFOUND", "CONNECTION_CONFIG_DB_DISABLED", "DATABASE_CONNECTION_EX", "DB_API_NOTFOUND", "JOB_API_NOTFOUND", "KPS_EX", "CONDITION_RULE_FORMAT_NUMERIC", "CONDITION_RULE_FORMAT_DATE", "CONDITION_RULE_CONFIGURATION", "CONDITION_RULE_EX", "POLICY_AUTH_EMPTYUSERNAMEORPSSWD", "POLICY_AUTH_EMPTYUSERNAME", "POLICY_AUTH_EMPTYPSSWD", "POLICY_AUTH_USERNOTEXISTS", "POLICY_AUTH_EX_LDAP", "POLICY_AUTH_EX_API", "POLICY_AUTH_TYPE", "POLICY_AUTH_EX_DB", "POLICY_AUTH_NOT_FOUND", "POLICY_AUTH_BASIC_EX", "POLICY_AUTH_BASE64_EX", "POLICY_AUTH_DIGEST_EX", "POLICY_AUTH_JWT3RD_EX", "POLICY_AUTH_JWT3RD_MISSING_CONFIG", "POLICY_AUTH_JWT3RD_NOT_VALID", "POLICY_AUTH_JWT_EX", "POLICY_AUTH_JWT_MISSING_CONFIG", "POLICY_AUTH_JWT_NOT_VALID", "POLICY_AUTH_OAUTH2_EX", "POLICY_AUTH_OAUTH2_TOKEN_EXPIRED", "POLICY_AUTH_OAUTH2_TOKEN_NOT_VALID", "POLICY_AUTH_OIDC_PROTOCOL_EX", "POLICY_AUTH_OIDC_AUTHENTICATION_EX", "POLICY_AUTH_OIDC_STOP_FLOW", "POLICY_AUTH_OIDC_REDIRECT", "POLICY_AUTH_OIDC_INVALID_TOKEN", "POLICY_AUTHORIZATION_EX", "POLICY_AUTHORIZATION_METHOD_NOT_FOUND", "POLICY_AUTHORIZATION_WRONG_SCOPE", "POLICY_API_AUTHENTICATION", "POLICY_API_AUTHENTICATION_NOTFOUND", "POLICY_SAML", "POLICY_SAML_SIGNATURENOTEXISTS", "POLICY_SAML_SIGNATURENOTVALID", "POLICY_SAML_KEYSTORENOTVALID", "POLICY_SAML_SIGNERUNKNOWN", "POLICY_CONTENTFILTER", "POLICY_CONTENTFILTER_HEADER", "POLICY_CONTENTFILTER_PARAM", "POLICY_CONTENTFILTER_BODY", "POLICY_CONTENTFILTER_BODY_PATH", "POLICY_IPWHITE_FAILED", "POLICY_IPWHITE_EX", "POLICY_IPBLACK_FAILED", "POLICY_IPBLACK_EX", "POLICY_RESTRICTION_ALLOWEDHOUR_FAILED", "POLICY_RESTRICTION_ALLOWEDHOUR_EX", "POLICY_RESTRICTION_MINMESSAGESIZE_FAILED", "POLICY_RESTRICTION_MAXMESSAGESIZE_FAILED", "POLICY_JSONSCHEMAVALIDATION", "POLICY_JSONSCHEMAVALIDATION_FAILED", "POLICY_JSONSCHEMAVALIDATION_PATH", "POLICY_XMLSCHEMAVALIDATION", "POLICY_XMLSCHEMAVALIDATION_FAILED", "POLICY_XMLSCHEMAVALIDATION_UNEXPECTEDBODY", "POLICY_XMLSCHEMAVALIDATION_PATH", "POLICY_XMLTRANSFORMATION", "POLICY_JSONTRANSFORMATION", "POLICY_APIBASEDTHROTTLING", "POLICY_APIBASEDTHROTTLING_CACHE_SERVICE", "POLICY_APIBASEDTHROTTLING_STOP", "POLICY_APIBASEDQUOTA", "POLICY_APIBASEDQUOTA_CACHE_SERVICE", "POLICY_APIBASEDQUOTA_STOP", "POLICY_REST2SOAP_TRANSFORMATION_REQUEST", "POLICY_REST2SOAP_TRANSFORMATION_RESPONSE", "POLICY_SCRIPT_USERSTOPPEDFLOW", "POLICY_SCRIPT_USERSTOPPEDFLOW_SUCCESS", "POLICY_SCRIPT", "POLICY_WSSECURITY_FROMTARGET", "POLICY_WSSECURITY_TOTARGET", "POLICY_WSSECURITY_STSTOKEN", "POLICY_WSSECURITY_STSTOKEN_NOTFOUND", "POLICY_WSSECURITY_STSTOKEN_NOTVALID", "POLICY_WSSECURITY_STSTOKEN_FAULT", "CIRCUITBREAKEROPEN_EX", "CIRCUITBREAKEROPEN_NO_ROUTE_EX", "CLIENTFLOWBANNER_EX", "POLICY_ROUTING_TIMEOUT", "POLICY_ROUTING_UNKNOWNHOST", "POLICY_ROUTING_MALFORMED", "POLICY_ROUTING_CONNECTIONREFUSED", "POLICY_ROUTING_CONNECTION", "POLICY_ROUTING_ERRORHANDLINGCONDITION", "POLICY_ROUTING_PROXY_EMPTY", "POLICY_ROUTING_PROXY_AUTHORIZATION_EMPTY", "POLICY_ROUTING_CONNECTION_CLOSED_CLIENT", "POLICY_ROUTING_CONNECTION_CLOSED_SERVER", "POLICY_ROUTING_SSE_CLIENT", "POLICY_ROUTING_SSE_SERVER", "POLICY_ROUTING_AI_PROVIDER_EXHAUSTED", "POLICY_ROUTING_AI_PROVIDER_ERROR", "POLICY_ROUTING_AI_NO_SUITABLE_PROVIDER", "POLICY_ROUTING_AI_CONTEXT_WINDOW_EXCEEDED", "POLICY_ROUTING_AI_MODEL_ACCESS_DENIED", "POLICY_AI_TOKEN_QUOTA_EXCEEDED", "POLICY_AI_TOKEN_COUNTER_UNAVAILABLE", "POLICY_AI_ANONYMOUS_NOT_ALLOWED", "MCP_INBOUND_BAD_REQUEST", "MCP_INBOUND_SERVER_NOT_FOUND", "MCP_INBOUND_METHOD_NOT_ALLOWED", "MCP_INBOUND_UNAUTHORIZED", "MCP_INBOUND_SESSION_LIMIT_EXCEEDED", "MCP_INBOUND_PARSE_ERROR", "MCP_INBOUND_METHOD_NOT_FOUND", "MCP_INBOUND_TOOL_NOT_FOUND", "MCP_INBOUND_TOOL_PROXY_UNAVAILABLE", "MCP_INBOUND_TOOL_POLICY_GATE_BLOCKED", "MCP_INBOUND_TOOL_EXECUTION_FAILED", "MCP_INBOUND_CALL_QUOTA_EXCEEDED", "MCP_INBOUND_TOOL_APPROVAL_REQUIRED", "MCP_INBOUND_ELICITATION_UNSUPPORTED", "A2A_INBOUND_BAD_REQUEST", "A2A_INBOUND_AGENT_NOT_FOUND", "A2A_INBOUND_METHOD_NOT_ALLOWED", "A2A_INBOUND_UNAUTHORIZED", "A2A_INBOUND_PARSE_ERROR", "A2A_INBOUND_METHOD_NOT_FOUND", "A2A_INBOUND_TASK_NOT_FOUND", "A2A_INBOUND_TASK_EXECUTION_UNAVAILABLE", "A2A_INBOUND_CONCURRENCY_LIMIT_EXCEEDED", "A2A_INBOUND_CALL_QUOTA_EXCEEDED", "POLICY_REDACTION", "POLICY_REDACTION_VARIABLE_NOT_FOUND", "POLICY_REDACTION_DATA_FORMAT", "POLICY_ENCRYPTION", "POLICY_ENCRYPTION_MISSING_CONFIG", "POLICY_DECRYPTION", "POLICY_DIGITALSIGN", "POLICY_DIGITALSIGNVALIDATION", "POLICY_DIGITALSIGNVALIDATION_FAILED", "POLICY_RESTAPI_RESPONSE", "POLICY_RESTAPI_CONNECTION", "POLICY_RESTAPI", "CACHE_AUTHREQUIREDTOREFRESH", "POLICY_ROLE_GROUP_BASED_ACCESS", "POLICY_ROLE_GROUP_BASED_IP_CHECK_ACCESS", "POLICY_PROTOCOL_TRANSFORMATION", "POLICY_BUSINESS_RULE", "POLICY_BUSINESS_RULE_DATA_FORMAT", "POLICY_BUSINESS_RULE_STOP", "POLICY_BUSINESS_RULE_VARIABLE_NOT_FOUND", "POLICY_MESSAGE_BUILDER", "POLICY_LOG", "APIPROXY_NOTFOUND_FORTOKEN", "CREDENTIAL_NOTFOUND_FORTOKEN", "CREDENTIAL_NOTVALID_FORTOKEN", "URL_TOKEN_MANAGEMENT_TYPE_MISMATCH", "TOKEN_POLICY_NOT_CONFIGURED", "POLICY_ROUTING_SSLHANDSHAKE", "POLICY_ROUTING_SSLEXPIRED", "POLICY_AUTH_CREDENTIAL_NOTEXISTS", "POLICY_AUTH_CREDENTIAL_PROXYNOTALLOWED", "POLICY_AUTH_IDENTITY_AMBIGUOUS", "API_CLIENT_NOT_VALID_AS_RESOURCE_OWNER", "POLICY_AUTH_CREDENTIAL_METHODNOTALLOWED", "POLICY_AUTH_CREDENTIAL_IPNOTALLOWED", "POLICY_AUTH_CREDENTIAL_EXPIRED", "POLICY_AUTH_CONTRACT_PROXY_EXPIRED", "POLICY_AUTH_CONTRACT_CREDENTIAL_EXPIRED", "POLICY_AUTH_CREDENTIAL_PSSWD", "POLICY_AUTH_CREDENTIAL_ENVNOTALLOWED", "POLICY_CLIENTBASEDTHROTTLING", "POLICY_CLIENTBASEDTHROTTLING_CACHE_SERVICE", "POLICY_CLIENTBASEDTHROTTLING_STOP", "POLICY_CLIENTBASEDQUOTA", "POLICY_CLIENTBASEDQUOTA_CACHE_SERVICE", "POLICY_CLIENTBASEDQUOTA_STOP", "POLICY_JOSE_IMPLEMENTATION_JWK_EMPTY_APIPROXY_VALIDATION", "POLICY_JOSE_IMPLEMENTATION_JWK_NOT_FOUND_VALIDATION", "POLICY_JOSE_IMPLEMENTATION_JWK_EMPTY_APIPROXY_ENCRYPTION", "POLICY_JOSE_IMPLEMENTATION_JWK_NOT_FOUND_ENCRYPTION", "POLICY_JOSE_IMPLEMENTATION_JWK_EMPTY_CREDENTIAL_VALIDATION", "POLICY_JOSE_IMPLEMENTATION_JWK_NOT_FOUND_CREDENTIAL_VALIDATION", "POLICY_JOSE_IMPLEMENTATION_JWK_EMPTY_CREDENTIAL_ENCRYPTION", "POLICY_JOSE_IMPLEMENTATION_JWK_NOT_FOUND_CREDENTIAL_ENCRYPTION", "POLICY_JOSE_IMPLEMENTATION_SIGN", "POLICY_JOSE_IMPLEMENTATION_ENCRYPTION", "POLICY_JOSE_IMPLEMENTATION_ENCRYPTION_NEED_SIGN", "POLICY_JOSE_IMPLEMENTATION_EX", "POLICY_JOSE_IMPLEMENTATION_TARGET_VALUE_NOT_FOUND", "POLICY_JOSE_VALIDATION_JWK_EMPTY_APIPROXY_ENCRYPTION", "POLICY_JOSE_VALIDATION_JWK_NOT_FOUND_ENCRYPTION", "POLICY_JOSE_VALIDATION_JWK_EMPTY_APIPROXY_VALIDATE", "POLICY_JOSE_VALIDATION_JWK_NOT_FOUND_VALIDATE", "POLICY_JOSE_VALIDATION_JWK_EMPTY_CREDENTIAL_SIGN", "POLICY_JOSE_VALIDATION_JWK_EMPTY_CREDENTIAL_ENC", "POLICY_JOSE_VALIDATION_JWK_NOT_FOUND_CREDENTIAL_ENC", "POLICY_JOSE_VALIDATION_JWK_NOT_FOUND_CREDENTIAL_SIGN", "POLICY_JOSE_VALIDATION_TARGET_VALUE_EMPTY", "POLICY_JOSE_VALIDATION_ISSUER_EMPTY", "POLICY_JOSE_VALIDATION_PARSE_JWT", "POLICY_JOSE_VALIDATION_DECRYPTION", "POLICY_JOSE_VALIDATION_JWT_IS_NOT_ENCRYPTED", "POLICY_JOSE_VALIDATION_SIGNVALIDATION", "POLICY_JOSE_VALIDATION_JWT_IS_NOT_SIGNED", "POLICY_JOSE_VALIDATION_CLAIMVALIDATION", "POLICY_JOSE_VALIDATION_SIGNATUREINVALID", "POLICY_JOSE_VALIDATION_EX", "POLICY_MTLS_AUTHENTICATION_CERTIFICATE_MISSING", "POLICY_MTLS_AUTHENTICATION_CERTIFICATE_NOTVALID", "POLICY_MTLS_AUTHENTICATION_CERTIFICATE_ISSUER_MISSING", "POLICY_MTLS_AUTHENTICATION_EX", "POLICY_MTLS_AUTHENTICATION_ISSUER_MTLS_MISSING", "POLICY_MTLS_AUTHENTICATION_ISSUER_CERT_NOT_MATCH", "CONNECTOR_SETTINGS_NOTFOUND", "CONNECTOR_SETTINGS_DISABLED", "CONNECTOR_EX", "POLICY_ROUTING_ILLEGAL_ARGUMENT", "POLICY_ROUTING_CLIENT_PROTOCOL", "POLICY_JOSE_IMPLEMENTATION_JWK_EXPIRED", "POLICY_JOSE_VALIDATION_JWK_EXPIRED", "POLICY_GROUP_EX", "POLICY_ENDPOINTRATELIMIT", "POLICY_ENDPOINTRATELIMIT_CACHE_SERVICE", "POLICY_ENDPOINTRATELIMIT_STOP", "POLICY_ENDPOINTRATELIMIT_TARGETNOTEXIST", "POLICY_CLIENTBANNER_BANNED", "POLICY_CLIENTBANNER_EX", "POLICY_CLIENTBANNER_IDENTITYNOTFOUND", "POLICY_WSSECURITY_SIGN", "POLICY_WSSECURITY_SIGN_VALIDATION", "POLICY_WSSECURITY_ENCRYPT", "POLICY_WSSECURITY_DECRYPT", "POLICY_WSSECURITY_USERNAME", "POLICY_WSSECURITY_TIMESTAMP", "POLICY_AUTH_EX", "POLICY_AUTH_CREDENTIALS_MISSING", "JOSE_VAL_CONFIG_ERROR", "JOSE_VAL_EX", "JOSE_VAL_TOKEN_INVALID", "POLICY_JOSE_VALIDATION_DPOP_INVALID", "POLICY_JOSE_VALIDATION_DPOP_BINDING_MISMATCH", "JOSE_IMPL_CONFIG_ERROR", "APIPROXY_CONFIG_ERROR", "APIPROXY_EX", "CONTENTFILTER_VIOLATION", "THROTTLING_STOP", "THROTTLING_EX", "THROTTLING_CACHE_SERVICE", "QUOTA_STOP", "QUOTA_EX", "QUOTA_CACHE_SERVICE", "ROUTING_CIRCUITBREAKER", "ROUTING_CLIENT_ERROR", "ROUTING_CONFIG_ERROR", "ROUTING_MTLS_CONFIG_FAILED", "ROUTING_SSE_EX", "ENDPOINT_RATELIMIT_EX", "ENDPOINT_RATELIMIT_EXCEEDED", "ENDPOINT_RATELIMIT_IDENTITY_NOT_ALLOWED", "ENDPOINT_RATELIMIT_IDENTITY_NOT_RESOLVED", "RLCL_AUTHENTICATION_POLICY_REQUIRED", "REST2SOAP_EX", "REDACTION_EX", "BUSINESS_RULE_EX", "MTLS_CERTIFICATE_MISSING", "MTLS_CERTIFICATE_NOTVALID", "KPS_TOKEN_EX", "JSON_SCHEMA_VALIDATION_FAILED", "XML_SCHEMA_VALIDATION_FAILED", "WSSECURITY_STSTOKEN_NOTVALID", "RESTAPI_EX", "CONDITION_EX", "POLICY_CACHE_EX", "POLICY_CACHE_INVALID_CONFIG", "POLICY_AI_MCP_TOOL_CALL_CONFIG_MISSING", "POLICY_AI_A2A_AGENT_CALL_CONFIG_MISSING", "POLICY_AI_A2A_AGENT_INVOKE_CONFIG_MISSING", "POLICY_AI_A2A_AGENT_INVOKE_INVOCATION_FAILED", "POLICY_AI_MCP_TOOL_INVOKE_CONFIG_MISSING", "POLICY_AI_MCP_TOOL_INVOKE_INVOCATION_FAILED", "POLICY_AI_PROMPT_GUARD_BLOCKED", "POLICY_AI_SEMANTIC_CACHE_ERROR", "POLICY_AI_RAG_INJECTION_NO_MATCH", "POLICY_AI_RAG_INJECTION_RETRIEVAL_ERROR", "POLICY_AI_DLP_BLOCKED", "POLICY_AI_PII_ENCODED_BLOCKED", "POLICY_AI_PII_MASK_FAILED", "POLICY_AI_LOOP_DETECTED", "POLICY_AI_OFF_TOPIC", "POLICY_AI_TOPIC_JUDGE_BLOCKED", "POLICY_AI_PII_JUDGE_BLOCKED", "POLICY_AI_CONTEXT_INTEGRITY_BLOCKED", "POLICY_AI_PROMPT_DECORATOR_LIMIT_EXCEEDED", "POLICY_AI_DENIED_TOPIC", "POLICY_AI_PROMPT_TEMPLATE_UNKNOWN_TEMPLATE", "POLICY_AI_PROMPT_TEMPLATE_MISSING_PARAM", "POLICY_AI_PROMPT_TEMPLATE_LIMIT_EXCEEDED", "POLICY_AI_GROUNDEDNESS_VIOLATION"]).optional(), parentErrorType: z.enum(["API_PROXY", "APICREATOR", "FAKE_API", "KPS_API", "CONDITION_ERR", "CONDITION_EX", "POLICY_GROUP", "POLICY_AUTHENTICATION", "POLICY_OIDC", "POLICY_AUTHORIZATION", "POLICY_API_AUTHENTICATION", "POLICY_THROTTLING_PER_CLIENT", "POLICY_APIBASEDTHROTTLING", "POLICY_ENDPOINTRATELIMIT", "POLICY_APIBASEDQUOTA", "POLICY_CLIENTBASEDTHROTTLING", "POLICY_CLIENTBASEDQUOTA", "POLICY_CLIENTBANNER", "POLICY_QUOTA_PER_CLIENT", "POLICY_SCRIPT", "POLICY_OAUTH2", "POLICY_SAML", "POLICY_JOSE_IMPLEMENTATION", "POLICY_JOSE_VALIDATION", "POLICY_MTLS_AUTHENTICATION", "POLICY_CONTENTFILTER", "POLICY_IPWHITE", "POLICY_IPBLACK", "POLICY_ALLOWEDHOUR", "POLICY_MINMESSAGESIZE", "POLICY_MAXMESSAGESIZE", "POLICY_JSONSCHEMAVALIDATION", "POLICY_XMLSCHEMAVALIDATION", "POLICY_JSONTRANSFORMATION", "POLICY_XMLTRANSFORMATION", "POLICY_JSONRESPONSEMESSAGETRANS", "POLICY_XMLRESPONSEMESSAGETRANS", "POLICY_REST2SOAP_TRANSFORMATION", "POLICY_CACHE", "POLICY_ROUTING", "POLICY_REDACTION", "POLICY_CORS", "POLICY_ENCRYPTION", "POLICY_DECRYPTION", "POLICY_ROLE_GROUP", "POLICY_DIGITALSIGN", "POLICY_DIGITALSIGNVALIDATION", "POLICY_RESTAPI", "POLICY_WSSECURITY", "POLICY_WSSECURITY_ENCRYPT", "POLICY_WSSECURITY_DECRYPT", "POLICY_WSSECURITY_USERNAME", "POLICY_WSSECURITY_TIMESTAMP", "POLICY_WSSECURITY_SIGN", "POLICY_WSSECURITY_SIGN_VALIDATION", "POLICY_WSSECURITY_STSTOKEN", "POLICY_BUSINESS_RULE", "POLICY_MESSAGE_BUILDER", "POLICY_LOG", "POLICY_AI_PII_MASK", "POLICY_AI_PROMPT_GUARD", "POLICY_AI_TOKEN_RATE_LIMIT", "POLICY_AI_SEMANTIC_CACHE", "POLICY_AI_MCP_TOOL_CALL", "POLICY_AI_A2A_AGENT_CALL", "POLICY_AI_RAG_INJECTION", "POLICY_AI_DLP_GUARD", "POLICY_AI_LOOP_GUARD", "POLICY_AI_TOPIC_GUARD", "POLICY_AI_CONTEXT_INTEGRITY", "POLICY_AI_ROUTING", "POLICY_AI_A2A_AGENT_INVOKE", "POLICY_AI_MCP_TOOL_INVOKE", "POLICY_AI_PROMPT_DECORATOR", "POLICY_AI_PROMPT_TEMPLATE", "POLICY_AI_GROUNDEDNESS_GUARD", "LICENSE"]).optional(), httpStatusCode: z.number().int().optional(), errorCode: z.string().optional(), originalMessage: z.string().optional(), customizedHttpStatusCode: z.number().int().optional(), customizedErrorCode: z.string().optional(), customizedMessage: z.string().optional(), buildCustomMessage: z.boolean().optional(), customMessageTemplate: z.string().optional(), customMessageContentType: z.string().optional(), customMessageHttpStatusCode: z.number().int().optional(), errorResponseRules: z.array(errorResponseRule).optional(), customized: z.boolean().optional()}); export const limitRuleSpecDTO: z.ZodType = z.object({aiBudget: aiTokenBudgetDTO.optional(), requestRate: limitRequestRateSpecDTO.optional(), target: limitTargetDTO.optional(), targetedRules: z.array(z.lazy(() => limitRuleSpecDTO)).optional(), validFrom: z.string().optional(), validUntil: z.string().optional(), listViaProxyGroup: z.boolean().optional(), listProxyGroupId: z.string().optional(), ownBudgetThresholds: z.boolean().optional(), condition: policyCondition.optional(), conditionSummary: z.string().optional(), errorMessageList: z.array(errorMessage).optional()}); export const clauseDTO = z.object({identitySource: z.enum(["VARIABLE", "AUTH_RESOLVED"]).optional(), variableId: z.string().optional(), variableName: z.string().optional(), operator: z.enum(["LT", "LE", "GT", "GE", "EQ", "NE", "EQ_IGNORE_CASE", "NE_IGNORE_CASE", "STARTS_WITH", "NOT_STARTS_WITH", "STARTS_WITH_IGNORE_CASE", "NOT_STARTS_WITH_IGNORE_CASE", "ENDS_WITH", "NOT_ENDS_WITH", "ENDS_WITH_IGNORE_CASE", "NOT_ENDS_WITH_IGNORE_CASE", "CONTAINS", "NOT_CONTAINS", "CONTAINS_IGNORE_CASE", "NOT_CONTAINS_IGNORE_CASE", "IS_EMPTY", "IS_NOT_EMPTY", "EXISTS_AND_EMPTY", "IS_EXISTS", "IS_NOT_EXISTS", "IN", "NOT_IN", "IN_IGNORE_CASE", "NOT_IN_IGNORE_CASE"]).optional(), value: z.string().optional()}); export const limitAudienceRuleDTO = z.object({identitySource: z.enum(["VARIABLE", "AUTH_RESOLVED"]).optional(), variableId: z.string().optional(), operator: z.enum(["LT", "LE", "GT", "GE", "EQ", "NE", "EQ_IGNORE_CASE", "NE_IGNORE_CASE", "STARTS_WITH", "NOT_STARTS_WITH", "STARTS_WITH_IGNORE_CASE", "NOT_STARTS_WITH_IGNORE_CASE", "ENDS_WITH", "NOT_ENDS_WITH", "ENDS_WITH_IGNORE_CASE", "NOT_ENDS_WITH_IGNORE_CASE", "CONTAINS", "NOT_CONTAINS", "CONTAINS_IGNORE_CASE", "NOT_CONTAINS_IGNORE_CASE", "IS_EMPTY", "IS_NOT_EMPTY", "EXISTS_AND_EMPTY", "IS_EXISTS", "IS_NOT_EXISTS", "IN", "NOT_IN", "IN_IGNORE_CASE", "NOT_IN_IGNORE_CASE"]).optional(), value: z.string().optional(), outOfTargetAction: z.enum(["BLOCK", "GENERAL_QUOTA", "NONE"]).optional(), generalQuotaMode: z.enum(["TOTAL", "PER_IDENTITY"]).optional(), generalQuotaWindows: z.array(windowDTO).optional(), generalQuotaBudget: aiTokenBudgetDTO.optional(), additionalClauses: z.array(clauseDTO).optional(), identityRegexList: z.array(z.string()).optional()}); export const apiOpsResponseLimitAssignment = z.object({bindingKey: z.string().optional(), subject: apiOpsLimitAssignmentSubjectDTO.optional(), family: z.enum(["REQUEST_RATE", "AI_TOKEN_BUDGET"]).optional(), actorScope: z.enum(["ANY", "AUTHENTICATED", "ANONYMOUS"]).optional(), target: apiOpsLimitAssignmentTargetDTO.optional(), mode: z.enum(["PLAN", "CUSTOM", "INHERIT", "OFF"]).optional(), planKeys: z.array(z.string()).optional(), customRuleSpec: limitRuleSpecDTO.optional(), audienceRule: limitAudienceRuleDTO.optional(), cacheErrorHandlingType: z.enum(["FAIL", "CONTINUE"]).optional(), cacheConnectionTimeoutInSeconds: z.number().int().optional(), showRateLimitStatisticsInResponseHeader: z.boolean().optional(), customMessageTemplate: z.string().optional(), customMessageContentType: z.string().optional(), customMessageHttpStatusCode: z.number().int().optional(), source: z.enum(["MANUAL", "CREATION_DEFAULT", "BULK", "MIGRATION", "IMPORT", "PORTAL_SUBSCRIPTION"]).optional(), status: z.enum(["DRAFT", "ACTIVE", "ENDED"]).optional(), validFrom: z.string().optional(), validUntil: z.string().optional(), assignedAt: z.string().optional(), assignedBy: z.string().optional(), endedAt: z.string().optional(), endedBy: z.string().optional(), endedReason: z.string().optional(), operatorOverride: z.boolean().optional(), version: z.number().int().optional(), bulkRunId: z.string().optional(), replacedBindingKey: z.string().optional(), assignmentMode: z.enum(["SELF", "DESCENDANTS"]).optional(), inheritTo: z.enum(["PLATFORM", "PROJECT", "ORGANIZATION", "CONSUMER", "APPLICATION", "API_CLIENT", "API_PROXY", "AUDIENCE_RULE"]).optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Update a limit assignment's content * * PUT /apiops/projects/{projectName}/limit-assignments/{bindingKey} */ export const updateApiApiopsProjectsProjectNameLimitAssignmentsBindingKey = async (args: UpdateApiApiopsProjectsProjectNameLimitAssignmentsBindingKeyArgs, options?: UpdateApiApiopsProjectsProjectNameLimitAssignmentsBindingKeyOptions) => { const {baseUrl = "http://167.86.118.166:32080", fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") const url = `${baseUrl.replace(/\/+$/, '')}/apiops/projects/${encodeURIComponent(String(args.projectName))}/limit-assignments/${encodeURIComponent(String(args.bindingKey))}${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "PUT", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(apiOpsResponseLimitAssignment, await res.json()) };