bunny-presigned-urls
Version:
Presigned URLs via Edge Scripting for bunny.net 🐰
1,094 lines (1,092 loc) • 29.6 kB
TypeScript
type ITypedArray = Uint8Array | Uint16Array | Uint32Array;
type IDataType = string | Buffer | ITypedArray;
type IHasher = {
/**
* Initializes hash state to default value
*/
init: () => IHasher;
/**
* Updates the hash content with the given data
*/
update: (data: IDataType) => IHasher;
/**
* Calculates the hash of all of the data passed to be hashed with hash.update().
* Defaults to hexadecimal string
* @param outputType If outputType is "binary", it returns Uint8Array. Otherwise it
* returns hexadecimal string
*/
digest: {
(outputType: "binary"): Uint8Array;
(outputType?: "hex"): string;
};
/**
* Save the current internal state of the hasher for later resumption with load().
* Cannot be called before .init() or after .digest()
*
* Note that this state can include arbitrary information about the value being hashed (e.g.
* could include N plaintext bytes from the value), so needs to be treated as being as
* sensitive as the input value itself.
*/
save: () => Uint8Array;
/**
* Resume a state that was created by save(). If this state was not created by a
* compatible build of hash-wasm, an exception will be thrown.
*/
load: (state: Uint8Array) => IHasher;
/**
* Block size in bytes
*/
blockSize: number;
/**
* Digest size in bytes
*/
digestSize: number;
};
declare function createSHA256(): Promise<IHasher>;
declare function createHMAC(hash: Promise<IHasher>, key: IDataType): Promise<IHasher>;
type IHasher$1 = Awaited<ReturnType<typeof createSHA256>>;
type IDataType$1 = Parameters<IHasher$1["update"]>["0"];
export declare class ChecksumWritableStream<W extends IDataType$1> extends WritableStream {
constructor();
get digest(): string | undefined;
}
export declare class ChecksumPassThroughStream<O extends IDataType$1> extends TransformStream {
constructor();
get digest(): string | undefined;
}
export declare function checksumFromReadableStream(readableStream: ReadableStream<Uint8Array>): Promise<string>;
interface AdditionalDataHolder {
/**
* Gets the additional data for this object that did not belong to the properties.
* @return The additional data for this object.
*/
additionalData?: Record<string, unknown>;
}
interface Parsable {
}
interface Action extends AdditionalDataHolder, Parsable {
/**
* The ActionParameter1 property
*/
actionParameter1?: string | null;
/**
* The ActionParameter2 property
*/
actionParameter2?: string | null;
/**
* The ActionType property
*/
actionType?: number | null;
/**
* Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
*/
additionalData?: Record<string, unknown>;
}
interface EdgeRule extends AdditionalDataHolder, Parsable {
/**
* The Action parameter 1. The value depends on other parameters of the edge rule.
*/
actionParameter1?: string | null;
/**
* The Action parameter 2. The value depends on other parameters of the edge rule.
*/
actionParameter2?: string | null;
/**
* The ActionType property
*/
actionType?: number | null;
/**
* Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
*/
additionalData?: Record<string, unknown>;
/**
* The description of the edge rule
*/
description?: string | null;
/**
* Determines if the edge rule is currently enabled or not
*/
enabled?: boolean | null;
/**
* The ExtraActions property
*/
extraActions?: Action[] | null;
/**
* The unique GUID of the edge rule
*/
guid?: string | null;
/**
* The TriggerMatchingType property
*/
triggerMatchingType?: number | null;
/**
* The Triggers property
*/
triggers?: Trigger[] | null;
}
interface Trigger extends AdditionalDataHolder, Parsable {
/**
* Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
*/
additionalData?: Record<string, unknown>;
/**
* The trigger parameter 1. The value depends on the type of trigger.
*/
parameter1?: string | null;
/**
* The list of pattern matches that will trigger the edge rule
*/
patternMatches?: string[] | null;
/**
* The PatternMatchingType property
*/
patternMatchingType?: number | null;
/**
* The Type property
*/
type?: number | null;
}
interface OptimizerClass extends AdditionalDataHolder, Parsable {
/**
* Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
*/
additionalData?: Record<string, unknown>;
/**
* The Name property
*/
name?: string | null;
/**
* The Properties property
*/
properties?: Properties | null;
}
interface Properties extends AdditionalDataHolder, Parsable {
/**
* Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
*/
additionalData?: Record<string, unknown>;
/**
* The aspect_ratio property
*/
aspectRatio?: string | null;
/**
* The auto_optimize property
*/
autoOptimize?: Properties_auto_optimize | null;
/**
* The blur property
*/
blur?: string | null;
/**
* The brightness property
*/
brightness?: string | null;
/**
* The contrast property
*/
contrast?: string | null;
/**
* The crop property
*/
crop?: string | null;
/**
* The crop_gravity property
*/
cropGravity?: Properties_crop_gravity | null;
/**
* The flip property
*/
flip?: string | null;
/**
* The flop property
*/
flop?: string | null;
/**
* The gamma property
*/
gamma?: string | null;
/**
* The height property
*/
height?: string | null;
/**
* The hue property
*/
hue?: string | null;
/**
* The optimizer property
*/
optimizer?: Properties_optimizer | null;
/**
* The quality property
*/
quality?: string | null;
/**
* The saturation property
*/
saturation?: string | null;
/**
* The sharpen property
*/
sharpen?: string | null;
/**
* The width property
*/
width?: string | null;
}
type Properties_auto_optimize = (typeof Properties_auto_optimizeObject)[keyof typeof Properties_auto_optimizeObject];
type Properties_crop_gravity = (typeof Properties_crop_gravityObject)[keyof typeof Properties_crop_gravityObject];
type Properties_optimizer = (typeof Properties_optimizerObject)[keyof typeof Properties_optimizerObject];
declare const Properties_auto_optimizeObject: {
readonly Low: "low";
readonly Medium: "medium";
readonly High: "high";
};
declare const Properties_crop_gravityObject: {
readonly Center: "center";
readonly Forget: "forget";
readonly East: "east";
readonly North: "north";
readonly South: "south";
readonly West: "west";
readonly Northeast: "northeast";
readonly Northwest: "northwest";
readonly Southeast: "southeast";
readonly Southwest: "southwest";
};
declare const Properties_optimizerObject: {
readonly None: "none";
readonly Image: "image";
};
interface BunnyAiImageBlueprint extends AdditionalDataHolder, Parsable {
/**
* Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
*/
additionalData?: Record<string, unknown>;
/**
* The Name property
*/
name?: string | null;
/**
* The Properties property
*/
properties?: BunnyAiImageBlueprint_Properties | null;
}
interface BunnyAiImageBlueprint_Properties extends AdditionalDataHolder, Parsable {
/**
* Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
*/
additionalData?: Record<string, unknown>;
/**
* The Cfg property
*/
cfg?: string | null;
/**
* The NegativePrompt property
*/
negativePrompt?: string | null;
/**
* The PostPrompt property
*/
postPrompt?: string | null;
/**
* The PrePrompt property
*/
prePrompt?: string | null;
/**
* The Steps property
*/
steps?: string | null;
}
interface Hostname extends AdditionalDataHolder, Parsable {
/**
* Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
*/
additionalData?: Record<string, unknown>;
/**
* Contains the Base64Url encoded certificate for the hostname
*/
certificate?: string | null;
/**
* Contains the Base64Url encoded certificate key for the hostname
*/
certificateKey?: string | null;
/**
* Determines if the Force SSL feature is enabled
*/
forceSSL?: boolean | null;
/**
* Determines if the hostname has an SSL certificate configured
*/
hasCertificate?: boolean | null;
/**
* The unique ID of the hostname
*/
id?: number | null;
/**
* Determines if this is a system hostname controlled by bunny.net
*/
isSystemHostname?: boolean | null;
/**
* The hostname value for the domain name
*/
value?: string | null;
}
interface PullZone extends AdditionalDataHolder, Parsable {
/**
* The list of extensions that will return the CORS headers
*/
accessControlOriginHeaderExtensions?: string[] | null;
/**
* Determines if the Add Canonical Header is enabled for this Pull Zone
*/
addCanonicalHeader?: boolean | null;
/**
* Determines if the Pull Zone should forward the current hostname to the origin
*/
addHostHeader?: boolean | null;
/**
* Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
*/
additionalData?: Record<string, unknown>;
/**
* The Pull Zone specific pricing discount for Africa region.
*/
africaDiscount?: number | null;
/**
* 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[] | null;
/**
* The Pull Zone specific pricing discount for Asia & Oceania region.
*/
asiaOceaniaDiscount?: number | null;
/**
* Determines if the AWS Signing is enabled
*/
aWSSigningEnabled?: boolean | null;
/**
* The AWS Signing region key
*/
aWSSigningKey?: string | null;
/**
* The AWS Signing region name
*/
aWSSigningRegionName?: string | null;
/**
* The AWS Signing region secret
*/
aWSSigningSecret?: string | null;
/**
* The list of blocked countries with the two-letter Alpha2 ISO codes
*/
blockedCountries?: string[] | null;
/**
* 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[] | null;
/**
* The list of referrer hostnames that are not allowed to access the pull zone. Requests containing the header Referer: hostname that is on the list will be rejected. If empty, all the referrers are allowed
*/
blockedReferrers?: string[] | null;
/**
* The BlockNoneReferrer property
*/
blockNoneReferrer?: boolean | null;
/**
* If true, POST requests to the zone will be blocked
*/
blockPostRequests?: boolean | null;
/**
* If true, access to root path will return a 403 error
*/
blockRootPathAccess?: boolean | null;
/**
* The list of budget redirected countries with the two-letter Alpha2 ISO codes
*/
budgetRedirectedCountries?: string[] | null;
/**
* The BunnyAiImageBlueprints property
*/
bunnyAiImageBlueprints?: BunnyAiImageBlueprint[] | null;
/**
* Excessive requests are delayed until their number exceeds the maximum burst size.
*/
burstSize?: number | null;
/**
* The override cache time for the pull zone
*/
cacheControlMaxAgeOverride?: number | null;
/**
* The override cache time for the pull zone for the end client
*/
cacheControlPublicMaxAgeOverride?: number | null;
/**
* Determines if bunny.net should be caching error responses
*/
cacheErrorResponses?: boolean | null;
/**
* The CacheVersion property
*/
cacheVersion?: number | null;
/**
* The CNAME domain of the pull zone for setting up custom hostnames
*/
cnameDomain?: string | null;
/**
* The number of connections limited per IP for this zone
*/
connectionLimitPerIPCount?: number | null;
/**
* 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[] | null;
/**
* Determines if the cookies are disabled for the pull zone
*/
disableCookies?: boolean | null;
/**
* If true, the built-in let's encrypt is disabled and requests are passed to the origin.
*/
disableLetsEncrypt?: boolean | null;
/**
* The ID of the DNS record tied to this pull zone
*/
dnsRecordId?: number | null;
/**
* The cached version of the DNS record value
*/
dnsRecordValue?: string | null;
/**
* The ID of the DNS zone tied to this pull zone
*/
dnsZoneId?: number | null;
/**
* The list of edge rules on this Pull Zone
*/
edgeRules?: EdgeRule[] | null;
/**
* The EdgeScriptExecutionPhase property
*/
edgeScriptExecutionPhase?: number | null;
/**
* The ID of the edge script that the pull zone is linked to
*/
edgeScriptId?: number | null;
/**
* Determines if the CORS headers should be enabled
*/
enableAccessControlOriginHeader?: boolean | null;
/**
* If set to true, any hostnames added to this Pull Zone will automatically enable SSL.
*/
enableAutoSSL?: boolean | null;
/**
* Determines if the AVIF Vary feature is enabled.
*/
enableAvifVary?: boolean | null;
/**
* The EnableBunnyImageAi property
*/
enableBunnyImageAi?: boolean | null;
/**
* Determines if the cache slice (Optimize for video) feature is enabled for the Pull Zone
*/
enableCacheSlice?: boolean | null;
/**
* Determines if the Cookie Vary feature is enabled.
*/
enableCookieVary?: boolean | null;
/**
* Determines if the Country Code Vary feature is enabled.
*/
enableCountryCodeVary?: boolean | null;
/**
* Determines if the Pull Zone is currently enabled, active and running
*/
enabled?: boolean | null;
/**
* Determines if the delivery from the Africa region is enabled for this pull zone
*/
enableGeoZoneAF?: boolean | null;
/**
* Determines if the delivery from the Asian / Oceanian region is enabled for this pull zone
*/
enableGeoZoneASIA?: boolean | null;
/**
* Determines if the delivery from the European region is enabled for this pull zone
*/
enableGeoZoneEU?: boolean | null;
/**
* Determines if the delivery from the South American region is enabled for this pull zone
*/
enableGeoZoneSA?: boolean | null;
/**
* Determines if the delivery from the North American region is enabled for this pull zone
*/
enableGeoZoneUS?: boolean | null;
/**
* Determines if the Hostname Vary feature is enabled.
*/
enableHostnameVary?: boolean | null;
/**
* Determines if the logging is enabled for this Pull Zone
*/
enableLogging?: boolean | null;
/**
* Determines if the Mobile Vary feature is enabled.
*/
enableMobileVary?: boolean | null;
/**
* If true the server will use the origin shield feature
*/
enableOriginShield?: boolean | null;
/**
* If set to true the query string ordering property is enabled.
*/
enableQueryStringOrdering?: boolean | null;
/**
* Determines if request coalescing is currently enabled.
*/
enableRequestCoalescing?: boolean | null;
/**
* The EnableSafeHop property
*/
enableSafeHop?: boolean | null;
/**
* Determines if smart caching is enabled for this zone
*/
enableSmartCache?: boolean | null;
/**
* Determines if the TLS 1 is enabled on the Pull Zone
*/
enableTLS1?: boolean | null;
/**
* Determines if the TLS 1.1 is enabled on the Pull Zone
*/
enableTLS11?: boolean | null;
/**
* Determines if the WebP Vary feature is enabled.
*/
enableWebPVary?: boolean | null;
/**
* Contains the custom error page code that will be returned
*/
errorPageCustomCode?: string | null;
/**
* Determines if custom error page code should be enabled.
*/
errorPageEnableCustomCode?: boolean | null;
/**
* Determines if the statuspage widget should be displayed on the error pages
*/
errorPageEnableStatuspageWidget?: boolean | null;
/**
* The statuspage code that will be used to build the status widget
*/
errorPageStatuspageCode?: string | null;
/**
* Determines if the error pages should be whitelabel or not
*/
errorPageWhitelabel?: boolean | null;
/**
* The Pull Zone specific pricing discount for EU and US region.
*/
eUUSDiscount?: number | null;
/**
* Determines if the zone will follow origin redirects
*/
followRedirects?: boolean | null;
/**
* The list of hostnames linked to this Pull Zone
*/
hostnames?: Hostname[] | null;
/**
* The unique ID of the pull zone.
*/
id?: number | null;
/**
* True if the Pull Zone is ignoring query strings when serving cached objects
*/
ignoreQueryStrings?: boolean | null;
/**
* The amount of data after the rate limit will be activated
*/
limitRateAfter?: number | null;
/**
* The maximum rate at which the zone will transfer data in kb/s. 0 for unlimited
*/
limitRatePerSecond?: number | null;
/**
* The LogAnonymizationType property
*/
logAnonymizationType?: number | null;
/**
* The LogFormat property
*/
logFormat?: number | null;
/**
* Determines if the log forwarding is enabled
*/
logForwardingEnabled?: boolean | null;
/**
* The LogForwardingFormat property
*/
logForwardingFormat?: number | null;
/**
* The log forwarding hostname
*/
logForwardingHostname?: string | null;
/**
* The log forwarding port
*/
logForwardingPort?: number | null;
/**
* The LogForwardingProtocol property
*/
logForwardingProtocol?: number | null;
/**
* The log forwarding token value
*/
logForwardingToken?: string | null;
/**
* Determines if the log anonymization should be enabled
*/
loggingIPAnonymizationEnabled?: boolean | null;
/**
* Determines if the permanent logging feature is enabled
*/
loggingSaveToStorage?: boolean | null;
/**
* The ID of the logging storage zone that is configured for this Pull Zone
*/
loggingStorageZoneId?: number | null;
/**
* The MagicContainersAppId property
*/
magicContainersAppId?: string | null;
/**
* The MagicContainersEndpointId property
*/
magicContainersEndpointId?: number | null;
/**
* The MiddlewareScriptId property
*/
middlewareScriptId?: number | null;
/**
* The monthly limit of bandwidth in bytes that the pullzone is allowed to use
*/
monthlyBandwidthLimit?: number | null;
/**
* The amount of bandwidth in bytes that the pull zone used this month
*/
monthlyBandwidthUsed?: number | null;
/**
* The total monthly charges for this so zone so far
*/
monthlyCharges?: number | null;
/**
* The name of the pull zone.
*/
name?: string | null;
/**
* Determines if the automatic image optimization should be enabled
*/
optimizerAutomaticOptimizationEnabled?: boolean | null;
/**
* Contains the list of optimizer classes
*/
optimizerClasses?: OptimizerClass[] | null;
/**
* Determines the maximum automatic image size for desktop clients
*/
optimizerDesktopMaxWidth?: number | null;
/**
* Determines if the optimizer should be enabled for this zone
*/
optimizerEnabled?: boolean | null;
/**
* Determines the image manipulation should be enabled
*/
optimizerEnableManipulationEngine?: boolean | null;
/**
* Determines if the WebP optimization should be enabled
*/
optimizerEnableWebP?: boolean | null;
/**
* Determines if the optimizer class list should be enforced
*/
optimizerForceClasses?: boolean | null;
/**
* Determines the image quality for desktop clients
*/
optimizerImageQuality?: number | null;
/**
* Determines if the CSS minification should be enabled
*/
optimizerMinifyCSS?: boolean | null;
/**
* Determines if the JavaScript minification should be enabled
*/
optimizerMinifyJavaScript?: boolean | null;
/**
* Determines the image quality for mobile clients
*/
optimizerMobileImageQuality?: number | null;
/**
* Determines the maximum automatic image size for mobile clients
*/
optimizerMobileMaxWidth?: number | null;
/**
* The OptimizerStaticHtmlEnabled property
*/
optimizerStaticHtmlEnabled?: boolean | null;
/**
* The OptimizerStaticHtmlWordPressBypassCookie property
*/
optimizerStaticHtmlWordPressBypassCookie?: string | null;
/**
* The OptimizerStaticHtmlWordPressPath property
*/
optimizerStaticHtmlWordPressPath?: string | null;
/**
* Determines if image watermarking should be enabled
*/
optimizerWatermarkEnabled?: boolean | null;
/**
* Sets the minimum image size to which the watermark will be added
*/
optimizerWatermarkMinImageSize?: number | null;
/**
* Sets the offset of the watermark image
*/
optimizerWatermarkOffset?: number | null;
/**
* The OptimizerWatermarkPosition property
*/
optimizerWatermarkPosition?: number | null;
/**
* Sets the URL of the watermark image
*/
optimizerWatermarkUrl?: string | null;
/**
* The amount of seconds to wait when connecting to the origin. Otherwise the request will fail or retry.
*/
originConnectTimeout?: number | null;
/**
* Determines the host header that will be sent to the origin
*/
originHostHeader?: string | null;
/**
* Returns the link short preview value for the pull zone origin connection.
*/
originLinkValue?: string | null;
/**
* The amount of seconds to wait when waiting for the origin reply. Otherwise the request will fail or retry.
*/
originResponseTimeout?: number | null;
/**
* The number of retries to the origin server
*/
originRetries?: number | null;
/**
* Determines if we should retry the request in case of a 5XX response.
*/
originRetry5XXResponses?: boolean | null;
/**
* Determines if we should retry the request in case of a connection timeout.
*/
originRetryConnectionTimeout?: boolean | null;
/**
* Determines the amount of time that the CDN should wait before retrying an origin request.
*/
originRetryDelay?: number | null;
/**
* Determines if we should retry the request in case of a response timeout.
*/
originRetryResponseTimeout?: boolean | null;
/**
* Determines if the origin shield concurrency limit is enabled.
*/
originShieldEnableConcurrencyLimit?: boolean | null;
/**
* Determines the number of maximum concurrent requests allowed to the origin.
*/
originShieldMaxConcurrentRequests?: number | null;
/**
* Determines the max number of origin requests that will remain in the queue
*/
originShieldMaxQueuedRequests?: number | null;
/**
* Determines the max queue wait time
*/
originShieldQueueMaxWaitTime?: number | null;
/**
* The zone code of the origin shield
*/
originShieldZoneCode?: string | null;
/**
* The OriginType property
*/
originType?: number | null;
/**
* The origin URL of the pull zone where the files are fetched from.
*/
originUrl?: string | null;
/**
* The IP of the storage zone used for Perma-Cache
*/
permaCacheStorageZoneId?: number | null;
/**
* The PermaCacheType property
*/
permaCacheType?: number | null;
/**
* The custom preloading screen code
*/
preloadingScreenCode?: string | null;
/**
* Determines if the custom preloader screen is enabled
*/
preloadingScreenCodeEnabled?: boolean | null;
/**
* The delay in milliseconds after which the preloading screen will be displayed
*/
preloadingScreenDelay?: number | null;
/**
* Determines if the preloading screen is currently enabled
*/
preloadingScreenEnabled?: boolean | null;
/**
* The preloading screen logo URL
*/
preloadingScreenLogoUrl?: string | null;
/**
* The PreloadingScreenShowOnFirstVisit property
*/
preloadingScreenShowOnFirstVisit?: boolean | null;
/**
* The PreloadingScreenTheme property
*/
preloadingScreenTheme?: number | null;
/**
* The custom price override for this zone
*/
priceOverride?: number | null;
/**
* 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[] | null;
/**
* Determines the lock time for coalesced requests.
*/
requestCoalescingTimeout?: number | null;
/**
* Max number of requests per IP per second
*/
requestLimit?: number | null;
/**
* The list of routing filters enabled for this zone
*/
routingFilters?: PullZone_RoutingFilters[] | null;
/**
* The ShieldDDosProtectionEnabled property
*/
shieldDDosProtectionEnabled?: boolean | null;
/**
* The ShieldDDosProtectionType property
*/
shieldDDosProtectionType?: number | null;
/**
* The Pull Zone specific pricing discount for South America region.
*/
southAmericaDiscount?: number | null;
/**
* The ID of the storage zone that the pull zone is linked to
*/
storageZoneId?: number | null;
/**
* The Suspended property
*/
suspended?: boolean | null;
/**
* The Type property
*/
type?: number | null;
/**
* Determines if cache update is performed in the background.
*/
useBackgroundUpdate?: boolean | null;
/**
* The UserId property
*/
userId?: string | null;
/**
* Determines if we should use stale cache while the origin is offline
*/
useStaleWhileOffline?: boolean | null;
/**
* Determines if we should use stale cache while cache is updating
*/
useStaleWhileUpdating?: boolean | null;
/**
* Determines if the Pull Zone should verify the origin SSL certificate
*/
verifyOriginSSL?: boolean | null;
/**
* The ID of the video library that the zone is linked to
*/
videoLibraryId?: number | null;
/**
* True if the URL secure token authentication security is enabled
*/
zoneSecurityEnabled?: boolean | null;
/**
* True if the zone security hash should include the remote IP
*/
zoneSecurityIncludeHashRemoteIP?: boolean | null;
/**
* The security key used for secure URL token authentication
*/
zoneSecurityKey?: string | null;
}
type PullZone_RoutingFilters = (typeof PullZone_RoutingFiltersObject)[keyof typeof PullZone_RoutingFiltersObject];
declare const PullZone_RoutingFiltersObject: {
readonly All: "all";
readonly Eu: "eu";
};
type EdgeReplicationRegions = (typeof EdgeReplicationRegionsObject)[keyof typeof EdgeReplicationRegionsObject];
type StandardRegions = (typeof StandardRegionsObject)[keyof typeof StandardRegionsObject];
interface StorageZone extends AdditionalDataHolder, Parsable {
/**
* Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
*/
additionalData?: Record<string, unknown>;
/**
* The Custom404FilePath property
*/
custom404FilePath?: string | null;
/**
* The DateModified property
*/
dateModified?: Date | null;
/**
* The Deleted property
*/
deleted?: boolean | null;
/**
* The Discount property
*/
discount?: number | null;
/**
* The FilesStored property
*/
filesStored?: number | null;
/**
* The Id property
*/
id?: number | null;
/**
* The Name property
*/
name?: string | null;
/**
* The Password property
*/
password?: string | null;
/**
* The PriceOverride property
*/
priceOverride?: number | null;
/**
* The PullZones property
*/
pullZones?: PullZone[] | null;
/**
* The ReadOnlyPassword property
*/
readOnlyPassword?: string | null;
/**
* The Region property
*/
region?: StandardRegions | null;
/**
* The ReplicationChangeInProgress property
*/
replicationChangeInProgress?: boolean | null;
/**
* The ReplicationRegions property
*/
replicationRegions?: EdgeReplicationRegions[] | null;
/**
* The Rewrite404To200 property
*/
rewrite404To200?: boolean | null;
/**
* The StorageHostname property
*/
storageHostname?: string | null;
/**
* The StorageUsed property
*/
storageUsed?: number | null;
/**
* The UserId property
*/
userId?: string | null;
/**
* The ZoneTier property
*/
zoneTier?: number | null;
}
declare const EdgeReplicationRegionsObject: {
readonly DE: "DE";
readonly UK: "UK";
readonly SE: "SE";
readonly CZ: "CZ";
readonly ES: "ES";
readonly NY: "NY";
readonly LA: "LA";
readonly WA: "WA";
readonly MI: "MI";
readonly SG: "SG";
readonly HK: "HK";
readonly JP: "JP";
readonly SYD: "SYD";
readonly BR: "BR";
readonly JH: "JH";
};
declare const StandardRegionsObject: {
readonly DE: "DE";
readonly UK: "UK";
readonly SE: "SE";
readonly NY: "NY";
readonly LA: "LA";
readonly SG: "SG";
readonly SYD: "SYD";
readonly BR: "BR";
readonly JH: "JH";
};
type PartialStorageZone = Pick<StorageZone, "name" | "password" | "storageHostname">;
type IDataType$2 = Parameters<typeof createHMAC>["1"];
type SharedParameters = {
expires?: number | string;
key: IDataType$2;
maxSize?: number | string;
storageZone: PartialStorageZone;
};
export type SignUrlParameters = {
baseUrl: (() => Promise<string> | string) | string;
checksum: false | string;
filePath: string;
fileSizeInBytes?: number;
} & SharedParameters;
export type UploadFileParameters = {
body: null | ReadableStream;
url: string;
} & SharedParameters;
export declare function signUrl({ baseUrl: getBaseUrl, checksum, expires, filePath, fileSizeInBytes, key, maxSize, storageZone, }: SignUrlParameters): Promise<Response>;
export declare function uploadFile({ body, expires: newExpires, key, maxSize, storageZone, url, }: UploadFileParameters): Promise<Response>;
export {};