@zuplo/runtime 6.69.10 → 6.70.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,6 +11,7 @@ import type { ValidateFunction } from "ajv";
11
11
  *
12
12
  * @hidden
13
13
  * @title Anthropic to OpenAI Format Translator
14
+ * @product ai-gateway
14
15
  * @param request - The incoming ZuploRequest
15
16
  * @param context - The ZuploContext
16
17
  * @param options - The policy configuration options
@@ -33,6 +34,7 @@ export declare interface AIGatewayAnthropicToOpenAIInboundPolicyOptions {}
33
34
  * authenticated requests.
34
35
  * @hidden
35
36
  * @title AI Gateway Authentication
37
+ * @product ai-gateway
36
38
  * @public
37
39
  *
38
40
  * @param request - The incoming ZuploRequest
@@ -153,6 +155,7 @@ export declare function aiGatewayHandler(
153
155
  * You should only have one for your entire Gateway.
154
156
  *
155
157
  * @title AI Gateway Metering
158
+ * @product ai-gateway
156
159
  * @hidden
157
160
  * @param request - The ZuploRequest
158
161
  * @param context - The ZuploContext
@@ -218,6 +221,7 @@ export declare interface AIGatewayMeteringInboundPolicyOptions {
218
221
  *
219
222
  * @hidden
220
223
  * @title OpenAI to Anthropic Format Translator
224
+ * @product ai-gateway
221
225
  * @param response - The response from the upstream service
222
226
  * @param request - The incoming ZuploRequest
223
227
  * @param context - The ZuploContext
@@ -243,6 +247,7 @@ export declare interface AIGatewayOpenAIToAnthropicOutboundPolicyOptions {}
243
247
  * what tolerance.
244
248
  *
245
249
  * @title AI Gateway Semantic Cache
250
+ * @product ai-gateway
246
251
  * @hidden
247
252
  * @param request - The ZuploRequest
248
253
  * @param context - The ZuploContext
@@ -269,6 +274,7 @@ export declare interface AIGatewaySemanticCacheInboundPolicyOptions {}
269
274
  * streaming and non-streaming responses.
270
275
  *
271
276
  * @title AI Gateway Semantic Cache Outbound
277
+ * @product ai-gateway
272
278
  * @hidden
273
279
  * @param response - The response from the upstream service
274
280
  * @param request - The original request
@@ -309,6 +315,7 @@ export declare interface AIGatewayUsageTrackerOptions {}
309
315
  * - Adding usage headers to responses for debugging
310
316
  * @hidden
311
317
  * @title AI Gateway Usage Tracker
318
+ * @product ai-gateway
312
319
  * @param response - The response from the AI provider
313
320
  * @param request - The incoming ZuploRequest
314
321
  * @param context - The ZuploContext
@@ -467,11 +474,109 @@ export declare interface AkamaiApiSecurityPluginOptions {
467
474
  shouldLog?: ShouldLogFunction;
468
475
  }
469
476
 
477
+ /**
478
+ * Inspects each incoming request with Akamai's Firewall for AI detect API
479
+ * and blocks the request if Akamai returns a `deny` rule. Useful in front of
480
+ * AI-powered APIs to filter prompt injection, jailbreaks, and other unsafe
481
+ * inputs before they reach the model.
482
+ *
483
+ * The body, headers, URL, and query string sent to Akamai are configurable;
484
+ * by default only the request body is captured. Bodies are read from a clone
485
+ * so the upstream handler still sees the original.
486
+ *
487
+ * @title Akamai Firewall for AI - Inbound
488
+ * @public
489
+ * @param request - The ZuploRequest
490
+ * @param context - The ZuploContext
491
+ * @param options - The policy options set in policies.json
492
+ * @param policyName - The name of the policy as set in policies.json
493
+ * @returns A Request or a Response
494
+ */
495
+ export declare const AkamaiFirewallForAiInboundPolicy: InboundPolicyHandler<AkamaiFirewallForAiInboundPolicyOptions>;
496
+
497
+ /**
498
+ * The options for the Akamai Firewall for AI inbound policy. Sends the incoming request to Akamai's Firewall for AI detect endpoint and blocks the request if any rule returns a 'deny' action.
499
+ * @public
500
+ */
501
+ export declare interface AkamaiFirewallForAiInboundPolicyOptions {
502
+ /**
503
+ * Your Akamai Firewall for AI Configuration ID. This is the ID of the configuration in the Akamai Control Center that defines which detection rules to apply.
504
+ */
505
+ configurationId: string;
506
+ /**
507
+ * Your Akamai Firewall for AI API key, sent as the `Fai-Api-Key` header on each detect call.
508
+ */
509
+ "api-key": string;
510
+ capture?: CaptureSettings;
511
+ /**
512
+ * Behavior when Akamai returns a rule with `action: "alert"` (Akamai's Monitor mode). `log` writes a warning and lets the request through, `block` treats the alert like a deny, `none` is silent.
513
+ */
514
+ onWarn?: "log" | "block" | "none";
515
+ /**
516
+ * If true (the default), the policy throws when the Akamai detect call itself fails (network error, 5xx, malformed response). Set to false to fail open and allow the request through when Akamai is unreachable.
517
+ */
518
+ throwOnError?: boolean;
519
+ /**
520
+ * Override the Akamai Firewall for AI detect endpoint URL. The literal `{configurationId}` is replaced with the configured ID. Defaults to `https://aisec.akamai.com/fai/v1/fai-configurations/{configurationId}/detect`. Useful for regional Akamai endpoints or for pointing tests at a mock server.
521
+ */
522
+ detectUrl?: string;
523
+ }
524
+
525
+ /**
526
+ * Inspects each upstream response with Akamai's Firewall for AI detect API
527
+ * and replaces the response with a `403 Forbidden` if Akamai returns a `deny`
528
+ * rule. Useful behind AI-powered APIs to filter unsafe completions, sensitive
529
+ * data exposure, and toxic content before they reach the client.
530
+ *
531
+ * The body, headers, URL, and query string sent to Akamai are configurable;
532
+ * by default only the response body is captured. Bodies are read from a clone
533
+ * so the client still receives the original.
534
+ *
535
+ * @title Akamai Firewall for AI - Outbound
536
+ * @public
537
+ * @param response - The outgoing Response from the handler
538
+ * @param request - The original incoming Request
539
+ * @param context - The current context of the Request
540
+ * @param options - The configuration options for the policy
541
+ * @param policyName - The name of the policy as set in policies.json
542
+ * @returns A Response
543
+ */
544
+ export declare const AkamaiFirewallForAiOutboundPolicy: OutboundPolicyHandler<AkamaiFirewallForAiOutboundPolicyOptions>;
545
+
546
+ /**
547
+ * The options for the Akamai Firewall for AI outbound policy. Sends the upstream response to Akamai's Firewall for AI detect endpoint and blocks the response if any rule returns a 'deny' action.
548
+ * @public
549
+ */
550
+ export declare interface AkamaiFirewallForAiOutboundPolicyOptions {
551
+ /**
552
+ * Your Akamai Firewall for AI Configuration ID. This is the ID of the configuration in the Akamai Control Center that defines which detection rules to apply.
553
+ */
554
+ configurationId: string;
555
+ /**
556
+ * Your Akamai Firewall for AI API key, sent as the `Fai-Api-Key` header on each detect call.
557
+ */
558
+ "api-key": string;
559
+ capture?: CaptureSettings_2;
560
+ /**
561
+ * Behavior when Akamai returns a rule with `action: "alert"` (Akamai's Monitor mode). `log` writes a warning and lets the response through, `block` treats the alert like a deny, `none` is silent.
562
+ */
563
+ onWarn?: "log" | "block" | "none";
564
+ /**
565
+ * If true (the default), the policy throws when the Akamai detect call itself fails (network error, 5xx, malformed response). Set to false to fail open and allow the response through when Akamai is unreachable.
566
+ */
567
+ throwOnError?: boolean;
568
+ /**
569
+ * Override the Akamai Firewall for AI detect endpoint URL. The literal `{configurationId}` is replaced with the configured ID. Defaults to `https://aisec.akamai.com/fai/v1/fai-configurations/{configurationId}/detect`. Useful for regional Akamai endpoints or for pointing tests at a mock server.
570
+ */
571
+ detectUrl?: string;
572
+ }
573
+
470
574
  /**
471
575
  * Amberflo is a usage metering and billing service. This policy allows
472
576
  * you to send metering calls for each API to their meter ingest endpoint.
473
577
  *
474
578
  * @title Amberflo Metering / Billing
579
+ * @product api-gateway
475
580
  * @public
476
581
  * @param request - The ZuploRequest
477
582
  * @param context - The ZuploContext
@@ -561,6 +666,7 @@ declare interface AmberfloMeteringProperties extends Omit<
561
666
  * version of Zuplo.
562
667
  * @hidden
563
668
  * @title API Key Authentication
669
+ * @product api-gateway
564
670
  * @public
565
671
  * @param request - The ZuploRequest
566
672
  * @param context - The ZuploContext
@@ -670,6 +776,7 @@ export declare interface ApiKeyConsumerClientOptions {
670
776
  * and automatically adds user information to authenticated requests.
671
777
  *
672
778
  * @title API Key Authentication
779
+ * @product api-gateway
673
780
  * @public
674
781
  *
675
782
  * @param request - The incoming ZuploRequest
@@ -979,6 +1086,7 @@ declare interface AuditLogRequestFilter {
979
1086
  * Authenticate users using Auth0 issued JWT tokens.
980
1087
  *
981
1088
  * @title Auth0 JWT Auth
1089
+ * @product api-gateway
982
1090
  * @public
983
1091
  * @param request - The ZuploRequest
984
1092
  * @param context - The ZuploContext
@@ -1015,6 +1123,7 @@ export declare interface Auth0JwtInboundPolicyOptions {
1015
1123
  * Authorize requests using an AuthZEN compatible PDP
1016
1124
  *
1017
1125
  * @title AuthZEN Authorization
1126
+ * @product api-gateway
1018
1127
  * @beta
1019
1128
  * @enterprise
1020
1129
  * @param request - The ZuploRequest
@@ -1334,6 +1443,7 @@ export declare class AWSLoggingPlugin extends LogPlugin {
1334
1443
  * Authorize requests using Axiomatics Policy Server.
1335
1444
  *
1336
1445
  * @title Axiomatics Authorization
1446
+ * @product api-gateway
1337
1447
  * @beta
1338
1448
  * @enterprise
1339
1449
  * @param request - The ZuploRequest
@@ -1653,6 +1763,7 @@ declare interface BasicAuthAccount {
1653
1763
  * Authenticate requests using basic auth (i.e. username and password)
1654
1764
  *
1655
1765
  * @title Basic Auth
1766
+ * @product api-gateway
1656
1767
  * @public
1657
1768
  * @param request - The ZuploRequest
1658
1769
  * @param context - The ZuploContext
@@ -1701,6 +1812,7 @@ declare interface BatchDispatcherOptions {
1701
1812
  * The brownout policy allows performing scheduled downtime on your API
1702
1813
  *
1703
1814
  * @title Brown Out
1815
+ * @product api-gateway
1704
1816
  * @public
1705
1817
  * @param request - The ZuploRequest
1706
1818
  * @param context - The ZuploContext
@@ -1807,6 +1919,7 @@ declare interface CacheOptions {
1807
1919
  * Respond to matched incoming requests with cached content
1808
1920
  *
1809
1921
  * @title Caching
1922
+ * @product api-gateway
1810
1923
  * @public
1811
1924
  * @param request - The ZuploRequest
1812
1925
  * @param context - The ZuploContext
@@ -1852,6 +1965,68 @@ export declare interface CachingInboundPolicyOptions {
1852
1965
  statusCodes?: number[];
1853
1966
  }
1854
1967
 
1968
+ /**
1969
+ * Controls which parts of the incoming request are sent to Akamai for inspection. Akamai's detect endpoint receives the captured fields concatenated into a single labeled text payload as `llmInput`.
1970
+ * @public
1971
+ */
1972
+ declare interface CaptureSettings {
1973
+ /**
1974
+ * Include the request body. Only text-based content types (JSON, XML, form-encoded, text/*) are sent; binary bodies are skipped. The body is read from a clone of the request so the upstream still receives it unchanged.
1975
+ */
1976
+ body?: boolean;
1977
+ /**
1978
+ * Include the request headers. By default `Authorization`, `Proxy-Authorization`, `Cookie`, and `Set-Cookie` are stripped — see the `dangerouslyInclude*` flags to override.
1979
+ */
1980
+ headers?: boolean;
1981
+ /**
1982
+ * Include the request URL (origin and path, query string excluded). Enable `queryString` separately if you also want the query string.
1983
+ */
1984
+ url?: boolean;
1985
+ /**
1986
+ * Include the request query string. Query strings sometimes contain credentials or session tokens — leave this off unless you want Akamai to see them.
1987
+ */
1988
+ queryString?: boolean;
1989
+ /**
1990
+ * If `headers` is true, also include the `Authorization` and `Proxy-Authorization` headers. Off by default because these typically contain bearer tokens.
1991
+ */
1992
+ dangerouslyIncludeAuthorizationHeader?: boolean;
1993
+ /**
1994
+ * If `headers` is true, also include the `Cookie` header. Off by default because cookies often carry session credentials.
1995
+ */
1996
+ dangerouslyIncludeCookieHeader?: boolean;
1997
+ }
1998
+
1999
+ /**
2000
+ * Controls which parts of the upstream response (and the originating request URL) are sent to Akamai for inspection. Akamai's detect endpoint receives the captured fields concatenated into a single labeled text payload as `llmOutput`.
2001
+ * @public
2002
+ */
2003
+ declare interface CaptureSettings_2 {
2004
+ /**
2005
+ * Include the response body. Only text-based content types (JSON, XML, form-encoded, text/*) are sent; binary bodies are skipped. The body is read from a clone of the response so the client still receives it unchanged.
2006
+ */
2007
+ body?: boolean;
2008
+ /**
2009
+ * Include the response headers. By default `Set-Cookie` is stripped — see `dangerouslyIncludeCookieHeader` to override.
2010
+ */
2011
+ headers?: boolean;
2012
+ /**
2013
+ * Include the originating request URL (origin and path, query string excluded). Useful as context for the response.
2014
+ */
2015
+ url?: boolean;
2016
+ /**
2017
+ * Include the originating request's query string. Query strings sometimes contain credentials or session tokens — leave this off unless you want Akamai to see them.
2018
+ */
2019
+ queryString?: boolean;
2020
+ /**
2021
+ * If `headers` is true, also include any `Authorization` or `Proxy-Authorization` headers on the response. Rarely set on responses but stripped by default for safety.
2022
+ */
2023
+ dangerouslyIncludeAuthorizationHeader?: boolean;
2024
+ /**
2025
+ * If `headers` is true, also include the `Set-Cookie` header on the response. Off by default because Set-Cookie typically carries session credentials.
2026
+ */
2027
+ dangerouslyIncludeCookieHeader?: boolean;
2028
+ }
2029
+
1855
2030
  declare interface Category {
1856
2031
  Id?: string;
1857
2032
  CategoryId?: string;
@@ -1863,6 +2038,7 @@ declare interface Category {
1863
2038
  * Changes the HTTP method of the incoming request.
1864
2039
  *
1865
2040
  * @title Change Method
2041
+ * @product api-gateway
1866
2042
  * @public
1867
2043
  * @param request - The ZuploRequest
1868
2044
  * @param context - The ZuploContext
@@ -1893,6 +2069,7 @@ declare type CheckIntervalMs = number;
1893
2069
  * Removes all headers from the incoming request except for those in the exclude list.
1894
2070
  *
1895
2071
  * @title Clear Request Headers
2072
+ * @product api-gateway
1896
2073
  * @public
1897
2074
  * @param request - The ZuploRequest
1898
2075
  * @param context - The ZuploContext
@@ -1917,6 +2094,7 @@ export declare interface ClearHeadersInboundPolicyOptions {
1917
2094
  * Removes all headers from the response except for those in the exclude list.
1918
2095
  *
1919
2096
  * @title Clear Response Headers
2097
+ * @product api-gateway
1920
2098
  * @public
1921
2099
  * @param request - The ZuploRequest
1922
2100
  * @param context - The ZuploContext
@@ -1941,6 +2119,7 @@ export declare interface ClearHeadersOutboundPolicyOptions {
1941
2119
  * Authenticate users using Clerk issued JWT tokens.
1942
2120
  *
1943
2121
  * @title Clerk JWT Auth
2122
+ * @product api-gateway
1944
2123
  * @public
1945
2124
  * @param request - The ZuploRequest
1946
2125
  * @param context - The ZuploContext
@@ -2002,6 +2181,7 @@ declare interface ClientCredentialsConfig {
2002
2181
  * Authenticate requests with JWT tokens issued by AWS Cognito.
2003
2182
  *
2004
2183
  * @title AWS Cognito JWT Auth
2184
+ * @product api-gateway
2005
2185
  * @public
2006
2186
  * @param request - The ZuploRequest
2007
2187
  * @param context - The ZuploContext
@@ -2184,6 +2364,7 @@ export declare type ComplexRateLimitFunction =
2184
2364
  * let's you set rate limits based on custom counters (not just requests)
2185
2365
  *
2186
2366
  * @title Complex Rate Limiting
2367
+ * @product api-gateway
2187
2368
  * @enterprise
2188
2369
  * @param request - The ZuploRequest
2189
2370
  * @param context - The ZuploContext
@@ -2254,6 +2435,7 @@ export declare interface ComplexRateLimitInboundPolicyOptions {
2254
2435
  * Creates a composite, or group policy - composed of other inbound policies. For reuse across routes.
2255
2436
  *
2256
2437
  * @title Composite Inbound (Group Policies)
2438
+ * @product api-gateway
2257
2439
  * @public
2258
2440
  * @param request - The ZuploRequest
2259
2441
  * @param context - The ZuploContext
@@ -2278,6 +2460,7 @@ export declare interface CompositeInboundPolicyOptions {
2278
2460
  * Creates a composite, or group policy - composed of other outbound policies. For reuse across routes.
2279
2461
  *
2280
2462
  * @title Composite Outbound (Group Policies)
2463
+ * @product api-gateway
2281
2464
  * @public
2282
2465
  * @param request - The ZuploRequest
2283
2466
  * @param context - The ZuploContext
@@ -2572,6 +2755,7 @@ export declare class CryptoBeta extends BaseCryptoBeta {
2572
2755
  * Authenticate users using the Curity Phantom Token Pattern.
2573
2756
  *
2574
2757
  * @title Curity Phantom Token Auth
2758
+ * @product api-gateway
2575
2759
  * @public
2576
2760
  * @param request - The ZuploRequest
2577
2761
  * @param context - The ZuploContext
@@ -2785,6 +2969,44 @@ declare const EventType: {
2785
2969
  readonly AI_GATEWAY_LATENCY_HISTOGRAM: "ai_gateway_latency_histogram";
2786
2970
  readonly AI_GATEWAY_WARNING_COUNT: "ai_gateway_warning_count";
2787
2971
  readonly AI_GATEWAY_BLOCKED_COUNT: "ai_gateway_blocked_count";
2972
+ readonly MCP_GATEWAY_REQUEST_RECEIVED: "mcp_gateway_request_received";
2973
+ readonly MCP_GATEWAY_REQUEST_COMPLETED: "mcp_gateway_request_completed";
2974
+ readonly MCP_GATEWAY_REQUEST_REJECTED: "mcp_gateway_request_rejected";
2975
+ readonly MCP_GATEWAY_INITIALIZE_NEGOTIATED: "mcp_gateway_initialize_negotiated";
2976
+ readonly MCP_GATEWAY_CLIENT_UNSUPPORTED_BEHAVIOR: "mcp_gateway_client_unsupported_behavior";
2977
+ readonly MCP_GATEWAY_CATALOG_LISTED: "mcp_gateway_catalog_listed";
2978
+ readonly MCP_GATEWAY_CATALOG_IMPORTED: "mcp_gateway_catalog_imported";
2979
+ readonly MCP_GATEWAY_CATALOG_DRIFT_DETECTED: "mcp_gateway_catalog_drift_detected";
2980
+ readonly MCP_GATEWAY_CAPABILITY_LISTED: "mcp_gateway_capability_listed";
2981
+ readonly MCP_GATEWAY_CAPABILITY_INVOKED: "mcp_gateway_capability_invoked";
2982
+ readonly MCP_GATEWAY_CAPABILITY_COMPLETED: "mcp_gateway_capability_completed";
2983
+ readonly MCP_GATEWAY_CAPABILITY_FAILED: "mcp_gateway_capability_failed";
2984
+ readonly MCP_GATEWAY_CAPABILITY_CONNECT_REQUIRED: "mcp_gateway_capability_connect_required";
2985
+ readonly MCP_GATEWAY_AUTH_DOWNSTREAM_TOKEN_VALIDATED: "mcp_gateway_auth_downstream_token_validated";
2986
+ readonly MCP_GATEWAY_AUTH_DOWNSTREAM_TOKEN_REJECTED: "mcp_gateway_auth_downstream_token_rejected";
2987
+ readonly MCP_GATEWAY_OAUTH_CLIENT_REGISTERED: "mcp_gateway_oauth_client_registered";
2988
+ readonly MCP_GATEWAY_OAUTH_AUTHORIZE_STARTED: "mcp_gateway_oauth_authorize_started";
2989
+ readonly MCP_GATEWAY_OAUTH_AUTHORIZE_AWAITING_SETUP: "mcp_gateway_oauth_authorize_awaiting_setup";
2990
+ readonly MCP_GATEWAY_OAUTH_TOKEN_ISSUED: "mcp_gateway_oauth_token_issued";
2991
+ readonly MCP_GATEWAY_OAUTH_TOKEN_REFRESH_ROTATED: "mcp_gateway_oauth_token_refresh_rotated";
2992
+ readonly MCP_GATEWAY_OAUTH_TOKEN_REVOKED: "mcp_gateway_oauth_token_revoked";
2993
+ readonly MCP_GATEWAY_AUTH_UPSTREAM_CONNECT_REQUIRED: "mcp_gateway_auth_upstream_connect_required";
2994
+ readonly MCP_GATEWAY_AUTH_UPSTREAM_CONNECT_STARTED: "mcp_gateway_auth_upstream_connect_started";
2995
+ readonly MCP_GATEWAY_AUTH_UPSTREAM_CALLBACK_RECEIVED: "mcp_gateway_auth_upstream_callback_received";
2996
+ readonly MCP_GATEWAY_AUTH_UPSTREAM_TOKEN_EXCHANGE_SUCCEEDED: "mcp_gateway_auth_upstream_token_exchange_succeeded";
2997
+ readonly MCP_GATEWAY_AUTH_UPSTREAM_TOKEN_EXCHANGE_FAILED: "mcp_gateway_auth_upstream_token_exchange_failed";
2998
+ readonly MCP_GATEWAY_AUTH_UPSTREAM_CREDENTIAL_RESOLVED: "mcp_gateway_auth_upstream_credential_resolved";
2999
+ readonly MCP_GATEWAY_AUTH_UPSTREAM_CREDENTIAL_MISSING: "mcp_gateway_auth_upstream_credential_missing";
3000
+ readonly MCP_GATEWAY_AUTH_UPSTREAM_RECONSENT_REQUIRED: "mcp_gateway_auth_upstream_reconsent_required";
3001
+ readonly MCP_GATEWAY_POLICY_DECISION: "mcp_gateway_policy_decision";
3002
+ readonly MCP_GATEWAY_GUARDRAIL_DECISION: "mcp_gateway_guardrail_decision";
3003
+ readonly MCP_GATEWAY_RATE_LIMIT_DECISION: "mcp_gateway_rate_limit_decision";
3004
+ readonly MCP_GATEWAY_UPSTREAM_REQUEST_SENT: "mcp_gateway_upstream_request_sent";
3005
+ readonly MCP_GATEWAY_UPSTREAM_REQUEST_COMPLETED: "mcp_gateway_upstream_request_completed";
3006
+ readonly MCP_GATEWAY_UPSTREAM_REQUEST_FAILED: "mcp_gateway_upstream_request_failed";
3007
+ readonly MCP_GATEWAY_AUDIT_VIRTUAL_SERVER_CREATED: "mcp_gateway_audit_virtual_server_created";
3008
+ readonly MCP_GATEWAY_AUDIT_VIRTUAL_SERVER_UPDATED: "mcp_gateway_audit_virtual_server_updated";
3009
+ readonly MCP_GATEWAY_AUDIT_VIRTUAL_SERVER_DELETED: "mcp_gateway_audit_virtual_server_deleted";
2788
3010
  };
2789
3011
 
2790
3012
  declare type EventType = (typeof EventType)[keyof typeof EventType];
@@ -2799,6 +3021,7 @@ declare interface FetchOptions<T> {
2799
3021
  * Authenticate users using Firebase issued JWT tokens.
2800
3022
  *
2801
3023
  * @title Firebase JWT Auth
3024
+ * @product api-gateway
2802
3025
  * @public
2803
3026
  * @param request - The ZuploRequest
2804
3027
  * @param context - The ZuploContext
@@ -2831,6 +3054,7 @@ export declare interface FirebaseJwtInboundPolicyOptions {
2831
3054
  * Converts form data in the incoming request to JSON.
2832
3055
  *
2833
3056
  * @title Form Data to JSON
3057
+ * @product api-gateway
2834
3058
  * @public
2835
3059
  * @param request - The ZuploRequest
2836
3060
  * @param context - The ZuploContext
@@ -2921,6 +3145,7 @@ export declare interface GenerateRequestLoggerEntry<T> {
2921
3145
  * Block requests based on geo-location parameters: country, region code, and ASN
2922
3146
  *
2923
3147
  * @title Geo-location filtering
3148
+ * @product api-gateway
2924
3149
  * @public
2925
3150
  * @param request - The ZuploRequest
2926
3151
  * @param context - The ZuploContext
@@ -3098,6 +3323,7 @@ declare interface HeaderCredentialsConfig {
3098
3323
  * headers.
3099
3324
  *
3100
3325
  * @title HTTP Deprecation
3326
+ * @product api-gateway
3101
3327
  * @public
3102
3328
  * @param response - The Response
3103
3329
  * @param request - The ZuploRequest
@@ -5129,6 +5355,7 @@ declare type JsonValue = JsonPrimitive | JsonObject | JsonArray;
5129
5355
  * Validates that the JWT token includes specific scopes
5130
5356
  *
5131
5357
  * @title JWT Scope Validation
5358
+ * @product api-gateway
5132
5359
  * @public
5133
5360
  * @param request - The ZuploRequest
5134
5361
  * @param context - The ZuploContext
@@ -5851,6 +6078,7 @@ export declare interface MockApiInboundOptions {
5851
6078
  * Returns example responses from the OpenAPI document associated with this route.
5852
6079
  *
5853
6080
  * @title Mock API Response
6081
+ * @product api-gateway
5854
6082
  * @public
5855
6083
  * @param request - The ZuploRequest
5856
6084
  * @param context - The ZuploContext
@@ -5875,6 +6103,7 @@ declare interface MoesifContext {
5875
6103
  * send metering calls for each API to their events batch endpoint.
5876
6104
  *
5877
6105
  * @title Moesif Analytics & Billing
6106
+ * @product api-gateway
5878
6107
  * @public
5879
6108
  * @param request - The ZuploRequest
5880
6109
  * @param context - The ZuploContext
@@ -5912,6 +6141,7 @@ export declare interface MoesifInboundPolicyOptions {
5912
6141
  * Monetization inbound policy for API key validation and usage metering.
5913
6142
  *
5914
6143
  * @title Monetization
6144
+ * @product api-gateway
5915
6145
  * @param request - The ZuploRequest
5916
6146
  * @param context - The ZuploContext
5917
6147
  * @param options - The policy options set in policies.json
@@ -6153,6 +6383,7 @@ export declare interface OAuthProtectedResourcePluginOptions {
6153
6383
  * Authorize requests using Okta FGA.
6154
6384
  *
6155
6385
  * @title Okta FGA Authorization
6386
+ * @product api-gateway
6156
6387
  * @beta
6157
6388
  * @enterprise
6158
6389
  * @param request - The ZuploRequest
@@ -6203,6 +6434,7 @@ export declare interface OktaFGAAuthZInboundPolicyOptions {
6203
6434
  * Authenticate users using Okta issued JWT tokens.
6204
6435
  *
6205
6436
  * @title Okta JWT Auth
6437
+ * @product api-gateway
6206
6438
  * @public
6207
6439
  * @param request - The ZuploRequest
6208
6440
  * @param context - The ZuploContext
@@ -6866,6 +7098,7 @@ declare namespace OpenAPIV3_1 {
6866
7098
  * Authorize requests using OpenFGA.
6867
7099
  *
6868
7100
  * @title OpenFGA Authorization
7101
+ * @product api-gateway
6869
7102
  * @beta
6870
7103
  * @enterprise
6871
7104
  * @param request - The ZuploRequest
@@ -6931,6 +7164,7 @@ declare interface OpenFGACheck {
6931
7164
  * requests using an Open ID compliant bearer token.
6932
7165
  *
6933
7166
  * @title JWT Auth
7167
+ * @product api-gateway
6934
7168
  * @public
6935
7169
  * @param request - The ZuploRequest
6936
7170
  * @param context - The ZuploContext
@@ -7000,6 +7234,7 @@ export declare interface OpenIdJwtInboundPolicyOptions {
7000
7234
  * It also supports entitlement checking to verify if a subject has access to a feature.
7001
7235
  *
7002
7236
  * @title OpenMeter
7237
+ * @product api-gateway
7003
7238
  * @public
7004
7239
  * @param request - The ZuploRequest
7005
7240
  * @param context - The ZuploContext
@@ -7297,6 +7532,28 @@ export declare interface ParameterDefinition extends ParameterBaseObject {
7297
7532
  in: string;
7298
7533
  }
7299
7534
 
7535
+ /**
7536
+ * This is the parsed values of the Cors configuration. All
7537
+ * values in the parsed configuration are in the format that the headers
7538
+ * use them (i.e. everything is converted to a string)
7539
+ */
7540
+ declare interface ParsedCorsPolicyConfiguration {
7541
+ name: string;
7542
+ allowCredentials: string | undefined;
7543
+ maxAge: string | undefined;
7544
+ allowedOrigins: string[];
7545
+ allowedMethods?: string;
7546
+ allowedHeaders?: string;
7547
+ exposeHeaders?: string;
7548
+ }
7549
+
7550
+ /**
7551
+ * @public
7552
+ */
7553
+ declare interface ParsedRouteData extends Omit<RouteData, "corsPolicies"> {
7554
+ corsPolicies: ParsedCorsPolicyConfiguration[];
7555
+ }
7556
+
7300
7557
  /**
7301
7558
  * The base class for inbound and outbound policies.
7302
7559
  * Provides common functionality for all policy types.
@@ -7457,6 +7714,8 @@ export declare class ProblemResponseFormatter {
7457
7714
  * executed against them.
7458
7715
  *
7459
7716
  * @title Prompt Injection Detection
7717
+ * @product ai-gateway
7718
+ * @product mcp-gateway
7460
7719
  * @public
7461
7720
  * @enterprise
7462
7721
  * @param request - The ZuploRequest
@@ -7494,6 +7753,7 @@ export declare interface PromptInjectionDetectionOutboundPolicyOptions {
7494
7753
  * Authenticate users using PropelAuth issued JWT tokens.
7495
7754
  *
7496
7755
  * @title PropelAuth JWT Auth
7756
+ * @product api-gateway
7497
7757
  * @public
7498
7758
  * @param request - The ZuploRequest
7499
7759
  * @param context - The ZuploContext
@@ -7530,6 +7790,7 @@ export declare interface PropelAuthJwtInboundPolicyOptions {
7530
7790
  * Extracts a query parameter and sets it as a header in the request.
7531
7791
  *
7532
7792
  * @title Query Parameter to Header
7793
+ * @product api-gateway
7533
7794
  * @public
7534
7795
  * @param request - The ZuploRequest
7535
7796
  * @param context - The ZuploContext
@@ -7573,6 +7834,7 @@ export declare interface QuotaDetail {
7573
7834
  * The Quota policy enables you to set monthly, weekly, daily or hourly quotas on your API.
7574
7835
  *
7575
7836
  * @title Quota
7837
+ * @product api-gateway
7576
7838
  * @public
7577
7839
  * @param request - The ZuploRequest
7578
7840
  * @param context - The ZuploContext
@@ -7677,6 +7939,7 @@ declare type RateLimitHeaderMode_2 = "none" | "retry-after";
7677
7939
  * can operate in strict or async mode for different performance characteristics.
7678
7940
  *
7679
7941
  * @title Rate Limiting
7942
+ * @product api-gateway
7680
7943
  * @public
7681
7944
  *
7682
7945
  * @param request - The incoming ZuploRequest
@@ -7864,6 +8127,7 @@ declare interface ReadmeMeteringInboundPolicyOptions {
7864
8127
  * policy pushes logs to their API calls dashboard.
7865
8128
  *
7866
8129
  * @title Readme Metrics
8130
+ * @product api-gateway
7867
8131
  * @public
7868
8132
  * @param request - The ZuploRequest
7869
8133
  * @param context - The ZuploContext
@@ -7959,6 +8223,7 @@ declare interface RelationshipCondition {
7959
8223
  * Remove headers from the incoming request.
7960
8224
  *
7961
8225
  * @title Remove Request Headers
8226
+ * @product api-gateway
7962
8227
  * @public
7963
8228
  * @param request - The ZuploRequest
7964
8229
  * @param context - The ZuploContext
@@ -7983,6 +8248,7 @@ export declare interface RemoveHeadersInboundPolicyOptions {
7983
8248
  * Remove configured headers from the outgoing response.
7984
8249
  *
7985
8250
  * @title Remove Response Headers
8251
+ * @product api-gateway
7986
8252
  * @public
7987
8253
  * @param request - The ZuploRequest
7988
8254
  * @param context - The ZuploContext
@@ -8007,6 +8273,7 @@ export declare interface RemoveHeadersOutboundPolicyOptions {
8007
8273
  * Remove query parameters from the incoming request
8008
8274
  *
8009
8275
  * @title Remove Query Parameters
8276
+ * @product api-gateway
8010
8277
  * @public
8011
8278
  * @param request - The ZuploRequest
8012
8279
  * @param context - The ZuploContext
@@ -8031,6 +8298,7 @@ export declare interface RemoveQueryParamsInboundPolicyOptions {
8031
8298
  * Replace a string in the incoming request body
8032
8299
  *
8033
8300
  * @title Replace String in Response Body
8301
+ * @product api-gateway
8034
8302
  * @public
8035
8303
  * @param request - The ZuploRequest
8036
8304
  * @param context - The ZuploContext
@@ -8131,6 +8399,7 @@ declare interface RequestReference {
8131
8399
  * Enforces a maximum size in bytes of the incoming request.
8132
8400
  *
8133
8401
  * @title Request Size Limit
8402
+ * @product api-gateway
8134
8403
  * @public
8135
8404
  * @param request - The ZuploRequest
8136
8405
  * @param context - The ZuploContext
@@ -8186,6 +8455,7 @@ export declare interface RequestUser<TUserData> {
8186
8455
  * to ensure they match the defined schema before processing.
8187
8456
  *
8188
8457
  * @title Request Validation
8458
+ * @product api-gateway
8189
8459
  * @public
8190
8460
  *
8191
8461
  * @param request - The incoming ZuploRequest
@@ -8296,6 +8566,7 @@ export declare interface RequestValidationInboundPolicyOptions {
8296
8566
  * Sets an allow-list for an origin header
8297
8567
  *
8298
8568
  * @title Require Origin
8569
+ * @product api-gateway
8299
8570
  * @public
8300
8571
  * @param request - The ZuploRequest
8301
8572
  * @param context - The ZuploContext
@@ -8528,6 +8799,7 @@ export declare const SchemaBasedRequestValidation: InboundPolicyHandler<RequestV
8528
8799
  * in the response body.
8529
8800
  *
8530
8801
  * @title Secret Masking
8802
+ * @product api-gateway
8531
8803
  * @public
8532
8804
  * @param request - The ZuploRequest
8533
8805
  * @param context - The ZuploContext
@@ -8572,6 +8844,7 @@ export declare interface SecretMaskingOutboundPolicyOptions {
8572
8844
  * - cacheBy: Determines how cache keys are generated: 'function' for custom logic or 'propertyPath' to extract from JSON body.
8573
8845
  *
8574
8846
  * @title Semantic Cache
8847
+ * @product ai-gateway
8575
8848
  * @beta
8576
8849
  * @enterprise
8577
8850
  * @param request - The ZuploRequest
@@ -8658,6 +8931,7 @@ export declare interface ServiceProvider {
8658
8931
  * a GET/HEAD request to another method when using this policy.
8659
8932
  *
8660
8933
  * @title Set Body
8934
+ * @product api-gateway
8661
8935
  * @public
8662
8936
  * @param request - The ZuploRequest
8663
8937
  * @param context - The ZuploContext
@@ -8684,6 +8958,7 @@ export declare interface SetBodyInboundPolicyOptions {
8684
8958
  * Adds or sets headers on the incoming request.
8685
8959
  *
8686
8960
  * @title Add or Set Request Headers
8961
+ * @product api-gateway
8687
8962
  * @public
8688
8963
  * @param request - The ZuploRequest
8689
8964
  * @param context - The ZuploContext
@@ -8721,6 +8996,7 @@ export declare interface SetHeadersInboundPolicyOptions {
8721
8996
  * Adds or sets headers on the on the outgoing response.
8722
8997
  *
8723
8998
  * @title Set Headers
8999
+ * @product api-gateway
8724
9000
  * @public
8725
9001
  * @param request - The ZuploRequest
8726
9002
  * @param context - The ZuploContext
@@ -8769,6 +9045,7 @@ export declare function setMoesifContext(
8769
9045
  * Adds or sets query parameters on the incoming request.
8770
9046
  *
8771
9047
  * @title Add or Set Query Parameters
9048
+ * @product api-gateway
8772
9049
  * @public
8773
9050
  * @param request - The ZuploRequest
8774
9051
  * @param context - The ZuploContext
@@ -8806,6 +9083,7 @@ export declare interface SetQueryParamsInboundPolicyOptions {
8806
9083
  * Sets the status code on the on the outgoing response.
8807
9084
  *
8808
9085
  * @title Set Status Code
9086
+ * @product api-gateway
8809
9087
  * @public
8810
9088
  * @param request - The ZuploRequest
8811
9089
  * @param context - The ZuploContext
@@ -8850,6 +9128,7 @@ declare type ShouldLogFunction = (
8850
9128
  * Add a delay to the incoming request. Useful for testing.
8851
9129
  *
8852
9130
  * @title Sleep / Delay
9131
+ * @product api-gateway
8853
9132
  * @public
8854
9133
  * @param request - The ZuploRequest
8855
9134
  * @param context - The ZuploContext
@@ -9024,6 +9303,7 @@ export declare class StreamingZoneCache {
9024
9303
  * The Stripe Webhook policy validates the authenticity of an incoming Stripe webhook.
9025
9304
  *
9026
9305
  * @title Stripe Webhook Auth
9306
+ * @product api-gateway
9027
9307
  * @public
9028
9308
  * @param request - The ZuploRequest
9029
9309
  * @param context - The ZuploContext
@@ -9082,6 +9362,7 @@ export declare class SumoLogicLoggingPlugin extends LogPlugin {
9082
9362
  * by Supabase.
9083
9363
  *
9084
9364
  * @title Supabase JWT Auth
9365
+ * @product api-gateway
9085
9366
  * @public
9086
9367
  * @param request - The ZuploRequest
9087
9368
  * @param context - The ZuploContext
@@ -9203,6 +9484,7 @@ declare interface UnauthenticatedCredentialConfig {
9203
9484
  * in order to authenticate requests using Azure identity.
9204
9485
  *
9205
9486
  * @title Upstream Azure AD Service Auth
9487
+ * @product api-gateway
9206
9488
  * @public
9207
9489
  * @enterprise
9208
9490
  * @param request - The ZuploRequest
@@ -9247,6 +9529,7 @@ export declare interface UpstreamAzureAdServiceAuthInboundPolicyOptions {
9247
9529
  * Useful when calling Firebase services as an administrator.
9248
9530
  *
9249
9531
  * @title Upstream Firebase Admin Auth
9532
+ * @product api-gateway
9250
9533
  * @public
9251
9534
  * @param request - The ZuploRequest
9252
9535
  * @param context - The ZuploContext
@@ -9280,6 +9563,7 @@ export declare interface UpstreamFirebaseAdminAuthInboundPolicyOptions {
9280
9563
  * request. Useful when calling Firebase services as user.
9281
9564
  *
9282
9565
  * @title Upstream Firebase User Auth
9566
+ * @product api-gateway
9283
9567
  * @public
9284
9568
  * @param request - The ZuploRequest
9285
9569
  * @param context - The ZuploContext
@@ -9331,6 +9615,7 @@ export declare interface UpstreamFirebaseUserAuthInboundPolicyOptions {
9331
9615
  * use of a service account private key.
9332
9616
  *
9333
9617
  * @title Upstream GCP Federated Auth
9618
+ * @product api-gateway
9334
9619
  * @beta
9335
9620
  * @enterprise
9336
9621
  * @param request - The ZuploRequest
@@ -9397,6 +9682,7 @@ export declare interface UpstreamGcpFederatedAuthInboundPolicyOptions {
9397
9682
  * services like Cloud Endpoints / ESPv2
9398
9683
  *
9399
9684
  * @title Upstream GCP Self-Signed JWT
9685
+ * @product api-gateway
9400
9686
  * @public
9401
9687
  * @enterprise
9402
9688
  * @param request - The ZuploRequest
@@ -9428,6 +9714,7 @@ export declare interface UpstreamGcpJwtInboundPolicyOptions {
9428
9714
  * secured with GCP IAM.
9429
9715
  *
9430
9716
  * @title Upstream GCP Service Auth
9717
+ * @product api-gateway
9431
9718
  * @public
9432
9719
  * @enterprise
9433
9720
  * @param request - The ZuploRequest
@@ -9486,6 +9773,7 @@ export declare interface UpstreamGcpServiceAuthInboundPolicyOptions {
9486
9773
  * to the specified header for upstream authentication.
9487
9774
  *
9488
9775
  * @title Upstream Zuplo JWT
9776
+ * @product api-gateway
9489
9777
  * @enterprise
9490
9778
  * @param request - The ZuploRequest
9491
9779
  * @param context - The ZuploContext
@@ -9684,6 +9972,7 @@ declare type UserDataDefault = any;
9684
9972
  * Validates the body of an incoming request based on a JSON schema.
9685
9973
  *
9686
9974
  * @title JSON Body Validation
9975
+ * @product api-gateway
9687
9976
  * @public
9688
9977
  * @deprecated Use the new {@link https://zuplo.com/docs/policies/request-validation-inbound|Request Validation Policy}.
9689
9978
  * The new policy validates JSON bodies like this policy, but also supports validation of parameters, query strings, etc.
@@ -9806,6 +10095,7 @@ declare interface WaitUntilFunc {
9806
10095
  * Authenticate bots using web-bot-auth HTTP Message Signatures.
9807
10096
  *
9808
10097
  * @title Web Bot Auth
10098
+ * @product api-gateway
9809
10099
  * @public
9810
10100
  * @param request - The ZuploRequest
9811
10101
  * @param context - The ZuploContext
@@ -9932,6 +10222,7 @@ declare interface XacmlRequest {
9932
10222
  * Parses XML and converts it to JSON.
9933
10223
  *
9934
10224
  * @title XML to JSON Outbound
10225
+ * @product api-gateway
9935
10226
  * @public
9936
10227
  * @param request - The ZuploRequest
9937
10228
  * @param context - The ZuploContext