import {z} from 'zod' export type ApiOpsLimitAssignmentSelectorDTO = {subjectType?: ('PLATFORM' | 'PROJECT' | 'ORGANIZATION' | 'CONSUMER' | 'APPLICATION' | 'API_CLIENT' | 'API_PROXY' | 'AUDIENCE_RULE') | undefined, organizationCodes?: Array | undefined, includeSubOrganizations?: boolean | undefined, search?: string | undefined, enabledOnly?: boolean | undefined, existingAssignment?: string | undefined, subjectKeys?: Array | undefined, excludeSubjectKeys?: Array | 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 ApiOpsLimitAssignmentRequestDTO = {selector?: ApiOpsLimitAssignmentSelectorDTO | undefined, content?: ApiOpsLimitAssignmentContentDTO | undefined, conflictPolicy?: string | undefined, previewFingerprint?: string | undefined, expectedCount?: number | undefined}; export type CreateApiApiopsProjectsProjectNameLimitAssignmentRunsArgs = {projectName: string, body: ApiOpsLimitAssignmentRequestDTO}; export type CreateApiApiopsProjectsProjectNameLimitAssignmentRunsOptions = {baseUrl?: string | undefined, fetch?: typeof fetch | undefined}; export const apiOpsResponseLimitAssignmentRunAccepted = z.object({status: z.enum(["SUCCESS", "FAILURE"]).optional(), runId: z.string().optional(), kind: z.string().optional(), runStatus: z.string().optional(), queuedAt: z.string().optional(), expectedCount: z.number().int().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 }; /** * Start a bulk limit assignment run * * POST /apiops/projects/{projectName}/limit-assignment-runs */ export const createApiApiopsProjectsProjectNameLimitAssignmentRuns = async (args: CreateApiApiopsProjectsProjectNameLimitAssignmentRunsArgs, options?: CreateApiApiopsProjectsProjectNameLimitAssignmentRunsOptions) => { 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-assignment-runs${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", 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(apiOpsResponseLimitAssignmentRunAccepted, await res.json()) };