cloudflare/cloudflare-typescript

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
v6.3.0

Branches

Tags

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

Clone

HTTPS

Download ZIP

src/resources/cache/cache.ts

340lines · 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 OriginCloudRegionBulkEditParams,
26 OriginCloudRegionBulkEditResponse,
27 OriginCloudRegionCreateParams,
28 OriginCloudRegionCreateResponse,
29 OriginCloudRegionDeleteParams,
30 OriginCloudRegionDeleteResponse,
31 OriginCloudRegionEditParams,
32 OriginCloudRegionEditResponse,
33 OriginCloudRegionGetParams,
34 OriginCloudRegionGetResponse,
35 OriginCloudRegionListParams,
36 OriginCloudRegionListResponse,
37 OriginCloudRegionSupportedRegionsParams,
38 OriginCloudRegionSupportedRegionsResponse,
39 OriginCloudRegions,
40} from './origin-cloud-regions';
41import * as RegionalTieredCacheAPI from './regional-tiered-cache';
42import {
43 RegionalTieredCache,
44 RegionalTieredCacheEditParams,
45 RegionalTieredCacheEditResponse,
46 RegionalTieredCacheGetParams,
47 RegionalTieredCacheGetResponse,
48 RegionalTieredCacheResource,
49} from './regional-tiered-cache';
50import * as SmartTieredCacheAPI from './smart-tiered-cache';
51import {
52 SmartTieredCache,
53 SmartTieredCacheDeleteParams,
54 SmartTieredCacheDeleteResponse,
55 SmartTieredCacheEditParams,
56 SmartTieredCacheEditResponse,
57 SmartTieredCacheGetParams,
58 SmartTieredCacheGetResponse,
59} from './smart-tiered-cache';
60import * as VariantsAPI from './variants';
61import {
62 CacheVariant,
63 VariantDeleteParams,
64 VariantDeleteResponse,
65 VariantEditParams,
66 VariantEditResponse,
67 VariantGetParams,
68 VariantGetResponse,
69 Variants,
70} from './variants';
71
72export class Cache extends APIResource {
73 cacheReserve: CacheReserveAPI.CacheReserveResource = new CacheReserveAPI.CacheReserveResource(this._client);
74 smartTieredCache: SmartTieredCacheAPI.SmartTieredCache = new SmartTieredCacheAPI.SmartTieredCache(
75 this._client,
76 );
77 variants: VariantsAPI.Variants = new VariantsAPI.Variants(this._client);
78 regionalTieredCache: RegionalTieredCacheAPI.RegionalTieredCacheResource =
79 new RegionalTieredCacheAPI.RegionalTieredCacheResource(this._client);
80 originCloudRegions: OriginCloudRegionsAPI.OriginCloudRegions = new OriginCloudRegionsAPI.OriginCloudRegions(
81 this._client,
82 );
83
84 /**
85 * ### Purge All Cached Content
86 *
87 * Removes ALL files from Cloudflare's cache. All tiers can purge everything.
88 *
89 * ```
90 * {"purge_everything": true}
91 * ```
92 *
93 * ### Purge Cached Content by URL
94 *
95 * Granularly removes one or more files from Cloudflare's cache by specifying URLs.
96 * All tiers can purge by URL.
97 *
98 * To purge files with custom cache keys, include the headers used to compute the
99 * cache key as in the example. If you have a device type or geo in your cache key,
100 * you will need to include the CF-Device-Type or CF-IPCountry headers. If you have
101 * lang in your cache key, you will need to include the Accept-Language header.
102 *
103 * **NB:** When including the Origin header, be sure to include the **scheme** and
104 * **hostname**. The port number can be omitted if it is the default port (80 for
105 * http, 443 for https), but must be included otherwise.
106 *
107 * Single file purge example with files:
108 *
109 * ```
110 * {"files": ["http://www.example.com/css/styles.css", "http://www.example.com/js/index.js"]}
111 * ```
112 *
113 * Single file purge example with url and header pairs:
114 *
115 * ```
116 * {"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" }}]}
117 * ```
118 *
119 * ### Purge Cached Content by Tag, Host or Prefix
120 *
121 * Granularly removes one or more files from Cloudflare's cache either by
122 * specifying the host, the associated Cache-Tag, or a Prefix.
123 *
124 * Flex purge with tags:
125 *
126 * ```
127 * {"tags": ["a-cache-tag", "another-cache-tag"]}
128 * ```
129 *
130 * Flex purge with hosts:
131 *
132 * ```
133 * {"hosts": ["www.example.com", "images.example.com"]}
134 * ```
135 *
136 * Flex purge with prefixes:
137 *
138 * ```
139 * {"prefixes": ["www.example.com/foo", "images.example.com/bar/baz"]}
140 * ```
141 *
142 * ### Availability and limits
143 *
144 * please refer to
145 * [purge cache availability and limits documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/#availability-and-limits).
146 *
147 * @example
148 * ```ts
149 * const response = await client.cache.purge({
150 * zone_id: '023e105f4ecef8ad9ca31a8372d0c353',
151 * });
152 * ```
153 */
154 purge(params: CachePurgeParams, options?: Core.RequestOptions): Core.APIPromise<CachePurgeResponse | null> {
155 const { zone_id, ...body } = params;
156 return (
157 this._client.post(`/zones/${zone_id}/purge_cache`, { body, ...options }) as Core.APIPromise<{
158 result: CachePurgeResponse | null;
159 }>
160 )._thenUnwrap((obj) => obj.result);
161 }
162}
163
164export interface CachePurgeResponse {
165 id: string;
166}
167
168export type CachePurgeParams =
169 | CachePurgeParams.CachePurgeFlexPurgeByTags
170 | CachePurgeParams.CachePurgeFlexPurgeByHostnames
171 | CachePurgeParams.CachePurgeFlexPurgeByPrefixes
172 | CachePurgeParams.CachePurgeEverything
173 | CachePurgeParams.CachePurgeSingleFile
174 | CachePurgeParams.CachePurgeSingleFileWithURLAndHeaders;
175
176export declare namespace CachePurgeParams {
177 export interface CachePurgeFlexPurgeByTags {
178 /**
179 * Path param
180 */
181 zone_id: string;
182
183 /**
184 * Body param: For more information on cache tags and purging by tags, please refer
185 * to
186 * [purge by cache-tags documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-tags/).
187 */
188 tags?: Array<string>;
189 }
190
191 export interface CachePurgeFlexPurgeByHostnames {
192 /**
193 * Path param
194 */
195 zone_id: string;
196
197 /**
198 * Body param: For more information purging by hostnames, please refer to
199 * [purge by hostname documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-hostname/).
200 */
201 hosts?: Array<string>;
202 }
203
204 export interface CachePurgeFlexPurgeByPrefixes {
205 /**
206 * Path param
207 */
208 zone_id: string;
209
210 /**
211 * Body param: For more information on purging by prefixes, please refer to
212 * [purge by prefix documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge_by_prefix/).
213 */
214 prefixes?: Array<string>;
215 }
216
217 export interface CachePurgeEverything {
218 /**
219 * Path param
220 */
221 zone_id: string;
222
223 /**
224 * Body param: For more information, please refer to
225 * [purge everything documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-everything/).
226 */
227 purge_everything?: boolean;
228 }
229
230 export interface CachePurgeSingleFile {
231 /**
232 * Path param
233 */
234 zone_id: string;
235
236 /**
237 * Body param: For more information on purging files, please refer to
238 * [purge by single-file documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-single-file/).
239 */
240 files?: Array<string>;
241 }
242
243 export interface CachePurgeSingleFileWithURLAndHeaders {
244 /**
245 * Path param
246 */
247 zone_id: string;
248
249 /**
250 * Body param: For more information on purging files with URL and headers, please
251 * refer to
252 * [purge by single-file documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-single-file/).
253 */
254 files?: Array<CachePurgeSingleFileWithURLAndHeaders.File>;
255 }
256
257 export namespace CachePurgeSingleFileWithURLAndHeaders {
258 export interface File {
259 headers?: { [key: string]: string };
260
261 url?: string;
262 }
263 }
264}
265
266Cache.CacheReserveResource = CacheReserveResource;
267Cache.SmartTieredCache = SmartTieredCache;
268Cache.Variants = Variants;
269Cache.RegionalTieredCacheResource = RegionalTieredCacheResource;
270Cache.OriginCloudRegions = OriginCloudRegions;
271
272export declare namespace Cache {
273 export { type CachePurgeResponse as CachePurgeResponse, type CachePurgeParams as CachePurgeParams };
274
275 export {
276 CacheReserveResource as CacheReserveResource,
277 type CacheReserve as CacheReserve,
278 type CacheReserveClear as CacheReserveClear,
279 type State as State,
280 type CacheReserveClearResponse as CacheReserveClearResponse,
281 type CacheReserveEditResponse as CacheReserveEditResponse,
282 type CacheReserveGetResponse as CacheReserveGetResponse,
283 type CacheReserveStatusResponse as CacheReserveStatusResponse,
284 type CacheReserveClearParams as CacheReserveClearParams,
285 type CacheReserveEditParams as CacheReserveEditParams,
286 type CacheReserveGetParams as CacheReserveGetParams,
287 type CacheReserveStatusParams as CacheReserveStatusParams,
288 };
289
290 export {
291 SmartTieredCache as SmartTieredCache,
292 type SmartTieredCacheDeleteResponse as SmartTieredCacheDeleteResponse,
293 type SmartTieredCacheEditResponse as SmartTieredCacheEditResponse,
294 type SmartTieredCacheGetResponse as SmartTieredCacheGetResponse,
295 type SmartTieredCacheDeleteParams as SmartTieredCacheDeleteParams,
296 type SmartTieredCacheEditParams as SmartTieredCacheEditParams,
297 type SmartTieredCacheGetParams as SmartTieredCacheGetParams,
298 };
299
300 export {
301 Variants as Variants,
302 type CacheVariant as CacheVariant,
303 type VariantDeleteResponse as VariantDeleteResponse,
304 type VariantEditResponse as VariantEditResponse,
305 type VariantGetResponse as VariantGetResponse,
306 type VariantDeleteParams as VariantDeleteParams,
307 type VariantEditParams as VariantEditParams,
308 type VariantGetParams as VariantGetParams,
309 };
310
311 export {
312 RegionalTieredCacheResource as RegionalTieredCacheResource,
313 type RegionalTieredCache as RegionalTieredCache,
314 type RegionalTieredCacheEditResponse as RegionalTieredCacheEditResponse,
315 type RegionalTieredCacheGetResponse as RegionalTieredCacheGetResponse,
316 type RegionalTieredCacheEditParams as RegionalTieredCacheEditParams,
317 type RegionalTieredCacheGetParams as RegionalTieredCacheGetParams,
318 };
319
320 export {
321 OriginCloudRegions as OriginCloudRegions,
322 type OriginCloudRegion as OriginCloudRegion,
323 type OriginCloudRegionCreateResponse as OriginCloudRegionCreateResponse,
324 type OriginCloudRegionListResponse as OriginCloudRegionListResponse,
325 type OriginCloudRegionDeleteResponse as OriginCloudRegionDeleteResponse,
326 type OriginCloudRegionBulkDeleteResponse as OriginCloudRegionBulkDeleteResponse,
327 type OriginCloudRegionBulkEditResponse as OriginCloudRegionBulkEditResponse,
328 type OriginCloudRegionEditResponse as OriginCloudRegionEditResponse,
329 type OriginCloudRegionGetResponse as OriginCloudRegionGetResponse,
330 type OriginCloudRegionSupportedRegionsResponse as OriginCloudRegionSupportedRegionsResponse,
331 type OriginCloudRegionCreateParams as OriginCloudRegionCreateParams,
332 type OriginCloudRegionListParams as OriginCloudRegionListParams,
333 type OriginCloudRegionDeleteParams as OriginCloudRegionDeleteParams,
334 type OriginCloudRegionBulkDeleteParams as OriginCloudRegionBulkDeleteParams,
335 type OriginCloudRegionBulkEditParams as OriginCloudRegionBulkEditParams,
336 type OriginCloudRegionEditParams as OriginCloudRegionEditParams,
337 type OriginCloudRegionGetParams as OriginCloudRegionGetParams,
338 type OriginCloudRegionSupportedRegionsParams as OriginCloudRegionSupportedRegionsParams,
339 };
340}
341