cloudflare/cloudflare-typescript

Public

mirrored from https://github.com/cloudflare/cloudflare-typescriptAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
v6.4.0

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

src/resources/cache/cache.ts

476lines · modecode

1// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
3import { APIResource } from '../../resource';
4import * as Core from '../../core';
5import * as CacheReserveAPI from './cache-reserve';
6import {
7 CacheReserve,
8 CacheReserveClear,
9 CacheReserveClearParams,
10 CacheReserveClearResponse,
11 CacheReserveEditParams,
12 CacheReserveEditResponse,
13 CacheReserveGetParams,
14 CacheReserveGetResponse,
15 CacheReserveResource,
16 CacheReserveStatusParams,
17 CacheReserveStatusResponse,
18 State,
19} from './cache-reserve';
20import * as OriginCloudRegionsAPI from './origin-cloud-regions';
21import {
22 OriginCloudRegion,
23 OriginCloudRegionBulkDeleteParams,
24 OriginCloudRegionBulkDeleteResponse,
25 OriginCloudRegionBulkUpdateParams,
26 OriginCloudRegionBulkUpdateResponse,
27 OriginCloudRegionDeleteParams,
28 OriginCloudRegionDeleteResponse,
29 OriginCloudRegionGetParams,
30 OriginCloudRegionListParams,
31 OriginCloudRegionSupportedRegionsParams,
32 OriginCloudRegionSupportedRegionsResponse,
33 OriginCloudRegionUpdateParams,
34 OriginCloudRegions,
35 OriginCloudRegionsV4PagePaginationArray,
36} from './origin-cloud-regions';
37import * as RegionalTieredCacheAPI from './regional-tiered-cache';
38import {
39 RegionalTieredCache,
40 RegionalTieredCacheEditParams,
41 RegionalTieredCacheEditResponse,
42 RegionalTieredCacheGetParams,
43 RegionalTieredCacheGetResponse,
44 RegionalTieredCacheResource,
45} from './regional-tiered-cache';
46import * as SmartTieredCacheAPI from './smart-tiered-cache';
47import {
48 SmartTieredCache,
49 SmartTieredCacheCreateParams,
50 SmartTieredCacheCreateResponse,
51 SmartTieredCacheDeleteParams,
52 SmartTieredCacheDeleteResponse,
53 SmartTieredCacheEditParams,
54 SmartTieredCacheEditResponse,
55 SmartTieredCacheGetParams,
56 SmartTieredCacheGetResponse,
57} from './smart-tiered-cache';
58import * as VariantsAPI from './variants';
59import {
60 CacheVariant,
61 VariantDeleteParams,
62 VariantDeleteResponse,
63 VariantEditParams,
64 VariantEditResponse,
65 VariantGetParams,
66 VariantGetResponse,
67 Variants,
68} from './variants';
69
70export class Cache extends APIResource {
71 cacheReserve: CacheReserveAPI.CacheReserveResource = new CacheReserveAPI.CacheReserveResource(this._client);
72 smartTieredCache: SmartTieredCacheAPI.SmartTieredCache = new SmartTieredCacheAPI.SmartTieredCache(
73 this._client,
74 );
75 variants: VariantsAPI.Variants = new VariantsAPI.Variants(this._client);
76 regionalTieredCache: RegionalTieredCacheAPI.RegionalTieredCacheResource =
77 new RegionalTieredCacheAPI.RegionalTieredCacheResource(this._client);
78 originCloudRegions: OriginCloudRegionsAPI.OriginCloudRegions = new OriginCloudRegionsAPI.OriginCloudRegions(
79 this._client,
80 );
81
82 /**
83 * ### Purge All Cached Content
84 *
85 * Removes ALL files from Cloudflare's cache. All tiers can purge everything.
86 *
87 * ```
88 * {"purge_everything": true}
89 * ```
90 *
91 * ### Purge Cached Content by URL
92 *
93 * Granularly removes one or more files from Cloudflare's cache by specifying URLs.
94 * All tiers can purge by URL.
95 *
96 * To purge files with custom cache keys, include the headers used to compute the
97 * cache key as in the example. If you have a device type or geo in your cache key,
98 * you will need to include the CF-Device-Type or CF-IPCountry headers. If you have
99 * lang in your cache key, you will need to include the Accept-Language header.
100 *
101 * **NB:** When including the Origin header, be sure to include the **scheme** and
102 * **hostname**. The port number can be omitted if it is the default port (80 for
103 * http, 443 for https), but must be included otherwise.
104 *
105 * Single file purge example with files:
106 *
107 * ```
108 * {"files": ["http://www.example.com/css/styles.css", "http://www.example.com/js/index.js"]}
109 * ```
110 *
111 * Single file purge example with url and header pairs:
112 *
113 * ```
114 * {"files": [{"url": "http://www.example.com/cat_picture.jpg", "headers": {"CF-IPCountry": "US", "CF-Device-Type": "desktop", "Accept-Language": "zh-CN"}}, {"url": "http://www.example.com/dog_picture.jpg", "headers": {"CF-IPCountry": "EU", "CF-Device-Type": "mobile", "Accept-Language": "en-US"}}]}
115 * ```
116 *
117 * ### Purge Cached Content by Tag, Host or Prefix
118 *
119 * Granularly removes one or more files from Cloudflare's cache either by
120 * specifying the host, the associated Cache-Tag, or a Prefix.
121 *
122 * Flex purge with tags:
123 *
124 * ```
125 * {"tags": ["a-cache-tag", "another-cache-tag"]}
126 * ```
127 *
128 * Flex purge with hosts:
129 *
130 * ```
131 * {"hosts": ["www.example.com", "images.example.com"]}
132 * ```
133 *
134 * Flex purge with prefixes:
135 *
136 * ```
137 * {"prefixes": ["www.example.com/foo", "images.example.com/bar/baz"]}
138 * ```
139 *
140 * ### Availability and limits
141 *
142 * Please refer to
143 * [purge cache availability and limits documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/#availability-and-limits).
144 *
145 * @example
146 * ```ts
147 * const response = await client.cache.purge({
148 * zone_id: '023e105f4ecef8ad9ca31a8372d0c353',
149 * });
150 * ```
151 */
152 purge(params: CachePurgeParams, options?: Core.RequestOptions): Core.APIPromise<CachePurgeResponse | null> {
153 const { zone_id, ...body } = params;
154 return (
155 this._client.post(`/zones/${zone_id}/purge_cache`, { body, ...options }) as Core.APIPromise<{
156 result: CachePurgeResponse | null;
157 }>
158 )._thenUnwrap((obj) => obj.result);
159 }
160
161 /**
162 * Purge cached content scoped to a specific environment. Supports the same purge
163 * types as the zone-level endpoint (purge everything, by URL, by tag, host, or
164 * prefix).
165 *
166 * ### Availability and limits
167 *
168 * Please refer to
169 * [purge cache availability and limits documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/#availability-and-limits).
170 *
171 * @example
172 * ```ts
173 * const response = await client.cache.purgeEnvironment(
174 * '023e105f4ecef8ad9ca31a8372d0c353',
175 * { zone_id: '023e105f4ecef8ad9ca31a8372d0c353' },
176 * );
177 * ```
178 */
179 purgeEnvironment(
180 environmentId: string,
181 params: CachePurgeEnvironmentParams,
182 options?: Core.RequestOptions,
183 ): Core.APIPromise<CachePurgeEnvironmentResponse | null> {
184 const { zone_id, ...body } = params;
185 return (
186 this._client.post(`/zones/${zone_id}/environments/${environmentId}/purge_cache`, {
187 body,
188 ...options,
189 }) as Core.APIPromise<{ result: CachePurgeEnvironmentResponse | null }>
190 )._thenUnwrap((obj) => obj.result);
191 }
192}
193
194export interface CachePurgeResponse {
195 id: string;
196}
197
198export interface CachePurgeEnvironmentResponse {
199 id: string;
200}
201
202export type CachePurgeParams =
203 | CachePurgeParams.CachePurgeFlexPurgeByTags
204 | CachePurgeParams.CachePurgeFlexPurgeByHostnames
205 | CachePurgeParams.CachePurgeFlexPurgeByPrefixes
206 | CachePurgeParams.CachePurgeEverything
207 | CachePurgeParams.CachePurgeSingleFile
208 | CachePurgeParams.CachePurgeSingleFileWithURLAndHeaders;
209
210export declare namespace CachePurgeParams {
211 export interface CachePurgeFlexPurgeByTags {
212 /**
213 * Path param
214 */
215 zone_id: string;
216
217 /**
218 * Body param: For more information on cache tags and purging by tags, please refer
219 * to
220 * [purge by cache-tags documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-tags/).
221 */
222 tags?: Array<string>;
223 }
224
225 export interface CachePurgeFlexPurgeByHostnames {
226 /**
227 * Path param
228 */
229 zone_id: string;
230
231 /**
232 * Body param: For more information purging by hostnames, please refer to
233 * [purge by hostname documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-hostname/).
234 */
235 hosts?: Array<string>;
236 }
237
238 export interface CachePurgeFlexPurgeByPrefixes {
239 /**
240 * Path param
241 */
242 zone_id: string;
243
244 /**
245 * Body param: For more information on purging by prefixes, please refer to
246 * [purge by prefix documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge_by_prefix/).
247 */
248 prefixes?: Array<string>;
249 }
250
251 export interface CachePurgeEverything {
252 /**
253 * Path param
254 */
255 zone_id: string;
256
257 /**
258 * Body param: For more information, please refer to
259 * [purge everything documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-everything/).
260 */
261 purge_everything?: boolean;
262 }
263
264 export interface CachePurgeSingleFile {
265 /**
266 * Path param
267 */
268 zone_id: string;
269
270 /**
271 * Body param: For more information on purging files, please refer to
272 * [purge by single-file documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-single-file/).
273 */
274 files?: Array<string>;
275 }
276
277 export interface CachePurgeSingleFileWithURLAndHeaders {
278 /**
279 * Path param
280 */
281 zone_id: string;
282
283 /**
284 * Body param: For more information on purging files with URL and headers, please
285 * refer to
286 * [purge by single-file documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-single-file/).
287 */
288 files?: Array<CachePurgeSingleFileWithURLAndHeaders.File>;
289 }
290
291 export namespace CachePurgeSingleFileWithURLAndHeaders {
292 export interface File {
293 headers?: { [key: string]: string };
294
295 url?: string;
296 }
297 }
298}
299
300export type CachePurgeEnvironmentParams =
301 | CachePurgeEnvironmentParams.CachePurgeFlexPurgeByTags
302 | CachePurgeEnvironmentParams.CachePurgeFlexPurgeByHostnames
303 | CachePurgeEnvironmentParams.CachePurgeFlexPurgeByPrefixes
304 | CachePurgeEnvironmentParams.CachePurgeEverything
305 | CachePurgeEnvironmentParams.CachePurgeSingleFile
306 | CachePurgeEnvironmentParams.CachePurgeSingleFileWithURLAndHeaders;
307
308export declare namespace CachePurgeEnvironmentParams {
309 export interface CachePurgeFlexPurgeByTags {
310 /**
311 * Path param
312 */
313 zone_id: string;
314
315 /**
316 * Body param: For more information on cache tags and purging by tags, please refer
317 * to
318 * [purge by cache-tags documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-tags/).
319 */
320 tags?: Array<string>;
321 }
322
323 export interface CachePurgeFlexPurgeByHostnames {
324 /**
325 * Path param
326 */
327 zone_id: string;
328
329 /**
330 * Body param: For more information purging by hostnames, please refer to
331 * [purge by hostname documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-hostname/).
332 */
333 hosts?: Array<string>;
334 }
335
336 export interface CachePurgeFlexPurgeByPrefixes {
337 /**
338 * Path param
339 */
340 zone_id: string;
341
342 /**
343 * Body param: For more information on purging by prefixes, please refer to
344 * [purge by prefix documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge_by_prefix/).
345 */
346 prefixes?: Array<string>;
347 }
348
349 export interface CachePurgeEverything {
350 /**
351 * Path param
352 */
353 zone_id: string;
354
355 /**
356 * Body param: For more information, please refer to
357 * [purge everything documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-everything/).
358 */
359 purge_everything?: boolean;
360 }
361
362 export interface CachePurgeSingleFile {
363 /**
364 * Path param
365 */
366 zone_id: string;
367
368 /**
369 * Body param: For more information on purging files, please refer to
370 * [purge by single-file documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-single-file/).
371 */
372 files?: Array<string>;
373 }
374
375 export interface CachePurgeSingleFileWithURLAndHeaders {
376 /**
377 * Path param
378 */
379 zone_id: string;
380
381 /**
382 * Body param: For more information on purging files with URL and headers, please
383 * refer to
384 * [purge by single-file documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-single-file/).
385 */
386 files?: Array<CachePurgeSingleFileWithURLAndHeaders.File>;
387 }
388
389 export namespace CachePurgeSingleFileWithURLAndHeaders {
390 export interface File {
391 headers?: { [key: string]: string };
392
393 url?: string;
394 }
395 }
396}
397
398Cache.CacheReserveResource = CacheReserveResource;
399Cache.SmartTieredCache = SmartTieredCache;
400Cache.Variants = Variants;
401Cache.RegionalTieredCacheResource = RegionalTieredCacheResource;
402Cache.OriginCloudRegions = OriginCloudRegions;
403Cache.OriginCloudRegionsV4PagePaginationArray = OriginCloudRegionsV4PagePaginationArray;
404
405export declare namespace Cache {
406 export {
407 type CachePurgeResponse as CachePurgeResponse,
408 type CachePurgeEnvironmentResponse as CachePurgeEnvironmentResponse,
409 type CachePurgeParams as CachePurgeParams,
410 type CachePurgeEnvironmentParams as CachePurgeEnvironmentParams,
411 };
412
413 export {
414 CacheReserveResource as CacheReserveResource,
415 type CacheReserve as CacheReserve,
416 type CacheReserveClear as CacheReserveClear,
417 type State as State,
418 type CacheReserveClearResponse as CacheReserveClearResponse,
419 type CacheReserveEditResponse as CacheReserveEditResponse,
420 type CacheReserveGetResponse as CacheReserveGetResponse,
421 type CacheReserveStatusResponse as CacheReserveStatusResponse,
422 type CacheReserveClearParams as CacheReserveClearParams,
423 type CacheReserveEditParams as CacheReserveEditParams,
424 type CacheReserveGetParams as CacheReserveGetParams,
425 type CacheReserveStatusParams as CacheReserveStatusParams,
426 };
427
428 export {
429 SmartTieredCache as SmartTieredCache,
430 type SmartTieredCacheCreateResponse as SmartTieredCacheCreateResponse,
431 type SmartTieredCacheDeleteResponse as SmartTieredCacheDeleteResponse,
432 type SmartTieredCacheEditResponse as SmartTieredCacheEditResponse,
433 type SmartTieredCacheGetResponse as SmartTieredCacheGetResponse,
434 type SmartTieredCacheCreateParams as SmartTieredCacheCreateParams,
435 type SmartTieredCacheDeleteParams as SmartTieredCacheDeleteParams,
436 type SmartTieredCacheEditParams as SmartTieredCacheEditParams,
437 type SmartTieredCacheGetParams as SmartTieredCacheGetParams,
438 };
439
440 export {
441 Variants as Variants,
442 type CacheVariant as CacheVariant,
443 type VariantDeleteResponse as VariantDeleteResponse,
444 type VariantEditResponse as VariantEditResponse,
445 type VariantGetResponse as VariantGetResponse,
446 type VariantDeleteParams as VariantDeleteParams,
447 type VariantEditParams as VariantEditParams,
448 type VariantGetParams as VariantGetParams,
449 };
450
451 export {
452 RegionalTieredCacheResource as RegionalTieredCacheResource,
453 type RegionalTieredCache as RegionalTieredCache,
454 type RegionalTieredCacheEditResponse as RegionalTieredCacheEditResponse,
455 type RegionalTieredCacheGetResponse as RegionalTieredCacheGetResponse,
456 type RegionalTieredCacheEditParams as RegionalTieredCacheEditParams,
457 type RegionalTieredCacheGetParams as RegionalTieredCacheGetParams,
458 };
459
460 export {
461 OriginCloudRegions as OriginCloudRegions,
462 type OriginCloudRegion as OriginCloudRegion,
463 type OriginCloudRegionDeleteResponse as OriginCloudRegionDeleteResponse,
464 type OriginCloudRegionBulkDeleteResponse as OriginCloudRegionBulkDeleteResponse,
465 type OriginCloudRegionBulkUpdateResponse as OriginCloudRegionBulkUpdateResponse,
466 type OriginCloudRegionSupportedRegionsResponse as OriginCloudRegionSupportedRegionsResponse,
467 OriginCloudRegionsV4PagePaginationArray as OriginCloudRegionsV4PagePaginationArray,
468 type OriginCloudRegionUpdateParams as OriginCloudRegionUpdateParams,
469 type OriginCloudRegionListParams as OriginCloudRegionListParams,
470 type OriginCloudRegionDeleteParams as OriginCloudRegionDeleteParams,
471 type OriginCloudRegionBulkDeleteParams as OriginCloudRegionBulkDeleteParams,
472 type OriginCloudRegionBulkUpdateParams as OriginCloudRegionBulkUpdateParams,
473 type OriginCloudRegionGetParams as OriginCloudRegionGetParams,
474 type OriginCloudRegionSupportedRegionsParams as OriginCloudRegionSupportedRegionsParams,
475 };
476}
477