/** * UI Parameters * * Pull Zone Name * @example myoriginurl * * Origin Type * @example https://myoriginurl.com, with optional Host Header * @example Storage Zone * * Tier * @example $10/TB Standard Tier (websites), with priced enable zone selection * @example $5/TB High Volume Tier (large files and videos) */ export interface AddPullZoneRequest { /** * User-specific [API Key](https://dash.bunny.net/account/settings) * @example "cb1a7c68-89a0-462a-9495-13ebd7366cfe" */ apiKey?: string; /** * Sets the origin URL of the Pull Zone */ OriginUrl?: string; /** * Sets the list of referrer hostnames that are allowed to access the pull zone. Requests containing the header Referer: hostname that is not on the list will be rejected. If empty, all the referrers are allowed */ AllowedReferrers?: string[]; /** * Sets the list of referrer hostnames that are blocked from accessing the pull zone. */ BlockedReferrers?: string[]; /** * Sets the list of IPs that are blocked from accessing the pull zone. Requests coming from the following IPs will be rejected. If empty, all the IPs will be allowed */ BlockedIps?: string[]; /** * Determines if the delivery from the North America region should be enabled for this pull zone */ EnableGeoZoneUS?: boolean; /** * Determines if the delivery from the Europe region should be enabled for this pull zone */ EnableGeoZoneEU?: boolean; /** * Determines if the delivery from the Asia / Oceania regions should be enabled for this pull zone */ EnableGeoZoneASIA?: boolean; /** * Determines if the delivery from the South America region should be enabled for this pull zone */ EnableGeoZoneSA?: boolean; /** * Determines if the delivery from the Africa region should be enabled for this pull zone */ EnableGeoZoneAF?: boolean; /** * Determines if the zone should block requests to the root of the zone. */ BlockRootPathAccess?: boolean; /** * Determines if the POST requests to this zone should be rejected. */ BlockPostRequests?: boolean; /** * Determines if the query string ordering should be enabled. */ EnableQueryStringOrdering?: boolean; /** * Determines if the WebP Vary feature should be enabled. */ EnableWebpVary?: boolean; /** * Determines if the AVIF Vary feature should be enabled. */ EnableAvifVary?: boolean; /** * Determines if the Mobile Vary feature is enabled. */ EnableMobileVary?: boolean; /** * Determines if the Country Code Vary feature should be enabled. */ EnableCountryCodeVary?: boolean; /** * Determines if the Hostname Vary feature should be enabled. */ EnableHostnameVary?: boolean; /** * Determines if cache slicing (Optimize for video) should be enabled for this zone */ EnableCacheSlice?: boolean; /** * Determines if the zone token authentication security should be enabled */ ZoneSecurityEnabled?: boolean; /** * Determines if the token authentication IP validation should be enabled */ ZoneSecurityIncludeHashRemoteIP?: boolean; /** * Determines if the Pull Zone should ignore query strings when serving cached objects (Vary by Query String) */ IgnoreQueryStrings?: boolean; /** * Sets the monthly limit of bandwidth in bytes that the pullzone is allowed to use */ MonthlyBandwidthLimit?: boolean; /** * Sets the list of extensions that will return the CORS headers */ AccessControlOriginHeaderExtensions?: string[]; /** * Determines if CORS headers should be enabled */ EnableAccessControlOriginHeader?: boolean; /** * Determines if the Pull Zone should automatically remove cookies from the responses */ DisableCookies?: boolean; /** * Sets the list of two letter Alpha2 country codes that will be redirected to the cheapest possible region */ BudgetRedirectedCountries?: string[]; /** * Sets the list of two letter Alpha2 country codes that will be blocked from accessing the zone */ BlockedCountries?: string[]; /** * Sets the cache control override setting for this zone */ CacheControlMaxAgeOverride?: number; /** * Sets the browser cache control override setting for this zone */ CacheControlPublicMaxAgeOverride?: number; /** * @deprecated * (Deprecated) Sets the browser cache control override setting for this zone */ CacheControlBrowserMaxAgeOverride?: number; /** * Determines if the zone should forward the requested host header to the origin */ AddHostHeader?: boolean; /** * Determines if the canonical header should be added by this zone */ AddCanonicalHeader?: boolean; /** * Determines if the logging should be enabled for this zone */ EnableLogging?: boolean; /** * Determines if the log anonymization should be enabled */ LoggingIPAnonymizationEnabled?: boolean; /** * The ID of the storage zone that should be used as the Perma-Cache */ PermaCacheStorageZoneId?: number; /** * Determines if the AWS signing should be enabled or not */ AWSSigningEnabled?: boolean; /** * Sets the AWS signing region name */ AWSSigningRegionName?: string; /** * Sets the AWS signing secret key */ AWSSigningSecret?: string; /** * Determines if the origin shield should be enabled */ EnableOriginShield?: boolean; /** * Determines the zone code where the origin shield should be set up */ OriginShieldZoneCode?: string; /** * Determines if the TLS 1 should be enabled on this zone */ EnableTLS1?: boolean; /** * Determines if the TLS 1.1 should be enabled on this zone */ EnableTLS1_1?: boolean; /** * Determines if the cache error responses should be enabled on the zone */ CacheErrorResponses?: boolean; /** * Determines if the SSL certificate should be verified when connecting to the origin */ VerifyOriginSSL?: boolean; /** * Sets the log forwarding token for the zone */ LogForwardingEnabled?: boolean; /** * Sets the log forwarding destination hostname for the zone */ LogForwardingHostname?: string; /** * Sets the log forwarding port for the zone */ LogForwardingPort?: number; /** * Sets the log forwarding token for the zone */ LogForwardingToken?: string; /** * Sets the log forwarding protocol type */ LogForwardingProtocol?: number; /** * Determines if the logging permanent storage should be enabled */ LoggingSaveToStorage?: boolean; /** * Sets the Storage Zone id that should contain the logs from this Pull Zone */ LoggingStorageZoneId?: number; /** * Determines if the zone should follow redirects return by the origin and cache the response */ FollowRedirects?: boolean; /** * Determines the maximum number of connections per IP that will be allowed to connect to this Pull Zone */ ConnectionLimitPerIPCount?: number; /** * Determines the maximum number of requests per second that will be allowed to connect to this Pull Zone */ RequestLimit?: number; /** * Determines the amount of traffic transferred before the client is limited */ LimitRateAfter?: number; /** * Determines the maximum number of requests per second coming from a single IP before it is blocked. */ LimitRatePerSecond?: number; /** * Determines the maximum burst requests before an IP is blocked */ BurstSize?: number; /** * Determines if WAF should be enabled on the zone */ WAFEnabled?: boolean; /** * Determines the enabled WAF rule groups */ WAFDisabledRuleGroups?: string[]; /** * Determines the disabled WAF rules */ WAFDisabledRules?: string[]; /** * Determines if WAF should enable request headers logging */ WAFEnableRequestHeaderLogging?: boolean; /** * Determines the list of headers that will be ignored in the WAF logs */ WAFRequestHeaderIgnores?: string[]; /** * Determines if custom error page code should be enabled. */ ErrorPageEnableCustomCode?: true; /** * Contains the custom error page code that will be returned */ ErrorPageCustomCode?: string; /** * Determines if the statuspage widget should be displayed on the error pages */ ErrorPageEnableStatuspageWidget?: boolean; /** * The statuspage code that will be used to build the status widget */ ErrorPageStatuspageCode?: string; /** * Determines if the error pages should be whitelabel or not */ ErrorPageWhitelabel?: boolean; /** * Determines if the optimizer should be enabled for this zone */ OptimizerEnabled?: boolean; /** * Determines the maximum automatic image size for desktop clients */ OptimizerDesktopMaxWidth?: number; /** * Determines the maximum automatic image size for mobile clients */ OptimizerMobileMaxWidth?: number; /** * Determines the image quality for desktop clients */ OptimizerImageQuality?: number; /** * Determines the image quality for mobile clients */ OptimizerMobileImageQuality?: number; /** * Determines if the WebP optimization should be enabled */ OptimizerEnableWebP?: boolean; /** * Determines the image manipulation should be enabled */ OptimizerEnableManipulationEngine?: boolean; /** * Determines if the CSS minification should be enabled */ OptimizerMinifyCSS?: boolean; /** * Determines if the JavaScript minification should be enabled */ OptimizerMinifyJavaScript?: boolean; /** * Determines if image watermarking should be enabled */ OptimizerWatermarkEnabled?: boolean; /** * Sets the URL of the watermark image */ OptimizerWatermarkUrl?: string; /** * Sets the position of the watermark image */ OptimizerWatermarkPosition?: number; /** * Sets the offset of the watermark image */ OptimizerWatermarkOffset?: number; /** * Sets the minimum image size to which the watermark will be added */ OptimizerWatermarkMinImageSize?: number; /** * Determines if the automatic image optimization should be enabled */ OptimizerAutomaticOptimizationEnabled?: boolean; /** * Determines the list of optimizer classes */ OptimizerClasses?: OptimizerClass[]; /** * Determines if the optimizer classes should be forced */ OptimizerForceClasses?: boolean; /** * The type of the pull zone. * * Premium = 0 * * Volume = 1 */ Type?: PullZoneType; /** * The number of retries to the origin server */ OriginRetries?: number; /** * The amount of seconds to wait when connecting to the origin. Otherwise the request will fail or retry. */ OriginConnectTimeout?: number; /** * The amount of seconds to wait when waiting for the origin reply. Otherwise the request will fail or retry. */ OriginResponseTimeout?: number; /** * Determines if we should use stale cache while cache is updating */ UseStaleWhileUpdating?: boolean; /** * Determines if we should use stale cache while the origin is offline */ UseStaleWhileOffline?: boolean; /** * Determines if we should retry the request in case of a 5XX response. */ OriginRetry5XXResponses?: boolean; /** * Determines if we should retry the request in case of a connection timeout. */ OriginRetryConnectionTimeout?: boolean; /** * Determines if we should retry the request in case of a response timeout. */ OriginRetryResponseTimeout?: boolean; /** * Determines the amount of time that the CDN should wait before retrying an origin request. */ OriginRetryDelay?: number; /** * Determines the origin port of the pull zone. */ DnsOriginPort?: number; /** * Determines the origin scheme of the pull zone. */ DnsOriginScheme?: string; /** * Contains the list of vary parameters that will be used for vary cache by query string. If empty, all parameters will be used to construct the key */ QueryStringVaryParameters?: string[]; /** * Determines if the origin shield concurrency limit is enabled. */ OriginShieldEnableConcurrencyLimit?: boolean; /** * Determines the number of maximum concurrent requests allowed to the origin. */ OriginShieldMaxConcurrentRequests?: number; /** * Determines if the Cookie Vary feature is enabled. */ EnableCookieVary?: boolean; /** * Contains the list of vary parameters that will be used for vary cache by cookie string. If empty, cookie vary will not be used. */ CookieVaryParameters?: string[]; /** * Determines if the SafeHop is enabled. */ EnableSafeHop?: boolean; /** * Determines the max queue wait time */ OriginShieldQueueMaxWaitTime?: number; /** * Determines the max number of origin requests that will remain in the queue */ OriginShieldMaxQueuedRequests?: number; /** * Determines if cache update is performed in the background. */ UseBackgroundUpdate?: boolean; /** * If set to true, any hostnames added to this Pull Zone will automatically enable SSL. */ EnableAutoSSL?: boolean; /** * Sets the log anonymization type for this pull zone */ LogAnonymizationType?: number; /** * The ID of the storage zone that will be used as the origin */ StorageZoneId?: number; /** * The ID of the edge script that will be used as the origin */ EdgeScriptId?: number; /** * Determine the type of the origin for this Pull Zone */ OriginType?: number; MagicContainersAppId?: string; LogForwardingFormat?: number; ShieldDDosProtectionType?: number; ShieldDDosProtectionEnabled?: boolean; /** * Sets the host header that will be sent to the origin */ OriginHostHeader?: string; EnableSmartCache?: boolean; /** * Determines if request coalescing is currently enabled. */ EnableRequestCoalescing?: boolean; /** * Determines the lock time for coalesced requests. */ RequestCoalescingTimeout?: number; /** * If set to true, the built-in let's encrypt will be disabled and requests are passed to the origin. */ DisableLetsEncrypt?: boolean; /** * Determines if Bunny Image AI is currently enabled. */ EnableBunnyImageAi?: boolean; BunnyAiImageBlueprints?: BunnyAiImageBlueprints[]; /** * Determines if the preloading screen is currently enabled */ PreloadingScreenEnabled?: boolean; /** * The custom preloading screen code */ PreloadingScreenCode?: string; /** * The preloading screen logo URL */ PreloadingScreenLogoUrl?: string; /** * The currently configured preloading screen theme. (0 - Light, 1 - Dark) */ PreloadingScreenTheme?: PreloadingScreenTheme; /** * The delay in milliseconds after which the preloading screen will be displayed (0 - 10000ms) */ PreloadingScreenDelay?: number; /** * The list of routing filters enabled for this zone */ RoutingFilters?: string[]; /** * The name of the pull zone. */ Name: string; } /** * Preloading screen theme * * 0 - Light * * 1 - Dark */ export type PreloadingScreenTheme = 0 | 1; export interface BunnyAiImageBlueprints { Name: string; properties: Record; } /** * The type of the pull zone. * * Premium = 0 * * Volume = 1 */ export type PullZoneType = 0 | 1; export interface OptimizerClass { /** * The name of the optimizer class that will be used in the query string */ Name: string; /** * The list of settings and values the class will send to the optimizer */ properties: string; } export type AddPullZoneResponse = void; export declare const addPullZone: import("untypeable/dist/client-ca591958").g; export declare const addPullZoneEndpoints: { readonly addPullZone: "addPullZone"; readonly "POST /pullzone": "POST /pullzone"; }; export declare function addPullZoneClient(defaultRequestInit: RequestInit, input: AddPullZoneRequest): Promise; //# sourceMappingURL=addPullZone.d.ts.map