From c038eb0707ebc7ad9027d9de70ac3864a19ca056 Mon Sep 17 00:00:00 2001 From: Alexis Rico Date: Fri, 7 Apr 2023 10:52:25 +0200 Subject: [PATCH] Initial cloudflare API Signed-off-by: Alexis Rico --- packages/cloudflare-api/.npmignore | 4 + packages/cloudflare-api/README.md | 3 + .../cloudflare-api/openapi-codegen.config.ts | 73 + packages/cloudflare-api/package.json | 27 + packages/cloudflare-api/rollup.config.mjs | 26 + packages/cloudflare-api/src/api/fetcher.ts | 97 + packages/cloudflare-api/src/api/schemas.ts | 29295 ++++++++++++++++ packages/cloudflare-api/src/api/utils.ts | 6 + packages/cloudflare-api/src/client.ts | 125 + packages/cloudflare-api/src/index.ts | 5 + packages/cloudflare-api/src/utils/fetch.ts | 22 + packages/cloudflare-api/src/utils/types.ts | 3 + packages/cloudflare-api/tsconfig.json | 19 + pnpm-lock.yaml | 3 + 14 files changed, 29708 insertions(+) create mode 100644 packages/cloudflare-api/.npmignore create mode 100644 packages/cloudflare-api/README.md create mode 100644 packages/cloudflare-api/openapi-codegen.config.ts create mode 100644 packages/cloudflare-api/package.json create mode 100644 packages/cloudflare-api/rollup.config.mjs create mode 100644 packages/cloudflare-api/src/api/fetcher.ts create mode 100644 packages/cloudflare-api/src/api/schemas.ts create mode 100644 packages/cloudflare-api/src/api/utils.ts create mode 100644 packages/cloudflare-api/src/client.ts create mode 100644 packages/cloudflare-api/src/index.ts create mode 100644 packages/cloudflare-api/src/utils/fetch.ts create mode 100644 packages/cloudflare-api/src/utils/types.ts create mode 100644 packages/cloudflare-api/tsconfig.json diff --git a/packages/cloudflare-api/.npmignore b/packages/cloudflare-api/.npmignore new file mode 100644 index 00000000..8ab682d4 --- /dev/null +++ b/packages/cloudflare-api/.npmignore @@ -0,0 +1,4 @@ +/node_modules +/rollup.config.js +/src +/openapi-codegen.config.ts diff --git a/packages/cloudflare-api/README.md b/packages/cloudflare-api/README.md new file mode 100644 index 00000000..d4f0fbf6 --- /dev/null +++ b/packages/cloudflare-api/README.md @@ -0,0 +1,3 @@ +# Cloudflare API JavaScript SDK + +Unofficial Cloudflare API JavaScript SDK built from the OpenAPI specification and with TypeScript types. diff --git a/packages/cloudflare-api/openapi-codegen.config.ts b/packages/cloudflare-api/openapi-codegen.config.ts new file mode 100644 index 00000000..55fc068d --- /dev/null +++ b/packages/cloudflare-api/openapi-codegen.config.ts @@ -0,0 +1,73 @@ +import { defineConfig } from '@openapi-codegen/cli'; +import { Context } from '@openapi-codegen/cli/lib/types'; +import { generateFetchers, generateSchemaTypes, renameComponent } from '@openapi-codegen/typescript'; +import { Project, VariableDeclarationKind } from 'ts-morph'; +import ts from 'typescript'; + +export default defineConfig({ + cloudflare: { + from: { + source: 'url', + url: 'https://raw.githubusercontent.com/cloudflare/api-schemas/main/openapi.json' + }, + outputDir: 'src/api', + to: async (context) => { + const filenamePrefix = ''; + + context.openAPIDocument = renameComponent({ + openAPIDocument: context.openAPIDocument, + from: '#/components/schemas/0rtt', + to: '#/components/schemas/zerortt' + }); + + context.openAPIDocument = renameComponent({ + openAPIDocument: context.openAPIDocument, + from: '#/components/schemas/0rtt_value', + to: '#/components/schemas/zerortt_value' + }); + + const { schemasFiles } = await generateSchemaTypes(context, { filenamePrefix }); + await generateFetchers(context, { filenamePrefix, schemasFiles }); + await context.writeFile('extra.ts', buildExtraFile(context)); + } + } +}); + +function buildExtraFile(context: Context) { + const project = new Project({ + useInMemoryFileSystem: true, + compilerOptions: { module: ts.ModuleKind.ESNext, target: ts.ScriptTarget['ES2020'] } + }); + + const sourceFile = project.createSourceFile('extra.ts'); + + const operationsByPath = Object.fromEntries( + Object.entries(context.openAPIDocument.paths ?? {}).flatMap(([path, methods]) => { + return Object.entries(methods) + .filter(([method]) => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'].includes(method.toUpperCase())) + .map(([method, operation]: [string, any]) => [`${method.toUpperCase()} ${path}`, operation.operationId]); + }) + ); + + sourceFile.addImportDeclaration({ + namedImports: Object.values(operationsByPath), + moduleSpecifier: './components' + }); + + sourceFile.addVariableStatement({ + isExported: true, + declarationKind: VariableDeclarationKind.Const, + declarations: [ + { + name: 'operationsByPath', + initializer: `{ + ${Object.entries(operationsByPath) + .map(([path, operation]) => `"${path}": ${operation}`) + .join(',\n')} + }` + } + ] + }); + + return sourceFile.getFullText(); +} diff --git a/packages/cloudflare-api/package.json b/packages/cloudflare-api/package.json new file mode 100644 index 00000000..34a35726 --- /dev/null +++ b/packages/cloudflare-api/package.json @@ -0,0 +1,27 @@ +{ + "name": "cloudflare-api-js", + "version": "0.0.1", + "description": "Cloudflare API client for Node.js", + "author": "SferaDev", + "license": "ISC", + "bugs": { + "url": "https://github.com/SferaDev/openapi-clients/issues" + }, + "homepage": "https://github.com/SferaDev/openapi-clients#readme", + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "typings": "dist/index.d.ts", + "exports": { + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + }, + "scripts": { + "tsc": "tsc --noEmit", + "build": "rimraf dist && rollup -c", + "generate": "openapi-codegen cloudflare" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/SferaDev/openapi-clients.git" + } +} diff --git a/packages/cloudflare-api/rollup.config.mjs b/packages/cloudflare-api/rollup.config.mjs new file mode 100644 index 00000000..37ac8ab5 --- /dev/null +++ b/packages/cloudflare-api/rollup.config.mjs @@ -0,0 +1,26 @@ +import typescript from "@rollup/plugin-typescript"; +import builtins from "builtin-modules"; +import dts from "rollup-plugin-dts"; + +export default [ + { + input: "./src/index.ts", + output: [ + { + file: "dist/index.cjs", + format: "cjs", + }, + { + file: "dist/index.mjs", + format: "esm", + }, + ], + external: builtins, + plugins: [typescript()], + }, + { + input: "./src/index.ts", + output: [{ file: "dist/index.d.ts", format: "es" }], + plugins: [dts()], + }, +]; \ No newline at end of file diff --git a/packages/cloudflare-api/src/api/fetcher.ts b/packages/cloudflare-api/src/api/fetcher.ts new file mode 100644 index 00000000..454b2949 --- /dev/null +++ b/packages/cloudflare-api/src/api/fetcher.ts @@ -0,0 +1,97 @@ +import { FetchImpl } from '../utils/fetch'; + +export type FetcherExtraProps = { + token: string; + fetchImpl: FetchImpl; +}; + +export const baseUrl = 'https://api.cloudflare.com/client/v4'; + +export type ErrorWrapper = TError | { status: 'unknown'; payload: string }; + +export type FetcherOptions = { + url: string; + method: string; + body?: TBody | undefined; + headers?: THeaders | undefined; + queryParams?: TQueryParams | undefined; + pathParams?: TPathParams | undefined; + signal?: AbortSignal | undefined; +} & FetcherExtraProps; + +export async function fetch< + TData, + TError, + TBody extends {} | FormData | undefined | null, + THeaders extends {}, + TQueryParams extends {}, + TPathParams extends {} +>({ + url, + method, + body, + headers, + pathParams, + queryParams, + signal, + token, + fetchImpl +}: FetcherOptions): Promise { + try { + const requestHeaders: HeadersInit = { + 'Content-Type': 'application/json', + Authorization: `Bearer ${token}`, + ...headers + }; + + /** + * As the fetch API is being used, when multipart/form-data is specified + * the Content-Type header must be deleted so that the browser can set + * the correct boundary. + * https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects#sending_files_using_a_formdata_object + */ + if (requestHeaders['Content-Type']?.toLowerCase().includes('multipart/form-data')) { + delete requestHeaders['Content-Type']; + } + + const response = await fetchImpl(`${baseUrl}${resolveUrl(url, queryParams, pathParams)}`, { + signal, + method: method.toUpperCase(), + body: body ? (body instanceof FormData ? body : JSON.stringify(body)) : undefined, + headers: requestHeaders + }); + if (!response.ok) { + let error: ErrorWrapper; + try { + error = await response.json(); + } catch (e) { + error = { + status: 'unknown' as const, + payload: e instanceof Error ? `Unexpected error (${e.message})` : 'Unexpected error' + }; + } + + throw error; + } + + if (response.headers?.get('content-type')?.includes('json')) { + return await response.json(); + } else { + // if it is not a json response, assume it is a blob and cast it to TData + return (await response.text()) as unknown as TData; + } + } catch (e) { + let errorObject: Error = { + name: 'unknown' as const, + message: e instanceof Error ? `Network error (${e.message})` : 'Network error', + stack: e as string + }; + throw errorObject; + } +} + +const resolveUrl = (url: string, queryParams: Record = {}, pathParams: Record = {}) => { + let query = new URLSearchParams(queryParams).toString(); + if (query) query = `?${query}`; + return url.replace(/\{\w*\}/g, (key) => pathParams[key.slice(1, -1)] ?? '') + query; +}; diff --git a/packages/cloudflare-api/src/api/schemas.ts b/packages/cloudflare-api/src/api/schemas.ts new file mode 100644 index 00000000..b02eb751 --- /dev/null +++ b/packages/cloudflare-api/src/api/schemas.ts @@ -0,0 +1,29295 @@ +/** + * Generated by @openapi-codegen + * + * @version 4.0.0 + */ +export type AAAARecord = { + /** + * A valid IPv6 address. + * + * @example 2400:cb00:2049::1 + * @format ipv6 + */ + content?: string; + name?: Name5Ag1twUN; + proxied?: ProxiedDwzKQw8a; + /** + * Record type. + * + * @example AAAA + */ + type?: 'AAAA'; +} & Base4XanMLN9; + +export type ARecord = { + /** + * A valid IPv4 address. + * + * @example 198.51.100.4 + * @format ipv4 + */ + content?: string; + name?: Name5Ag1twUN; + proxied?: ProxiedDwzKQw8a; + /** + * Record type. + * + * @example A + */ + type?: 'A'; +} & Base4XanMLN9; + +export type CAARecord = { + /** + * Formatted CAA content. See 'data' to set CAA properties. + */ + content?: string; + /** + * Components of a CAA record. + */ + data?: { + /** + * Flags for the CAA record. + * + * @example 1 + * @maximum 255 + * @minimum 0 + */ + flags?: number; + /** + * Name of the property controlled by this record (e.g.: issue, issuewild, iodef). + * + * @example issue + */ + tag?: string; + /** + * Value of the record. This field's semantics depend on the chosen tag. + */ + value?: string; + }; + name?: Name5Ag1twUN; + /** + * Record type. + * + * @example CAA + */ + type?: 'CAA'; +} & Base4XanMLN9; + +export type CERTRecord = { + /** + * Formatted CERT content. See 'data' to set CERT properties. + */ + content?: string; + /** + * Components of a CERT record. + */ + data?: { + /** + * Algorithm. + * + * @example 8 + * @maximum 255 + * @minimum 0 + */ + algorithm?: number; + /** + * Certificate. + */ + certificate?: string; + /** + * Key Tag. + * + * @example 1 + * @maximum 65535 + * @minimum 0 + */ + key_tag?: number; + /** + * Type. + * + * @example 9 + * @maximum 65535 + * @minimum 0 + */ + type?: number; + }; + name?: Name5Ag1twUN; + /** + * Record type. + * + * @example CERT + */ + type?: 'CERT'; +} & Base4XanMLN9; + +export type CNAMERecord = { + /** + * A valid hostname. Must not match the record's name. + */ + content?: void; + name?: Name5Ag1twUN; + proxied?: ProxiedDwzKQw8a; + /** + * Record type. + * + * @example CNAME + */ + type?: 'CNAME'; +} & Base4XanMLN9; + +/** + * A single account custom nameserver. + */ +export type CustomNS = { + /** + * A and AAAA records associated with the nameserver. + */ + dns_records: { + /** + * DNS record type. + * + * @example A + */ + type?: 'A' | 'AAAA'; + /** + * DNS record contents (an IPv4 or IPv6 address). + * + * @example 1.1.1.1 + */ + value?: string; + }[]; + ns_name: NsName; + /** + * Verification status of the nameserver. + * + * @deprecated true + * @example verified + */ + status: 'moved' | 'pending' | 'verified'; + zone_tag: SchemasIdentifier; +}; + +export type CustomNSInput = { + ns_name: NsName; +}; + +export type DNSKEYRecord = { + /** + * Formatted DNSKEY content. See 'data' to set DNSKEY properties. + */ + content?: string; + /** + * Components of a DNSKEY record. + */ + data?: { + /** + * Algorithm. + * + * @example 5 + * @maximum 255 + * @minimum 0 + */ + algorithm?: number; + /** + * Flags. + * + * @example 1 + * @maximum 65535 + * @minimum 0 + */ + flags?: number; + /** + * Protocol. + * + * @example 3 + * @maximum 255 + * @minimum 0 + */ + protocol?: number; + /** + * Public Key. + */ + public_key?: string; + }; + name?: Name5Ag1twUN; + /** + * Record type. + * + * @example DNSKEY + */ + type?: 'DNSKEY'; +} & Base4XanMLN9; + +export type DSRecord = { + /** + * Formatted DS content. See 'data' to set DS properties. + */ + content?: string; + /** + * Components of a DS record. + */ + data?: { + /** + * Algorithm. + * + * @example 3 + * @maximum 255 + * @minimum 0 + */ + algorithm?: number; + /** + * Digest. + */ + digest?: string; + /** + * Digest Type. + * + * @example 1 + * @maximum 255 + * @minimum 0 + */ + digest_type?: number; + /** + * Key Tag. + * + * @example 1 + * @maximum 65535 + * @minimum 0 + */ + key_tag?: number; + }; + name?: Name5Ag1twUN; + /** + * Record type. + * + * @example DS + */ + type?: 'DS'; +} & Base4XanMLN9; + +export type Everything = { + purge_everything?: boolean; +}; + +/** + * @example http://www.example.com/css/styles.css + */ +export type File = string; + +export type Files = { + files?: (File | UrlAndHeaders)[]; +}; + +export type Flex = Tags | Hosts | Prefixes; + +export type HTTPSRecord = { + /** + * Formatted HTTPS content. See 'data' to set HTTPS properties. + */ + content?: string; + /** + * Components of a HTTPS record. + */ + data?: { + /** + * priority. + * + * @example 1 + * @maximum 65535 + * @minimum 0 + */ + priority?: number; + /** + * target. + * + * @example . + */ + target?: string; + /** + * value. + * + * @example alpn="h3,h2" ipv4hint="127.0.0.1" ipv6hint="::1" + */ + value?: string; + }; + name?: Name5Ag1twUN; + /** + * Record type. + * + * @example HTTPS + */ + type?: 'HTTPS'; +} & Base4XanMLN9; + +/** + * The 'Host' header allows to override the hostname set in the HTTP request. Current support is 1 'Host' header override per origin. + */ +export type Host = string[]; + +export type Hosts = { + /** + * @example www.example.com + * @example images.example.com + */ + hosts?: string[]; +}; + +export type LOCRecord = { + /** + * Formatted LOC content. See 'data' to set LOC properties. + * + * @example IN LOC 37 46 46 N 122 23 35 W 0m 100m 0m 0m + */ + content?: string; + /** + * Components of a LOC record. + */ + data?: { + /** + * Altitude of location in meters. + * + * @example 0 + * @maximum 42849672.95 + * @minimum -100000 + */ + altitude?: number; + /** + * Degrees of latitude. + * + * @example 37 + * @maximum 90 + * @minimum 0 + */ + lat_degrees?: number; + /** + * Latitude direction. + * + * @example N + */ + lat_direction?: 'N' | 'S'; + /** + * Minutes of latitude. + * + * @default 0 + * @example 46 + * @maximum 59 + * @minimum 0 + */ + lat_minutes?: number; + /** + * Seconds of latitude. + * + * @default 0 + * @example 46 + * @maximum 59.999 + * @minimum 0 + */ + lat_seconds?: number; + /** + * Degrees of longitude. + * + * @example 122 + * @maximum 180 + * @minimum 0 + */ + long_degrees?: number; + /** + * Longitude direction. + * + * @example W + */ + long_direction?: 'E' | 'W'; + /** + * Minutes of longitude. + * + * @default 0 + * @example 23 + * @maximum 59 + * @minimum 0 + */ + long_minutes?: number; + /** + * Seconds of longitude. + * + * @default 0 + * @example 35 + * @maximum 59.999 + * @minimum 0 + */ + long_seconds?: number; + /** + * Horizontal precision of location. + * + * @default 0 + * @example 0 + * @maximum 90000000 + * @minimum 0 + */ + precision_horz?: number; + /** + * Vertical precision of location. + * + * @default 0 + * @example 0 + * @maximum 90000000 + * @minimum 0 + */ + precision_vert?: number; + /** + * Size of location in meters. + * + * @default 0 + * @example 100 + * @maximum 90000000 + * @minimum 0 + */ + size?: number; + }; + name?: Name5Ag1twUN; + /** + * Record type. + * + * @example LOC + */ + type?: 'LOC'; +} & Base4XanMLN9; + +export type MXRecord = { + /** + * A valid mail server hostname. + * + * @example mx.example.com + * @format hostname + */ + content?: string; + name?: Name5Ag1twUN; + priority?: PriorityVEsVispp; + /** + * Record type. + * + * @example MX + */ + type?: 'MX'; +} & Base4XanMLN9; + +export type NAPTRRecord = { + /** + * Formatted NAPTR content. See 'data' to set NAPTR properties. + */ + content?: string; + /** + * Components of a NAPTR record. + */ + data?: { + /** + * Flags. + */ + flags?: string; + /** + * Order. + * + * @example 100 + * @maximum 65535 + * @minimum 0 + */ + order?: number; + /** + * Preference. + * + * @example 10 + * @maximum 65535 + * @minimum 0 + */ + preference?: number; + /** + * Regex. + */ + regex?: string; + /** + * Replacement. + */ + replacement?: string; + /** + * Service. + */ + service?: string; + }; + name?: Name5Ag1twUN; + /** + * Record type. + * + * @example NAPTR + */ + type?: 'NAPTR'; +} & Base4XanMLN9; + +export type NSRecord = { + /** + * A valid name server host name. + * + * @example ns1.example.com + */ + content?: void; + name?: Name5Ag1twUN; + /** + * Record type. + * + * @example NS + */ + type?: 'NS'; +} & Base4XanMLN9; + +export type PTRRecord = { + /** + * Domain name pointing to the address. + * + * @example example.com + */ + content?: string; + name?: Name5Ag1twUN; + /** + * Record type. + * + * @example PTR + */ + type?: 'PTR'; +} & Base4XanMLN9; + +export type Prefixes = { + /** + * @example www.example.com/foo + * @example images.example.com/bar/baz + */ + prefixes?: string[]; +}; + +export type SMIMEARecord = { + /** + * Formatted SMIMEA content. See 'data' to set SMIMEA properties. + */ + content?: string; + /** + * Components of a SMIMEA record. + */ + data?: { + /** + * Certificate. + */ + certificate?: string; + /** + * Matching Type. + * + * @example 0 + * @maximum 255 + * @minimum 0 + */ + matching_type?: number; + /** + * Selector. + * + * @example 0 + * @maximum 255 + * @minimum 0 + */ + selector?: number; + /** + * Usage. + * + * @example 3 + * @maximum 255 + * @minimum 0 + */ + usage?: number; + }; + name?: Name5Ag1twUN; + /** + * Record type. + * + * @example SMIMEA + */ + type?: 'SMIMEA'; +} & Base4XanMLN9; + +export type SRVRecord = { + /** + * Priority, weight, port, and SRV target. See 'data' for setting the individual component values. + * + * @example 10 IN SRV 5 8806 example.com. + */ + content?: string; + /** + * Components of a SRV record. + */ + data?: { + /** + * A valid hostname. + * + * @example example.com + * @format hostname + */ + name?: string; + /** + * The port of the service. + * + * @example 8806 + * @maximum 65535 + * @minimum 0 + */ + port?: number; + priority?: PriorityVEsVispp; + /** + * A valid protocol. + * + * @example _tcp + */ + proto?: string; + /** + * A service type, prefixed with an underscore. + * + * @example _sip + */ + service?: string; + /** + * A valid hostname. + * + * @example example.com + * @format hostname + */ + target?: string; + /** + * The record weight. + * + * @example 5 + * @maximum 65535 + * @minimum 0 + */ + weight?: number; + }; + /** + * Service, protocol, and SRV name content. See 'data' for setting the individual component values. + * + * @example _sip._tcp.example.com + * @maxLength 255 + */ + name?: string; + /** + * Record type. + * + * @example SRV + */ + type?: 'SRV'; +} & Base4XanMLN9; + +export type SSHFPRecord = { + /** + * Formatted SSHFP content. See 'data' to set SSHFP properties. + */ + content?: string; + /** + * Components of a SSHFP record. + */ + data?: { + /** + * algorithm. + * + * @example 2 + * @maximum 255 + * @minimum 0 + */ + algorithm?: number; + /** + * fingerprint. + */ + fingerprint?: string; + /** + * type. + * + * @example 1 + * @maximum 255 + * @minimum 0 + */ + type?: number; + }; + name?: Name5Ag1twUN; + /** + * Record type. + * + * @example SSHFP + */ + type?: 'SSHFP'; +} & Base4XanMLN9; + +export type SVCBRecord = { + /** + * Formatted SVCB content. See 'data' to set SVCB properties. + */ + content?: string; + /** + * Components of a SVCB record. + */ + data?: { + /** + * priority. + * + * @example 1 + * @maximum 65535 + * @minimum 0 + */ + priority?: number; + /** + * target. + * + * @example . + */ + target?: string; + /** + * value. + * + * @example alpn="h3,h2" ipv4hint="127.0.0.1" ipv6hint="::1" + */ + value?: string; + }; + name?: Name5Ag1twUN; + /** + * Record type. + * + * @example SVCB + */ + type?: 'SVCB'; +} & Base4XanMLN9; + +export type TLSARecord = { + /** + * Formatted TLSA content. See 'data' to set TLSA properties. + */ + content?: string; + /** + * Components of a TLSA record. + */ + data?: { + /** + * certificate. + */ + certificate?: string; + /** + * Matching Type. + * + * @example 1 + * @maximum 255 + * @minimum 0 + */ + matching_type?: number; + /** + * Selector. + * + * @example 0 + * @maximum 255 + * @minimum 0 + */ + selector?: number; + /** + * Usage. + * + * @example 0 + * @maximum 255 + * @minimum 0 + */ + usage?: number; + }; + name?: Name5Ag1twUN; + /** + * Record type. + * + * @example TLSA + */ + type?: 'TLSA'; +} & Base4XanMLN9; + +export type TXTRecord = { + /** + * Text content for the record. + * + * @example example text content + */ + content?: string; + name?: Name5Ag1twUN; + /** + * Record type. + * + * @example TXT + */ + type?: 'TXT'; +} & Base4XanMLN9; + +export type Tags = { + /** + * @example some-tag + * @example another-tag + */ + tags?: string[]; +}; + +export type URIRecord = { + /** + * Formatted URI content. See 'data' to set URI properties. + */ + content?: string; + /** + * Components of a URI record. + */ + data?: { + /** + * The record content. + * + * @example http://example.com/example.html + */ + content?: string; + /** + * The record weight. + * + * @example 20 + * @maximum 65535 + * @minimum 0 + */ + weight?: number; + }; + name?: Name5Ag1twUN; + priority?: PriorityVEsVispp; + /** + * Record type. + * + * @example URI + */ + type?: 'URI'; +} & Base4XanMLN9; + +export type UrlAndHeaders = { + /** + * @example { + "Origin": "https://www.cloudflare.com", + "CF-IPCountry": "US", + "CF-Device-Type": "desktop" + } + */ + headers?: Record; + /** + * @example http://www.example.com/cat_picture.jpg + */ + url?: string; +}; + +export type AccessPolicy = PolicyWithPermissionGroups; + +export type AccessRequests = { + action?: Action; + allowed?: Allowed; + app_domain?: AppDomain; + app_uid?: AppUid; + connection?: ConnectionU5eyz9N8; + created_at?: Timestamp; + ip_address?: IpRSepkSnX; + ray_id?: RayId; + user_email?: Email; +}; + +export type AccessRequestsSVxTrMG4 = { + action?: AccessRequestsComponentsSchemasAction; + allowed?: SchemasAllowed; + app_domain?: AppDomain; + app_uid?: AppUid; + connection?: SchemasConnection; + created_at?: Timestamp; + ip_address?: SchemasIp; + ray_id?: RayId; + user_email?: SchemasEmailJb7fdlGM; +}; + +/** + * The event that occurred, such as a login attempt. + * + * @example login + */ +export type AccessRequestsComponentsSchemasAction = string; + +export type AccessRequestsComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: AccessRequestsSVxTrMG4[]; +}; + +/** + * Defines rules for fine-grained control over content than signed URL tokens alone. Access rules primarily make tokens conditionally valid based on user information. Access Rules are specified on token payloads as the `accessRules` property containing an array of Rule objects. + */ +export type AccessRules = { + /** + * The action to take when a request matches a rule. If the action is `block`, the signed token blocks views for viewers matching the rule. + * + * @example allow + */ + action?: 'allow' | 'block'; + /** + * An array of 2-letter country codes in ISO 3166-1 Alpha-2 format used to match requests. + */ + country?: string[]; + /** + * An array of IPv4 or IPV6 addresses or CIDRs used to match requests. + */ + ip?: string[]; + /** + * Lists available rule types to match for requests. An `any` type matches all requests and can be used as a wildcard to apply default actions after other rules. + * + * @example ip.src + */ + type?: 'any' | 'ip.src' | 'ip.geoip.country'; +}; + +/** + * Matches an Access group. + */ +export type AccessGroupRule = { + group: { + /** + * The ID of a previously created Access group. + * + * @example aa0a4aab-672b-4bdb-bc33-a59f1130a11f + */ + id: string; + }; +}; + +/** + * True if the seat is part of Access. + * + * @example false + */ +export type AccessSeat = boolean; + +export type Account = { + /** + * Timestamp for the creation of the account + * + * @example 2014-03-01T12:21:02.0000Z + * @format date-time + */ + created_on?: string; + id: CommonComponentsSchemasIdentifier; + /** + * Account name + * + * @example Demo Account + * @maxLength 100 + */ + name: string; + /** + * Account settings + */ + settings?: { + /** + * Indicates whether membership in this account requires that + * Two-Factor Authentication is enabled + * + * @default false + */ + enforce_twofactor?: boolean; + /** + * Indicates whether new zones should use the account-level custom + * nameservers by default + * + * @default false + */ + use_account_custom_ns_by_default?: boolean; + }; +}; + +export type AccountSettingsResponse = { + errors: Messages; + messages: Messages; + result: + | { + default_usage_model?: void; + green_compute?: void; + } + | any[] + | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type AccountIdentifier = Identifier; + +/** + * @example 01a7362d577a6c3019a474fd6f485823 + */ +export type AccountIdentifier3wuxDA7A = void; + +/** + * The account identifier tag. + * + * @example 023e105f4ecef8ad9ca31a8372d0c353 + * @maxLength 32 + */ +export type AccountIdentifierVA4RU1GK = string; + +export type AccountIdentifierYcYIB9xV = void; + +export type AccountSubscriptionResponseCollection = ApiResponseCollection & { + result?: Subscription[]; +}; + +export type AccountSubscriptionResponseSingle = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type Acl = { + id: ComponentsSchemasIdentifierNz3bhUPI; + ip_range: IpRange; + name: AclComponentsSchemasName; +}; + +/** + * The name of the acl. + * + * @example my-acl-1 + */ +export type AclComponentsSchemasName = string; + +export type AcnsResponseCollection = ApiResponseCollection & { + result?: CustomNS[]; +}; + +export type AcnsResponseSingle = ApiResponseSingleQBZL5yxW & { + result?: CustomNS; +}; + +/** + * The event that occurred, such as a login attempt. + * + * @example login + */ +export type Action = string; + +/** + * The action to preform when the associated traffic, identity, and device posture expressions are either absent or evaluate to 'true'. + * + * @example allow + */ +export type ActionCzIx4RfS = + | 'on' + | 'off' + | 'allow' + | 'block' + | 'scan' + | 'noscan' + | 'safesearch' + | 'ytrestricted' + | 'isolate' + | 'noisolate' + | 'override' + | 'l4_override' + | 'egress' + | 'audit_ssh'; + +/** + * The billing item action. + * + * @example subscription + * @maxLength 30 + */ +export type ActionC1tW2hZo = string; + +/** + * The default action performed by the rules in the WAF package. + * + * @default challenge + */ +export type ActionMode = 'simulate' | 'block' | 'challenge'; + +/** + * The parameters configuring the rule action. + * + * @example {"id":"4814384a9e5d4991b9815dcfc25d2f1f"} + */ +export type ActionParameters = Record; + +/** + * The configuration parameters for the redirect action. + */ +export type ActionParametersRedirect = { + /** + * The parameters that control the redirect. + */ + from_value?: { + /** + * Whether the query string for the request should be carried to the redirect's target url. + * + * @example true + */ + preserve_query_string?: boolean; + /** + * The status code to use for the redirect. + */ + status_code?: number; + target_url?: + | { + /** + * An expression defining a dynamic value for the target url of the redirect. + * + * @example concat(http.request.full_uri, "/latest") + */ + expression?: string; + } + | { + /** + * The value defining the target url of the redirect. + * + * @example https://example.com/blog/latest + */ + value?: string; + }; + }; +}; + +/** + * The configuration parameters for the rewrite action. + */ +export type ActionParametersRewrite = { + /** + * The URI rewrite configuration to rewrite the URI path, the query string, or both. + */ + uri?: { + /** + * The new URI path sent to the origin. + */ + path?: void; + /** + * The new query string sent to the origin. + */ + query?: void; + }; +}; + +/** + * The configuration parameters for the route action. + */ +export type ActionParametersRoute = { + /** + * The value of the Host header. + * + * @example foo.example.com + */ + host_header?: string; + /** + * The parameters that control where the origin is. + */ + origin?: { + /** + * The host to use for origin. + * + * @example foo.example.com + */ + host?: string; + /** + * The port to use for origin. + */ + port?: number; + }; + /** + * The parameters that control the SNI. + */ + sni?: { + /** + * The SNI used to connect to the origin. + * + * @example foo.example.com + */ + value?: string; + }; +}; + +/** + * The action parameters for the serve_error action. + */ +export type ActionParametersServeError = { + /** + * The new content for the response error. + * + * @example some html error page + */ + content?: string; + /** + * The content-type of the response error. + * + * @example text/html + */ + content_type?: string; + /** + * The HTTP status code of the response error. + * + * @example 530 + */ + status_code?: number; +}; + +/** + * The configuration parameters for the set_cache_settings action. + */ +export type ActionParametersSetCacheSettings = { + /** + * Set the Browser TTL. + */ + browser_ttl?: { + ['default']?: number; + /** + * @example override_origin + */ + mode?: string; + }; + /** + * Set the Cache TTL. + */ + cache_key?: { + /** + * @example true + */ + cache_deception_armor?: boolean; + custom_key?: { + cookie?: { + /** + * @example cookie_1 + */ + check_presence?: any[]; + /** + * @example cookie1 + */ + include?: any[]; + }; + header?: { + /** + * @example header_1 + */ + check_presence?: any[]; + /** + * @example header1 + */ + include?: any[]; + }; + host?: { + /** + * @example false + */ + resolved?: boolean; + }; + query_string?: { + /** + * @example * + */ + include?: string; + }; + user?: { + /** + * @example true + */ + device_type?: boolean; + /** + * @example false + */ + geo?: boolean; + /** + * @example false + */ + lang?: boolean; + }; + }; + /** + * @example true + */ + ignore_query_strings_order?: boolean; + }; + /** + * Set the Cache TTL. + */ + edge_ttl?: { + /** + * @example respect_origin + */ + mode?: string; + status_code_ttl?: { + status_code?: number; + value?: number; + }; + }; + /** + * @example true + */ + origin_error_page_passthru?: boolean; + /** + * @example true + */ + respect_strong_etags?: boolean; + serve_stale?: { + /** + * @example true + */ + disable_stale_while_updating?: boolean; + }; +}; + +/** + * The configuration parameters for the set_config action. + */ +export type ActionParametersSetConfig = { + /** + * Enable or disable Automatic HTTPS Rewrites for matching requests + * + * @example true + */ + automatic_https_rewrites?: boolean; + /** + * Select which file extensions to minify automatically. + */ + autominify?: { + /** + * @example true + */ + css?: boolean; + /** + * @example true + */ + html?: boolean; + /** + * @example true + */ + js?: boolean; + }; + /** + * Enable or disable Browser Integrity Check + * + * @example true + */ + bic?: boolean; + /** + * Disable all active Cloudflare Apps + * + * @example true + */ + disable_apps?: boolean; + /** + * Disable Cloudflare Railgun + * + * @example true + */ + disable_railgun?: boolean; + /** + * Disable Cloudflare Railgun + * + * @example true + */ + disable_zaraz?: boolean; + /** + * Enable or disable Email Obfuscation + * + * @example false + */ + email_obfuscation?: boolean; + /** + * Enable or disable Hotlink Protection + * + * @example false + */ + hotlink_protection?: boolean; + /** + * Enable or disable Mirage + * + * @example false + */ + mirage?: boolean; + /** + * Enable or disableOpportunistic Encryption + * + * @example false + */ + opportunistic_encryption?: boolean; + /** + * Set Polish compression options + * + * @example lossless + */ + polish?: string; + /** + * Enable or disable Rocket Loader + * + * @example false + */ + rocket_loader?: boolean; + /** + * Set the Security Level + * + * @example low + */ + security_level?: string; + /** + * Enable or disable Server Side Excludes + * + * @example false + */ + server_side_excludes?: boolean; + /** + * Select the SSL encryption mode + * + * @example flexible + */ + ssl?: string; + /** + * Enable or disable Signed Exchangesn(SXG) + * + * @example false + */ + sxg?: boolean; +}; + +/** + * The set of actions to perform if the targets of this rule match the request. Actions can redirect to another URL or override settings, but not both. + * + * @example {"id":"browser_check","value":"on"} + */ +export type Actions = RouteVdCUMuBC[]; + +/** + * When the Railgun was activated. + * + * @example 2014-01-02T02:20:00Z + * @format date-time + */ +export type ActivatedOn = string; + +export type Activation = { + activated_on?: ActivatedOn; + key: ActivationKey; + version?: { + build?: Build; + number: ComponentsSchemasVersion; + revision?: Revision; + }; +}; + +/** + * @example e4edc00281cb56ebac22c81be9bac8f3 + * @maxLength 32 + */ +export type ActivationKey = string; + +/** + * The number of active devices registered to the user. + * + * @example 2 + */ +export type ActiveDeviceCount = number; + +/** + * Activity log settings. + */ +export type ActivityLogSettings = { + /** + * Enable activity logging. + * + * @example true + */ + enabled?: boolean; +}; + +/** + * Controls features that modify the routing of requests to pools and origins in response to dynamic conditions, such as during the interval between active health monitoring requests. For example, zero-downtime failover occurs immediately when an origin becomes unavailable due to HTTP 521, 522, or 523 response codes. If there is another healthy origin in the same pool, the request is retried once against this alternate origin. + */ +export type AdaptiveRouting = { + /** + * Extends zero-downtime failover of requests to healthy origins from alternate pools, when no healthy alternate exists in the same pool, according to the failover order defined by traffic and origin steering. When set false (the default) zero-downtime failover will only occur between origins within the same pool. See `session_affinity_attributes` for control over when sessions are broken or reassigned. + * + * @default false + * @example true + */ + failover_across_pools?: boolean; +}; + +/** + * Additional information related to the host name. + */ +export type AdditionalInformation = { + /** + * Suspected DGA malware family. + * + * @example + */ + suspected_malware_family?: string; +}; + +/** + * The hostname or IP address of the origin server to run health checks on. + * + * @example www.example.com + */ +export type Address = string; + +/** + * The IP address (IPv4 or IPv6) of the origin, or its publicly addressable hostname. Hostnames entered here should resolve directly to the origin, and not be a hostname proxied by Cloudflare. To set an internal/reserved address, virtual_network_id must also be set. + * + * @example 0.0.0.0 + */ +export type Address2vBDvjOD = string; + +/** + * The IP address (IPv4 or IPv6) of the origin, or its publicly addressable hostname. Hostnames entered here should resolve directly to the origin, and not be a hostname proxied by Cloudflare. To set an internal/reserved address, virtual_network_id must also be set. + * + * @example 0.0.0.0 + */ +export type AddressGVmFzzym = string; + +export type AddressMaps = { + can_delete?: CanDelete; + can_modify_ips?: CanModifyIps; + created_at?: Timestamp; + default_sni?: DefaultSni; + description?: SchemasDescription; + enabled?: EnabledMHW1g4wi; + id?: Identifier; + modified_at?: Timestamp; +}; + +export type AddressMapsTAVtBJaW = { + can_delete?: CanDelete; + can_modify_ips?: CanModifyIps; + created_at?: Timestamp; + default_sni?: DefaultSni; + description?: AddressMapsComponentsSchemasDescription; + enabled?: AddressMapsComponentsSchemasEnabled; + id?: CommonComponentsSchemasIdentifier; + modified_at?: Timestamp; +}; + +export type AddressMapsIp = { + created_at?: Timestamp; + ip?: Ip; +}; + +export type AddressMapsIpSOzzPbBz = { + created_at?: CreatedOn; + ip?: Ip; +}; + +export type AddressMapsMembership = { + can_delete?: SchemasCanDelete; + created_at?: Timestamp; + identifier?: Identifier; + kind?: Kind; +}; + +export type AddressMapsMembership5Sv6b19f = { + can_delete?: SchemasCanDelete; + created_at?: CreatedOn; + identifier?: CommonComponentsSchemasIdentifier; + kind?: ComponentsSchemasKind; +}; + +/** + * An optional description field which may be used to describe the types of IPs or zones on the map. + * + * @example My Ecommerce zones + */ +export type AddressMapsComponentsSchemasDescription = string | null; + +/** + * Whether the Address Map is enabled or not. Cloudflare's DNS will not respond with IP addresses on an Address Map until the map is enabled. + * + * @default false + * @example true + */ +export type AddressMapsComponentsSchemasEnabled = boolean | null; + +export type AddressMapsComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: AddressMapsTAVtBJaW[]; +}; + +export type AddressMapsComponentsSchemasSingleResponse = ApiResponseSingleLarS7owG & { + result?: AddressMapsTAVtBJaW; +}; + +/** + * Optional address line for unit, floor, suite, etc. + * + * @example Suite 430 + */ +export type Address2 = string; + +export type Addresses = DestinationAddressProperties; + +export type AdvancedCertificatePackResponseSingle = ApiResponseSingleZZHeSkIR & { + result?: { + certificate_authority?: SchemasCertificateAuthority; + cloudflare_branding?: CloudflareBranding; + hosts?: SchemasHosts; + id?: Identifier; + status?: CertificatePacksComponentsSchemasStatus; + type?: AdvancedType; + validation_method?: ValidationMethod; + validity_days?: ValidityDays; + }; +}; + +export type AdvancedCertificatePackResponseSingleJGLglSyc = ApiResponseSingleLarS7owG & { + result?: { + certificate_authority?: CertificateAuthorityFERjgp6A; + cloudflare_branding?: CloudflareBranding; + hosts?: SchemasHosts; + id?: CertificatePacksComponentsSchemasIdentifier; + status?: CertificatePacksComponentsSchemasStatus; + type?: AdvancedType; + validation_method?: ValidationMethod; + validity_days?: ValidityDays; + }; +}; + +/** + * Advanced protection from Distributed Denial of Service (DDoS) attacks on your website. This is an uneditable value that is 'on' in the case of Business and Enterprise zones. + */ +export type AdvancedDdos = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example advanced_ddos + */ + id: 'advanced_ddos'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: AdvancedDdosValue; +}; + +/** + * Value of the zone setting. + * Notes: Defaults to on for Business+ plans + * + * @default off + */ +export type AdvancedDdosValue = 'on' | 'off'; + +/** + * Type of certificate pack. + * + * @example advanced + */ +export type AdvancedType = 'advanced'; + +/** + * Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled. + * + * @example true + */ +export type Advertised = boolean | null; + +export type AdvertisedResponse = ApiResponseSingleZ04EBmfK & { + result?: { + advertised?: SchemasAdvertised; + advertised_modified_at?: ModifiedAtNullable; + }; +}; + +export type AdvertisedResponse4CdBXORk = ApiResponseSingleLarS7owG & { + result?: { + advertised?: SchemasAdvertised; + advertised_modified_at?: ModifiedAtNullable; + }; +}; + +export type AlertTypes = { + description?: AlertTypesComponentsSchemasDescription; + display_name?: DisplayName; + filter_options?: SchemasFilterOptions; + type?: AlertTypesComponentsSchemasType; +}; + +/** + * Describes the alert type. + * + * @example High levels of 5xx HTTP errors at your origin + */ +export type AlertTypesComponentsSchemasDescription = string; + +export type AlertTypesComponentsSchemasResponseCollection = ApiResponseCollection & { + /** + * @example {"Origin Monitoring":[{"description":"High levels of 5xx HTTP errors at your origin.","display_name":"Origin Error Rate Alert","filter_options":[{"ComparisonOperator":"==","Key":"zones","Optional":false},{"ComparisonOperator":">=","Key":"slo","Optional":true}],"type":"http_alert_origin_error"}]} + */ + result?: { + [key: string]: AlertTypes[]; + }; +}; + +/** + * Use this value when creating and updating a notification policy. + * + * @example http_alert_origin_error + */ +export type AlertTypesComponentsSchemasType = string; + +/** + * Message body included in the notification sent. + * + * @example SSL certificate has expired + */ +export type AlertBody = string; + +/** + * Refers to which event will trigger a Notification dispatch. You can use the endpoint to get available alert types which then will give you a list of possible values. + * + * @example universal_ssl_event_type + */ +export type AlertType = string; + +/** + * TSIG algorithm. + * + * @example hmac-sha512. + */ +export type Algo = string; + +/** + * Algorithm key code. + * + * @example 13 + */ +export type Algorithm = string | null; + +/** + * Allows all HTTP request headers. + * + * @example true + */ +export type AllowAllHeaders = boolean; + +/** + * Allows all HTTP request methods. + */ +export type AllowAllMethods = boolean; + +/** + * Allows all origins. + */ +export type AllowAllOrigins = boolean; + +/** + * When set to `true`, includes credentials (cookies, authorization headers, or TLS client certificates) with requests. + */ +export type AllowCredentials = boolean; + +/** + * Do not validate the certificate when monitor use HTTPS. This parameter is currently only valid for HTTP and HTTPS monitors. + * + * @default false + * @example true + */ +export type AllowInsecure = boolean; + +/** + * Whether to allow the user to switch WARP between modes. + * + * @example true + */ +export type AllowModeSwitch = boolean; + +/** + * When `true`, the tunnel can use a null-cipher (`ENCR_NULL`) in the ESP tunnel (Phase 2). + * + * @example true + */ +export type AllowNullCipher = boolean; + +/** + * Whether to receive update notifications when a new version of the client is available. + * + * @example true + */ +export type AllowUpdates = boolean; + +/** + * The result of the authentication event. + * + * @default false + */ +export type Allowed = boolean; + +/** + * Cloudflare Images allowed usage. + * + * @example 100000 + */ +export type Allowed26ctRtQW = number; + +/** + * Lists the origins allowed to display the video. Enter allowed origin domains in an array and use `*` for wildcard subdomains. Empty arrays allow the video to be viewed on any origin. + * + * @example example.com + */ +export type AllowedOrigins = string[]; + +/** + * Allowed HTTP request headers. + */ +export type AllowedHeaders = any[]; + +/** + * The identity providers your users can select when connecting to this application. Defaults to all IdPs configured in your account. + */ +export type AllowedIdps = string[]; + +/** + * Related DLP policies will trigger when the match count exceeds the number set. + * + * @default 0 + * @example 5 + * @maximum 1000 + * @minimum 0 + */ +export type AllowedMatchCount = number; + +/** + * Allowed HTTP request methods. + * + * @example GET + */ +export type AllowedMethods = ('GET' | 'POST' | 'HEAD' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'TRACE' | 'PATCH')[]; + +/** + * The available states for the rule group. + * + * @example on + * @example off + */ +export type AllowedModes = ComponentsSchemasMode[]; + +/** + * Defines the available modes for the current WAF rule. + * + * @example on + * @example off + */ +export type AllowedModesAllowTraditional = ModeAllowTraditional[]; + +/** + * Defines the available modes for the current WAF rule. Applies to anomaly detection WAF rules. + * + * @example on + * @example off + */ +export type AllowedModesAnomaly = ModeAnomaly[]; + +/** + * The list of possible actions of the WAF rule when it is triggered. + * + * @example default + * @example disable + * @example simulate + * @example block + * @example challenge + */ +export type AllowedModesDenyTraditional = ModeDenyTraditional[]; + +/** + * Allowed origins. + * + * @example https://example.com + */ +export type AllowedOrigins = any[]; + +/** + * Whether to allow devices to leave the organization. + * + * @example true + */ +export type AllowedToLeave = boolean; + +/** + * When enabled, Cloudflare serves limited copies of web pages available from the [Internet Archive's Wayback Machine](https://archive.org/web/) if your server is offline. Refer to [Always Online](https://developers.cloudflare.com/cache/about/always-online) for more information. + */ +export type AlwaysOnline = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example always_online + */ + id: 'always_online'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: AlwaysOnlineValue; +}; + +/** + * Value of the zone setting. + * + * @default on + */ +export type AlwaysOnlineValue = 'on' | 'off'; + +/** + * Reply to all requests for URLs that use "http" with a 301 redirect to the equivalent "https" URL. If you only want to redirect for a subset of requests, consider creating an "Always use HTTPS" page rule. + * + * @default off + */ +export type AlwaysUseHttps = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example always_use_https + */ + id: 'always_use_https'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: AlwaysUseHttpsValue; +}; + +/** + * Value of the zone setting. + * + * @default off + */ +export type AlwaysUseHttpsValue = 'on' | 'off'; + +/** + * The amount associated with this billing item. + * + * @example 20.99 + */ +export type Amount = number; + +export type Analytics = { + /** + * @default 1 + */ + id?: number; + /** + * @example {"address":"198.51.100.4","changed":true,"enabled":true,"failure_reason":"No failures","healthy":true,"ip":"198.51.100.4","name":"some-origin"} + */ + origins?: any[]; + /** + * @example {"changed":true,"healthy":true,"id":"74bc6a8b9b0dda3d651707a2928bad0c","minimum_origins":1,"name":"some-pool"} + */ + pool?: Record; + /** + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + timestamp?: string; +}; + +export type AnalyticsAggregateComponentsSchemasResponseCollection = { + errors: Messages; + messages: Messages; + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +/** + * @example 17b5962d775c646f3f9725cbc7a53df4 + */ +export type AnalyticsComponentsSchemasIdentifier = void; + +export type AnalyticsComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: Analytics[]; +}; + +/** + * A summary of the purpose/function of the WAF package. + * + * @example Covers OWASP Top 10 vulnerabilities and more. + */ +export type AnomalyDescription = string; + +/** + * When a WAF package uses anomaly detection, each rule is given a score when triggered. If the total score of all triggered rules exceeds the sensitivity defined on the WAF package, the action defined on the package will be taken. + * + * @example anomaly + */ +export type AnomalyDetectionMode = string; + +/** + * The name of the WAF package. + * + * @example OWASP ModSecurity Core Rule Set + */ +export type AnomalyName = string; + +export type AnomalyPackage = { + description: AnomalyDescription; + detection_mode: AnomalyDetectionMode; + id: PackageComponentsSchemasIdentifier; + name: AnomalyName; + status?: PackageComponentsSchemasStatus; + zone_id: CommonComponentsSchemasIdentifier; + action_mode?: ActionMode; + sensitivity?: Sensitivity; +}; + +/** + * When triggered, anomaly detection WAF rules contribute to an overall threat score that will determine if a request is considered malicious. You can configure the total scoring threshold through the 'sensitivity' property of the WAF package. + */ +export type AnomalyRule = RuleComponentsSchemasBase2 & { + allowed_modes?: AllowedModesAnomaly; + mode?: ModeAnomaly; +}; + +/** + * Anti virus settings. + */ +export type AntiVirusSettings = { + enabled_download_phase?: EnabledDownloadPhase; + enabled_upload_phase?: EnabledUploadPhase; + fail_closed?: FailClosed; +}; + +export type ApiResponseCollection = { + errors: Messages; + messages: Messages; + result: Record | any[] | string | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; + result_info?: ResultInfo; +}; + +export type ApiResponseCollectionCommon = { + errors: Messages; + messages: Messages; + result: Record | any[] | string | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseCommon = { + errors: Messages; + messages: Messages; + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseCommonFailure = { + /** + * @example {"code":7003,"message":"No route for the URI"} + * @minLength 1 + */ + errors: Messages; + messages: Messages; + result: any | null; + /** + * Whether the API call was successful + * + * @example false + */ + success: false; +}; + +export type ApiResponseCommonFailureCy4i8dJG = { + /** + * @example {"code":7003,"message":"No route for the URI."} + * @minLength 1 + */ + errors: Messages; + messages: Messages; + result: any | null; + /** + * Whether the API call was successful. + * + * @example false + */ + success: false; +}; + +export type ApiResponseCommonFailureNghLYr3o = { + /** + * @example {"code":7003,"message":"No route for the URI"} + * @minLength 1 + */ + errors: Messages; + messages: Messages; + result: Record | null; + /** + * Whether the API call was successful + * + * @example false + */ + success: boolean; +}; + +export type ApiResponseCommonU3C2lXGw = { + errors: Messages; + messages: Messages; + /** + * Whether the API call was successful + * + * @example true + */ + success: boolean; +}; + +export type ApiResponseSingle = { + errors: Messages; + messages: Messages; + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingle66BR6r1o = { + errors: Messages; + messages: Messages; + result: Record | string | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingle8TQHeyma = { + errors: Messages; + messages: Messages; + result: Record | string | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingle9gEyfxyF = { + errors: Messages; + messages: Messages; + result: Record | string | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleCIiIMb72 = { + errors: Messages; + messages: Messages; + result: Record | string | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleI8cJ1fX8 = { + errors: Messages; + messages: Messages; + result: Record | string | string | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleJE9eFdPt = { + errors: Messages; + messages: Messages; + result: Record | string | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleLarS7owG = { + errors: Messages; + messages: Messages; + result: Record | string | string | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleRxxEmdsv = { + errors: Messages; + messages: Messages; + result: Record | string | string | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleSJaluEU5 = { + errors: Messages; + messages: Messages; + result: Record | string | string | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleTJ4lmlRr = { + errors: Messages; + messages: Messages; + result: Record | string | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleUl1k90Mw = { + errors: Messages; + messages: Messages; + result: Record | string | string | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleWkFwqHKI = { + errors: Messages; + messages: Messages; + result: Record | string | string | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleXfmc4hwK = { + errors: Messages; + messages: Messages; + result: Record | string | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleEkzmTA7q = { + errors: Messages; + messages: Messages; + result: Record | string | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleIRWHLn6I = { + errors: Messages; + messages: Messages; + result: Record | string | string | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleId = { + errors: Messages; + messages: Messages; + result: + | { + id: SchemasIdentifier; + } + | any[] + | string + | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleIdM0atCWzd = { + errors: Messages; + messages: Messages; + result: + | { + id: CommonComponentsSchemasIdentifier; + } + | any[] + | string + | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleIdBQJfiSOf = ApiResponseCommonU3C2lXGw & { + result?: { + id: IdentifierY35LcWMV; + } | null; +}; + +export type ApiResponseSingleKLIlNaxV = { + errors: Messages; + messages: Messages; + result: Record | string | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleO4T7cMiV = { + errors: Messages; + messages: Messages; + result: Record | string | string | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSinglePOKosyfu = { + errors: Messages; + messages: Messages; + result: Record | string | string | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSinglePn9rJJNX = { + errors: Messages; + messages: Messages; + result: Record | string | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleQBZL5yxW = { + errors: Messages; + messages: Messages; + result: Record | string | string | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleSiIqFfOd = { + errors: Messages; + messages: Messages; + result: Record | string | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleUypB4bgI = { + errors: Messages; + messages: Messages; + result: Record | string | string | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleVxjnpV7r = { + errors: Messages; + messages: Messages; + result: Record | string | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleYdRGfgTy = { + errors: Messages; + messages: Messages; + result: Record | string | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleZ04EBmfK = { + errors: Messages; + messages: Messages; + result: Record | string | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiResponseSingleZZHeSkIR = { + errors: Messages; + messages: Messages; + result: Record | string | string | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ApiShield = Operation; + +/** + * Enterprise only. Indicates whether or not API access is enabled specifically for this user on a given account. + * + * @example true + */ +export type ApiAccessEnabled = boolean | null; + +export type AppTypes = Application | ApplicationType; + +/** + * The name of the application or application type. + * + * @example Facebook + */ +export type AppTypesComponentsSchemasName = string; + +export type AppTypesComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: AppTypes[]; +}; + +/** + * The URL of the Access application. + * + * @example test.example.com/admin + */ +export type AppDomain = string; + +/** + * @example 699d98642c564d2e855e9661899b7252 + */ +export type AppId = void; + +/** + * Application identifier. + * + * @example ea95132c15732412d22c1476fa83f27a + * @maxLength 32 + */ +export type AppIdK0AoyPAB = string; + +/** + * The identifier for this application. There is only one application per id. + */ +export type AppIdNb4TtdL5 = number; + +/** + * Comma-delimited list of Spectrum Application Id(s). If provided, the response will be limited to Spectrum Application Id(s) that match. + * + * @example ea95132c15732412d22c1476fa83f27a,d122c5f4bb71e25cc9e86ab43b142e2f + */ +export type AppIdParam = string; + +export type AppLauncherProps = { + allowed_idps?: AllowedIdps; + auto_redirect_to_identity?: AutoRedirectToIdentityB0IhfGBw; + /** + * @example authdomain.cloudflareaccess.com + */ + domain?: SchemasDomainA7q0ZzCX; + /** + * @default App Launcher + * @example App Launcher + */ + name?: AppsComponentsSchemasName; + session_duration?: SessionDuration; + /** + * The application type. + * + * @example app_launcher + */ + type?: AppsComponentsSchemasType; +}; + +/** + * Displays the application in the App Launcher. + * + * @default true + * @example true + */ +export type AppLauncherVisible = boolean; + +/** + * The identifier for the type of this application. There can be many applications with the same type. This refers to the `id` of an Application Type that has been returned. + */ +export type AppTypeId = number; + +/** + * The unique identifier for the Access application. + * + * @example df7e2w5f-02b7-4d9d-af26-8d1988fca630 + */ +export type AppUid = void; + +export type Application = { + application_type_id?: AppTypeId; + created_at?: Timestamp; + id?: AppIdNb4TtdL5; + name?: AppTypesComponentsSchemasName; +}; + +/** + * Application that the hostname belongs to. + */ +export type ApplicationIDJD2oSO = { + id?: number; + /** + * @example CLOUDFLARE + */ + name?: string; +}; + +export type ApplicationType = { + created_at?: Timestamp; + /** + * A short summary of applications with this type. + * + * @example Applications used to communicate or collaborate in a business setting. + */ + description?: string; + id?: AppTypeId; + name?: AppTypesComponentsSchemasName; +}; + +/** + * A group of email addresses that can approve a temporary authentication request. + */ +export type ApprovalGroup = { + /** + * The number of approvals needed to obtain access. + * + * @example 1 + * @minimum 0 + */ + approvals_needed: number; + /** + * A list of emails that can approve the access request. + * + * @example test@cloudflare.com + * @example test2@cloudflare.com + */ + email_addresses?: any[]; + /** + * The UUID of an re-usable email list. + */ + email_list_uuid?: string; +}; + +/** + * Administrators who can approve a temporary authentication request. + * + * @example {"approvals_needed":1,"email_addresses":["test1@cloudflare.com","test2@cloudflare.com"]} + * @example {"approvals_needed":3,"email_list_uuid":"597147a1-976b-4ef2-9af0-81d5d007fc34"} + */ +export type ApprovalGroups = ApprovalGroup[]; + +/** + * Requires the user to request access from an administrator at the start of each session. + * + * @default false + * @example true + */ +export type ApprovalRequired = boolean; + +/** + * Approval state of the prefix (P = pending, V = active). + * + * @example P + */ +export type Approved = string; + +export type Apps = + | (BasicAppResponseProps & SelfHostedPropsUAlJDzGr) + | (BasicAppResponseProps & SaasProps5uhJMdOI) + | (BasicAppResponseProps & SshProps) + | (BasicAppResponseProps & VncProps) + | (BasicAppResponseProps & AppLauncherProps) + | (BasicAppResponseProps & WarpProps) + | (BasicAppResponseProps & BisoProps) + | (BasicAppResponseProps & BookmarkProps); + +export type AppsComponentsSchemasIdResponse = ApiResponseSingleLarS7owG & { + result?: { + id?: Uuid; + }; +}; + +/** + * The name of the application. + * + * @example Admin Site + */ +export type AppsComponentsSchemasName = string; + +export type AppsComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: Apps[]; +}; + +export type AppsComponentsSchemasResponseCollection2 = ApiResponseCollection & { + result?: SchemasAppsJxIYBSY3[]; +}; + +export type AppsComponentsSchemasSingleResponse = ApiResponseSingleKLIlNaxV & { + result?: Apps; +}; + +export type AppsComponentsSchemasSingleResponse2 = ApiResponseSingleKLIlNaxV & { + result?: SchemasApps; +}; + +export type AppsComponentsSchemasSingleResponse26yX8JIIZ = ApiResponseSingleLarS7owG & { + result?: SchemasAppsJxIYBSY3; +}; + +export type AppsComponentsSchemasSingleResponseEXvT9Hip = ApiResponseSingleLarS7owG & { + result?: Apps; +}; + +/** + * The application type. + * + * @example self_hosted + */ +export type AppsComponentsSchemasType = + | 'self_hosted' + | 'saas' + | 'ssh' + | 'vnc' + | 'app_launcher' + | 'warp' + | 'biso' + | 'bookmark' + | 'dash_sso'; + +/** + * The cloudflared OS architecture used to establish this connection. + * + * @example linux_amd64 + */ +export type Arch = string; + +export type ArgoTunnel = { + /** + * The tunnel connections between your origin and Cloudflare's edge. + */ + connections: ComponentsSchemasConnection[]; + created_at: CloudflareTunnelComponentsSchemasCreatedAt; + deleted_at?: DeletedAtYdpycuPv; + id: TunnelId; + name: TunnelName; +}; + +/** + * Enables Argo Smart Routing for this application. + * Notes: Only available for TCP applications with traffic_type set to "direct". + * + * @default false + * @example true + */ +export type ArgoSmartRouting = boolean; + +/** + * Autonomous System Number (ASN) the prefix will be advertised under. + * + * @example 209242 + */ +export type Asn = number | null; + +/** + * Autonomous System Number (ASN) the prefix will be advertised under. + */ +export type AsnT2U9T8kj = number | null; + +export type AsnComponentsSchemasAsn = { + asn?: ComponentsSchemasAsn; + country?: AsnCountry; + description?: AsnDescription; + domain_count?: number; + /** + * @example example.com + */ + top_domains?: string[]; + type?: AsnType; +}; + +export type AsnComponentsSchemasResponse = ApiResponseSingleLarS7owG & { + result?: AsnComponentsSchemasAsn; +}; + +export type AsnConfiguration = { + /** + * The configuration target. You must set the target to `asn` when specifying an Autonomous System Number (ASN) in the rule. + * + * @example asn + */ + target?: 'asn'; + /** + * The AS number to match. + * + * @example AS12345 + */ + value?: string; +}; + +/** + * @example US + */ +export type AsnCountry = string; + +/** + * @example CLOUDFLARENET + */ +export type AsnDescription = string; + +/** + * Infrastructure type of this ASN. + * + * @example hosting_provider + */ +export type AsnType = 'hosting_provider' | 'isp' | 'organization'; + +/** + * The hostnames of the applications that will use this certificate. + */ +export type AssociatedHostnames = string[]; + +export type AssociationObject = { + service?: Service; + status?: MtlsManagementComponentsSchemasStatus; +}; + +export type AssociationResponseCollection = ApiResponseCollection & { + result?: AssociationObject[]; +}; + +/** + * Attack mitigation settings. + */ +export type AttackMitigation = { + /** + * When enabled, random-prefix attacks are automatically mitigated and the upstream DNS servers protected. + * + * @example true + */ + enabled?: boolean; + /** + * Deprecated alias for "only_when_upstream_unhealthy". + * + * @deprecated true + */ + only_when_origin_unhealthy?: void; + /** + * Only mitigate attacks when upstream servers seem unhealthy. + * + * @default true + * @example false + */ + only_when_upstream_unhealthy?: boolean; +} | null; + +/** + * The Application Audience (AUD) tag. Identifies the application associated with the CA. + * + * @example 737646a56ab1df6ec9bddc7e5ca84eaf3b0768850f3ffb5d74f1534911fe3893 + * @maxLength 64 + */ +export type Aud = string; + +export type AuditLogs = { + action?: { + /** + * A boolean that indicates if the action attempted was successful. + * + * @example true + */ + result?: boolean; + /** + * A short string that describes the action that was performed. + * + * @example change_setting + */ + type?: string; + }; + actor?: { + /** + * The email of the user that performed the action. + * + * @example michelle@example.com + * @format email + */ + email?: string; + /** + * The ID of the actor that performed the action. If a user performed the action, this will be their User ID. + * + * @example f6b5de0326bb5182b8a4840ee01ec774 + */ + id?: string; + /** + * The IP address of the request that performed the action. + * + * @example 198.41.129.166 + */ + ip?: string; + /** + * The type of actor, whether a User, Cloudflare Admin, or an Automated System. + * + * @example user + */ + type?: 'user' | 'admin' | 'Cloudflare'; + }; + /** + * A string that uniquely identifies the audit log. + * + * @example d5b0f326-1232-4452-8858-1089bd7168ef + */ + id?: string; + /** + * The source of the event. + * + * @example API + */ + interface?: string; + /** + * An object which can lend more context to the action being logged. This is a flexible value and varies between different actions. + * + * @example {"name":"security_level","type":"firewall","value":"high","zone_name":"example.com"} + */ + metadata?: Record; + /** + * The new value of the resource that was modified. + * + * @example low + */ + newValue?: string; + /** + * The value of the resource before it was modified. + * + * @example high + */ + oldValue?: string; + owner?: { + id?: CommonComponentsSchemasIdentifier; + }; + resource?: { + /** + * An identifier for the resource that was affected by the action. + * + * @example 023e105f4ecef8ad9ca31a8372d0c353 + */ + id?: string; + /** + * A short string that describes the resource that was affected by the action. + * + * @example zone + */ + type?: string; + }; + /** + * A UTC RFC3339 timestamp that specifies when the action being logged occured. + * + * @example 2017-04-26T17:31:07Z + * @format date-time + */ + when?: string; +}; + +export type AuditLogsResponseCollection = + | { + errors?: void | null; + messages?: any[]; + result?: AuditLogs[]; + /** + * @example true + */ + success?: boolean; + } + | ApiResponseCommon; + +/** + * The unique subdomain assigned to your Zero Trust organization. + * + * @example test.cloudflareaccess.com + */ +export type AuthDomain = string; + +/** + * The total number of auth-ids seen across this calculation. + */ +export type AuthIdTokens = number; + +/** + * The amount of time in minutes to reconnect after having been disabled. + * + * @example 0 + */ +export type AutoConnect = number; + +/** + * When set to `true`, users skip the identity provider selection step during login. + * + * @default false + */ +export type AutoRedirectToIdentity = boolean; + +/** + * When set to `true`, users skip the identity provider selection step during login. You must specify only one identity provider in allowed_idps. + * + * @default false + */ +export type AutoRedirectToIdentityB0IhfGBw = boolean; + +/** + * How often should a secondary zone auto refresh regardless of DNS NOTIFY. + * Not applicable for primary zones. + * + * @example 86400 + */ +export type AutoRefreshSeconds = number; + +/** + * Auto-renew controls whether subscription is automatically renewed upon domain expiration. + * + * @example true + */ +export type AutoRenew = boolean; + +/** + * Enable the Automatic HTTPS Rewrites feature for this zone. + * + * @default off + */ +export type AutomaticHttpsRewrites = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example automatic_https_rewrites + */ + id: 'automatic_https_rewrites'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: AutomaticHttpsRewritesValue; +}; + +/** + * Value of the zone setting. + * Notes: Default value depends on the zone's plan level. + * + * @default on + */ +export type AutomaticHttpsRewritesValue = 'on' | 'off'; + +export type AutomaticPlatformOptimization = { + /** + * Indicates whether or not [cache by device type](https://developers.cloudflare.com/automatic-platform-optimization/reference/cache-device-type/) is enabled. + * + * @example false + */ + cache_by_device_type: boolean; + /** + * Indicates whether or not Cloudflare proxy is enabled. + * + * @default false + * @example true + */ + cf: boolean; + /** + * Indicates whether or not Automatic Platform Optimization is enabled. + * + * @default false + * @example true + */ + enabled: boolean; + /** + * An array of hostnames where Automatic Platform Optimization for WordPress is activated. + * + * @example www.example.com + * @example example.com + * @example shop.example.com + */ + hostnames: string[]; + /** + * Indicates whether or not site is powered by WordPress. + * + * @default false + * @example true + */ + wordpress: boolean; + /** + * Indicates whether or not [Cloudflare for WordPress plugin](https://wordpress.org/plugins/cloudflare/) is installed. + * + * @default false + * @example true + */ + wp_plugin: boolean; +}; + +export type AvailabilityResponse = ApiResponseCollection & { + result?: string[]; +}; + +/** + * When true, the Managed Transform is available in the current Cloudflare plan. + * + * @example true + */ +export type Available = boolean; + +export type AvailableRatePlan = { + can_subscribe?: CanSubscribe; + currency?: Currency; + externally_managed?: ExternallyManaged; + frequency?: SchemasFrequency; + id?: CommonComponentsSchemasIdentifier; + is_subscribed?: IsSubscribed; + legacy_discount?: LegacyDiscount; + legacy_id?: LegacyId; + name?: RatePlanComponentsSchemasName; + price?: SchemasPrice; +}; + +export type AzureAD = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig & { + /** + * Your Azure directory uuid + * + * @example + */ + directory_id?: string; + /** + * Should Cloudflare try to load groups from your account + */ + support_groups?: boolean; + }; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +/** + * Matches an Azure group. + * Requires an Azure identity provider. + */ +export type AzureGroupRule = { + azureAD: { + /** + * The ID of your Azure identity provider. + * + * @example ea85612a-29c8-46c2-bacb-669d65136971 + */ + connection_id: string; + /** + * The ID of an Azure group. + * + * @example aa0a4aab-672b-4bdb-bc33-a59f1130a11f + */ + id: string; + }; +}; + +/** + * Breakdown of totals for bandwidth in the form of bytes. + */ +export type Bandwidth = { + /** + * The total number of bytes served within the time frame. + */ + all?: number; + /** + * The number of bytes that were cached (and served) by Cloudflare. + */ + cached?: number; + /** + * A variable list of key/value pairs where the key represents the type of content served, and the value is the number in bytes served. + * + * @example {"css":237421,"gif":1234242,"html":1231290,"javascript":123245,"jpeg":784278} + */ + content_type?: Record; + /** + * A variable list of key/value pairs where the key is a two-digit country code and the value is the number of bytes served to that country. + * + * @example {"AG":2342483,"GI":984753,"US":123145433} + */ + country?: Record; + /** + * A break down of bytes served over HTTPS. + */ + ssl?: { + /** + * The number of bytes served over HTTPS. + */ + encrypted?: number; + /** + * The number of bytes served over HTTP. + */ + unencrypted?: number; + }; + /** + * A breakdown of requests by their SSL protocol. + */ + ssl_protocols?: { + /** + * The number of requests served over TLS v1.0. + */ + TLSv1?: number; + /** + * The number of requests served over TLS v1.1. + */ + ['TLSv1.1']?: number; + /** + * The number of requests served over TLS v1.2. + */ + ['TLSv1.2']?: number; + /** + * The number of requests served over TLS v1.3. + */ + ['TLSv1.3']?: number; + /** + * The number of requests served over HTTP. + */ + none?: number; + }; + /** + * The number of bytes that were fetched and served from the origin server. + */ + uncached?: number; +}; + +/** + * Breakdown of totals for bandwidth in the form of bytes. + */ +export type BandwidthByColo = { + /** + * The total number of bytes served within the time frame. + */ + all?: number; + /** + * The number of bytes that were cached (and served) by Cloudflare. + */ + cached?: number; + /** + * The number of bytes that were fetched and served from the origin server. + */ + uncached?: number; +}; + +export type Base = { + /** + * When the Keyless SSL was created. + * + * @example 2014-01-01T05:20:00Z + * @format date-time + */ + created_on: string; + enabled: EnabledJNPAumTy; + host: Host; + id: SchemasIdentifierEWv7yjg2; + /** + * When the Keyless SSL was last modified. + * + * @example 2014-01-01T05:20:00Z + * @format date-time + */ + modified_on: string; + name: NameOdTv91XZ; + /** + * Available permissions for the Keyless SSL for the current user requesting the item. + * + * @example #ssl:read + * @example #ssl:edit + */ + permissions: any[]; + port: Port; + status: SchemasStatus; + tunnel?: KeylessTunnel; +}; + +export type Base4XanMLN9 = { + comment?: Comment; + /** + * When the record was created. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + created_on?: string; + id?: Identifier; + /** + * Whether this record can be modified/deleted (true means it's managed by Cloudflare). + * + * @example false + */ + locked?: boolean; + /** + * Extra Cloudflare-specific information about the record. + */ + meta?: { + /** + * Will exist if Cloudflare automatically added this DNS record during initial setup. + * + * @example true + */ + auto_added?: boolean; + /** + * Where the record originated from. + * + * @example primary + */ + source?: string; + }; + /** + * When the record was last modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string; + /** + * Whether the record can be proxied by Cloudflare or not. + * + * @example true + */ + proxiable?: boolean; + tags?: Tags; + ttl?: TtlSfCV2rs6; + zone_id?: Identifier; + /** + * The domain of the record. + * + * @example example.com + * @format hostname + */ + zone_name?: string; +}; + +export type Base65sD65cn = { + /** + * Identifier of the zone setting. + * + * @example development_mode + */ + id: string; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on: string | null; +}; + +export type BaseKGSh70Wn = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * Identifier of the zone setting. + * + * @example development_mode + */ + id: string; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: void; +}; + +export type BaseMktMcgEk = { + expires_on?: SchemasExpiresOnL7MyoHWU; + id?: InviteComponentsSchemasIdentifier; + invited_by?: InvitedBy; + invited_member_email?: InvitedMemberEmail; + /** + * ID of the user to add to the organization. + * + * @example 5a7805061c76ada191ed06f989cc3dac + * @maxLength 32 + */ + invited_member_id: string | null; + invited_on?: InvitedOn; + /** + * ID of the organization the user will be added to. + * + * @example 5a7805061c76ada191ed06f989cc3dac + * @maxLength 32 + */ + organization_id: string; + /** + * Organization name. + * + * @example Cloudflare, Inc. + * @maxLength 100 + */ + organization_name?: string; + /** + * Roles to be assigned to this user. + */ + roles?: SchemasRole[]; +}; + +export type BasicAppResponseProps = { + aud?: SchemasAud; + created_at?: Timestamp; + id?: Uuid; + updated_at?: Timestamp; +}; + +/** + * @example 10 + */ +export type BatchSize = number; + +/** + * Limit the returned results to history records older than the specified date. This must be a timestamp that conforms to RFC3339. + * + * @example 2022-05-20T20:29:58.679897Z + * @format date-time + */ +export type Before = string; + +/** + * Whether the category is in beta and subject to change. + * + * @example false + */ +export type Beta = boolean; + +export type BillingHistory = { + action: ActionC1tW2hZo; + amount: Amount; + currency: Currency; + description: SchemasDescriptionAeOWNvGr; + id: BillingHistoryComponentsSchemasIdentifier; + occurred_at: OccurredAt; + type: TypeJfoU8Rqn; + zone: SchemasZone; +}; + +/** + * Billing item identifier tag. + * + * @example b69a9f3492637782896352daae219e7d + * @maxLength 32 + */ +export type BillingHistoryComponentsSchemasIdentifier = string; + +export type BillingHistoryCollection = ApiResponseCollection & { + result?: BillingHistory[]; +}; + +export type BillingResponseSingle = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type Binding = KvNamespaceBinding | WasmModuleBinding; + +/** + * A JavaScript variable name for the binding. + * + * @example myBinding + */ +export type BindingName = string; + +export type BisoProps = { + allowed_idps?: AllowedIdps; + auto_redirect_to_identity?: AutoRedirectToIdentityB0IhfGBw; + /** + * @example authdomain.cloudflareaccess.com/browser + */ + domain?: SchemasDomainA7q0ZzCX; + /** + * @default Clientless Web Isolation + * @example Clientless Web Isolation + */ + name?: AppsComponentsSchemasName; + session_duration?: SessionDuration; + /** + * The application type. + * + * @example biso + */ + type?: AppsComponentsSchemasType; +}; + +/** + * Block page layout settings. + */ +export type BlockPageSettings = { + /** + * Block page background color in #rrggbb format. + */ + background_color?: string; + /** + * Enable only cipher suites and TLS versions compliant with FIPS 140-2. + * + * @example true + */ + enabled?: boolean; + /** + * Block page footer text. + * + * @example --footer-- + */ + footer_text?: string; + /** + * Block page header text. + * + * @example --header-- + */ + header_text?: string; + /** + * Full URL to the logo file. + * + * @example https://logos.com/a.png + */ + logo_path?: string; + /** + * Admin email for users to contact. + * + * @example admin@example.com + */ + mailto_address?: string; + /** + * Subject line for emails created from block page. + * + * @example Blocked User Inquiry + */ + mailto_subject?: string; + /** + * Block page title. + * + * @example Cloudflare + */ + name?: string; + /** + * Suppress detailed info at the bottom of the block page. + * + * @example false + */ + suppress_footer?: boolean; +}; + +/** + * The response body to return. The value must conform to the configured content type. + * + * @example This request has been rate-limited. + * @maxLength 10240 + */ +export type Body = string; + +/** + * DLP body scanning setting + */ +export type BodyScanningSettings = { + /** + * Inspection mode. One of deep or shallow + * + * @example deep + */ + inspection_mode?: string; +}; + +export type BookmarkProps = { + /** + * @default true + */ + app_launcher_visible?: void; + /** + * The URL or domain of the bookmark. + * + * @example https://mybookmark.com + */ + domain?: void; + logo_url?: LogoUrl; + name?: AppsComponentsSchemasName; + /** + * The application type. + * + * @example bookmark + */ + type?: string; +}; + +export type Bookmarks = { + app_launcher_visible?: SchemasAppLauncherVisible; + created_at?: Timestamp; + domain?: SchemasDomain; + /** + * The unique identifier for the Bookmark application. + */ + id?: void; + logo_url?: LogoUrl; + name?: BookmarksComponentsSchemasName; + updated_at?: Timestamp; +}; + +export type Bookmarks8hR8t2wb = { + app_launcher_visible?: SchemasAppLauncherVisible; + created_at?: Timestamp; + domain?: ComponentsSchemasDomain; + /** + * The unique identifier for the Bookmark application. + */ + id?: void; + logo_url?: LogoUrl; + name?: BookmarksComponentsSchemasName; + updated_at?: Timestamp; +}; + +export type BookmarksComponentsSchemasIdResponse = ApiResponseSingleLarS7owG & { + result?: { + id?: Uuid; + }; +}; + +/** + * The name of the Bookmark application. + * + * @example My Website + */ +export type BookmarksComponentsSchemasName = string; + +export type BookmarksComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: Bookmarks8hR8t2wb[]; +}; + +export type BookmarksComponentsSchemasSingleResponse = ApiResponseSingleKLIlNaxV & { + result?: Bookmarks; +}; + +export type BookmarksComponentsSchemasSingleResponseGMepA5Af = ApiResponseSingleLarS7owG & { + result?: Bookmarks8hR8t2wb; +}; + +/** + * Certificate Authority is manually reviewing the order. + * + * @example false + */ +export type BrandCheck = boolean; + +/** + * When the client requesting an asset supports the Brotli compression algorithm, Cloudflare will serve a Brotli compressed version of the asset. + */ +export type Brotli = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example brotli + */ + id: 'brotli'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: BrotliValue; +}; + +/** + * Value of the zone setting. + * + * @default off + */ +export type BrotliValue = 'off' | 'on'; + +/** + * Browser isolation settings. + */ +export type BrowserIsolationSettings = { + /** + * Enable Browser Isolation. + * + * @example true + */ + url_browser_isolation_enabled?: boolean; +}; + +/** + * Browser Cache TTL (in seconds) specifies how long Cloudflare-cached resources will remain on your visitors' computers. Cloudflare will honor any larger times specified by your server. (https://support.cloudflare.com/hc/en-us/articles/200168276). + */ +export type BrowserCacheTtl = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example browser_cache_ttl + */ + id: 'browser_cache_ttl'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: BrowserCacheTtlValue; +}; + +/** + * Value of the zone setting. + * Notes: Setting a TTL of 0 is equivalent to selecting `Respect Existing Headers` + * + * @default 14400 + */ +export type BrowserCacheTtlValue = + | 0 + | 30 + | 60 + | 120 + | 300 + | 1200 + | 1800 + | 3600 + | 7200 + | 10800 + | 14400 + | 18000 + | 28800 + | 43200 + | 57600 + | 72000 + | 86400 + | 172800 + | 259200 + | 345600 + | 432000 + | 691200 + | 1382400 + | 2073600 + | 2678400 + | 5356800 + | 16070400 + | 31536000; + +/** + * Browser Integrity Check is similar to Bad Behavior and looks for common HTTP headers abused most commonly by spammers and denies access to your page. It will also challenge visitors that do not have a user agent or a non standard user agent (also commonly used by abuse bots, crawlers or visitors). (https://support.cloudflare.com/hc/en-us/articles/200170086). + */ +export type BrowserCheck = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example browser_check + */ + id: 'browser_check'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: BrowserCheckValue; +}; + +/** + * Value of the zone setting. + * + * @default on + */ +export type BrowserCheckValue = 'on' | 'off'; + +/** + * Name of the bucket. The name must be greater than 2 and less than 64 characters. + * + * @example example-bucket + * @pattern ^[a-z0-9][a-z0-9-]*[a-z0-9] + */ +export type BucketName = string; + +/** + * The build identifier for the Railgun receiver. + * + * @example b1234 + */ +export type Build = string; + +/** + * Configs for the project build process. + */ +export type BuildConfig = { + /** + * Command used to build project. + * + * @example npm run build + */ + build_command?: string | null; + /** + * Output directory of the build. + * + * @example build + */ + destination_dir?: string | null; + /** + * Directory to run the command. + * + * @example / + */ + root_dir?: string | null; + /** + * The classifying tag for analytics. + * + * @example cee1c73f6e4743d0b5e6bb1a0bcaabcc + */ + web_analytics_tag?: string | null; + /** + * The auth token for analytics. + * + * @example 021e1057c18547eca7b79f2516f06o7x + */ + web_analytics_token?: string | null; +}; + +export type BulkOperationResponseCollection = ApiResponseCollection & { + result?: SchemasOperation; +}; + +export type BulkDelete = KeyNameBulk[]; + +export type BulkWrite = { + /** + * Whether or not the server should base64 decode the value before storing it. Useful for writing values that wouldn't otherwise be valid JSON strings, such as images. + * + * @default false + */ + base64?: boolean; + expiration?: Expiration4507z3vp; + expiration_ttl?: ExpirationTtl; + key?: KeyNameBulk; + metadata?: ListMetadata; + /** + * A UTF-8 encoded string to be stored, up to 10 MB in length. + * + * @example Some string + * @maxLength 10485760 + */ + value?: string; +}[]; + +/** + * A ubiquitous bundle has the highest probability of being verified everywhere, even by clients using outdated or unusual trust stores. An optimal bundle uses the shortest chain and newest intermediates. And the force bundle verifies the chain, but does not otherwise modify it. + * + * @default ubiquitous + * @example ubiquitous + */ +export type BundleMethod = 'ubiquitous' | 'optimal' | 'force'; + +/** + * Criteria specifying when the current rate limit should be bypassed. You can specify that the rate limit should not apply to one or more URLs. + */ +export type Bypass = { + /** + * @example url + */ + name?: 'url'; + /** + * The URL to bypass. + * + * @example api.example.com/* + */ + value?: string; +}[]; + +/** + * Indicates whether the certificate is a CA or leaf certificate. + * + * @example true + */ +export type Ca = boolean; + +export type CaCQxHTRof = { + aud?: Aud; + id?: Id4G7SFJfZ; + public_key?: PublicKey; +}; + +/** + * The ID of the CA. + * + * @example 7eddae4619b50ab1361ba8ae9bd72269a432fea041529ed9 + * @maxLength 48 + */ +export type CaComponentsSchemasId = string; + +export type CaComponentsSchemasIdResponse = ApiResponseSingleLarS7owG & { + result?: { + id?: CaComponentsSchemasId; + }; +}; + +export type CaComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: CaCQxHTRof[]; +}; + +export type CaComponentsSchemasResponseCollectionZvceXl7i = ApiResponseCollection & { + result?: SchemasCa[]; +}; + +export type CaComponentsSchemasSingleResponse = ApiResponseSingleKLIlNaxV & { + result?: Record; +}; + +export type CaComponentsSchemasSingleResponseSWdmxSty = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +/** + * The parameters configuring the action. + */ +export type CacheRulesComponentsSchemasActionParameters = ActionParametersSetCacheSettings; + +export type CacheRulesComponentsSchemasRule = { + /** + * @example set_cache_settings + */ + action?: void; + action_parameters?: CacheRulesComponentsSchemasActionParameters; + /** + * @example use the cache settings + */ + description?: void; + /** + * @example http.cookie contains "something" + */ + expression?: void; + /** + * @example 3a03d665bac047339bb530ecb439a90d + */ + id?: void; + /** + * @example 1 + */ + version?: void; +}; + +export type CacheRulesComponentsSchemasRuleset = { + /** + * @example + */ + description?: void; + /** + * @example 2f2feab2026849078ba485f918791bdc + */ + id?: void; + /** + * @example zone + */ + kind?: void; + /** + * @example default + */ + name?: void; + /** + * @example http_request_cache_settings + */ + phase?: void; + /** + * The rules in the ruleset. + */ + rules?: CacheRulesComponentsSchemasRule[]; +}; + +/** + * Cache Level functions based off the setting level. The basic setting will cache most static resources (i.e., css, images, and JavaScript). The simplified setting will ignore the query string when delivering a cached resource. The aggressive setting will cache all static resources, including ones with a query string. (https://support.cloudflare.com/hc/en-us/articles/200168256). + */ +export type CacheLevel = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example cache_level + */ + id: 'cache_level'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: CacheLevelValue; +}; + +/** + * Value of the zone setting. + * + * @default aggressive + */ +export type CacheLevelValue = 'aggressive' | 'basic' | 'simplified'; + +/** + * Increase cache lifetimes by automatically storing all cacheable files into Cloudflare's persistent object storage buckets. Requires Cache Reserve subscription. Note: using Tiered Cache with Cache Reserve is highly recommended to reduce Reserve operations costs. See the [developer docs](https://developers.cloudflare.com/cache/about/cache-reserve) for more information. + */ +export type CacheReserve = { + /** + * ID of the zone setting. + * + * @example cache_reserve + */ + id: 'cache_reserve'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on: string | null; +}; + +/** + * Increase cache lifetimes by automatically storing all cacheable files into Cloudflare's persistent object storage buckets. Requires Cache Reserve subscription. Note: using Tiered Cache with Cache Reserve is highly recommended to reduce Reserve operations costs. See the [developer docs](https://developers.cloudflare.com/cache/about/cache-reserve) for more information. + */ +export type CacheReserveTRvGfFtN = { + /** + * ID of the zone setting. + * + * @example cache_reserve + */ + id: 'cache_reserve'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on: string | null; +}; + +export type CacheReserveResponseValue = { + /** + * Increase cache lifetimes by automatically storing all cacheable files into Cloudflare's persistent object storage buckets. Requires Cache Reserve subscription. Note: using Tiered Cache with Cache Reserve is highly recommended to reduce Reserve operations costs. See the [developer docs](https://developers.cloudflare.com/cache/about/cache-reserve) for more information. + */ + result?: CacheReserveTRvGfFtN & { + value: CacheReserveValue; + }; +}; + +/** + * Value of the Cache Reserve zone setting. + * + * @default off + */ +export type CacheReserveValue = 'on' | 'off'; + +/** + * If set to false, then the Address Map cannot be deleted via API. This is true for Cloudflare-managed maps. + * + * @example true + */ +export type CanDelete = boolean; + +/** + * If set to false, then the IPs on the Address Map cannot be modified via the API. This is true for Cloudflare-managed maps. + * + * @example true + */ +export type CanModifyIps = boolean; + +/** + * Indicates if the domain can be registered as a new domain. + * + * @example false + */ +export type CanRegister = boolean; + +/** + * Indicates whether you can subscribe to this plan. + * + * @default false + * @example true + */ +export type CanSubscribe = boolean; + +export type CaptionBasicUpload = { + /** + * The WebVTT file containing the caption or subtitle content. + * + * @example @/Users/kyle/Desktop/tr.vtt + */ + file: string; +}; + +export type Captions = { + label?: Label; + language?: Language; +}; + +/** + * Turn on the captive portal after the specified amount of time. + * + * @example 180 + */ +export type CaptivePortal = number; + +export type CatchAllRule = { + actions?: RuleCatchallActions; + enabled?: RuleEnabledXvrbaudJ; + matchers?: RuleCatchallMatchers; + name?: RuleName; + tag?: RuleIdentifier2K5KLBLf; +}; + +export type CatchAllRuleResponseSingle = ApiResponseSingleSiIqFfOd & { + result?: CatchAllRule; +}; + +export type Categories = { + beta?: Beta; + ['class']?: Class; + description?: ComponentsSchemasDescriptionDHTB25HG; + id?: IdWr4kBzDa; + name?: CategoriesComponentsSchemasName; + /** + * All subcategories for this category. + */ + subcategories?: Subcategory[]; +}; + +/** + * The categories of the rule. + * + * @example directory-traversal + * @example header + */ +export type CategoriesGr0NL98E = Category[]; + +/** + * The name of the category. + * + * @example Education + */ +export type CategoriesComponentsSchemasName = string; + +export type CategoriesComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: Categories[]; +}; + +/** + * A category of the rule. + * + * @example directory-traversal + */ +export type Category = string; + +export type Centrify = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig & { + /** + * Your centrify account url + * + * @example https://abc123.my.centrify.com/ + */ + centrify_account?: string; + /** + * Your centrify app id + * + * @example exampleapp + */ + centrify_app_id?: string; + }; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +/** + * Certificate identifier tag. + * + * @example 2458ce5a-0c35-4c7f-82c7-8e9487d3ff60 + * @maxLength 36 + */ +export type CertId = string; + +/** + * Certificate Pack UUID. + * + * @example a77f8bd7-3b47-46b4-a6f1-75cf98109948 + */ +export type CertPackUuid = string; + +/** + * The zone's SSL certificate or certificate and the intermediate(s). + * + * @example -----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIJAMHAwfXZ5/PWMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV +BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX +aWRnaXRzIFB0eSBMdGQwHhcNMTYwODI0MTY0MzAxWhcNMTYxMTIyMTY0MzAxWjBF +MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50 +ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAwQHoetcl9+5ikGzV6cMzWtWPJHqXT3wpbEkRU9Yz7lgvddmGdtcGbg/1 +CGZu0jJGkMoppoUo4c3dts3iwqRYmBikUP77wwY2QGmDZw2FvkJCJlKnabIRuGvB +KwzESIXgKk2016aTP6/dAjEHyo6SeoK8lkIySUvK0fyOVlsiEsCmOpidtnKX/a+5 +0GjB79CJH4ER2lLVZnhePFR/zUOyPxZQQ4naHf7yu/b5jhO0f8fwt+pyFxIXjbEI +dZliWRkRMtzrHOJIhrmJ2A1J7iOrirbbwillwjjNVUWPf3IJ3M12S9pEewooaeO2 +izNTERcG9HzAacbVRn2Y2SWIyT/18QIDAQABo4GnMIGkMB0GA1UdDgQWBBT/LbE4 +9rWf288N6sJA5BRb6FJIGDB1BgNVHSMEbjBsgBT/LbE49rWf288N6sJA5BRb6FJI +GKFJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV +BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAMHAwfXZ5/PWMAwGA1UdEwQF +MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAHHFwl0tH0quUYZYO0dZYt4R7SJ0pCm2 +2satiyzHl4OnXcHDpekAo7/a09c6Lz6AU83cKy/+x3/djYHXWba7HpEu0dR3ugQP +Mlr4zrhd9xKZ0KZKiYmtJH+ak4OM4L3FbT0owUZPyjLSlhMtJVcoRp5CJsjAMBUG +SvD8RX+T01wzox/Qb+lnnNnOlaWpqu8eoOenybxKp1a9ULzIVvN/LAcc+14vioFq +2swRWtmocBAs8QR9n4uvbpiYvS8eYueDCWMM4fvFfBhaDZ3N9IbtySh3SpFdQDhw +YbjM2rxXiyLGxB4Bol7QTv4zHif7Zt89FReT/NBy4rzaskDJY5L6xmY= +-----END CERTIFICATE----- + */ +export type Certificate = string; + +/** + * The unique identifier for a certificate_pack. + * + * @example 3822ff90-ea29-44df-9e55-21300bb9419b + */ +export type CertificatePacksComponentsSchemasIdentifier = string; + +/** + * Status of certificate pack. + * + * @example initializing + */ +export type CertificatePacksComponentsSchemasStatus = + | 'initializing' + | 'pending_validation' + | 'deleted' + | 'pending_issuance' + | 'pending_deployment' + | 'pending_deletion' + | 'pending_expiration' + | 'expired' + | 'active' + | 'initializing_timed_out' + | 'validation_timed_out' + | 'issuance_timed_out' + | 'deployment_timed_out' + | 'deletion_timed_out' + | 'pending_cleanup' + | 'staging_deployment' + | 'staging_active' + | 'deactivating' + | 'inactive' + | 'backup_issued' + | 'holding_deployment'; + +export type CertificateObject = { + certificate?: ZoneAuthenticatedOriginPullComponentsSchemasCertificate; + expires_on?: ComponentsSchemasExpiresOn; + id?: Identifier; + issuer?: Issuer; + signature?: Signature; + status?: ZoneAuthenticatedOriginPullComponentsSchemasStatus; + uploaded_on?: SchemasUploadedOn; +}; + +export type CertificateObject25TqpbxA = { + certificate?: ZoneAuthenticatedOriginPullComponentsSchemasCertificate; + expires_on?: ZoneAuthenticatedOriginPullComponentsSchemasExpiresOn; + id?: ZoneAuthenticatedOriginPullComponentsSchemasIdentifier; + issuer?: Issuer; + signature?: Signature; + status?: ZoneAuthenticatedOriginPullComponentsSchemasStatus; + uploaded_on?: SchemasUploadedOn; +}; + +export type CertificateObjectPost = { + ca?: Ca; + certificates?: SchemasCertificates; + expires_on?: MtlsManagementComponentsSchemasExpiresOn; + id?: Identifier; + issuer?: SchemasIssuer; + name?: SchemasNameUG4dW73x; + serial_number?: SchemasSerialNumber; + signature?: Signature; + updated_at?: SchemasUpdatedAt; + uploaded_on?: MtlsManagementComponentsSchemasUploadedOn; +}; + +export type CertificateObjectPostBzIcru7v = { + ca?: Ca; + certificates?: SchemasCertificates; + expires_on?: MtlsManagementComponentsSchemasExpiresOn; + id?: MtlsManagementComponentsSchemasIdentifier; + issuer?: SchemasIssuer; + name?: MtlsManagementComponentsSchemasName; + serial_number?: SchemasSerialNumber; + signature?: Signature; + updated_at?: SchemasUpdatedAt; + uploaded_on?: MtlsManagementComponentsSchemasUploadedOn; +}; + +export type CertificateAnalyzeResponse = ApiResponseSingleZZHeSkIR & { + result?: Record; +}; + +export type CertificateAnalyzeResponse5wg3arho = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +/** + * The Certificate Authority that will issue the certificate + * + * @example google + */ +export type CertificateAuthority = 'digicert' | 'google' | 'lets_encrypt'; + +/** + * Certificate Authority selected for the order. Selecting Let's Encrypt will reduce customization of other fields: validation_method must be 'txt', validity_days must be 90, cloudflare_branding must be omitted, and hosts must contain only 2 entries, one for the zone name and one for the subdomain wildcard of the zone name (e.g. example.com, *.example.com). + * + * @example digicert + */ +export type CertificateAuthorityFERjgp6A = 'digicert' | 'google' | 'lets_encrypt'; + +export type CertificatePackQuotaResponse = ApiResponseSingleZZHeSkIR & { + result?: { + advanced?: Quota; + }; +}; + +export type CertificatePackQuotaResponseVji3HC3Y = ApiResponseSingleLarS7owG & { + result?: { + advanced?: Quota; + }; +}; + +export type CertificatePackResponseCollection = ApiResponseCollection & { + result?: Record[]; +}; + +export type CertificatePackResponseSingle = ApiResponseSingleZZHeSkIR & { + result?: Record; +}; + +export type CertificatePackResponseSingleM1XodH89 = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type CertificateResponseCollection = ApiResponseCollection & { + result?: CustomCertificateRKdQQr58[]; +}; + +export type CertificateResponseIdOnly = ApiResponseSingleZZHeSkIR & { + result?: { + id?: Identifier; + }; +}; + +export type CertificateResponseIdOnlyRNZdKjgM = ApiResponseSingleLarS7owG & { + result?: { + id?: CustomCertificateComponentsSchemasIdentifier; + }; +}; + +export type CertificateResponseSingle = ApiResponseSingleZZHeSkIR & { + result?: Record; +}; + +export type CertificateResponseSingleFFh8Q9dH = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type CertificateResponseSingleId = SchemasCertificateResponseSingle & { + result?: { + id?: Identifier; + }; +}; + +export type CertificateResponseSingleIdEaxlwmc6 = SchemasCertificateResponseSingleI8qAM9fN & { + result?: { + id?: CertificatesComponentsSchemasIdentifier; + }; +}; + +export type CertificateResponseSinglePost = ApiResponseSingleZZHeSkIR & { + result?: CertificateObjectPost; +}; + +export type CertificateResponseSinglePostOZ0lEuuJ = ApiResponseSingleLarS7owG & { + result?: CertificateObjectPostBzIcru7v; +}; + +/** + * Matches any valid client certificate. + * + * @example {"certificate":{}} + */ +export type CertificateRule = { + /** + * @example {} + */ + certificate: Record; +}; + +/** + * Current status of certificate. + * + * @example active + */ +export type CertificateStatus = + | 'initializing' + | 'authorizing' + | 'active' + | 'expired' + | 'issuing' + | 'timing_out' + | 'pending_deployment'; + +export type Certificates = { + certificate?: ComponentsSchemasCertificate; + csr: Csr; + expires_on?: SchemasExpiresOn; + hostnames: Hostnames; + id?: Identifier; + request_type: RequestType; + requested_validity: RequestedValidity; +}; + +export type CertificatesJ6E1yuF3 = { + certificate?: ComponentsSchemasCertificate; + csr: Csr; + expires_on?: CertificatesComponentsSchemasExpiresOn; + hostnames: Hostnames; + id?: CertificatesComponentsSchemasIdentifier; + request_type: RequestType; + requested_validity: RequestedValidity; +}; + +export type CertificatesSRlxxCwp = { + associated_hostnames?: AssociatedHostnames; + created_at?: Timestamp; + expires_on?: Timestamp; + fingerprint?: Fingerprint; + /** + * The ID of the application that will use this certificate. + */ + id?: void; + name?: CertificatesComponentsSchemasName; + updated_at?: Timestamp; +}; + +/** + * When the certificate will expire. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ +export type CertificatesComponentsSchemasExpiresOn = string; + +export type CertificatesComponentsSchemasIdResponse = ApiResponseSingleLarS7owG & { + result?: { + id?: Uuid; + }; +}; + +/** + * The x509 serial number of the Origin CA certificate. + * + * @example 328578533902268680212849205732770752308931942346 + */ +export type CertificatesComponentsSchemasIdentifier = string; + +/** + * The name of the certificate. + * + * @example Allow devs + */ +export type CertificatesComponentsSchemasName = string; + +export type CertificatesComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: CertificatesSRlxxCwp[]; +}; + +export type CertificatesComponentsSchemasResponseCollectionJkSglPKo = ApiResponseCollection & { + result?: ComponentsSchemasCertificates[]; +}; + +export type CertificatesComponentsSchemasSingleResponse = ApiResponseSingleKLIlNaxV & { + result?: CertificatesSRlxxCwp; +}; + +export type CertificatesComponentsSchemasSingleResponseXU1AJCdT = ApiResponseSingleLarS7owG & { + result?: ComponentsSchemasCertificates; +}; + +/** + * Cloudflare account ID + * + * @example 699d98642c564d2e855e9661899b7252 + * @maxLength 32 + */ +export type CfAccountId = string; + +/** + * Specify how long a visitor is allowed access to your site after successfully completing a challenge (such as a CAPTCHA). After the TTL has expired the visitor will have to complete a new challenge. We recommend a 15 - 45 minute setting and will attempt to honor any setting above 45 minutes. (https://support.cloudflare.com/hc/en-us/articles/200170136). + */ +export type ChallengeTtl = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example challenge_ttl + */ + id: 'challenge_ttl'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: ChallengeTtlValue; +}; + +/** + * Value of the zone setting. + * + * @default 1800 + */ +export type ChallengeTtlValue = + | 300 + | 900 + | 1800 + | 2700 + | 3600 + | 7200 + | 10800 + | 14400 + | 28800 + | 57600 + | 86400 + | 604800 + | 2592000 + | 31536000; + +/** + * @maxItems 10 + * @uniqueItems true + */ +export type Characteristics = { + name: CharacteristicsComponentsSchemasName; + type: SchemasType73ZGJLlz; +}[]; + +/** + * The name of the characteristic field, i.e., the header or cookie name. + * + * @example authorization + * @maxLength 128 + */ +export type CharacteristicsComponentsSchemasName = string; + +/** + * List of volume names to be checked for encryption. + * + * @example C + * @example D + * @example G + */ +export type CheckDisks = string[]; + +/** + * A list of regions from which to run health checks. Null means Cloudflare will pick a default region. + * + * @example WEU + * @example ENAM + */ +export type CheckRegions = + | ( + | 'WNAM' + | 'ENAM' + | 'WEU' + | 'EEU' + | 'NSAM' + | 'SSAM' + | 'OC' + | 'ME' + | 'NAF' + | 'SAF' + | 'IN' + | 'SEAS' + | 'NEAS' + | 'ALL_REGIONS' + )[] + | null; + +/** + * A list of regions from which to run health checks. Null means every Cloudflare data center. + * + * @example WEU + * @example ENAM + */ +export type CheckRegionsM0UYyZsj = + | ( + | 'WNAM' + | 'ENAM' + | 'WEU' + | 'EEU' + | 'NSAM' + | 'SSAM' + | 'OC' + | 'ME' + | 'NAF' + | 'SAF' + | 'SAS' + | 'SEAS' + | 'NEAS' + | 'ALL_REGIONS' + )[] + | null; + +/** + * A list of regions from which to run health checks. Null means every Cloudflare data center. + * + * @example WEU + * @example ENAM + */ +export type CheckRegionsPQxNXzsr = + | ( + | 'WNAM' + | 'ENAM' + | 'WEU' + | 'EEU' + | 'NSAM' + | 'SSAM' + | 'OC' + | 'ME' + | 'NAF' + | 'SAF' + | 'SAS' + | 'SEAS' + | 'NEAS' + | 'ALL_REGIONS' + )[] + | null; + +/** + * IP Prefix in Classless Inter-Domain Routing format. + * + * @example 192.0.2.0/24 + */ +export type Cidr = string; + +export type CidrConfiguration = { + /** + * The configuration target. You must set the target to `ip_range` when specifying an IP address range in the rule. + * + * @example ip_range + */ + target?: 'ip_range'; + /** + * The IP address range to match. You can only use prefix lengths `/16` and `/24` for IPv4 ranges, and prefix lengths `/32`, `/48`, and `/64` for IPv6 ranges. + * + * @example 198.51.100.4/16 + */ + value?: string; +}; + +/** + * List of IPv4/IPv6 CIDR addresses. + * + * @example 199.27.128.0/21 + * @example 2400:cb00::/32 + */ +export type CidrList = string[]; + +/** + * An allowlist of ciphers for TLS termination. These ciphers must be in the BoringSSL format. + */ +export type Ciphers = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example ciphers + */ + id: 'ciphers'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: CiphersValue; +}; + +/** + * Value of the zone setting. + * + * @example ECDHE-RSA-AES128-GCM-SHA256 + * @example AES128-SHA + * @uniqueItems true + */ +export type CiphersValue = string[]; + +/** + * City. + * + * @example Austin + */ +export type City = string; + +/** + * Which account types are allowed to create policies based on this categories. `blocked` categories are blocked unconditionally for all accounts. `removalPending` categories can be removed from policies but not added. `noBlock` categories cannot be blocked. + * + * @example premium + */ +export type Class = 'free' | 'premium' | 'blocked' | 'removalPending' | 'noBlock'; + +/** + * The Client Certificate PEM + * + * @example -----BEGIN CERTIFICATE-----\nMIIDmDCCAoC...dhDDE\n-----END CERTIFICATE----- + */ +export type ClientCertificatesComponentsSchemasCertificate = string; + +/** + * Certificate Authority used to issue the Client Certificate + */ +export type ClientCertificatesComponentsSchemasCertificateAuthority = { + /** + * @example 568b6b74-7b0c-4755-8840-4e3b8c24adeb + */ + id?: string; + /** + * @example Cloudflare Managed CA for account + */ + name?: string; +}; + +/** + * Client Certificates may be active or revoked, and the pending_reactivation or pending_revocation represent in-progress asynchronous transitions + * + * @example active + */ +export type ClientCertificatesComponentsSchemasStatus = + | 'active' + | 'pending_reactivation' + | 'pending_revocation' + | 'revoked'; + +/** + * Set if the location is the default one. + * + * @example false + */ +export type ClientDefault = boolean; + +export type ClientCertificate = { + certificate?: ClientCertificatesComponentsSchemasCertificate; + certificate_authority?: ClientCertificatesComponentsSchemasCertificateAuthority; + common_name?: CommonName; + country?: Country; + csr?: SchemasCsr; + expires_on?: ExpiredOn; + fingerprint_sha256?: FingerprintSha256; + id?: Identifier; + issued_on?: IssuedOn; + location?: Location; + organization?: Organization; + organizational_unit?: OrganizationalUnit; + serial_number?: ComponentsSchemasSerialNumber; + signature?: ComponentsSchemasSignature; + ski?: Ski; + state?: State; + status?: ClientCertificatesComponentsSchemasStatus; + validity_days?: ComponentsSchemasValidityDays; +}; + +export type ClientCertificateResponseCollection = ApiResponseCollection & { + result?: ClientCertificate[]; +}; + +export type ClientCertificateResponseSingle = ApiResponseSingleZZHeSkIR & { + result?: ClientCertificate; +}; + +/** + * The Client ID for the service token. Access will check for this value in the `CF-Access-Client-ID` request header. + * + * @example 88bf3b6d86161464f6509f7219099e57.access.example.com + */ +export type ClientId = string; + +/** + * The Client Secret for the service token. Access will check for this value in the `CF-Access-Client-Secret` request header. + * + * @example bdd31cbc4dec990953e39163fbbb194c93313ca9f0a6e420346af9d326b1d2a5 + */ +export type ClientSecret = string; + +export type ClipResponseSingle = ApiResponseCollection & { + result?: Clipping; +}; + +/** + * The unique video identifier (UID). + * + * @example 023e105f4ecef8ad9ca31a8372d0c353 + * @maxLength 32 + */ +export type ClippedFromVideoUid = string; + +export type Clipping = { + allowedOrigins?: AllowedOrigins; + clippedFromVideoUID?: ClippedFromVideoUid; + created?: ClippingCreated; + creator?: Creator; + endTimeSeconds?: EndTimeSeconds; + maxDurationSeconds?: MaxDurationSeconds; + meta?: MediaMetadata; + modified?: LiveInputModified; + playback?: Playback; + preview?: Preview; + requireSignedURLs?: RequireSignedURLs; + startTimeSeconds?: StartTimeSeconds; + status?: MediaState; + thumbnailTimestampPct?: ThumbnailTimestampPct; + watermark?: WatermarkAtUpload; +}; + +/** + * The date and time the clip was created. + * + * @example 2014-01-02T02:20:00Z + * @format date-time + */ +export type ClippingCreated = string; + +export type CloudflareTunnelComponentsSchemasConnection = { + /** + * UUID of the cloudflared instance. + */ + client_id?: void; + client_version?: CloudflareTunnelComponentsSchemasVersion; + colo_name?: SchemasColoName; + id?: ConnectionId; + is_pending_reconnect?: IsPendingReconnect; + /** + * Timestamp of when the connection was established. + * + * @example 2021-01-25T18:22:34.317854Z + * @format date-time + */ + opened_at?: string; + /** + * The public IP address of the host running cloudflared. + * + * @example 85.12.78.6 + */ + origin_ip?: string; + uuid?: ConnectionId; +}; + +/** + * Timestamp of when the tunnel was created. + * + * @example 2021-01-25T18:22:34.317854Z + * @format date-time + */ +export type CloudflareTunnelComponentsSchemasCreatedAt = string; + +/** + * Metadata associated with the tunnel. + * + * @example {} + */ +export type CloudflareTunnelComponentsSchemasMetadata = Record; + +/** + * The status of the tunnel. Valid values are `inactive` (tunnel has never been run), `degraded` (tunnel is active and able to serve traffic but in an unhealthy state), `healthy` (tunnel is active and able to serve traffic), or `down` (tunnel can not serve traffic as it has no connections to the Cloudflare Edge). + * + * @example healthy + */ +export type CloudflareTunnelComponentsSchemasStatus = string; + +/** + * The cloudflared version used to establish this connection. + * + * @example 2022.7.1 + */ +export type CloudflareTunnelComponentsSchemasVersion = string; + +/** + * Whether or not to add Cloudflare Branding for the order. This will add sni.cloudflaressl.com as the Common Name if set true. + * + * @example false + */ +export type CloudflareBranding = boolean; + +/** + * The IP address assigned to the Cloudflare side of the GRE tunnel. + * + * @example 203.0.113.1 + */ +export type CloudflareGreEndpoint = string; + +/** + * The IP address assigned to the Cloudflare side of the IPsec tunnel. + * + * @example 203.0.113.1 + */ +export type CloudflareIpsecEndpoint = string; + +export type CmbConfig = { + regions?: Regions; +} | null; + +export type CmbConfigResponseSingle = ApiResponseSingleEkzmTA7q & { + result?: CmbConfig; +}; + +/** + * Whether or not cname flattening is on. + */ +export type CnameFlattening = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * How to flatten the cname destination. + * + * @example flatten_at_root + */ + id: 'cname_flattening'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: CnameFlatteningValue; +}; + +/** + * Value of the cname flattening setting. + * + * @default flatten_at_root + */ +export type CnameFlatteningValue = 'flatten_at_root' | 'flatten_all'; + +/** + * The unique activation code for the account membership. + * + * @example 05dd05cce12bbed97c0d87cd78e89bc2fd41a6cee72f27f6fc84af2e45c0fac0 + * @maxLength 64 + */ +export type Code = string; + +export type CollectionInviteResponse = ApiResponseCollection & { + result?: Invite[]; +}; + +export type CollectionMemberResponse = ApiResponseCollection & { + result?: ComponentsSchemasMember[]; +}; + +export type CollectionMembershipResponse = ApiResponseCollection & { + result?: Membership[]; +}; + +export type CollectionOrganizationResponse = ApiResponseCollection & { + result?: Organization4zEoGtIG[]; +}; + +export type CollectionResponse = ApiResponseCollection & { + result?: (ApiShield & { + features?: void; + })[]; +}; + +export type CollectionResponsePaginated = + | (CollectionResponse & { + result_info?: { + /** + * Total results returned based on your search parameters. + * + * @example 1 + */ + count?: number; + /** + * Current page within paginated list of results. + * + * @example 1 + */ + page?: number; + /** + * Number of results per page of results. + * + * @example 20 + */ + per_page?: number; + /** + * Total results available without any search parameters. + * + * @example 500 + */ + total_count?: number; + }; + } & { + result?: ApiShield[]; + }) + | CollectionResponse; + +export type CollectionRoleResponse = ApiResponseCollection & { + result?: SchemasRole[]; +}; + +export type Colo = { + city?: ColoCity; + name?: ColoNameVarDrACz; +}; + +/** + * Source colo city. + * + * @example Denver, CO, US + */ +export type ColoCity = string; + +/** + * Scope colo name. + * + * @example den01 + */ +export type ColoName = string; + +/** + * Source colo name. + * + * @example den01 + */ +export type ColoNameVarDrACz = string; + +/** + * List of colo names for the ECMP scope. + */ +export type ColoNames = ColoName[]; + +/** + * Scope colo region. + * + * @example APAC + */ +export type ColoRegion = string; + +/** + * List of colo regions for the ECMP scope. + */ +export type ColoRegions = ColoRegion[]; + +export type ColoResponse = ApiResponseSingleLarS7owG & { + query?: QueryResponse; + result?: Datacenters; +}; + +export type ColoResult = { + colo?: Colo; + error?: Error; + hops?: HopResult[]; + target_summary?: TargetSummary; + traceroute_time_ms?: TracerouteTimeMs; +}; + +/** + * If no source colo names specified, all colos will be used. China colos are unavailable for traceroutes. + * + * @example den + * @example sin + */ +export type Colos = string[]; + +/** + * Comments or notes about the DNS record. This field has no effect on DNS responses. + * + * @example Domain verification record + */ +export type Comment = string; + +/** + * Optional remark describing the route. + * + * @example Example comment for this route. + */ +export type CommentCrz1ciLB = string; + +/** + * Identifier + * + * @example 023e105f4ecef8ad9ca31a8372d0c353 + * @maxLength 32 + */ +export type CommonComponentsSchemasIdentifier = string; + +export type CommonComponentsSchemasIp = Ipv4 | Ipv6Dw2g7BEM; + +/** + * Common Name of the Client Certificate + * + * @example Cloudflare + */ +export type CommonName = string; + +export type ComponentValue = { + ['default']?: DefaultVg5XL96o; + name?: ComponentValueComponentsSchemasName; + unit_price?: UnitPrice; +}; + +/** + * The unique component. + * + * @example page_rules + */ +export type ComponentValueComponentsSchemasName = + | 'zones' + | 'page_rules' + | 'dedicated_certificates' + | 'dedicated_certificates_custom'; + +/** + * A component value for a subscription. + */ +export type ComponentValue = { + /** + * The default amount assigned. + * + * @example 5 + */ + ['default']?: number; + /** + * The name of the component value. + * + * @example page_rules + */ + name?: string; + /** + * The unit price for the component value. + * + * @example 5 + */ + price?: number; + /** + * The amount of the component value assigned. + * + * @example 20 + */ + value?: number; +}; + +/** + * The list of add-ons subscribed to. + */ +export type ComponentValues = ComponentValue[]; + +export type ComponentsSchemasAccount = Account; + +/** + * @example 9a7806061c88ada191ed06f989cc3dac + */ +export type ComponentsSchemasAccountIdentifier = void; + +/** + * The action to apply to a matched request. The `log` action is only available on an Enterprise plan. + * + * @example block + */ +export type ComponentsSchemasAction = + | 'block' + | 'challenge' + | 'js_challenge' + | 'managed_challenge' + | 'allow' + | 'log' + | 'bypass'; + +/** + * The parameters configuring the action. + */ +export type ComponentsSchemasActionParameters = ActionParametersRedirect; + +export type ComponentsSchemasAsn = number; + +export type ComponentsSchemasBase = { + /** + * When the Keyless SSL was created. + * + * @example 2014-01-01T05:20:00Z + * @format date-time + */ + created_on: string; + enabled: Enabled3YyasMQY; + host: SchemasHost; + id: KeylessCertificateComponentsSchemasIdentifier; + /** + * When the Keyless SSL was last modified. + * + * @example 2014-01-01T05:20:00Z + * @format date-time + */ + modified_on: string; + name: KeylessCertificateComponentsSchemasName; + /** + * Available permissions for the Keyless SSL for the current user requesting the item. + * + * @example #ssl:read + * @example #ssl:edit + */ + permissions: any[]; + port: PortImSN1BQg; + status: KeylessCertificateComponentsSchemasStatus; +}; + +/** + * The Origin CA certificate. Will be newline-encoded. + * + * @example -----BEGIN CERTIFICATE----- +MIICvDCCAaQCAQAwdzELMAkGA1UEBhMCVVMxDTALBgNVBAgMBFV0YWgxDzANBgNV +BAcMBkxpbmRvbjEWMBQGA1UECgwNRGlnaUNlcnQgSW5jLjERMA8GA1UECwwIRGln +aUNlcnQxHTAbBgNVBAMMFGV4YW1wbGUuZGlnaWNlcnQuY29tMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8+To7d+2kPWeBv/orU3LVbJwDrSQbeKamCmo +wp5bqDxIwV20zqRb7APUOKYoVEFFOEQs6T6gImnIolhbiH6m4zgZ/CPvWBOkZc+c +1Po2EmvBz+AD5sBdT5kzGQA6NbWyZGldxRthNLOs1efOhdnWFuhI162qmcflgpiI +WDuwq4C9f+YkeJhNn9dF5+owm8cOQmDrV8NNdiTqin8q3qYAHHJRW28glJUCZkTZ +wIaSR6crBQ8TbYNE0dc+Caa3DOIkz1EOsHWzTx+n0zKfqcbgXi4DJx+C1bjptYPR +BPZL8DAeWuA8ebudVT44yEp82G96/Ggcf7F33xMxe0yc+Xa6owIDAQABoAAwDQYJ +KoZIhvcNAQEFBQADggEBAB0kcrFccSmFDmxox0Ne01UIqSsDqHgL+XmHTXJwre6D +hJSZwbvEtOK0G3+dr4Fs11WuUNt5qcLsx5a8uk4G6AKHMzuhLsJ7XZjgmQXGECpY +Q4mC3yT3ZoCGpIXbw+iP3lmEEXgaQL0Tx5LFl/okKbKYwIqNiyKWOMj7ZR/wxWg/ +ZDGRs55xuoeLDJ/ZRFf9bI+IaCUd1YrfYcHIl3G87Av+r49YVwqRDT0VDV7uLgqn +29XI1PpVUNCPQGn9p/eX6Qo7vpDaPybRtA2R7XLKjQaF9oXWeCUqy1hvJac9QFO2 +97Ob1alpHPoZ7mWiEuJwjBPii6a9M9G30nUo39lBi1w= +-----END CERTIFICATE----- + */ +export type ComponentsSchemasCertificate = string; + +export type ComponentsSchemasCertificateObject = { + ca?: Ca; + certificates?: SchemasCertificates; + expires_on?: MtlsManagementComponentsSchemasExpiresOn; + id?: Identifier; + issuer?: SchemasIssuer; + name?: SchemasNameUG4dW73x; + serial_number?: SchemasSerialNumber; + signature?: Signature; + uploaded_on?: MtlsManagementComponentsSchemasUploadedOn; +}; + +export type ComponentsSchemasCertificateObject6kagZg5y = { + ca?: Ca; + certificates?: SchemasCertificates; + expires_on?: MtlsManagementComponentsSchemasExpiresOn; + id?: MtlsManagementComponentsSchemasIdentifier; + issuer?: SchemasIssuer; + name?: MtlsManagementComponentsSchemasName; + serial_number?: SchemasSerialNumber; + signature?: Signature; + uploaded_on?: MtlsManagementComponentsSchemasUploadedOn; +}; + +/** + * The Certificate Authority that Total TLS certificates will be issued through. + * + * @example google + */ +export type ComponentsSchemasCertificateAuthority = 'google' | 'lets_encrypt'; + +export type ComponentsSchemasCertificateResponseCollection = ApiResponseCollection & { + result?: ZoneAuthenticatedOriginPullHgUvk0U1[]; +}; + +export type ComponentsSchemasCertificateResponseSingle = ApiResponseSingleZZHeSkIR & { + result?: SchemasCertificateObject; +}; + +export type ComponentsSchemasCertificateResponseSingleSttrXbFI = ApiResponseSingleLarS7owG & { + result?: SchemasCertificateObjectAlDI2xY5; +}; + +export type ComponentsSchemasCertificates = { + associated_hostnames?: AssociatedHostnames; + created_at?: Timestamp; + expires_on?: Timestamp; + fingerprint?: Fingerprint; + /** + * The ID of the application that will use this certificate. + */ + id?: void; + name?: CertificatesComponentsSchemasName; + updated_at?: Timestamp; +}; + +export type ComponentsSchemasCollectionResponse = ApiResponseCollection & { + result?: Web3Hostname[]; +}; + +/** + * The tunnel configuration and ingress rules in JSON format. For syntax and parameters, refer to the [configuration file documentation](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/tunnel-guide/local/local-management/configuration-file/#file-structure). + */ +export type ComponentsSchemasConfig = Record; + +/** + * The configuration object for the current rule. + */ +export type ComponentsSchemasConfiguration = { + /** + * The configuration target for this rule. You must set the target to `ua` for User Agent Blocking rules. + * + * @example ua + */ + target?: string; + /** + * The exact user agent string to match. This value will be compared to the received `User-Agent` HTTP header value. + * + * @example Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.1.1 Safari/603.2.4 + */ + value?: string; +}; + +export type ComponentsSchemasConnection = { + colo_name?: SchemasColoName; + is_pending_reconnect?: IsPendingReconnect; + uuid?: ConnectionId; +}; + +/** + * Shows time of creation. + * + * @example 2018-08-28T17:26:26Z + * @format date-time + */ +export type ComponentsSchemasCreatedAt = string; + +/** + * When the Railgun was created. + * + * @example 2014-01-01T05:20:00Z + * @format date-time + */ +export type ComponentsSchemasCreatedOn = string; + +/** + * An optional description forthe IPsec tunnel. + * + * @example Tunnel for ISP X + */ +export type ComponentsSchemasDescription = string; + +/** + * Object description. + * + * @example Load Balancer for www.example.com + */ +export type ComponentsSchemasDescriptionPGj41dmE = string; + +/** + * An informative summary of the rate limit. This value is sanitized and any tags will be removed. + * + * @example Prevent multiple login failures to mitigate brute force attacks + * @maxLength 1024 + */ +export type ComponentsSchemasDescriptionShl7dZHd = string; + +/** + * A short summary of domains in the category. + * + * @example Sites related to educational content that are not included in other categories like Science, Technology or Educational institutions. + */ +export type ComponentsSchemasDescriptionDHTB25HG = string; + +/** + * The domain of the Bookmark application. + * + * @example example.com + */ +export type ComponentsSchemasDomain = string; + +/** + * The email of the user. + * + * @example jdoe@example.com + * @format email + */ +export type ComponentsSchemasEmail = string; + +export type ComponentsSchemasEmptyResponse = { + errors: Messages; + messages: Messages; + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +/** + * If enabled, Total TLS will order a hostname specific TLS certificate for any proxied A, AAAA, or CNAME record in your zone. + * + * @example true + */ +export type ComponentsSchemasEnabled = boolean; + +/** + * Whether to enable (the default) this load balancer. + * + * @default true + * @example true + */ +export type ComponentsSchemasEnabledQ79EL5TU = boolean; + +export type ComponentsSchemasExclude = SplitTunnel[]; + +/** + * When the certificate from the authority expires. + * + * @example 2100-01-01T05:20:00Z + * @format date-time + */ +export type ComponentsSchemasExpiresOn = string; + +/** + * When the certificate from the authority expires. + * + * @example 2016-01-01T05:20:00Z + * @format date-time + */ +export type ComponentsSchemasExpiresOnIEhoDYOo = string; + +/** + * @example {"slo":["99.9"]} + */ +export type ComponentsSchemasFilters = { + [key: string]: any[]; +}; + +/** + * Hostname of the Worker Domain. + * + * @example foo.example.com + */ +export type ComponentsSchemasHostname = string; + +/** + * ID of the namespace. + * + * @example 5fd1cafff895419c8bcc647fc64ab8f0 + */ +export type ComponentsSchemasId = string; + +export type ComponentsSchemasIdResponse = ApiResponseSingleKLIlNaxV & { + result?: { + id?: Uuid; + }; +}; + +export type ComponentsSchemasIdResponseIHcJUh5S = ApiResponseSingleWkFwqHKI & { + result?: { + id?: ComponentsSchemasIdentifierNz3bhUPI; + }; +}; + +export type ComponentsSchemasIdResponseRHALhS1I = ApiResponseSingleLarS7owG & { + result?: { + id?: LoadBalancerComponentsSchemasIdentifier; + }; +}; + +export type ComponentsSchemasIdResponseXrDu14nR = ApiResponseSingleUl1k90Mw & { + result?: { + id?: LoadBalancerComponentsSchemasIdentifier; + }; +}; + +/** + * Identifier + * + * @example 023e105f4ecef8ad9ca31a8372d0c353 + * @maxLength 32 + */ +export type ComponentsSchemasIdentifier = string; + +/** + * @example 23ff594956f20c2a721606e94745a8aa + */ +export type ComponentsSchemasIdentifierNz3bhUPI = void; + +/** + * Token identifier tag. + * + * @example ed17574386854bf78a67040be0a770b0 + * @maxLength 32 + */ +export type ComponentsSchemasIdentifierUpjmfntS = string; + +/** + * IPv4 or IPv6 address. + * + * @example 1.1.1.1 + */ +export type ComponentsSchemasIp = string; + +/** + * The type of the membership. + * + * @example zone + */ +export type ComponentsSchemasKind = 'zone' | 'account'; + +/** + * The wirefilter expression to match devices. + * + * @example user.identity == "test@cloudflare.com" + * @maxLength 500 + */ +export type ComponentsSchemasMatch = string; + +export type ComponentsSchemasMember = { + email: EmailPuzf53IC; + id: CommonComponentsSchemasIdentifier; + name: MemberComponentsSchemasName; + /** + * Roles assigned to this Member. + */ + roles: SchemasRole[]; + /** + * A member's status in the organization. + * + * @example accepted + */ + status: 'accepted' | 'invited'; +}; + +/** + * Arbitrary JSON to be associated with a key/value pair. + * + * @example {"someMetadataKey": "someMetadataValue"} + */ +export type ComponentsSchemasMetadata = string; + +/** + * The state of the rules contained in the rule group. When `on`, the rules in the group are configurable/usable. + * + * @default on + */ +export type ComponentsSchemasMode = 'on' | 'off'; + +/** + * The timestamp of when the rule was last modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ +export type ComponentsSchemasModifiedOn = string; + +export type ComponentsSchemasModifiedTunnelsCollectionResponse = ApiResponseSingleRxxEmdsv & { + result?: { + /** + * @example true + */ + modified?: boolean; + modified_interconnects?: Interconnect[]; + }; +}; + +export type ComponentsSchemasMonitor = { + allow_insecure?: AllowInsecure; + consecutive_down?: ConsecutiveDown; + consecutive_up?: ConsecutiveUp; + created_on?: Timestamp; + description?: Description329lsFZ7; + expected_body?: ExpectedBody; + expected_codes?: SchemasExpectedCodes; + follow_redirects?: FollowRedirects; + header?: Header; + id?: IdentifierYmSdxGUH; + interval?: IntervalHvanFWV2; + method?: Method; + modified_on?: Timestamp; + path?: Path; + port?: SchemasPort; + probe_zone?: ProbeZone; + retries?: RetriesGl6521CK; + timeout?: Timeout; + type?: TypeB9S5DdJI; +}; + +export type ComponentsSchemasMonitor2jUnhefX = { + allow_insecure?: AllowInsecure; + consecutive_down?: ConsecutiveDown; + consecutive_up?: ConsecutiveUp; + created_on?: Timestamp; + description?: MonitorComponentsSchemasDescription; + expected_body?: ExpectedBody; + expected_codes?: SchemasExpectedCodes; + follow_redirects?: FollowRedirects; + header?: Header; + id?: MonitorComponentsSchemasIdentifier; + interval?: IntervalLx3GfHR3; + method?: SchemasMethod; + modified_on?: Timestamp; + path?: Path; + port?: ComponentsSchemasPort; + probe_zone?: ProbeZone; + retries?: Retries7RuyOW7F; + timeout?: SchemasTimeout; + type?: MonitorComponentsSchemasType; +}; + +/** + * The name of the interconnect. The name cannot share a name with other tunnels. + * + * @example pni_ord + */ +export type ComponentsSchemasName = string; + +/** + * The name of the Device Posture Integration. + * + * @example My Workspace One Integration + */ +export type ComponentsSchemasNameKTVvRGKN = string; + +/** + * Role Name. + * + * @example Organization Admin + * @maxLength 120 + */ +export type ComponentsSchemasNameWXo9HKYH = string; + +/** + * The name of the Rule. + * + * @example block bad websites + */ +export type ComponentsSchemasNameDiPhdb0D = string; + +/** + * The DNS hostname to associate with your Load Balancer. If this hostname already exists as a DNS record in Cloudflare's DNS, the Load Balancer will take precedence and the DNS record will not be used. + * + * @example www.example.com + */ +export type ComponentsSchemasNamePmZCIPld = string; + +/** + * The name of the peer. + * + * @example my-peer-1 + */ +export type ComponentsSchemasNameT0FRMejA = string; + +/** + * The name of the Access group. + * + * @example Allow devs + */ +export type ComponentsSchemasNameUYr2s0a0 = string; + +/** + * Update enablement of Smart Tiered Cache + */ +export type ComponentsSchemasPatch = { + value: TieredCacheSmartTopologyApiComponentsSchemasValue; +}; + +/** + * A pattern that matches an entry + */ +export type ComponentsSchemasPattern = { + /** + * The regex pattern. + * + * @example ^4[0-9]{6,14}$ + */ + regex: string; + /** + * Validation algorithm for the pattern. This algorithm will get run on potential matches, and if it returns false, the entry will not be matched. + * + * @example luhn + */ + validation?: 'luhn'; +}; + +/** + * When true, indicates that the firewall rule is currently paused. + * + * @example false + */ +export type ComponentsSchemasPaused = boolean; + +/** + * Number of results per page of results. + * + * @example 20 + */ +export type ComponentsSchemasPerPage = number; + +export type ComponentsSchemasPolicies = { + alert_type?: AlertType; + created?: Timestamp; + description?: PoliciesComponentsSchemasDescription; + enabled?: PoliciesComponentsSchemasEnabled; + filters?: ComponentsSchemasFilters; + id?: Uuid; + mechanisms?: Mechanisms; + modified?: Timestamp; + name?: PoliciesComponentsSchemasName2; +}; + +/** + * The port number to connect to for the health check. Required for TCP, UDP, and SMTP checks. HTTP and HTTPS checks should only define the port when using a non-standard port (HTTP: default 80, HTTPS: default 443). + * + * @default 0 + */ +export type ComponentsSchemasPort = number; + +/** + * The relative priority of the current URI-based WAF override when multiple overrides match a single URL. A lower number indicates higher priority. Higher priority overrides may overwrite values set by lower priority overrides. + * + * @example 1 + * @maximum 1000000000 + * @minimum -1000000000 + */ +export type ComponentsSchemasPriority = number; + +/** + * The private key for the certificate + * + * @example -----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDEXDkcICRU3XBv9hiiPnBWIjgTQyowmVFxDr11mONgZB/cMYjE/OvQjvnpwNcOaSK16MOpAjNbELKRx2lZiVJaLRDCccqCxXwP/CrdRChcqGzo7mbNksMlcidrErb0LlEBKLFC2QjRmRKqB+YOs4TD8WsZu2S667A2fZmjRlaqOxFi1h62ee0P+TLU628UC/nl41JifSt5Evt7hMDHakemdwZblNYr2p6T3NQjdhjYXTtP4UmOGJBhJ7i7Kicg3d3CIgdTMbggSeGWqjndr4ldVnD96FN3cVT5uDFsn2CJXTFgdeBWoUnMS4VnUZzPWGf4vSBXC8qV7Ls+w46yT7T1AgMBAAECggEAQZnp/oqCeNPOR6l5S2L+1tfx0gWjZ78hJVteUpZ0iHSK7F6kKeOxyOird7vUXV0kmo+cJq+0hp0Ke4eam640FCpwKfYoSQ4/R3vgujGWJnaihCN5tv5sMet0XeJPuz5qE7ALoKCvwI6aXLHs20aAeZIDTQJ9QbGSGnJVzOWn+JDTidIgZpN57RpXfSAwnJPTQK/PN8i5z108hsaDOdEgGmxYZ7kYqMqzX20KXmth58LDfPixs5JGtS60iiKC/wOcGzkB2/AdTSojR76oEU77cANP/3zO25NG//whUdYlW0t0d7PgXxIeJe+xgYnamDQJx3qonVyt4H77ha0ObRAj9QKBgQDicZr+VTwFMnELP3a+FXGnjehRiuS1i7MXGKxNweCD+dFlML0FplSQS8Ro2n+d8lu8BBXGx0qm6VXu8Rhn7TAUL6q+PCgfarzxfIhacb/TZCqfieIHsMlVBfhV5HCXnk+kis0tuC/PRArcWTwDHJUJXkBhvkUsNswvQzavDPI7KwKBgQDd/WgLkj7A3X5fgIHZH/GbDSBiXwzKb+rF4ZCT2XFgG/OAW7vapfcX/w+v+5lBLyrocmOAS3PGGAhM5T3HLnUCQfnK4qgps1Lqibkc9Tmnsn60LanUjuUMsYv/zSw70tozbzhJ0pioEpWfRxRZBztO2Rr8Ntm7h6Fk701EXGNAXwKBgQCD1xsjy2J3sCerIdcz0u5qXLAPkeuZW+34m4/ucdwTWwc0gEz9lhsULFj9p4G351zLuiEnq+7mAWLcDJlmIO3mQt6JhiLiL9Y0T4pgBmxmWqKKYtAsJB0EmMY+1BNN44mBRqMxZFTJu1cLdhT/xstrOeoIPqytknYNanfTMZlzIwKBgHrLXe5oq0XMP8dcMneEcAUwsaU4pr6kQd3L9EmUkl5zl7J9C+DaxWAEuwzBw/iGutlxzRB+rD/7szu14wJ29EqXbDGKRzMp+se5/yfBjm7xEZ1hVPw7PwBShfqt57X/4Ktq7lwHnmH6RcGhc+P7WBc5iO/S94YAdIp8xOT3pf9JAoGAE0QkqJUY+5Mgr+fBO0VNV72ZoPveGpW+De59uhKAOnu1zljQCUtk59m6+DXfm0tNYKtawa5n8iN71Zh+s62xXSt3pYi1Y5CCCmv8Y4BhwIcPwXKk3zEvLgSHVTpC0bayA9aSO4bbZgVXa5w+Z0w/vvfp9DWo1IS3EnQRrz6WMYA= +-----END PRIVATE KEY----- + */ +export type ComponentsSchemasPrivateKey = string; + +/** + * The reference of the rule (the rule ID by default). + * + * @example my_ref + */ +export type ComponentsSchemasRef = string; + +export type ComponentsSchemasResponse = ApiResponseCollection & { + result?: IpList[]; +}; + +export type ComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: AddressMaps[]; +}; + +export type ComponentsSchemasResponseCollection8mHxL6ja = ApiResponseCollection & { + result?: RulesLzz0wOUq[]; +}; + +export type ComponentsSchemasResponseCollectionPyBuRAaz = ApiResponseCollection & { + result?: DeviceManagedNetworks[]; +}; + +export type ComponentsSchemasResponseCollectionW5oRiKX6 = ApiResponseCollection & { + result?: ServiceTokens[]; +}; + +export type ComponentsSchemasResponseCollectionEULMBMTa = ApiResponseCollection & { + result?: Analytics[]; +}; + +export type ComponentsSchemasResponseCollectionLs4R2ehK = ApiResponseCollection & { + result?: Record[]; +}; + +export type ComponentsSchemasResponseCollectionPvo6FynM = ApiResponseCollection & { + result?: Acl[]; +}; + +/** + * Metrics on Workers KV requests. + */ +export type ComponentsSchemasResult = { + /** + * @example {"metrics":[[2,4],[16,32]]} + */ + data: + | { + /** + * List of metrics returned by the query. + */ + metrics: any[]; + }[] + | null; + /** + * Number of seconds between current time and last processed event, i.e. how many seconds of data could be missing. + * + * @example 0 + * @minimum 0 + */ + data_lag: number; + /** + * Maximum results for each metric. + * + * @example {"storedBytes":32,"storedKeys":4} + */ + max: void; + /** + * Minimum results for each metric. + * + * @example {"storedBytes":16,"storedKeys":2} + */ + min: void; + query: QueryLWVM8wx5; + /** + * Total number of rows in the result. + * + * @example 2 + * @minimum 0 + */ + rows: number; + /** + * Total results for metrics across all data. + * + * @example {"storedBytes":48,"storedKeys":6} + */ + totals: void; +}; + +export type ComponentsSchemasRule = AnomalyRule | TraditionalDenyRule | TraditionalAllowRule; + +/** + * BETA Field Not General Access: A list of rules for this load balancer to execute. + */ +export type ComponentsSchemasRules = { + /** + * The condition expressions to evaluate. If the condition evaluates to true, the overrides or fixed_response in this rule will be applied. An empty condition is always true. For more details on condition expressions, please see https://developers.cloudflare.com/load-balancing/understand-basics/load-balancing-rules/expressions. + * + * @example http.request.uri.path contains "/testing" + */ + condition?: string; + /** + * Disable this specific rule. It will no longer be evaluated by this load balancer. + * + * @default false + */ + disabled?: boolean; + /** + * A collection of fields used to directly respond to the eyeball instead of routing to a pool. If a fixed_response is supplied the rule will be marked as terminates. + */ + fixed_response?: { + /** + * The http 'Content-Type' header to include in the response. + * + * @example application/json + * @maxLength 32 + */ + content_type?: string; + /** + * The http 'Location' header to include in the response. + * + * @example www.example.com + * @maxLength 2048 + */ + location?: string; + /** + * Text to include as the http body. + * + * @example Testing Hello + * @maxLength 1024 + */ + message_body?: string; + /** + * The http status code to respond with. + */ + status_code?: number; + }; + /** + * Name of this rule. Only used for human readability. + * + * @example route the path /testing to testing datacenter. + * @maxLength 200 + */ + name?: string; + /** + * A collection of overrides to apply to the load balancer when this rule's condition is true. All fields are optional. + */ + overrides?: { + adaptive_routing?: AdaptiveRouting; + country_pools?: CountryPools; + default_pools?: DefaultPools; + fallback_pool?: FallbackPool; + location_strategy?: LocationStrategy; + pop_pools?: PopPools; + random_steering?: RandomSteering; + region_pools?: RegionPools; + session_affinity?: SessionAffinity; + session_affinity_attributes?: SessionAffinityAttributes; + session_affinity_ttl?: SessionAffinityTtl; + steering_policy?: SteeringPolicy; + ttl?: TtlXvgb35JN; + }; + /** + * The order in which rules should be executed in relation to each other. Lower values are executed first. Values do not need to be sequential. If no value is provided for any rule the array order of the rules field will be used to assign a priority. + * + * @default 0 + */ + priority?: number; + /** + * If this rule's condition is true, this causes rule evaluation to stop after processing this rule. + * + * @default false + */ + terminates?: boolean; +}[]; + +export type ComponentsSchemasRuleset = { + /** + * @example + */ + description?: void; + /** + * @example 2f2feab2026849078ba485f918791bdc + */ + id?: void; + /** + * @example zone + */ + kind?: void; + /** + * @example default + */ + name?: void; + /** + * @example http_request_dynamic_redirect + */ + phase?: void; + /** + * The rules in the ruleset. + */ + rules?: DynamicRedirectRulesComponentsSchemasRule[]; +}; + +/** + * The serial number on the created Client Certificate. + * + * @example 3bb94ff144ac567b9f75ad664b6c55f8d5e48182 + */ +export type ComponentsSchemasSerialNumber = string; + +/** + * The device serial number. + * + * @example EXAMPLEHMD6R + */ +export type ComponentsSchemasSerialNumberMLjjvVe3 = string; + +/** + * The type of hash used for the Client Certificate.. + * + * @example SHA256WithRSA + */ +export type ComponentsSchemasSignature = string; + +export type ComponentsSchemasSingleResponse = ApiResponseSingleZ04EBmfK & { + result?: AddressMaps; +}; + +export type ComponentsSchemasSingleResponse0LJKBZJ0 = ApiResponseSingleUl1k90Mw & { + /** + * A list of countries and subdivisions mapped to a region. + * + * @example {"iso_standard":"Country and subdivision codes follow ISO 3166-1 alpha-2 and ISO 3166-2","regions":[{"countries":[{"country_code_a2":"CA","country_name":"Canada","country_subdivisions":[{"subdivision_code_a2":"AB","subdivision_name":"Alberta"},{"subdivision_code_a2":"BC","subdivision_name":"British Columbia"}]},{"country_code_a2":"HT","country_name":"Haiti"},{"country_code_a2":"MX","country_name":"Mexico"},{"country_code_a2":"US","country_name":"United States","country_subdivisions":[{"subdivision_code_a2":"AZ","subdivision_name":"Arizona"},{"subdivision_code_a2":"CA","subdivision_name":"California"},{"subdivision_code_a2":"CO","subdivision_name":"Colorado"},{"subdivision_code_a2":"HI","subdivision_name":"Hawaii"},{"subdivision_code_a2":"MN","subdivision_name":"Minnesota"},{"subdivision_code_a2":"MO","subdivision_name":"Missouri"},{"subdivision_code_a2":"NV","subdivision_name":"Nevada"},{"subdivision_code_a2":"OR","subdivision_name":"Oregon"},{"subdivision_code_a2":"TX","subdivision_name":"Texas"},{"subdivision_code_a2":"UT","subdivision_name":"Utah"},{"subdivision_code_a2":"WA","subdivision_name":"Washington"}]}],"region_code":"WNAM"}]} + */ + result?: Record; +}; + +export type ComponentsSchemasSingleResponse1a4d0nCA = ApiResponseSingleWkFwqHKI & { + result?: Acl; +}; + +export type ComponentsSchemasSingleResponseAo9BXUmS = ApiResponseSingleKLIlNaxV & { + result?: Groups; +}; + +export type ComponentsSchemasSingleResponseIAPm1A0c = ApiResponseSingleI8cJ1fX8 & { + result?: DeviceManagedNetworks; +}; + +export type ComponentsSchemasSingleResponseTtXC0WGS = ApiResponseSingleVxjnpV7r & { + result?: RulesLzz0wOUq; +}; + +export type ComponentsSchemasSingleResponseWAHJUoBY = ApiResponseSingleLarS7owG & { + result?: MonitorHN4sJkEF; +}; + +/** + * The custom page state. + * + * @example default + */ +export type ComponentsSchemasState = 'default' | 'customized'; + +/** + * Status of the hostname's activation. + * + * @example pending + */ +export type ComponentsSchemasStatus = + | 'active' + | 'pending' + | 'active_redeploying' + | 'moved' + | 'pending_deletion' + | 'deleted' + | 'pending_blocked' + | 'pending_migration' + | 'pending_provisioned' + | 'test_pending' + | 'test_active' + | 'test_active_apex' + | 'test_blocked' + | 'test_failed' + | 'provisioned' + | 'blocked'; + +/** + * Whether the user is a member of the organization or has an inivitation pending. + * + * @example member + */ +export type ComponentsSchemasStatusMKwOT5XZ = 'member' | 'invited'; + +export type ComponentsSchemasTunnelModifiedResponse = ApiResponseSingleRxxEmdsv & { + result?: { + /** + * @example true + */ + modified?: boolean; + modified_interconnect?: Record; + }; +}; + +export type ComponentsSchemasTunnelSingleResponse = ApiResponseSingleRxxEmdsv & { + result?: { + interconnect?: Record; + }; +}; + +export type ComponentsSchemasTunnelUpdateRequest = { + description?: InterconnectComponentsSchemasDescription; + gre?: Gre; + health_check?: SchemasHealthCheck; + interface_address?: InterfaceAddress; + mtu?: SchemasMtu; +}; + +export type ComponentsSchemasTunnelsCollectionResponse = ApiResponseSingleRxxEmdsv & { + result?: { + interconnects?: Interconnect[]; + }; +}; + +/** + * The type of Device Managed Network. + * + * @example tls + */ +export type ComponentsSchemasType = 'tls'; + +/** + * The type 'legacy_custom' enables support for legacy clients which do not include SNI in the TLS handshake. + * + * @default legacy_custom + * @example sni_custom + */ +export type ComponentsSchemasType0YGATrqi = 'legacy_custom' | 'sni_custom'; + +/** + * End date and time of requesting data period in the ISO8601 format. + * + * @example 2016-11-11T13:00:00Z + * @format date-time + */ +export type ComponentsSchemasUntil = string; + +/** + * Last updated. + * + * @example 2018-08-28T17:26:26Z + * @format date-time + */ +export type ComponentsSchemasUpdatedAt = string; + +/** + * The time when the certificate was uploaded. + * + * @example 2019-10-28T18:11:23.37411Z + * @format date-time + */ +export type ComponentsSchemasUploadedOn = string; + +/** + * URL(s) to filter submissions results by + * + * @example https://www.cloudflare.com + * @format uri + */ +export type ComponentsSchemasUrl = string; + +/** + * The policy ID. + * + * @example f174e90a-fafe-4643-bbbc-4a0ed4fc8415 + * @maxLength 36 + */ +export type ComponentsSchemasUuid = string; + +/** + * UUID + * + * @example f174e90a-fafe-4643-bbbc-4a0ed4fc8415 + * @maxLength 36 + */ +export type ComponentsSchemasUuid2bGv7FH2 = string; + +export type ComponentsSchemasValidationMethod = { + validation_method: ValidationMethodDefinition; +}; + +/** + * The number of days the Client Certificate will be valid after the issued_on date + * + * @example 3650 + */ +export type ComponentsSchemasValidityDays = number; + +/** + * Enables Tiered Caching. + * + * @example on + */ +export type ComponentsSchemasValue = 'on' | 'off'; + +/** + * The version of the Railgun receiver. + * + * @example 2.1 + */ +export type ComponentsSchemasVersion = string; + +export type ComponentsSchemasZone = { + /** + * The last time proof of ownership was detected and the zone was made + * active + * + * @example 2014-01-02T00:01:00.12345Z + * @format date-time + */ + activated_on: string | null; + /** + * When the zone was created + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + created_on: string; + /** + * The interval (in seconds) from when development mode expires + * (positive integer) or last expired (negative integer) for the + * domain. If development mode has never been enabled, this value is 0. + * + * @example 7200 + */ + development_mode: number; + id: CommonComponentsSchemasIdentifier; + /** + * When the zone was last modified + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on: string; + /** + * The domain name + * + * @example example.com + * @maxLength 253 + * @pattern ^([a-zA-Z0-9][\-a-zA-Z0-9]*\.)+[\-a-zA-Z0-9]{2,20}$ + */ + name: string; + /** + * DNS host at the time of switching to Cloudflare + * + * @example NameCheap + * @maxLength 50 + */ + original_dnshost: string | null; + /** + * Original name servers before moving to Cloudflare + * Notes: Is this only available for full zones? + * + * @example ns1.originaldnshost.com + * @example ns2.originaldnshost.com + */ + original_name_servers: string[] | null; + /** + * Registrar for the domain at the time of switching to Cloudflare + * + * @example GoDaddy + */ + original_registrar: string | null; +}; + +export type Condition = { + ['request.ip']?: RequestIp; +}; + +export type Config = HostnameCertidInputKYvlDdSs[]; + +/** + * The parameters configuring the action. + */ +export type ConfigRulesComponentsSchemasActionParameters = ActionParametersSetConfig; + +export type ConfigRulesComponentsSchemasRule = { + /** + * @example set_config + */ + action?: void; + action_parameters?: ConfigRulesComponentsSchemasActionParameters; + /** + * @example enable Email Obfuscation + */ + description?: void; + /** + * @example http.cookie contains "something" + */ + expression?: void; + /** + * @example 3a03d665bac047339bb530ecb439a90d + */ + id?: void; + /** + * @example 1 + */ + version?: void; +}; + +export type ConfigRulesComponentsSchemasRuleset = { + /** + * @example + */ + description?: void; + /** + * @example 2f2feab2026849078ba485f918791bdc + */ + id?: void; + /** + * @example zone + */ + kind?: void; + /** + * @example default + */ + name?: void; + /** + * @example http_config_settings + */ + phase?: void; + /** + * The rules in the ruleset. + */ + rules?: ConfigRulesComponentsSchemasRule[]; +}; + +/** + * @example 6f91088a406011ed95aed352566e8d4c + */ +export type ConfigComponentsSchemasAccountIdentifier = void; + +/** + * The configuration object containing third party integration information. + * + * @example {"api_url":"https://as123.awmdm.com/API","auth_url":"https://na.uemauth.vmwservices.com/connect/token","client_id":"example client id","client_secret":"example client secret"} + */ +export type ConfigRequest = + | WorkspaceOneConfigRequest + | CrowdstrikeConfigRequest + | UptycsConfigRequest + | IntuneConfigRequest + | KolideConfigRequest; + +/** + * The configuration object containing third party integration information. + * + * @example {"api_url":"https://as123.awmdm.com/API","auth_url":"https://na.uemauth.vmwservices.com/connect/token","client_id":"example client id","client_secret":"example client secret"} + */ +export type ConfigRequestZ6i29f3i = + | WorkspaceOneConfigRequest + | CrowdstrikeConfigRequest + | UptycsConfigRequest + | IntuneConfigRequest; + +/** + * The configuration object containing third party integration information. + * + * @example {"api_url":"https://as123.awmdm.com/API","auth_url":"https://na.uemauth.vmwservices.com/connect/token","client_id":"example client id"} + */ +export type ConfigResponse = WorkspaceOneConfigResponse; + +export type ConfigResponseSingle = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +/** + * Indicates if this is a locally or remotely configured tunnel. If `local`, manage the tunnel using a YAML file on the origin machine. If `cloudflare`, manage the tunnel on the Zero Trust dashboard or using the [Cloudflare Tunnel configuration](https://api.cloudflare.com/#cloudflare-tunnel-configuration-properties) endpoint. + * + * @default local + * @example cloudflare + */ +export type ConfigSrc = 'local' | 'cloudflare'; + +/** + * The version of the remote tunnel configuration. Used internally to sync cloudflared with the Zero Trust dashboard. + */ +export type ConfigVersion = number; + +export type Configuration = { + auth_id_characteristics?: Characteristics; +}; + +/** + * A list of IP addresses or CIDR ranges that will be allowed to access the URLs specified in the Zone Lockdown rule. You can include any number of `ip` or `ip_range` configurations. + */ +export type Configurations = SchemasIpConfiguration | SchemasCidrConfiguration; + +/** + * A flag indicating whether the given zone is connected to the Railgun. + * + * @default false + * @example true + */ +export type Connected = boolean; + +export type Connection = { + /** + * @example 2021-08-18T10:51:10.09615Z + */ + added_at?: void; + /** + * @example false + */ + domain_reported_malicious?: void; + /** + * @example blog.cloudflare.com/page + */ + first_page_url?: void; + /** + * @example 2021-08-18T10:51:08Z + */ + first_seen_at?: void; + /** + * @example blog.cloudflare.com + */ + host?: void; + /** + * @example c9ef84a6bf5e47138c75d95e2f933e8f + */ + id?: void; + /** + * @example 2021-09-02T09:57:54Z + */ + last_seen_at?: void; + /** + * @example blog.cloudflare.com/page1 + * @example blog.cloudflare.com/page2 + */ + page_urls?: void; + /** + * @example https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js + */ + url?: void; + /** + * @example false + */ + url_contains_cdn_cgi_path?: void; +}; + +export type ConnectionMIE3WtIg = { + created_on?: ConnectionComponentsSchemasCreatedOn; + enabled: ConnectionComponentsSchemasEnabled; + id: ConnectionComponentsSchemasIdentifier; + modified_on?: ConnectionComponentsSchemasModifiedOn; + zone: ConnectionComponentsSchemasZone; +}; + +/** + * The IdP used to authenticate. + * + * @example saml + */ +export type ConnectionU5eyz9N8 = string; + +export type ConnectionCollectionResponse = ApiResponseCollection & { + result?: ConnectionMIE3WtIg[]; +}; + +/** + * When the connection was created. + * + * @example 2017-06-14T00:00:00Z + * @format date-time + */ +export type ConnectionComponentsSchemasCreatedOn = string; + +/** + * A value indicating whether the connection is enabled or not. + * + * @default false + * @example true + */ +export type ConnectionComponentsSchemasEnabled = boolean; + +/** + * Connection identifier tag. + * + * @example c4a7362d577a6c3019a474fd6f485821 + * @maxLength 32 + */ +export type ConnectionComponentsSchemasIdentifier = string; + +/** + * When the connection was last modified. + * + * @example 2017-06-14T05:20:00Z + * @format date-time + */ +export type ConnectionComponentsSchemasModifiedOn = string; + +export type ConnectionComponentsSchemasZone = { + id?: CommonComponentsSchemasIdentifier; + name?: ZonePropertiesName; +}; + +/** + * UUID of the Cloudflare Tunnel connection. + * + * @example 1bedc50d-42b3-473c-b108-ff3d10c0d925 + * @maxLength 36 + */ +export type ConnectionId = string; + +export type ConnectionSingleIdResponse = ConnectionSingleResponse & { + result?: { + id?: ConnectionComponentsSchemasIdentifier; + }; +}; + +export type ConnectionSingleRequest = { + enabled?: ConnectionComponentsSchemasEnabled; + zone: { + id?: CommonComponentsSchemasIdentifier; + }; +}; + +export type ConnectionSingleResponse = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +/** + * The Cloudflare Tunnel connections between your origin and Cloudflare's edge. + */ +export type Connections = CloudflareTunnelComponentsSchemasConnection[]; + +/** + * Timestamp of when the tunnel established at least one connection to Cloudflare's edge. If `null`, the tunnel is inactive. + * + * @example 2009-11-10T23:00:00Z + * @format date-time + */ +export type ConnsActiveAt = string | null; + +/** + * Timestamp of when the tunnel became inactive (no connections to Cloudflare's edge). If `null`, the tunnel is active. + * + * @example 2009-11-10T23:00:00Z + * @format date-time + */ +export type ConnsInactiveAt = string | null; + +/** + * To be marked unhealthy the monitored origin must fail this healthcheck N consecutive times. + * + * @default 0 + */ +export type ConsecutiveDown = number; + +/** + * The number of consecutive fails required from a health check before changing the health to unhealthy. + * + * @default 1 + */ +export type ConsecutiveFails = number; + +/** + * The number of consecutive successes required from a health check before changing the health to healthy. + * + * @default 1 + */ +export type ConsecutiveSuccesses = number; + +/** + * To be marked healthy the monitored origin must pass this healthcheck N consecutive times. + * + * @default 0 + */ +export type ConsecutiveUp = number; + +export type Consumer = { + created_on?: void; + environment?: void; + queue_name?: void; + service?: void; + settings?: { + batch_size?: BatchSize; + max_retries?: MaxRetries; + max_wait_time_ms?: MaxWaitTimeMs; + }; +}; + +export type ConsumerCreated = { + created_on?: void; + dead_letter_queue?: DlqName; + environment?: void; + queue_name?: void; + script_name?: void; + settings?: { + batch_size?: BatchSize; + max_retries?: MaxRetries; + max_wait_time_ms?: MaxWaitTimeMs; + }; +}; + +/** + * @example example-consumer + */ +export type ConsumerName = string; + +export type ConsumerUpdated = { + created_on?: void; + /** + * @example updated-example-dlq + */ + dead_letter_queue?: void; + environment?: void; + queue_name?: void; + script_name?: void; + settings?: { + /** + * @example 100 + */ + batch_size?: number; + max_retries?: MaxRetries; + max_wait_time_ms?: MaxWaitTimeMs; + }; +}; + +/** + * Contact Identifier. + * + * @example ea95132c15732412d22c1476fa83f27a + * @maxLength 32 + */ +export type ContactIdentifier = string; + +export type ContactProperties = { + address: SchemasAddress; + address2?: Address2; + city: City; + country: CountryY1YJCISK; + email?: EmailPuzf53IC; + fax?: Fax; + first_name: FirstName; + id?: ContactIdentifier; + last_name: LastName; + organization: SchemasOrganization; + phone: Telephone; + state: ContactsComponentsSchemasState; + zip: Zipcode; +}; + +export type Contacts = ContactProperties; + +/** + * State. + * + * @example TX + */ +export type ContactsComponentsSchemasState = string; + +/** + * DNS record content. + * + * @example 127.0.0.1 + */ +export type Content = string; + +/** + * Current content categories. + * + * @example {"id":155,"name":"Technology","super_category_id":26} + */ +export type ContentCategories = void; + +/** + * Behavior of the content list. + * + * @example block + */ +export type ContentListAction = 'block'; + +export type ContentListDetails = { + action?: ContentListAction; +}; + +export type ContentListDetailsResponse = ApiResponseSingleLarS7owG & { + result?: ContentListDetails; +}; + +/** + * Content list entries. + */ +export type ContentListEntries = ContentListEntry[]; + +/** + * Content list entry to be blocked. + */ +export type ContentListEntry = { + content?: ContentListEntryContent; + created_on?: Timestamp; + description?: ContentListEntryDescription; + id?: CommonComponentsSchemasIdentifier; + modified_on?: Timestamp; + type?: ContentListEntryType; +}; + +export type ContentListEntryCollectionResponse = ApiResponseCollection & { + result?: { + entries?: ContentListEntries; + }; +}; + +/** + * CID or content path of content to block. + * + * @example QmPZ9gcCEpqKTo6aq61g2nXGUhM4iCL3ewB6LDXZCtioEB + * @maxLength 500 + */ +export type ContentListEntryContent = string; + +export type ContentListEntryCreateRequest = { + content: ContentListEntryContent; + description?: ContentListEntryDescription; + type: ContentListEntryType; +}; + +/** + * An optional description of the content list entry. + * + * @example this is my content list entry + * @maxLength 500 + */ +export type ContentListEntryDescription = string; + +export type ContentListEntrySingleResponse = ApiResponseSingleLarS7owG & { + result?: ContentListEntry; +}; + +/** + * Type of content list entry to block. + * + * @example cid + */ +export type ContentListEntryType = 'cid' | 'content_path'; + +export type ContentListUpdateRequest = { + action: ContentListAction; + entries: ContentListEntries; +}; + +/** + * The content type of the body. Must be one of the following: `text/plain`, `text/xml`, or `application/json`. + * + * @example text/xml + * @maxLength 50 + */ +export type ContentType = string; + +/** + * Configures cookie attributes for the waiting room cookie. This encrypted cookie stores a user's status in the waiting room, such as queue position. + */ +export type CookieAttributes = { + /** + * Configures the SameSite attribute on the waiting room cookie. Value `auto` will be translated to `lax` or `none` depending if **Always Use HTTPS** is enabled. Note that when using value `none`, the secure attribute cannot be set to `never`. + * + * @default auto + * @example auto + */ + samesite?: 'auto' | 'lax' | 'none' | 'strict'; + /** + * Configures the Secure attribute on the waiting room cookie. Value `always` indicates that the Secure attribute will be set in the Set-Cookie header, `never` indicates that the Secure attribute will not be set, and `auto` will set the Secure attribute depending if **Always Use HTTPS** is enabled. + * + * @default auto + * @example auto + */ + secure?: 'auto' | 'always' | 'never'; +}; + +export type CorsHeaders = { + allow_all_headers?: AllowAllHeaders; + allow_all_methods?: AllowAllMethods; + allow_all_origins?: AllowAllOrigins; + allow_credentials?: AllowCredentials; + allowed_headers?: AllowedHeaders; + allowed_methods?: AllowedMethods; + allowed_origins?: AllowedOrigins; + max_age?: MaxAge; +}; + +/** + * The number of items in the List. + * + * @example 20 + */ +export type Count = number; + +/** + * Total results returned based on your search parameters. + * + * @example 1 + */ +export type Count8disqZZW = number; + +/** + * Country, provided by the CSR + * + * @example US + */ +export type Country = string; + +/** + * The country in which the user lives. + * + * @example US + * @maxLength 30 + */ +export type CountryY1YJCISK = string | null; + +export type CountryConfiguration = { + /** + * The configuration target. You must set the target to `country` when specifying a country code in the rule. + * + * @example country + */ + target?: 'country'; + /** + * The two-letter ISO-3166-1 alpha-2 code to match. For more information, refer to [IP Access rules: Parameters](https://developers.cloudflare.com/waf/tools/ip-access-rules/parameters/#country). + * + * @example US + */ + value?: string; +}; + +/** + * A mapping of country codes to a list of pool IDs (ordered by their failover priority) for the given country. Any country not explicitly defined will fall back to using the corresponding region_pool mapping if it exists else to default_pools. + * + * @example {"GB":["abd90f38ced07c2e2f4df50b1f61d4194"],"US":["de90f38ced07c2e2f4df50b1f61d4194","00920f38ce07c2e2f4df50b1f61d4194"]} + */ +export type CountryPools = Record; + +export type Create = { + email: EmailPuzf53IC; + /** + * Array of roles associated with this member. + */ + roles: RoleComponentsSchemasIdentifier[]; + /** + * @default pending + */ + status?: 'accepted' | 'pending'; +}; + +export type CreateCustomProfileResponse = ApiResponseCollection & { + result?: CustomProfile[]; +}; + +export type CreateCustomProfiles = { + profiles: NewCustomProfile[]; +}; + +export type CreateDestinationAddressProperties = { + email: EmailQw65SH2N; +}; + +export type CreateInputRequest = { + defaultCreator?: LiveInputDefaultCreator; + meta?: LiveInputMetadata; + recording?: LiveInputRecordingSettings; +}; + +export type CreateOutputRequest = { + enabled?: OutputEnabled; + streamKey: OutputStreamKey; + url: OutputUrl; +}; + +export type CreatePayload = { + condition?: Condition; + expires_on?: ExpiresOnZ3utPxP0; + name: NameZZnqpiZc; + not_before?: NotBefore; + policies: PoliciesJfEKIGCD; +}; + +export type CreateRenameNamespaceBody = { + title: NamespaceTitle; +}; + +export type CreateRequest = { + description?: Web3HostnameComponentsSchemasDescription; + dnslink?: Dnslink; + name: Web3HostnameComponentsSchemasName; + target: SchemasTarget; +}; + +export type CreateResponse = ApiResponseSingleKLIlNaxV & { + result?: { + client_id?: ClientId; + client_secret?: ClientSecret; + created_at?: Timestamp; + /** + * The ID of the service token. + */ + id?: void; + name?: ServiceTokensComponentsSchemasName; + updated_at?: Timestamp; + }; +}; + +export type CreateResponseEpcI3Ifk = ApiResponseSingleLarS7owG & { + result?: { + client_id?: ClientId; + client_secret?: ClientSecret; + created_at?: Timestamp; + /** + * The ID of the service token. + */ + id?: void; + name?: ServiceTokensComponentsSchemasName; + updated_at?: Timestamp; + }; +}; + +export type CreateRule = { + action: RuleAction; + description?: RuleDescription; + enabled?: RuleEnabled; + expression: RuleExpression; +}; + +export type CreateRuleProperties = { + actions: RuleActions; + enabled?: RuleEnabledXvrbaudJ; + matchers: RuleMatchers; + name?: RuleName; + priority?: RulePriority; +}; + +/** + * A ruleset object. + */ +export type CreateRuleset = { + description?: RulesetsComponentsSchemasDescription; + kind: SchemasKind; + name: RulesetsComponentsSchemasName; + phase: Phase; + rules: CreateUpdateRules; +}; + +/** + * A rule object. + */ +export type CreateUpdateRule = { + action: RulesComponentsSchemasAction; + action_parameters?: ActionParameters; + description?: RulesComponentsSchemasDescription; + enabled?: RulesComponentsSchemasEnabled; + expression: SchemasExpression; + logging?: Logging; + ref?: ComponentsSchemasRef; +}; + +/** + * The list of rules in the ruleset. + */ +export type CreateUpdateRules = (CreateUpdateRule | void)[]; + +/** + * When the device was created. + * + * @example 2017-06-14T00:00:00Z + * @format date-time + */ +export type Created = string; + +/** + * The date and time the destination address has been created. + * + * @example 2014-01-02T02:20:00Z + * @format date-time + */ +export type Created2OTGyXLU = string; + +/** + * When the Application was created. + * + * @example 2014-01-02T02:20:00Z + * @format date-time + */ +export type CreatedJTk3Ehp3 = string; + +/** + * The date and time the media item was created. + * + * @example 2014-01-02T02:20:00Z + * @format date-time + */ +export type CreatedVKORkNvl = string; + +/** + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ +export type CreatedOn = string; + +/** + * This is the time the hostname was created. + * + * @example 2020-02-06T18:11:23.531995Z + * @format date-time + */ +export type CreatedAt = string; + +/** + * When the route was created. + * + * @example 2017-06-14T00:00:00Z + * @format date-time + */ +export type CreatedOn = string; + +/** + * The timestamp of when the Page Rule was created. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ +export type CreatedOn1QmUCKgu = string; + +/** + * The timestamp of when the rule was created. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ +export type CreatedOnSYnNp6TW = string; + +/** + * When the script was created. + * + * @example 2017-01-01T00:00:00Z + * @format date-time + */ +export type CreatedOnLPNq9Pbi = string; + +/** + * A user-defined identifier for the media creator. + * + * @example creator-id_abcde12345 + * @maxLength 64 + */ +export type Creator = string; + +export type CronTriggerResponseCollection = { + errors: Messages; + messages: Messages; + result: + | { + schedules?: { + created_on?: void; + cron?: void; + modified_on?: void; + }[]; + } + | any[] + | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type CrowdstrikeConfigRequest = { + /** + * The Crowdstrike API URL. + * + * @example https://api.us-2.crowdstrike.com + */ + api_url: string; + /** + * The Crowdstrike client ID. + * + * @example example client id + */ + client_id: string; + /** + * The Crowdstrike client secret. + * + * @example example client secret + */ + client_secret: string; + /** + * The Crowdstrike customer ID. + * + * @example example customer id + */ + customer_id: string; +}; + +/** + * The Certificate Signing Request (CSR). Must be newline-encoded. + * + * @example -----BEGIN CERTIFICATE REQUEST----- +MIICxzCCAa8CAQAwSDELMAkGA1UEBhMCVVMxFjAUBgNVBAgTDVNhbiBGcmFuY2lz +Y28xCzAJBgNVBAcTAkNBMRQwEgYDVQQDEwtleGFtcGxlLm5ldDCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBALxejtu4b+jPdFeFi6OUsye8TYJQBm3WfCvL +Hu5EvijMO/4Z2TImwASbwUF7Ir8OLgH+mGlQZeqyNvGoSOMEaZVXcYfpR1hlVak8 +4GGVr+04IGfOCqaBokaBFIwzclGZbzKmLGwIQioNxGfqFm6RGYGA3be2Je2iseBc +N8GV1wYmvYE0RR+yWweJCTJ157exyRzu7sVxaEW9F87zBQLyOnwXc64rflXslRqi +g7F7w5IaQYOl8yvmk/jEPCAha7fkiUfEpj4N12+oPRiMvleJF98chxjD4MH39c5I +uOslULhrWunfh7GB1jwWNA9y44H0snrf+xvoy2TcHmxvma9Eln8CAwEAAaA6MDgG +CSqGSIb3DQEJDjErMCkwJwYDVR0RBCAwHoILZXhhbXBsZS5uZXSCD3d3dy5leGFt +cGxlLm5ldDANBgkqhkiG9w0BAQsFAAOCAQEAcBaX6dOnI8ncARrI9ZSF2AJX+8mx +pTHY2+Y2C0VvrVDGMtbBRH8R9yMbqWtlxeeNGf//LeMkSKSFa4kbpdx226lfui8/ +auRDBTJGx2R1ccUxmLZXx4my0W5iIMxunu+kez+BDlu7bTT2io0uXMRHue4i6quH +yc5ibxvbJMjR7dqbcanVE10/34oprzXQsJ/VmSuZNXtjbtSKDlmcpw6To/eeAJ+J +hXykcUihvHyG4A1m2R6qpANBjnA0pHexfwM/SgfzvpbvUg0T1ubmer8BgTwCKIWs +dcWYTthM51JIqRBfNqy4QcBnX+GY05yltEEswQI55wdiS3CjTTA67sdbcQ== +-----END CERTIFICATE REQUEST----- + */ +export type Csr = string; + +/** + * The monetary unit in which pricing information is displayed. + * + * @example USD + */ +export type Currency = string; + +/** + * Cloudflare Images current usage. + * + * @example 1000 + */ +export type Current = number; + +/** + * The end of the current period and also when the next billing is due. + * + * @example 2014-03-31T12:20:00Z + * @format date-time + */ +export type CurrentPeriodEnd = string; + +/** + * When the current billing period started. May match initial_period_start if this is the first period. + * + * @example 2014-05-11T12:20:00Z + * @format date-time + */ +export type CurrentPeriodStart = string; + +/** + * Shows name of current registrar. + * + * @example Cloudflare + */ +export type CurrentRegistrar = string; + +/** + * Opaque token indicating the position from which to continue when requesting the next set of records if the amount of list results was limited by the limit parameter. A valid value for the cursor can be obtained from the cursors object in the result_info structure. + * + * @example 6Ck1la0VxJ0djhidm1MdX2FyDGxLKVeeHZZmORS_8XeSuhz9SjIJRaSa2lnsF01tQOHrfTGAP3R5X1Kv5iVUuMbNKhWNAXHOl6ePB0TUL8nw + */ +export type Cursor = string; + +export type CustomCertificate = { + bundle_method: BundleMethod; + expires_on: ExpiresOn; + geo_restrictions?: GeoRestrictions; + hosts: Hosts; + id: Identifier; + issuer: Issuer; + keyless_server?: KeylessCertificate; + modified_on: ModifiedOnBXl82yTE; + policy?: Policy; + priority: PriorityOBYCnVp3; + signature: Signature; + status: Status6huN0ErS; + uploaded_on: UploadedOn; + zone_id: Identifier; +}; + +export type CustomCertificateRKdQQr58 = { + bundle_method: BundleMethod; + expires_on: ComponentsSchemasExpiresOnIEhoDYOo; + geo_restrictions?: GeoRestrictions; + hosts: Hosts; + id: CustomCertificateComponentsSchemasIdentifier; + issuer: Issuer; + keyless_server?: KeylessCertificateHXaxgAu6; + modified_on: SchemasModifiedOnRHJWTByl; + policy?: Policy; + priority: PriorityFZPZtZRb; + signature: Signature; + status: CustomCertificateComponentsSchemasStatus; + uploaded_on: UploadedOn; + zone_id: CommonComponentsSchemasIdentifier; +}; + +/** + * Custom certificate settings for BYO-PKI. + */ +export type CustomCertificateSettings = { + /** + * Certificate status (internal) + * + * @example pending_deployment + */ + binding_status?: string; + /** + * Enable use of custom certificate authority for signing Gateway traffic + * + * @example true + */ + enabled: boolean; + /** + * UUID of certificate (ID from MTLS certificate store) + * + * @example d1b364c5-1311-466e-a194-f0e943e0799f + */ + id?: string; + /** + * @format date-time + */ + updated_at?: string; +}; + +/** + * Custom certificate identifier tag. + * + * @example 2458ce5a-0c35-4c7f-82c7-8e9487d3ff60 + * @maxLength 36 + */ +export type CustomCertificateComponentsSchemasIdentifier = string; + +/** + * Status of the zone's custom SSL. + * + * @example active + */ +export type CustomCertificateComponentsSchemasStatus = 'active' | 'expired' | 'deleted' | 'pending' | 'initializing'; + +export type CustomErrorResponsesComponentsSchemasRule = { + /** + * @example serve_error + */ + action?: void; + action_parameters?: ActionParametersServeError; + /** + * @example Change error response based on geolocation + */ + description?: void; + /** + * @example ip.geoip.country eq "AL" + */ + expression?: void; + /** + * @example 3a03d665bac047339bb530ecb439a90d + */ + id?: void; + /** + * @example 1 + */ + version?: void; +}; + +export type CustomErrorResponsesComponentsSchemasRuleset = { + /** + * @example + */ + description?: void; + /** + * @example 2f2feab2026849078ba485f918791bdc + */ + id?: void; + /** + * @example zone + */ + kind?: void; + /** + * @example default + */ + name?: void; + /** + * @example http_custom_errors + */ + phase?: void; + /** + * The rules in the ruleset. + */ + rules?: CustomErrorResponsesComponentsSchemasRule[]; +}; + +export type CustomHostname = Customhostname; + +export type CustomHostnameLeshIZet = CustomhostnameCUApQClb; + +/** + * Custom hostname identifier tag. + * + * @example 0d89c70d-ad9f-4843-b99f-6cc0252067e9 + * @maxLength 36 + * @minLength 36 + */ +export type CustomHostnameComponentsSchemasIdentifier = string; + +/** + * Status of the hostname's activation. + * + * @example pending + */ +export type CustomHostnameComponentsSchemasStatus = + | 'active' + | 'pending' + | 'active_redeploying' + | 'moved' + | 'pending_deletion' + | 'deleted' + | 'pending_blocked' + | 'pending_migration' + | 'pending_provisioned' + | 'test_pending' + | 'test_active' + | 'test_active_apex' + | 'test_blocked' + | 'test_failed' + | 'provisioned' + | 'blocked'; + +/** + * The name of the custom page type. + * + * @example basic_challenge + */ +export type CustomPagesComponentsSchemasIdentifier = + | 'basic_challenge' + | 'managed_challenge' + | 'waf_block' + | 'ratelimit_block' + | 'country_challenge' + | 'ip_block' + | 'under_attack' + | '500_errors' + | '1000_errors'; + +/** + * The name of the custom page type. + * + * @example basic_challenge + */ +export type CustomPagesComponentsSchemasIdentifier2 = + | 'basic_challenge' + | 'managed_challenge' + | 'waf_block' + | 'country_challenge' + | 'ip_block' + | 'under_attack' + | 'ratelimit_block' + | '500_errors' + | '1000_errors'; + +/** + * The custom error message shown to a user when they are denied access to the application. + */ +export type CustomDenyMessage = string; + +/** + * The custom URL a user is redirected to when they are denied access to the application. + */ +export type CustomDenyUrl = string; + +/** + * A custom entry that matches a profile + */ +export type CustomEntry = { + created_at?: Timestamp; + /** + * Whether the entry is enabled or not. + * + * @example true + */ + enabled?: boolean; + id?: EntryId; + /** + * The name of the entry. + * + * @example Credit card (Visa) + */ + name?: string; + pattern?: Pattern; + /** + * ID of the parent profile + */ + profile_id?: void; + updated_at?: Timestamp; +}; + +/** + * A custom entry that matches a profile + */ +export type CustomEntryMPO16jNs = { + created_at?: Timestamp; + /** + * Whether the entry is enabled or not. + * + * @example true + */ + enabled?: boolean; + id?: EntryId; + /** + * The name of the entry. + * + * @example Credit card (Visa) + */ + name?: string; + pattern?: ComponentsSchemasPattern; + /** + * ID of the parent profile + */ + profile_id?: void; + updated_at?: Timestamp; +}; + +export type CustomHostnameResponseCollection = ApiResponseCollection & { + result?: CustomHostnameLeshIZet[]; +}; + +export type CustomHostnameResponseSingle = ApiResponseSingleZZHeSkIR & { + result?: CustomHostname; +}; + +export type CustomHostnameResponseSingleYSdaZAmS = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +/** + * These are per-hostname (customer) settings. + */ +export type CustomMetadata = { + /** + * Unique metadata for this hostname. + * + * @example value + */ + key?: string; +}; + +/** + * a valid hostname that’s been added to your DNS zone as an A, AAAA, or CNAME record. + * + * @example origin2.example.com + */ +export type CustomOriginServer = string; + +/** + * A hostname that will be sent to your custom origin server as SNI for TLS handshake. This can be a valid subdomain of the zone or custom origin server name or the string ':request_host_header:' which will cause the host header in the request to be used as SNI. Not configurable with default/fallback origin server. + * + * @example sni.example.com + */ +export type CustomOriginSni = string; + +/** + * Only available for the Waiting Room Advanced subscription. This is a template html file that will be rendered at the edge. If no custom_page_html is provided, the default waiting room will be used. The template is based on mustache ( https://mustache.github.io/ ). There are several variables that are evaluated by the Cloudflare edge: + * 1. {{`waitTimeKnown`}} Acts like a boolean value that indicates the behavior to take when wait time is not available, for instance when queue_all is **true**. + * 2. {{`waitTimeFormatted`}} Estimated wait time for the user. For example, five minutes. Alternatively, you can use: + * 3. {{`waitTime`}} Number of minutes of estimated wait for a user. + * 4. {{`waitTimeHours`}} Number of hours of estimated wait for a user (`Math.floor(waitTime/60)`). + * 5. {{`waitTimeHourMinutes`}} Number of minutes above the `waitTimeHours` value (`waitTime%60`). + * 6. {{`queueIsFull`}} Changes to **true** when no more people can be added to the queue. + * + * To view the full list of variables, look at the `cfWaitingRoom` object described under the `json_response_enabled` property in other Waiting Room API calls. + * + * @default + * @example {{#waitTimeKnown}} {{waitTime}} mins {{/waitTimeKnown}} {{^waitTimeKnown}} Queue all enabled {{/waitTimeKnown}} + */ +export type CustomPageHtml = string; + +export type CustomPagesResponseCollection = ApiResponseCollection & { + result?: Record[]; +}; + +export type CustomPagesResponseSingle = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type CustomProfile = { + allowed_match_count?: AllowedMatchCount; + created_at?: Timestamp; + /** + * The description of the profile. + * + * @example A standard CVV card number + */ + description?: string; + /** + * The entries for this profile. + */ + entries?: CustomEntryMPO16jNs[]; + id?: ProfileId; + /** + * The name of the profile. + * + * @example Generic CVV Card Number + */ + name?: string; + /** + * The type of the profile. + * + * @example custom + */ + type?: 'custom'; + updated_at?: Timestamp; +}; + +export type CustomProfileResponse = ApiResponseSingleUypB4bgI & { + result?: CustomProfile; +}; + +export type CustomProfileResponseY26KBuBX = ApiResponseSingleLarS7owG & { + result?: CustomProfile; +}; + +/** + * A custom content type and reponse to return when the threshold is exceeded. The custom response configured in this object will override the custom error for the zone. This object is optional. + * Notes: If you omit this object, Cloudflare will use the default HTML error page. If "mode" is "challenge", "managed_challenge", or "js_challenge", Cloudflare will use the zone challenge pages and you should not provide the "response" object. + */ +export type CustomResponse = { + body?: Body; + content_type?: ContentType; +}; + +/** + * The IP address assigned to the customer side of the GRE tunnel. + * + * @example 203.0.113.1 + */ +export type CustomerGreEndpoint = string; + +/** + * The IP address assigned to the customer side of the IPsec tunnel. + * + * @example 203.0.113.1 + */ +export type CustomerIpsecEndpoint = string; + +export type Customhostname = { + created_at?: CreatedAt; + custom_metadata?: CustomMetadata; + custom_origin_server?: CustomOriginServer; + custom_origin_sni?: CustomOriginSni; + hostname?: Hostname; + id?: Identifier; + ownership_verification?: OwnershipVerification; + ownership_verification_http?: OwnershipVerificationHttp; + ssl?: Ssl; + status?: ComponentsSchemasStatus; + verification_errors?: VerificationErrors; +}; + +export type CustomhostnameCUApQClb = { + created_at?: CreatedAt; + custom_metadata?: CustomMetadata; + custom_origin_server?: CustomOriginServer; + custom_origin_sni?: CustomOriginSni; + hostname?: Hostname; + id?: CustomHostnameComponentsSchemasIdentifier; + ownership_verification?: OwnershipVerification; + ownership_verification_http?: OwnershipVerificationHttp; + ssl?: SslReUR6bMS; + status?: CustomHostnameComponentsSchemasStatus; + verification_errors?: VerificationErrors; +}; + +/** + * Totals and timeseries data. + */ +export type Dashboard = { + timeseries?: Timeseries; + totals?: Totals; +}; + +export type DashboardResponse = ApiResponseSingleLarS7owG & { + query?: QueryResponse; + result?: Dashboard; +}; + +/** + * Array with one row per combination of dimension values. + */ +export type Data = { + /** + * Array of dimension values, representing the combination of dimension values corresponding to this row. + */ + dimensions: string[]; +}[]; + +/** + * The number of data points used for the threshold suggestion calculation. + */ +export type DataPoints = number; + +/** + * A breakdown of all dashboard analytics data by co-locations. This is limited to Enterprise zones only. + */ +export type Datacenters = { + /** + * The airport code identifer for the co-location. + * + * @example SFO + */ + colo_id?: string; + timeseries?: TimeseriesByColo; + totals?: TotalsByColo; +}[]; + +/** + * Name of the dataset. + * + * @example http_requests + * @maxLength 256 + * @pattern ^[a-zA-Z0-9_\-]*$ + */ +export type Dataset = string | null; + +/** + * The number of days until the next key rotation. + * + * @example 1 + */ +export type DaysUntilNextRotation = number; + +/** + * The action Access will take if a user matches this policy. + * + * @example allow + */ +export type Decision = 'allow' | 'deny' | 'non_identity' | 'bypass'; + +/** + * Whether the policy is the default policy for an account. + * + * @example false + */ +export type Default = boolean; + +/** + * The default amount allocated. + * + * @example 5 + */ +export type DefaultVg5XL96o = number; + +export type DefaultDeviceSettingsPolicy = { + allow_mode_switch?: AllowModeSwitch; + allow_updates?: AllowUpdates; + allowed_to_leave?: AllowedToLeave; + auto_connect?: AutoConnect; + captive_portal?: CaptivePortal; + /** + * Whether the policy will be applied to matching devices. + * + * @example true + */ + ['default']?: boolean; + disable_auto_fallback?: DisableAutoFallback; + /** + * Whether the policy will be applied to matching devices. + * + * @example true + */ + enabled?: boolean; + exclude?: ExcludeRjxLDhaP; + exclude_office_ips?: ExcludeOfficeIps; + fallback_domains?: FallbackDomains; + gateway_unique_id?: GatewayUniqueId; + include?: IncludeFVRZ2Ny8; + service_mode_v2?: ServiceModeV2; + support_url?: SupportUrl; + switch_locked?: SwitchLocked; +}; + +export type DefaultDeviceSettingsPolicyNayGa1J3 = { + allow_mode_switch?: AllowModeSwitch; + allow_updates?: AllowUpdates; + allowed_to_leave?: AllowedToLeave; + auto_connect?: AutoConnect; + captive_portal?: CaptivePortal; + /** + * Whether the policy will be applied to matching devices. + * + * @example true + */ + ['default']?: boolean; + disable_auto_fallback?: DisableAutoFallback; + /** + * Whether the policy will be applied to matching devices. + * + * @example true + */ + enabled?: boolean; + exclude?: ComponentsSchemasExclude; + exclude_office_ips?: ExcludeOfficeIps; + fallback_domains?: FallbackDomains; + gateway_unique_id?: GatewayUniqueId; + include?: SchemasInclude; + service_mode_v2?: ServiceModeV2; + support_url?: SupportUrl; + switch_locked?: SwitchLocked; +}; + +export type DefaultDeviceSettingsResponse = ApiResponseCollection & { + result?: DefaultDeviceSettingsPolicyNayGa1J3; +}; + +/** + * The default action/mode of a rule. + * + * @example block + */ +export type DefaultMode = 'disable' | 'simulate' | 'block' | 'challenge'; + +/** + * A list of pool IDs ordered by their failover priority. Pools defined here are used by default, or when region_pools are not configured for a given region. + * + * @example 17b5962d775c646f3f9725cbc7a53df4 + * @example 9290f38c5d07c2e2f4df57b1f61d4196 + * @example 00920f38ce07c2e2f4df50b1f61d4194 + */ +export type DefaultPools = string[]; + +export type DefaultResponse = ApiResponseSingleLarS7owG; + +/** + * If you have legacy TLS clients which do not send the TLS server name indicator, then you can specify one default SNI on the map. If Cloudflare receives a TLS handshake from a client without an SNI, it will respond with the default SNI on those IPs. The default SNI can be any valid zone or subdomain owned by the account. + * + * @example *.example.com + */ +export type DefaultSni = string | null; + +/** + * The language of the default page template. If no default_template_language is provided, then `en-US` (English) will be used. + * + * @default en-US + * @example es-ES + */ +export type DefaultTemplateLanguage = + | 'en-US' + | 'es-ES' + | 'de-DE' + | 'fr-FR' + | 'it-IT' + | 'ja-JP' + | 'ko-KR' + | 'pt-BR' + | 'zh-CN' + | 'zh-TW' + | 'nl-NL' + | 'pl-PL' + | 'id-ID' + | 'tr-TR' + | 'ar-EG' + | 'ru-RU' + | 'fa-IR'; + +/** + * Account identifier for the account to which prefix is being delegated. + * + * @example b1946ac92492d2347c6235b4d2611184 + * @maxLength 32 + */ +export type DelegatedAccountIdentifier = string; + +/** + * Account identifier for the account to which prefix is being delegated. + * + * @example b1946ac92492d2347c6235b4d2611184 + * @maxLength 32 + */ +export type DelegatedAccountIdentifier4pd98LdN = string; + +/** + * Delegation identifier tag. + * + * @example d933b1530bc56c9953cf8ce166da8004 + * @maxLength 32 + */ +export type DelegationIdentifier = string; + +export type DeleteAdvancedCertificatePackResponseSingle = ApiResponseSingleZZHeSkIR & { + result?: { + id?: Identifier; + }; +}; + +export type DeleteAdvancedCertificatePackResponseSingleJSlQkaZt = ApiResponseSingleLarS7owG & { + result?: { + id?: CertificatePacksComponentsSchemasIdentifier; + }; +}; + +export type DeleteDnssecResponseSingle = ApiResponseSinglePOKosyfu & { + /** + * @example + */ + result?: string; +}; + +/** + * When true, indicates that Cloudflare should also delete the associated filter if there are no other firewall rules referencing the filter. + */ +export type DeleteFilterIfUnused = boolean; + +/** + * True if the device was deleted. + * + * @example true + */ +export type Deleted = boolean; + +/** + * When true, indicates that the firewall rule was deleted. + * + * @example true + */ +export type DeletedRjQ7awe5 = boolean; + +export type DeletedFilter = { + deleted: DeletedRjQ7awe5; + id: FiltersComponentsSchemasId; +}; + +/** + * Date of deletion, if any. + * + * @format date-time + */ +export type DeletedAt = string | null; + +/** + * Timestamp of when the tunnel was deleted. If `null`, the tunnel has not been deleted. + * + * @example 2009-11-10T23:00:00Z + * @format date-time + */ +export type DeletedAtYdpycuPv = string | null; + +export type DeletedResponse = ApiResponseSingleYdRGfgTy & { + /** + * @example ok + */ + result?: string; +}; + +export type DeletedResponseCeOmnPLd = ApiResponseSingleLarS7owG & { + /** + * @example {} + */ + result?: Record; +}; + +export type DeploymentListResponse = { + errors: Messages; + messages: Messages; + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; + result_info?: { + /** + * @example 1 + */ + count?: void; + /** + * @example 1 + */ + page?: void; + /** + * @example 100 + */ + per_page?: void; + /** + * @example 1 + */ + total_count?: void; + }; +}; + +export type DeploymentNewDeployment = { + errors: Messages; + messages: Messages; + result: Deployments; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type DeploymentResponseDetails = { + errors: Messages; + messages: Messages; + result: Deployments; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type DeploymentResponseLogs = { + errors: Messages; + messages: Messages; + /** + * @example {"data":[{"line":"Cloning repository...","ts":"2021-04-20T19:35:29.0749819Z"},{"line":"From https://github.com/cloudflare/example","ts":"2021-04-20T19:35:30.0749819Z"},{"line":" * branch 209c5bb11d89533f426b2f8469bcae12fdccf71b -> FETCH_HEAD","ts":"2021-04-20T19:35:30.0749819Z"},{"line":"","ts":"2021-04-20T19:35:30.0749819Z"},{"line":"HEAD is now at 209c5bb Update index.html","ts":"2021-04-20T19:35:30.0749819Z"},{"line":"","ts":"2021-04-20T19:35:30.0749819Z"},{"line":"","ts":"2021-04-20T19:35:30.0749819Z"},{"line":"Success: Finished cloning repository files","ts":"2021-04-20T19:35:30.0749819Z"},{"line":"Installing dependencies","ts":"2021-04-20T19:35:59.0749819Z"},{"line":"Python version set to 2.7","ts":"2021-04-20T19:35:59.0931208Z"},{"line":"v12.18.0 is already installed.","ts":"2021-04-20T19:36:02.2369501Z"},{"line":"Now using node v12.18.0 (npm v6.14.4)","ts":"2021-04-20T19:36:02.6028886Z"},{"line":"Started restoring cached build plugins","ts":"2021-04-20T19:36:02.624555Z"},{"line":"Finished restoring cached build plugins","ts":"2021-04-20T19:36:02.6340688Z"},{"line":"Attempting ruby version 2.7.1, read from environment","ts":"2021-04-20T19:36:02.963095Z"},{"line":"Using ruby version 2.7.1","ts":"2021-04-20T19:36:04.2236084Z"},{"line":"Using PHP version 5.6","ts":"2021-04-20T19:36:04.5450152Z"},{"line":"5.2 is already installed.","ts":"2021-04-20T19:36:04.5740509Z"},{"line":"Using Swift version 5.2","ts":"2021-04-20T19:36:04.577035Z"},{"line":"Installing Hugo 0.54.0","ts":"2021-04-20T19:36:04.5771615Z"},{"line":"Hugo Static Site Generator v0.54.0-B1A82C61A/extended linux/amd64 BuildDate: 2019-02-01T10:04:38Z","ts":"2021-04-20T19:36:05.4786868Z"},{"line":"Started restoring cached go cache","ts":"2021-04-20T19:36:05.4794366Z"},{"line":"Finished restoring cached go cache","ts":"2021-04-20T19:36:05.481977Z"},{"line":"go version go1.14.4 linux/amd64","ts":"2021-04-20T19:36:05.9049776Z"},{"line":"go version go1.14.4 linux/amd64","ts":"2021-04-20T19:36:05.9086053Z"},{"line":"Installing missing commands","ts":"2021-04-20T19:36:05.9163568Z"},{"line":"Verify run directory","ts":"2021-04-20T19:36:05.9163934Z"},{"line":"Executing user command: echo \"skipping build step: no build command specified\"","ts":"2021-04-20T19:36:05.9164636Z"},{"line":"skipping build step: no build command specified","ts":"2021-04-20T19:36:05.9165087Z"},{"line":"Finished","ts":"2021-04-20T19:36:05.917412Z"}],"includes_container_logs":true,"total":30} + */ + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type DeploymentResponseStageLogs = { + errors: Messages; + messages: Messages; + /** + * @example {"data":[{"id":15,"message":"Installing dependencies","timestamp":"2021-04-20T19:35:59.0749819Z"},{"id":16,"message":"Python version set to 2.7","timestamp":"2021-04-20T19:35:59.0931208Z"},{"id":17,"message":"v12.18.0 is already installed.","timestamp":"2021-04-20T19:36:02.2369501Z"},{"id":18,"message":"Now using node v12.18.0 (npm v6.14.4)","timestamp":"2021-04-20T19:36:02.6028886Z"},{"id":19,"message":"Started restoring cached build plugins","timestamp":"2021-04-20T19:36:02.624555Z"},{"id":20,"message":"Finished restoring cached build plugins","timestamp":"2021-04-20T19:36:02.6340688Z"},{"id":21,"message":"Attempting ruby version 2.7.1, read from environment","timestamp":"2021-04-20T19:36:02.963095Z"},{"id":22,"message":"Using ruby version 2.7.1","timestamp":"2021-04-20T19:36:04.2236084Z"},{"id":23,"message":"Using PHP version 5.6","timestamp":"2021-04-20T19:36:04.5450152Z"},{"id":24,"message":"5.2 is already installed.","timestamp":"2021-04-20T19:36:04.5740509Z"},{"id":25,"message":"Using Swift version 5.2","timestamp":"2021-04-20T19:36:04.577035Z"},{"id":26,"message":"Installing Hugo 0.54.0","timestamp":"2021-04-20T19:36:04.5771615Z"},{"id":27,"message":"Hugo Static Site Generator v0.54.0-B1A82C61A/extended linux/amd64 BuildDate: 2019-02-01T10:04:38Z","timestamp":"2021-04-20T19:36:05.4786868Z"},{"id":28,"message":"Started restoring cached go cache","timestamp":"2021-04-20T19:36:05.4794366Z"},{"id":29,"message":"Finished restoring cached go cache","timestamp":"2021-04-20T19:36:05.481977Z"},{"id":30,"message":"go version go1.14.4 linux/amd64","timestamp":"2021-04-20T19:36:05.9049776Z"},{"id":31,"message":"go version go1.14.4 linux/amd64","timestamp":"2021-04-20T19:36:05.9086053Z"},{"id":32,"message":"Installing missing commands","timestamp":"2021-04-20T19:36:05.9163568Z"},{"id":33,"message":"Verify run directory","timestamp":"2021-04-20T19:36:05.9163934Z"},{"id":34,"message":"Executing user command: echo \"skipping build step: no build command specified\"","timestamp":"2021-04-20T19:36:05.9164636Z"},{"id":35,"message":"skipping build step: no build command specified","timestamp":"2021-04-20T19:36:05.9165087Z"},{"id":36,"message":"Finished","timestamp":"2021-04-20T19:36:05.917412Z"}],"end":37,"ended_on":"2021-04-20T19:36:06.38889Z","name":"build","start":0,"started_on":"2021-04-20T19:35:58.238757Z","status":"success","total":37} + */ + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +/** + * Configs for deployments in a project. + */ +export type DeploymentConfigs = { + /** + * Configs for preview deploys. + */ + preview?: DeploymentConfigsValues; + /** + * Configs for production deploys. + */ + production?: DeploymentConfigsValues; +}; + +export type DeploymentConfigsValues = { + /** + * Compatibility date used for Pages Functions. + * + * @example 2022-01-01 + */ + compatibility_date?: string; + /** + * Compatibility flags used for Pages Functions. + * + * @example url_standard + */ + compatibility_flags?: any[]; + /** + * D1 databases used for Pages Functions. + */ + d1_databases?: { + /** + * D1 binding. + * + * @example {"id":"445e2955-951a-43f8-a35b-a4d0c8138f63"} + */ + D1_BINDING?: { + /** + * UUID of the D1 database. + * + * @example 445e2955-951a-43f8-a35b-a4d0c8138f63 + */ + id?: string; + }; + } | null; + /** + * Durabble Object namespaces used for Pages Functions. + */ + durable_object_namespaces?: { + /** + * Durabble Object binding. + * + * @example {"namespace_id":"5eb63bbbe01eeed093cb22bb8f5acdc3"} + */ + DO_BINDING?: { + /** + * ID of the Durabble Object namespace. + * + * @example 5eb63bbbe01eeed093cb22bb8f5acdc3 + */ + namespace_id?: string; + }; + } | null; + /** + * Environment variables for build configs. + */ + env_vars?: { + /** + * Environment variable. + * + * @example {"type":"plain_text","value":"hello world"} + */ + ENVIRONMENT_VARIABLE?: { + /** + * The type of environment variable (plain text or secret) + */ + type?: 'plain_text' | 'secret_text'; + /** + * Environment variable value. + */ + value?: string; + }; + } | null; + /** + * KV namespaces used for Pages Functions. + */ + kv_namespaces?: { + /** + * KV binding. + * + * @example {"namespace_id":"5eb63bbbe01eeed093cb22bb8f5acdc3"} + */ + KV_BINDING?: { + /** + * ID of the KV namespace. + * + * @example 5eb63bbbe01eeed093cb22bb8f5acdc3 + */ + namespace_id?: string; + }; + }; + /** + * Queue Producer bindings used for Pages Functions. + */ + queue_producers?: { + /** + * Queue Producer binding. + * + * @example {"name":"some-queue"} + */ + QUEUE_PRODUCER_BINDING?: { + /** + * Name of the Queue. + * + * @example some-queue + */ + name?: string; + }; + } | null; + /** + * R2 buckets used for Pages Functions. + */ + r2_buckets?: { + /** + * R2 binding. + * + * @example {"name":"some-bucket"} + */ + R2_BINDING?: { + /** + * Name of the R2 bucket. + * + * @example some-bucket + */ + name?: string; + }; + } | null; + /** + * Services used for Pages Functions. + */ + service_bindings?: { + /** + * Service binding. + * + * @example {"environment":"production","service":"example-worker"} + */ + SERVICE_BINDING?: { + /** + * The Service environment. + */ + environment?: string; + /** + * The Service name. + */ + service?: string; + }; + } | null; +}; + +/** + * @example bcf48806-b317-4351-9ee7-36e7d557d4de + * @maxLength 36 + */ +export type DeploymentIdentifier = string; + +/** + * Deployment stage name. + * + * @example deploy + * @pattern queued|initialize|clone_repo|build|deploy + */ +export type DeploymentStageName = string; + +export type Deployments = { + /** + * A list of alias URLs pointing to this deployment. + * + * @example https://branchname.projectname.pages.dev + */ + aliases?: any[] | null; + build_config?: void; + /** + * When the deployment was created. + * + * @example 2021-03-09T00:55:03.923456Z + * @format date-time + */ + created_on?: string; + /** + * Info about what caused the deployment. + */ + deployment_trigger?: { + /** + * Additional info about the trigger. + */ + metadata?: { + /** + * Where the trigger happened. + * + * @example main + */ + branch?: string; + /** + * Hash of the deployment trigger commit. + * + * @example ad9ccd918a81025731e10e40267e11273a263421 + */ + commit_hash?: string; + /** + * Message of the deployment trigger commit. + * + * @example Update index.html + */ + commit_message?: string; + }; + /** + * What caused the deployment. + * + * @example ad_hoc + * @pattern push|ad_hoc + */ + type?: string; + }; + /** + * A dict of env variables to build this deploy. + * + * @example {"BUILD_VERSION":{"value":"3.3"},"ENV":{"value":"STAGING"}} + */ + env_vars?: Record; + /** + * Type of deploy. + * + * @example preview + * @pattern preview|production + */ + environment?: string; + /** + * Id of the deployment. + * + * @example f64788e9-fccd-4d4a-a28a-cb84f88f6 + */ + id?: string; + /** + * If the deployment has been skipped. + * + * @example true + */ + is_skipped?: boolean; + latest_stage?: void; + /** + * When the deployment was last modified. + * + * @example 2021-03-09T00:58:59.045655 + * @format date-time + */ + modified_on?: string; + /** + * Id of the project. + * + * @example 7b162ea7-7367-4d67-bcde-1160995d5 + */ + project_id?: string; + /** + * Name of the project. + * + * @example ninjakittens + */ + project_name?: string; + /** + * Short Id (8 character) of the deployment. + * + * @example f64788e9 + */ + short_id?: string; + source?: void; + /** + * List of past stages. + * + * @example {"ended_on":"2021-06-03T15:39:03.134378Z","name":"queued","started_on":"2021-06-03T15:38:15.608194Z","status":"active"} + * @example {"ended_on":null,"name":"initialize","started_on":null,"status":"idle"} + * @example {"ended_on":null,"name":"clone_repo","started_on":null,"status":"idle"} + * @example {"ended_on":null,"name":"build","started_on":null,"status":"idle"} + * @example {"ended_on":null,"name":"deploy","started_on":null,"status":"idle"} + */ + stages?: Stage[]; + /** + * The live URL to view this deployment. + * + * @example https://f64788e9.ninjakittens.pages.dev + */ + url?: string; +}; + +export type DeploymentsListResponse = ApiResponseCommon & { + /** + * @example {"id":"bcf48806-b317-4351-9ee7-36e7d557d4de","metadata":{"author_email":"user@example.com","author_id":"408cbcdfd4dda4617efef40b04d168a1","created_on":"2022-11-15T18:25:44.442097Z","modified_on":"2022-11-15T18:25:44.442097Z","source":"api"},"number":2} + * @example {"id":"18f97339-c287-4872-9bdd-e2135c07ec12","metadata":{"author_email":"user@example.com","author_id":"408cbcdfd4dda4617efef40b04d168a1","created_on":"2022-11-08T17:30:56.968096Z","modified_on":"2022-11-08T17:30:56.968096Z","source":"api"},"number":1} + */ + items?: any[]; + /** + * @example {"id":"bcf48806-b317-4351-9ee7-36e7d557d4de","metadata":{"author_email":"user@example.com","author_id":"408cbcdfd4dda4617efef40b04d168a1","created_on":"2022-11-15T18:25:44.442097Z","modified_on":"2022-11-15T18:25:44.442097Z","source":"api"},"number":2,"resources":{"bindings":[{"json":"example_binding","name":"JSON_VAR","type":"json"}],"script":{"etag":"13a3240e8fb414561b0366813b0b8f42b3e6cfa0d9e70e99835dae83d0d8a794","handlers":["fetch"],"last_deployed_from":"api"},"script_runtime":{"usage_model":"bundled"}}} + */ + latest?: Record; +}; + +export type DeploymentsSingleResponse = ApiResponseCommon & { + /** + * @example 18f97339-c287-4872-9bdd-e2135c07ec12 + */ + id?: string; + /** + * @example {"author_email":"user@example.com","author_id":"408cbcdfd4dda4617efef40b04d168a1","created_on":"2022-11-08T17:19:29.176266Z","modified_on":"2022-11-08T17:19:29.176266Z","source":"api"} + */ + metadata?: Record; + /** + * @example 1 + */ + number?: number; + /** + * @example {"bindings":[{"json":"example_binding","name":"JSON_VAR","type":"json"}],"script":{"etag":"13a3240e8fb414561b0366813b0b8f42b3e6cfa0d9e70e99835dae83d0d8a794","handlers":["fetch"],"last_deployed_from":"api"},"script_runtime":{"usage_model":"bundled"}} + */ + resources?: Record; +}; + +/** + * Deprecate the response to ANY requests. + * + * @example true + */ +export type DeprecateAnyRequests = boolean; + +/** + * Description of the prefix. + * + * @example Internal test prefix + * @maxLength 1000 + */ +export type Description = string; + +/** + * Object description. + * + * @example Login page monitor + */ +export type Description329lsFZ7 = string; + +/** + * A note that you can use to add more details about the waiting room. + * + * @default + * @example Production - DO NOT MODIFY + */ +export type DescriptionJIh6Lv2u = string; + +/** + * The description of the List. + * + * @example The serial numbers for administrators + */ +export type DescriptionX9wAFqIk = string; + +/** + * The description of the Device Posture Rule. + * + * @example The rule for admin serial numbers + */ +export type DescriptionGpCjO3oV = string; + +/** + * A human-readable description of the health check. + * + * @example Health check for www.example.com + */ +export type DescriptionNNNUBbC7 = string; + +/** + * An optional human provided description of the static route. + * + * @example New route for new prefix 203.0.113.1 + */ +export type DescriptionPhEFvENx = string; + +/** + * Description of role's permissions. + * + * @example Administrative access to the entire Organization + */ +export type DescriptionWY1HJwZu = string; + +/** + * A string to search for in the description of existing rules. + * + * @example abusive + */ +export type DescriptionSearch = string; + +/** + * Destination address identifier. + * + * @example ea95132c15732412d22c1476fa83f27a + * @maxLength 32 + */ +export type DestinationAddressIdentifier = string; + +export type DestinationAddressProperties = { + created?: Created2OTGyXLU; + email?: EmailQw65SH2N; + modified?: ModifiedCBEhc8Ab; + tag?: DestinationAddressIdentifier; + verified?: Verified; +}; + +export type DestinationAddressResponseSingle = ApiResponseSingleSiIqFfOd & { + result?: Addresses; +}; + +export type DestinationAddressesResponseCollection = ApiResponseCollection & { + result?: Addresses[]; + result_info?: { + /** + * @example 1 + */ + count?: void; + /** + * @example 1 + */ + page?: void; + /** + * @example 20 + */ + per_page?: void; + /** + * @example 1 + */ + total_count?: void; + }; +}; + +/** + * Uniquely identifies a resource (such as an s3 bucket) where data will be pushed. Additional configuration parameters supported by the destination may be included. + * + * @example s3://mybucket/logs?region=us-west-2 + * @format uri + * @maxLength 4096 + */ +export type DestinationConf = string; + +export type DestinationExistsResponse = { + errors: Messages; + messages: Messages; + result: + | { + /** + * @example false + */ + exists?: boolean; + } + | any[] + | string + | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +/** + * The mode that defines how rules within the package are evaluated during the course of a request. When a package uses anomaly detection mode (`anomaly` value), each rule is given a score when triggered. If the total score of all triggered rules exceeds the sensitivity defined in the WAF package, the action configured in the package will be performed. Traditional detection mode (`traditional` value) will decide the action to take when it is triggered by the request. If multiple rules are triggered, the action providing the highest protection will be applied (for example, a 'block' action will win over a 'challenge' action). + * + * @example traditional + */ +export type DetectionMode = 'anomaly' | 'traditional'; + +/** + * Development Mode temporarily allows you to enter development mode for your websites if you need to make changes to your site. This will bypass Cloudflare's accelerated cache and slow down your site, but is useful if you are making changes to cacheable content (like images, css, or JavaScript) and would like to see those changes right away. Once entered, development mode will last for 3 hours and then automatically toggle off. + */ +export type DevelopmentMode = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example development_mode + */ + id: 'development_mode'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: DevelopmentModeValue; + /** + * Value of the zone setting. + * Notes: The interval (in seconds) from when development mode expires (positive integer) or last expired (negative integer) for the domain. If development mode has never been enabled, this value is false. + * + * @example 3600 + */ + time_remaining?: number; +}; + +/** + * Value of the zone setting. + * + * @default off + */ +export type DevelopmentModeValue = 'on' | 'off'; + +/** + * The configuration object which contains the details for the WARP client to conduct the test. + * + * @example {"host":"https://dash.cloudflare.com","kind":"http","method":"GET"} + */ +export type DeviceDexTestSchemasData = { + /** + * The desired endpoint to test. + * + * @example https://dash.cloudflare.com + */ + host?: string; + /** + * The type of test. + * + * @example http + */ + kind?: string; + /** + * The HTTP request method type. + * + * @example GET + */ + method?: string; +}; + +/** + * Additional details about the test. + * + * @example Checks the dash endpoint every 30 minutes + */ +export type DeviceDexTestSchemasDescription = string; + +/** + * Determines whether or not the test is active. + * + * @example true + */ +export type DeviceDexTestSchemasEnabled = boolean; + +export type DeviceDexTestSchemasHttp = { + data: DeviceDexTestSchemasData; + description?: DeviceDexTestSchemasDescription; + enabled: DeviceDexTestSchemasEnabled; + interval: DeviceDexTestSchemasInterval; + name: DeviceDexTestSchemasName; +}; + +/** + * How often the test will run. + * + * @example 30m + */ +export type DeviceDexTestSchemasInterval = string; + +/** + * The name of the DEX test. Must be unique. + * + * @example HTTP dash health check + */ +export type DeviceDexTestSchemasName = string; + +export type DeviceManagedNetworks = { + config?: SchemasConfigResponse; + name?: DeviceManagedNetworksComponentsSchemasName; + network_id?: UuidUoyzrwvx; + type?: ComponentsSchemasType; +}; + +export type DeviceManagedNetworksUgiuQAHC = { + config?: SchemasConfigResponse; + name?: DeviceManagedNetworksComponentsSchemasName; + network_id?: DeviceManagedNetworksComponentsSchemasUuid; + type?: DeviceManagedNetworksComponentsSchemasType; +}; + +/** + * @example 699d98642c564d2e855e9661899b7252 + */ +export type DeviceManagedNetworksComponentsSchemasIdentifier = void; + +/** + * The name of the Device Managed Network. Must be unique. + * + * @example managed-network-1 + */ +export type DeviceManagedNetworksComponentsSchemasName = string; + +export type DeviceManagedNetworksComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: DeviceManagedNetworksUgiuQAHC[]; +}; + +export type DeviceManagedNetworksComponentsSchemasSingleResponse = ApiResponseSingleLarS7owG & { + result?: DeviceManagedNetworksUgiuQAHC; +}; + +/** + * The type of Device Managed Network. + * + * @example tls + */ +export type DeviceManagedNetworksComponentsSchemasType = 'tls'; + +/** + * API uuid tag. + * + * @example f174e90a-fafe-4643-bbbc-4a0ed4fc8415 + * @maxLength 36 + */ +export type DeviceManagedNetworksComponentsSchemasUuid = string; + +export type DevicePostureIntegrations = { + config?: ConfigResponse; + id?: UuidUoyzrwvx; + interval?: IntervalCy0QprOB; + name?: ComponentsSchemasNameKTVvRGKN; + type?: SchemasType; +}; + +export type DevicePostureIntegrations7AZ1Apoy = { + config?: ConfigResponse; + id?: DevicePostureIntegrationsComponentsSchemasUuid; + interval?: SchemasInterval; + name?: DevicePostureIntegrationsComponentsSchemasName; + type?: DevicePostureIntegrationsComponentsSchemasType; +}; + +export type DevicePostureIntegrationsComponentsSchemasIdResponse = ApiResponseSingleLarS7owG & { + result?: void | null; +}; + +/** + * @example 699d98642c564d2e855e9661899b7252 + */ +export type DevicePostureIntegrationsComponentsSchemasIdentifier = void; + +/** + * The name of the Device Posture Integration. + * + * @example My Workspace One Integration + */ +export type DevicePostureIntegrationsComponentsSchemasName = string; + +export type DevicePostureIntegrationsComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: DevicePostureIntegrations7AZ1Apoy[]; +}; + +export type DevicePostureIntegrationsComponentsSchemasSingleResponse = ApiResponseSingleLarS7owG & { + result?: DevicePostureIntegrations7AZ1Apoy; +}; + +/** + * The type of Device Posture Integration. + * + * @example workspace_one + */ +export type DevicePostureIntegrationsComponentsSchemasType = 'workspace_one' | 'crowdstrike_s2s' | 'uptycs' | 'intune'; + +/** + * API uuid tag. + * + * @example f174e90a-fafe-4643-bbbc-4a0ed4fc8415 + * @maxLength 36 + */ +export type DevicePostureIntegrationsComponentsSchemasUuid = string; + +export type DevicePostureRules = { + description?: DescriptionGpCjO3oV; + expiration?: Expiration; + id?: UuidUoyzrwvx; + input?: Input; + match?: Match; + name?: NameKU9Y1gf9; + schedule?: ScheduleVkuQMHl2; + type?: TypeS34NxojT; +}; + +export type DevicePostureRulesJXQaeA4J = { + description?: DevicePostureRulesComponentsSchemasDescription; + expiration?: SchemasExpiration; + id?: DevicePostureRulesComponentsSchemasUuid; + input?: InputZcd2nhY2; + match?: SchemasMatchPKnBbWyP; + name?: DevicePostureRulesComponentsSchemasName; + schedule?: ScheduleXq5rkQsP; + type?: DevicePostureRulesComponentsSchemasType; +}; + +/** + * The description of the Device Posture Rule. + * + * @example The rule for admin serial numbers + */ +export type DevicePostureRulesComponentsSchemasDescription = string; + +export type DevicePostureRulesComponentsSchemasIdResponse = ApiResponseSingleLarS7owG & { + result?: { + id?: DevicePostureRulesComponentsSchemasUuid; + }; +}; + +/** + * @example 699d98642c564d2e855e9661899b7252 + */ +export type DevicePostureRulesComponentsSchemasIdentifier = void; + +/** + * The name of the Device Posture Rule. + * + * @example Admin Serial Numbers + */ +export type DevicePostureRulesComponentsSchemasName = string; + +export type DevicePostureRulesComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: DevicePostureRulesJXQaeA4J[]; +}; + +export type DevicePostureRulesComponentsSchemasSingleResponse = ApiResponseSingleLarS7owG & { + result?: DevicePostureRulesJXQaeA4J; +}; + +/** + * The type of Device Posture Rule. + * + * @example file + */ +export type DevicePostureRulesComponentsSchemasType = + | 'file' + | 'application' + | 'serial_number' + | 'tanium' + | 'gateway' + | 'warp'; + +/** + * API uuid tag. + * + * @example f174e90a-fafe-4643-bbbc-4a0ed4fc8415 + * @maxLength 36 + */ +export type DevicePostureRulesComponentsSchemasUuid = string; + +/** + * The wirefilter expression to be used for device posture check matching. + * + * @example any(device_posture.checks.passed[*] in {"1308749e-fcfb-4ebc-b051-fe022b632644"}) + */ +export type DevicePosture = string; + +export type DeviceResponse = ApiResponseSingleI8cJ1fX8 & { + result?: Record; +}; + +export type DeviceResponseYshSK9BF = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type DeviceSettingsPolicy = { + allow_mode_switch?: AllowModeSwitch; + allow_updates?: AllowUpdates; + allowed_to_leave?: AllowedToLeave; + auto_connect?: AutoConnect; + captive_portal?: CaptivePortal; + ['default']?: Default; + description?: SchemasDescriptionTQ4Ivhfo; + disable_auto_fallback?: DisableAutoFallback; + /** + * Whether the policy will be applied to matching devices. + * + * @example true + */ + enabled?: boolean; + exclude?: ExcludeRjxLDhaP; + exclude_office_ips?: ExcludeOfficeIps; + fallback_domains?: FallbackDomains; + gateway_unique_id?: GatewayUniqueId; + include?: IncludeFVRZ2Ny8; + match?: SchemasMatch; + /** + * The name of the device settings policy. + * + * @example Allow Developers + * @maxLength 100 + */ + name?: string; + policy_id?: SchemasUuid4P4vJwxm; + precedence?: PrecedenceBOmzKeZm; + service_mode_v2?: ServiceModeV2; + support_url?: SupportUrl; + switch_locked?: SwitchLocked; +}; + +export type DeviceSettingsPolicy08gBee3x = { + allow_mode_switch?: AllowModeSwitch; + allow_updates?: AllowUpdates; + allowed_to_leave?: AllowedToLeave; + auto_connect?: AutoConnect; + captive_portal?: CaptivePortal; + ['default']?: SchemasDefault; + description?: DevicesComponentsSchemasDescription; + disable_auto_fallback?: DisableAutoFallback; + /** + * Whether the policy will be applied to matching devices. + * + * @example true + */ + enabled?: boolean; + exclude?: ComponentsSchemasExclude; + exclude_office_ips?: ExcludeOfficeIps; + fallback_domains?: FallbackDomains; + gateway_unique_id?: GatewayUniqueId; + include?: SchemasInclude; + match?: ComponentsSchemasMatch; + /** + * The name of the device settings policy. + * + * @example Allow Developers + * @maxLength 100 + */ + name?: string; + policy_id?: Uuid; + precedence?: SchemasPrecedence; + service_mode_v2?: ServiceModeV2; + support_url?: SupportUrl; + switch_locked?: SwitchLocked; +}; + +export type DeviceSettingsResponse = ApiResponseCollection & { + result?: DeviceSettingsPolicy08gBee3x; +}; + +export type DeviceSettingsResponseCollection = ApiResponseCollection & { + result?: DeviceSettingsPolicy08gBee3x[]; +}; + +export type Devices = { + created?: Created; + deleted?: Deleted; + device_type?: Platform; + id?: SchemasUuid4P4vJwxm; + ip?: IpMKmJkd3b; + key?: Key; + last_seen?: LastSeen; + mac_address?: MacAddress; + manufacturer?: Manufacturer; + model?: Model; + name?: SchemasNameLohsu7Gg; + os_distro_name?: OsDistroName; + os_distro_revision?: OsDistroRevision; + os_version?: OsVersion; + revoked_at?: RevokedAt; + serial_number?: SerialNumberJQ6wzAYC; + updated?: Updated; + user?: User; + version?: VersionLix2KSZT; +}; + +export type Devices9iMrlXhN = { + created?: SchemasCreated; + deleted?: SchemasDeleted; + device_type?: Platform; + id?: DevicesComponentsSchemasUuid; + ip?: ComponentsSchemasIp; + key?: SchemasKey; + last_seen?: LastSeen; + mac_address?: MacAddress; + manufacturer?: Manufacturer; + model?: Model; + name?: DevicesComponentsSchemasName; + os_distro_name?: OsDistroName; + os_distro_revision?: OsDistroRevision; + os_version?: OsVersion; + revoked_at?: RevokedAt; + serial_number?: ComponentsSchemasSerialNumberMLjjvVe3; + updated?: Updated; + user?: UserTCLIy2E3; + version?: DevicesComponentsSchemasVersion; +}; + +/** + * A description of the policy. + * + * @example Policy for test teams. + * @maxLength 500 + */ +export type DevicesComponentsSchemasDescription = string; + +/** + * @example 699d98642c564d2e855e9661899b7252 + */ +export type DevicesComponentsSchemasIdentifier = void; + +/** + * The device name. + * + * @example My mobile device + */ +export type DevicesComponentsSchemasName = string; + +/** + * Device ID. + * + * @example f174e90a-fafe-4643-bbbc-4a0ed4fc8415 + * @maxLength 36 + */ +export type DevicesComponentsSchemasUuid = string; + +/** + * The WARP client version. + * + * @example 1.0.0 + */ +export type DevicesComponentsSchemasVersion = string; + +export type DevicesResponse = ApiResponseCollection & { + result?: Devices9iMrlXhN[]; +}; + +export type DexResponseCollection = ApiResponseCollectionCommon & { + result?: DeviceDexTestSchemasHttp[]; +}; + +export type DexSingleResponse = ApiResponseSingleI8cJ1fX8 & { + result?: DeviceDexTestSchemasHttp; +}; + +/** + * Digest hash. + * + * @example 48E939042E82C22542CB377B580DFDC52A361CEFDC72E7F9107E2B6BD9306A45 + */ +export type Digest = string | null; + +/** + * Type of digest algorithm. + * + * @example SHA256 + */ +export type DigestAlgorithm = string | null; + +/** + * Coded type for digest algorithm. + * + * @example 2 + */ +export type DigestType = string | null; + +/** + * A comma-separated list of dimensions to group results by. + * + * @example queryType + */ +export type Dimensions = string; + +/** + * Can be used to break down the data by given attributes. Options are: + * + * Dimension | Name | Example + * --------------------------|---------------------------------|-------------------------- + * event | Connection Event | connect, progress, disconnect, originError, clientFiltered + * appID | Application ID | 40d67c87c6cd4b889a4fd57805225e85 + * coloName | Colo Name | SFO + * ipVersion | IP version used by the client | 4, 6. + * + * @example event + * @example appID + */ +export type DimensionsHElZM7Gt = ('event' | 'appID' | 'coloName' | 'ipVersion')[]; + +export type DirectUploadRequest = { + allowedOrigins?: AllowedOrigins; + creator?: Creator; + /** + * The date and time after upload when videos will not be accepted. + * + * @default Now + 30 minutes + * @example 2021-01-02T02:20:00Z + * @format date-time + */ + expiry?: string; + maxDurationSeconds: MaxDurationSeconds; + requireSignedURLs?: RequireSignedURLs; + thumbnailTimestampPct?: ThumbnailTimestampPct; + watermark?: WatermarkAtUpload; +}; + +export type DirectUploadRequestV2 = { + /** + * The date after which the upload will not be accepted. Minimum: Now + 2 minutes. Maximum: Now + 6 hours. + * + * @default Now + 30 minutes + * @example 2021-01-02T02:20:00Z + * @format date-time + */ + expiry?: string; + /** + * Optional Image Custom ID. Up to 1024 chars. Can include any number of subpaths, and utf8 characters. Cannot start nor end with a / (forward slash). Cannot be a UUID. + * + * @example this/is/my-customid + * @maxLength 1024 + */ + id?: string; + /** + * User modifiable key-value store. Can be used for keeping references to another system of record, for managing images. + */ + metadata?: Record; + /** + * Indicates whether the image requires a signature token to be accessed. + * + * @default false + * @example true + */ + requireSignedURLs?: boolean; +}; + +export type DirectUploadResponse = ApiResponseSingleYdRGfgTy & { + result?: { + uid?: IdentifierKW7g5KGL; + /** + * The URL an unauthenticated upload can use for a single `HTTP POST multipart/form-data` request. + * + * @example www.example.com/samplepath + */ + uploadURL?: string; + watermark?: Watermarks; + }; +}; + +export type DirectUploadResponseV2 = ApiResponseSingleLarS7owG & { + result?: { + /** + * Image unique identifier. + * + * @example e22e9e6b-c02b-42fd-c405-6c32af5fe600 + * @maxLength 32 + */ + id?: string; + /** + * The URL the unauthenticated upload can be performed to using a single HTTP POST (multipart/form-data) request. + * + * @example https://upload.imagedelivery.net/FxUufywByo0m2v3xhKSiU8/e22e9e6b-c02b-42fd-c405-6c32af5fe600 + */ + uploadURL?: string; + }; +}; + +/** + * Direction to order DNS records in. + * + * @default asc + */ +export type Direction = 'asc' | 'desc'; + +/** + * If the dns_server field of a fallback domain is not present, the client will fall back to a best guess of the default/system DNS resolvers, unless this policy option is set. + * + * @example true + */ +export type DisableAutoFallback = boolean; + +export type DisableForTime = { + /** + * Override code that is valid for 1 hour. + * + * @example 9106681 + */ + ['1']?: void; + /** + * Override code that is valid for 3 hours. + * + * @example 5356247 + */ + ['3']?: void; + /** + * Override code that is valid for 6 hours. + * + * @example 9478972 + */ + ['6']?: void; + /** + * Override code that is valid for 12 hour2. + * + * @example 3424359 + */ + ['12']?: void; + /** + * Override code that is valid for 24 hour.2. + * + * @example 2887634 + */ + ['24']?: void; +}; + +/** + * Only available for the Waiting Room Advanced subscription. Disables automatic renewal of session cookies. If `true`, an accepted user will have session_duration minutes to browse the site. After that, they will have to go through the waiting room again. If `false`, a user's session cookie will be automatically renewed on every request. + * + * @default false + * @example false + */ +export type DisableSessionRenewal = boolean; + +export type DisableTransferResponse = ApiResponseSingleWkFwqHKI & { + result?: DisableTransferResult; +}; + +/** + * The zone transfer status of a primary zone + * + * @example Disabled + */ +export type DisableTransferResult = string; + +/** + * When true, indicates that the rate limit is currently disabled. + * + * @example false + */ +export type Disabled = boolean; + +/** + * This field shows up only if the origin is disabled. This field is set with the time the origin was disabled. + * + * @format date-time + */ +export type DisabledAt = string; + +/** + * Alert type name. + * + * @example Origin Error Rate Alert + */ +export type DisplayName = string; + +/** + * @example example-dlq + */ +export type DlqName = string; + +/** + * The name and type of DNS record for the Spectrum application. + */ +export type Dns = { + name?: DnsName; + type?: DnsType; +}; + +export type DnsFirewall = { + attack_mitigation?: AttackMitigation; + deprecate_any_requests: DeprecateAnyRequests; + dns_firewall_ips: DnsFirewallIps; + ecs_fallback: EcsFallback; + id: Identifier; + maximum_cache_ttl: MaximumCacheTtl; + minimum_cache_ttl: MinimumCacheTtl; + modified_on: ModifiedOn; + name: Name; + negative_cache_ttl?: NegativeCacheTtl; + /** + * Deprecated alias for "upstream_ips". + * + * @deprecated true + */ + origin_ips?: void; + ratelimit?: Ratelimit; + retries?: Retries; + upstream_ips: UpstreamIps; +}; + +export type DnsRecord = + | ARecord + | AAAARecord + | CAARecord + | CERTRecord + | CNAMERecord + | DNSKEYRecord + | DSRecord + | HTTPSRecord + | LOCRecord + | MXRecord + | NAPTRRecord + | NSRecord + | PTRRecord + | SMIMEARecord + | SRVRecord + | SSHFPRecord + | SVCBRecord + | TLSARecord + | TXTRecord + | URIRecord; + +/** + * List of records needed to enable an Email Routing zone. + */ +export type DnsRecordM1zJRhSs = { + /** + * DNS record content. + * + * @example route1.mx.cloudflare.net + */ + content?: string; + /** + * DNS record name (or @ for the zone apex). + * + * @example example.com + * @maxLength 255 + */ + name?: string; + /** + * Required for MX, SRV and URI records. Unused by other record types. Records with lower priorities are preferred. + * + * @example 12 + * @maximum 65535 + * @minimum 0 + */ + priority?: number; + /** + * Time to live, in seconds, of the DNS record. Must be between 60 and 86400, or 1 for 'automatic'. + * + * @example 1 + */ + ttl?: number | 1; + /** + * DNS record type. + * + * @example NS + */ + type?: + | 'A' + | 'AAAA' + | 'CNAME' + | 'HTTPS' + | 'TXT' + | 'SRV' + | 'LOC' + | 'MX' + | 'NS' + | 'CERT' + | 'DNSKEY' + | 'DS' + | 'NAPTR' + | 'SMIMEA' + | 'SSHFP' + | 'SVCB' + | 'TLSA' + | 'URI'; +}; + +export type DnsSecondarySecondaryZone = { + auto_refresh_seconds: AutoRefreshSeconds; + id: Identifier6txek3jw; + name: NameSjz7boGi; + peers: Peers; +}; + +export type DnsSettingsResponseCollection = ApiResponseCollection & { + result?: DnsRecordM1zJRhSs[]; +}; + +/** + * @example 203.0.113.1 + * @example 203.0.113.254 + * @example 2001:DB8:AB::CF + * @example 2001:DB8:CD::CF + */ +export type DnsFirewallIps = (string | string)[]; + +export type DnsFirewallResponseCollection = ApiResponseCollection & { + result?: DnsFirewall[]; +}; + +export type DnsFirewallSingleResponse = ApiResponseSingleCIiIMb72 & { + result?: DnsFirewall; +}; + +/** + * The name of the DNS record associated with the application. + * + * @example ssh.example.com + * @format hostname + */ +export type DnsName = string; + +export type DnsResponseCollection = ApiResponseCollection & { + result?: DnsRecord[]; +}; + +export type DnsResponseImportScan = ApiResponseSingle8TQHeyma & { + result?: { + /** + * Number of DNS records added. + * + * @example 5 + */ + recs_added?: number; + /** + * Total number of DNS records parsed. + * + * @example 5 + */ + total_records_parsed?: number; + }; + timing?: { + /** + * When the file parsing ended. + * + * @example 2014-03-01T12:20:01Z + * @format date-time + */ + end_time?: string; + /** + * Processing time of the file in seconds. + * + * @example 1 + */ + process_time?: number; + /** + * When the file parsing started. + * + * @example 2014-03-01T12:20:00Z + * @format date-time + */ + start_time?: string; + }; +}; + +export type DnsResponseSingle = ApiResponseSingle8TQHeyma & { + result?: DnsRecord; +}; + +/** + * The TTL of our resolution of your DNS record in seconds. + * + * @minimum 600 + */ +export type DnsTtl = number; + +/** + * The type of DNS record associated with the application. + * + * @example CNAME + */ +export type DnsType = 'CNAME' | 'ADDRESS'; + +/** + * DNSLink value used if the target is ipfs. + * + * @example /ipns/onboarding.ipfs.cloudflare.com + */ +export type Dnslink = string; + +export type Dnssec = { + algorithm?: Algorithm; + digest?: Digest; + digest_algorithm?: DigestAlgorithm; + digest_type?: DigestType; + ds?: Ds; + flags?: Flags; + key_tag?: KeyTag; + key_type?: KeyType; + modified_on?: ModifiedOn4CdIXZup; + public_key?: PublicKeyAH0a9AtA; + status?: Status7l7v1BCo; +}; + +export type DnssecResponseSingle = ApiResponseSinglePOKosyfu & { + result?: Dnssec; +}; + +/** + * The domain and path that Access will secure. + * + * @example test.example.com/admin + */ +export type Domain = string; + +export type DomainSjfI1GKj = { + environment?: Environment; + hostname?: ComponentsSchemasHostname; + id?: DomainIdentifier; + service?: SchemasService; + zone_id?: ZoneIdentifier; + zone_name?: ZoneName; +}; + +export type DomainHistory = { + categorizations?: { + /** + * @example {"id":155,"name":"Technology"} + */ + categories?: void; + /** + * @example 2021-04-30 + * @format date + */ + end?: string; + /** + * @example 2021-04-01 + * @format date + */ + start?: string; + }[]; + domain?: SchemasDomainName; +}; + +export type DomainResponseCollection = { + errors: Messages; + messages: Messages; + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; + result_info?: { + /** + * @example 1 + */ + count?: void; + /** + * @example 1 + */ + page?: void; + /** + * @example 100 + */ + per_page?: void; + /** + * @example 1 + */ + total_count?: void; + }; +}; + +export type DomainResponseCollectionZmR2fzja = { + errors: Messages; + messages: Messages; + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type DomainResponseSingle = ApiResponseSingleSJaluEU5 & { + result?: Record; +}; + +export type DomainResponseSingleFb0rsuc8 = { + errors: Messages; + messages: Messages; + result: DomainSjfI1GKj; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type DomainComponentsSchemasDomain = { + additional_information?: AdditionalInformation; + application?: ApplicationIDJD2oSO; + content_categories?: ContentCategories; + domain?: SchemasDomainName; + popularity_rank?: PopularityRank; + resolves_to_refs?: ResolvesToRefs; + risk_score?: RiskScore; + risk_types?: RiskTypes; +}; + +export type DomainComponentsSchemasSingleResponse = ApiResponseSingleLarS7owG & { + result?: DomainComponentsSchemasDomain; +}; + +/** + * Identifer of the Worker Domain. + * + * @example dbe10b4bc17c295377eabd600e1787fd + */ +export type DomainIdentifier = void; + +/** + * Name of the domain. + * + * @example this-is-my-domain-01.com + * @pattern ^[a-z0-9][a-z0-9-]*$ + */ +export type DomainName = string; + +/** + * Domain name. + * + * @example cloudflare.com + */ +export type DomainNamePfybr7Cq = string; + +/** + * List of domain names. + * + * @example cloudflare.com + * @example cloudflare.net + */ +export type DomainNames = string[]; + +export type DomainProperties = { + available?: SchemasAvailable; + can_register?: CanRegister; + created_at?: ComponentsSchemasCreatedAt; + current_registrar?: CurrentRegistrar; + expires_at?: ExpiresAt; + id?: SchemasDomainIdentifier; + locked?: Locked; + registrant_contact?: RegistrantContact; + registry_statuses?: RegistryStatuses; + supported_tld?: SupportedTld; + transfer_in?: TransferIn; + updated_at?: ComponentsSchemasUpdatedAt; +}; + +export type DomainResponseCollection = ApiResponseCollection & { + result?: Domains[]; +}; + +export type DomainResponseSingle = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +/** + * Match an entire email domain. + */ +export type DomainRule = { + email_domain: { + /** + * The email domain to match. + * + * @example example.com + */ + domain: string; + }; +}; + +export type DomainUpdateProperties = { + auto_renew?: AutoRenew; + locked?: Locked; + name_servers?: NameServers; + privacy?: Privacy; +}; + +export type Domains = DomainProperties; + +/** + * @example {"name":"example.com"} + */ +export type DomainsPost = void; + +/** + * The source URL for a downloaded image. If the watermark profile was created via direct upload, this field is null. + * + * @example https://company.com/logo.png + */ +export type DownloadedFrom = string; + +export type DownloadsResponse = ApiResponseSingleYdRGfgTy & { + result?: Record; +}; + +/** + * Full DS record. + * + * @example example.com. 3600 IN DS 16953 13 2 48E939042E82C22542CB377B580DFDC52A361CEFDC72E7F9107E2B6BD9306A45 + */ +export type Ds = string | null; + +/** + * The duration of the video in seconds. A value of `-1` means the duration is unknown. The duration becomes available after the upload and before the video is ready. + */ +export type Duration = number; + +/** + * The duration of the plan subscription. + * + * @example 1 + */ +export type DurationUvPDdO2C = number; + +export type DynamicRedirectRulesComponentsSchemasRule = { + /** + * @example redirect + */ + action?: void; + action_parameters?: ComponentsSchemasActionParameters; + /** + * @example Blog redirect + */ + description?: void; + /** + * @example http.request.uri.path == "/blog" + */ + expression?: void; + /** + * @example 3a03d665bac047339bb530ecb439a90d + */ + id?: void; + /** + * @example 1 + */ + version?: void; +}; + +/** + * When enabled, Cloudflare will attempt to speed up overall page loads by serving `103` responses with `Link` headers from the final response. Refer to [Early Hints](https://developers.cloudflare.com/cache/about/early-hints) for more information. + */ +export type EarlyHints = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example early_hints + */ + id: 'early_hints'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: EarlyHintsValue; +}; + +/** + * Value of the zone setting. + * + * @default off + */ +export type EarlyHintsValue = 'on' | 'off'; + +/** + * Set if the location needs to resolve EDNS queries. + * + * @example false + */ +export type EcsSupport = boolean; + +/** + * Forward client IP (resolver) subnet if no EDNS Client Subnet is sent. + * + * @example false + */ +export type EcsFallback = boolean; + +/** + * Time (in seconds) that a resource will be ensured to remain on Cloudflare's cache servers. + */ +export type EdgeCacheTtl = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example edge_cache_ttl + */ + id: 'edge_cache_ttl'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: EdgeCacheTtlValue; +}; + +/** + * Value of the zone setting. + * Notes: The minimum TTL available depends on the plan level of the zone. (Enterprise = 30, Business = 1800, Pro = 3600, Free = 7200) + * + * @default 7200 + */ +export type EdgeCacheTtlValue = + | 30 + | 60 + | 300 + | 1200 + | 1800 + | 3600 + | 7200 + | 10800 + | 14400 + | 18000 + | 28800 + | 43200 + | 57600 + | 72000 + | 86400 + | 172800 + | 259200 + | 345600 + | 432000 + | 518400 + | 604800; + +/** + * The anycast edge IP configuration for the hostname of this application. + * + * @default {"connectivity":"all","type":"dynamic"} + */ +export type EdgeIps = + | { + /** + * The IP versions supported for inbound connections on Spectrum anycast IPs. + * + * @example all + */ + connectivity?: 'all' | 'ipv4' | 'ipv6'; + /** + * The type of edge IP configuration specified. Dynamically allocated edge IPs use Spectrum anycast IPs in accordance with the connectivity you specify. Only valid with CNAME DNS names. + * + * @example dynamic + */ + type?: 'dynamic'; + } + | { + /** + * The array of customer owned IPs we broadcast via anycast for this hostname and application. + * + * @example 192.0.2.1 + */ + ips?: string[]; + /** + * The type of edge IP configuration specified. Statically allocated edge IPs use customer IPs in accordance with the ips array you specify. Only valid with ADDRESS DNS names. + * + * @example static + */ + type?: 'static'; + }; + +/** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ +export type Editable = true | false; + +/** + * Allow or deny operations against the resources. + * + * @example allow + */ +export type Effect = 'allow' | 'deny'; + +export type EgsPagination = { + /** + * The page number of paginated results. + * + * @default 1 + * @minimum 1 + */ + page?: number; + /** + * The maximum number of results per page. You can only set the value to `1` or to a multiple of 5 such as `5`, `10`, `15`, or `20`. + * + * @default 20 + * @maximum 1000 + * @minimum 1 + */ + per_page?: number; +}; + +export type EitherProfileResponse = ApiResponseSingleUypB4bgI & { + result?: PredefinedProfile | CustomProfile | IntegrationProfile; +}; + +export type EitherProfileResponseLHJWqKkQ = ApiResponseSingleLarS7owG & { + result?: PredefinedProfile | CustomProfile; +}; + +export type Eligibility = { + eligible?: Eligible; + ready?: Ready; + type?: EligibilityComponentsSchemasType; +}; + +export type EligibilityComponentsSchemasResponseCollection = ApiResponseCollection & { + /** + * @example {"email":{"eligible":true,"ready":true,"type":"email"}} + */ + result?: { + [key: string]: Eligibility[]; + }; +}; + +/** + * Determines type of delivery mechanism. + * + * @example email + */ +export type EligibilityComponentsSchemasType = 'email' | 'pagerduty' | 'webhook'; + +/** + * Determines whether or not the account is eligible for the delivery mechanism. + * + * @example true + */ +export type Eligible = boolean; + +/** + * The email address of the authenticating user. + * + * @example user@example.com + * @format email + */ +export type Email = string; + +/** + * The contact email address of the user. + * + * @example user@example.com + * @maxLength 90 + */ +export type EmailHj6ruiEO = string; + +/** + * The contact email address of the user. + * + * @example user@example.com + * @maxLength 90 + */ +export type EmailPuzf53IC = string; + +/** + * The contact email address of the user. + * + * @example user@example.com + * @maxLength 90 + */ +export type EmailQw65SH2N = string; + +/** + * The date and time the settings have been created. + * + * @example 2014-01-02T02:20:00Z + * @format date-time + */ +export type EmailSettingCreated = string; + +/** + * State of the zone settings for Email Routing. + * + * @default true + * @example true + */ +export type EmailSettingEnabled = true | false; + +/** + * Email Routing settings identifier. + * + * @example 75610dab9e69410a82cf7e400a09ecec + * @maxLength 32 + */ +export type EmailSettingIdentifier = string; + +/** + * The date and time the settings have been modified. + * + * @example 2014-01-02T02:20:00Z + * @format date-time + */ +export type EmailSettingModified = string; + +/** + * Domain of your zone. + * + * @example example.net + */ +export type EmailSettingName = string; + +/** + * Flag to check if the user skipped the configuration wizard. + * + * @default true + * @example true + */ +export type EmailSettingSkipWizard = true | false; + +/** + * Show the state of your account, and the type or configuration error. + * + * @example ready + */ +export type EmailSettingStatus = 'ready' | 'unconfigured' | 'misconfigured' | 'misconfigured/locked' | 'unlocked'; + +export type EmailSettingsProperties = { + created?: EmailSettingCreated; + enabled?: EmailSettingEnabled; + modified?: EmailSettingModified; + name?: EmailSettingName; + skip_wizard?: EmailSettingSkipWizard; + status?: EmailSettingStatus; + tag?: EmailSettingIdentifier; +}; + +export type EmailSettingsResponseSingle = ApiResponseSingleSiIqFfOd & { + result?: SettingsPG6mq1EP; +}; + +/** + * Encrypt email adresses on your web page from bots, while keeping them visible to humans. (https://support.cloudflare.com/hc/en-us/articles/200170016). + */ +export type EmailObfuscation = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example email_obfuscation + */ + id: 'email_obfuscation'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: EmailObfuscationValue; +}; + +/** + * Value of the zone setting. + * + * @default on + */ +export type EmailObfuscationValue = 'on' | 'off'; + +/** + * Matches a specific email. + */ +export type EmailRule = { + email: { + /** + * The email of the user. + * + * @example test@example.com + * @format email + */ + email: string; + }; +}; + +export type EmptyResponse = { + /** + * @example true + */ + result?: true | false; + /** + * @example true + */ + success?: true | false; +}; + +export type EmptyResponseCbHVcloB = ApiResponseCollection & { + /** + * @maxItems 0 + */ + result?: any[]; +}; + +export type EmptyResponseXlOHTEms = ApiResponseSingleVxjnpV7r & { + result?: Record; +}; + +/** + * Enables the binding cookie, which increases security against compromised authorization tokens and CSRF attacks. + * + * @default false + */ +export type EnableBindingCookie = boolean; + +export type EnableTransferResponse = ApiResponseSingleWkFwqHKI & { + result?: EnableTransferResult; +}; + +/** + * The zone transfer status of a primary zone + * + * @example Enabled + */ +export type EnableTransferResult = string; + +/** + * When true, indicates that Page Shield is enabled. + * + * @example true + */ +export type Enabled = boolean; + +/** + * Whether or not the Keyless SSL is on or off. + * + * @example false + */ +export type Enabled3YyasMQY = boolean; + +/** + * Whether or not the Keyless SSL is on or off. + * + * @example false + */ +export type EnabledJNPAumTy = boolean; + +/** + * Flag that indicates if the job is enabled. + * + * @example false + */ +export type EnabledKv09N7E6 = boolean; + +/** + * Whether to enable (the default) or disable this pool. Disabled pools will not receive traffic and are excluded from health checks. Disabling a pool will cause any load balancers using it to failover to the next pool (if any). + * + * @default true + * @example false + */ +export type EnabledMECT4zDK = boolean; + +/** + * Whether the Address Map is enabled or not. Cloudflare's DNS will not respond with IP addresses on an Address Map until the map is enabled. + * + * @default false + * @example true + */ +export type EnabledMHW1g4wi = boolean | null; + +/** + * Set if the rule is enabled. + * + * @example true + */ +export type EnabledQcoBB5YJ = boolean; + +/** + * Set to enable antivirus scan on downloads. + * + * @example false + */ +export type EnabledDownloadPhase = boolean; + +export type EnabledResponse = ApiResponseSingleZZHeSkIR & { + result?: { + enabled?: ZoneAuthenticatedOriginPullComponentsSchemasEnabled; + }; +}; + +export type EnabledResponse1PjNFSXh = ApiResponseSingleLarS7owG & { + result?: { + enabled?: ZoneAuthenticatedOriginPullComponentsSchemasEnabled; + }; +}; + +/** + * Set to enable antivirus scan on uploads. + * + * @example false + */ +export type EnabledUploadPhase = boolean; + +/** + * Whether or not the Keyless SSL is on or off. + * + * @deprecated true + * @example false + */ +export type EnabledWrite = boolean; + +/** + * Sets the (exclusive) end of the requested time frame. This can be a unix timestamp (in seconds or nanoseconds), or an absolute timestamp that conforms to RFC 3339. `end` must be at least five minutes earlier than now and must be later than `start`. Difference between `start` and `end` must be not greater than one hour. + * + * @example 2018-05-20T10:01:00Z + */ +export type End = string | number; + +/** + * Specifies the end time for the video clip in seconds. + */ +export type EndTimeSeconds = number; + +/** + * The endpoint which can contain path parameter templates in curly braces, each will be replaced from left to right with {varN}, starting with {var1}, during insertion. This will further be Cloudflare-normalized upon insertion. See: https://developers.cloudflare.com/rules/normalization/how-it-works/. + * + * @example /api/v1/users/{var1} + * @format uri-template + * @maxLength 4096 + * @pattern ^/.*$ + */ +export type Endpoint = string; + +/** + * UUID + * + * @example f174e90a-fafe-4643-bbbc-4a0ed4fc8415 + * @maxLength 36 + */ +export type EntryId = Uuid; + +/** + * Worker environment associated with the zone and hostname. + * + * @example production + */ +export type Environment = string; + +/** + * Errors resulting from collecting traceroute from colo to target. + * + * @example + */ +export type Error = + | '' + | 'Could not gather traceroute data: Code 1' + | 'Could not gather traceroute data: Code 2' + | 'Could not gather traceroute data: Code 3' + | 'Could not gather traceroute data: Code 4'; + +/** + * Specifies why the video failed to encode. This field is empty if the video is not in an `error` state. Preferred for programmatic use. + * + * @example ERR_NON_VIDEO + */ +export type ErrorReasonCode = string; + +/** + * Specifies why the video failed to encode using a human readable error message in English. This field is empty if the video is not in an `error` state. + * + * @example The file was not recognized as a valid video file. + */ +export type ErrorReasonText = string; + +/** + * If not null, the job is currently failing. Failures are usually repetitive (example: no permissions to write to destination bucket). Only the last failure is recorded. On successful execution of a job the error_message and last_error are set to null. + * + * @format date-time + */ +export type ErrorMessage = string | null; + +export type EstimatedQueuedUsers = number; + +export type EstimatedTotalActiveUsers = number; + +/** + * A digest of the IP data. Useful for determining if the data has changed. + * + * @example a8e453d9d129a3769407127936edfdb0 + */ +export type Etag = string; + +/** + * Hashed script content, can be used in a If-None-Match header when updating. + * + * @example ea95132c15732412d22c1476fa83f27a + */ +export type EtagCXrJI57j = string; + +/** + * If set, the event will override the waiting room's `custom_page_html` property while it is active. If null, the event will inherit it. + * + * @example {{#waitTimeKnown}} {{waitTime}} mins {{/waitTimeKnown}} {{^waitTimeKnown}} Event is prequeueing / Queue all enabled {{/waitTimeKnown}} + */ +export type EventCustomPageHtml = string | null; + +/** + * A note that you can use to add more details about the event. + * + * @default + * @example Production event - DO NOT MODIFY + */ +export type EventDescription = string; + +/** + * @example {{#waitTimeKnown}} {{waitTime}} mins {{/waitTimeKnown}} {{^waitTimeKnown}} Event is prequeueing / Queue all enabled {{/waitTimeKnown}} + */ +export type EventDetailsCustomPageHtml = string; + +/** + * @example false + */ +export type EventDetailsDisableSessionRenewal = boolean; + +export type EventDetailsNewUsersPerMinute = number; + +/** + * @example random + */ +export type EventDetailsQueueingMethod = string; + +export type EventDetailsResponse = ApiResponseSinglePn9rJJNX & { + result?: EventDetailsResult; +}; + +export type EventDetailsResult = { + created_on?: Timestamp; + custom_page_html?: EventDetailsCustomPageHtml; + description?: EventDescription; + disable_session_renewal?: EventDetailsDisableSessionRenewal; + event_end_time?: EventEndTime; + event_start_time?: EventStartTime; + id?: EventId; + modified_on?: Timestamp; + name?: EventName; + new_users_per_minute?: EventDetailsNewUsersPerMinute; + prequeue_start_time?: EventPrequeueStartTime; + queueing_method?: EventDetailsQueueingMethod; + session_duration?: EventDetailsSessionDuration; + shuffle_at_event_start?: EventShuffleAtEventStart; + suspended?: EventSuspended; + total_active_users?: EventDetailsTotalActiveUsers; +}; + +export type EventDetailsSessionDuration = number; + +export type EventDetailsTotalActiveUsers = number; + +/** + * If set, the event will override the waiting room's `disable_session_renewal` property while it is active. If null, the event will inherit it. + */ +export type EventDisableSessionRenewal = boolean | null; + +/** + * An ISO 8601 timestamp that marks the end of the event. + * + * @example 2021-09-28T17:00:00.000Z + */ +export type EventEndTime = string; + +/** + * @example 25756b2dfe6e378a06b033b670413757 + */ +export type EventId = void; + +export type EventIdResponse = ApiResponseSinglePn9rJJNX & { + result?: { + id?: EventId; + }; +}; + +/** + * A unique name to identify the event. Only alphanumeric characters, hyphens and underscores are allowed. + * + * @example production_webinar_event + */ +export type EventName = string; + +/** + * If set, the event will override the waiting room's `new_users_per_minute` property while it is active. If null, the event will inherit it. This can only be set if the event's `total_active_users` property is also set. + * + * @maximum 2147483647 + * @minimum 200 + */ +export type EventNewUsersPerMinute = number | null; + +/** + * An ISO 8601 timestamp that marks when to begin queueing all users before the event starts. The prequeue must start at least five minutes before `event_start_time`. + * + * @example 2021-09-28T15:00:00.000Z + */ +export type EventPrequeueStartTime = string | null; + +/** + * If set, the event will override the waiting room's `queueing_method` property while it is active. If null, the event will inherit it. + * + * @example random + */ +export type EventQueueingMethod = string | null; + +export type EventResponse = ApiResponseSinglePn9rJJNX & { + result?: EventResult; +}; + +export type EventResponseCollection = ApiResponseCollection & { + result?: EventResult[]; +}; + +export type EventResult = { + created_on?: Timestamp; + custom_page_html?: EventCustomPageHtml; + description?: EventDescription; + disable_session_renewal?: EventDisableSessionRenewal; + event_end_time?: EventEndTime; + event_start_time?: EventStartTime; + id?: EventId; + modified_on?: Timestamp; + name?: EventName; + new_users_per_minute?: EventNewUsersPerMinute; + prequeue_start_time?: EventPrequeueStartTime; + queueing_method?: EventQueueingMethod; + session_duration?: EventSessionDuration; + shuffle_at_event_start?: EventShuffleAtEventStart; + suspended?: EventSuspended; + total_active_users?: EventTotalActiveUsers; +}; + +/** + * If set, the event will override the waiting room's `session_duration` property while it is active. If null, the event will inherit it. + * + * @maximum 30 + * @minimum 1 + */ +export type EventSessionDuration = number | null; + +/** + * If enabled, users in the prequeue will be shuffled randomly at the `event_start_time`. Requires that `prequeue_start_time` is not null. This is useful for situations when many users will join the event prequeue at the same time and you want to shuffle them to ensure fairness. Naturally, it makes the most sense to enable this feature when the `queueing_method` during the event respects ordering such as **fifo**, or else the shuffling may be unnecessary. + * + * @default false + */ +export type EventShuffleAtEventStart = boolean; + +/** + * An ISO 8601 timestamp that marks the start of the event. At this time, queued users will be processed with the event's configuration. The start time must be at least one minute before `event_end_time`. + * + * @example 2021-09-28T15:30:00.000Z + */ +export type EventStartTime = string; + +/** + * Suspends or allows an event. If set to `true`, the event is ignored and traffic will be handled based on the waiting room configuration. + * + * @default false + */ +export type EventSuspended = boolean; + +/** + * If set, the event will override the waiting room's `total_active_users` property while it is active. If null, the event will inherit it. This can only be set if the event's `new_users_per_minute` property is also set. + * + * @maximum 2147483647 + * @minimum 200 + */ +export type EventTotalActiveUsers = number | null; + +/** + * Matches everyone. + */ +export type EveryoneRule = { + /** + * An empty object which matches on all users. + * + * @example {} + */ + everyone: Record; +}; + +/** + * Rules evaluated with a NOT logical operator. To match a policy, a user cannot meet any of the Exclude rules. + */ +export type Exclude = Rule[]; + +/** + * Rules evaluated with a NOT logical operator. To match a policy, a user cannot meet any of the Exclude rules. + */ +export type ExcludeW6GORlYf = RuleComponentsSchemasRule[]; + +export type ExcludeRjxLDhaP = SplitTunnel[]; + +/** + * Whether to add Microsoft IPs to split tunnel exclusions. + * + * @example true + */ +export type ExcludeOfficeIps = boolean; + +/** + * If provided, include only tunnels that were created (and not deleted) before this time. + * + * @example 2019-10-12T07:20:50.52Z + * @format date-time + */ +export type ExistedAt = string; + +/** + * A case-insensitive sub-string to look for in the response body. If this string is not found, the origin will be marked as unhealthy. This parameter is only valid for HTTP and HTTPS monitors. + * + * @example alive + */ +export type ExpectedBody = string; + +/** + * The expected HTTP response code or code range of the health check. This parameter is only valid for HTTP and HTTPS monitors. + * + * @default 200 + * @example 2xx + */ +export type ExpectedCodes = string; + +/** + * Sets the expiration time for a posture check result. If empty, the result remains valid until it is overwritten by new data from the WARP client. + * + * @example 1h + */ +export type Expiration = string; + +/** + * The time, measured in number of seconds since the UNIX epoch, at which the key should expire. + * + * @example 1578435000 + */ +export type Expiration4507z3vp = number; + +/** + * The number of seconds for which the key should be visible before it expires. At least 60. + * + * @example 300 + */ +export type ExpirationTtl = number; + +/** + * Date that the Client Certificate expires + * + * @example 2033-02-20T23:18:00Z + */ +export type ExpiredOn = string; + +/** + * Shows when domain name registration expires. + * + * @example 2019-08-28T23:59:59Z + * @format date-time + */ +export type ExpiresAt = string; + +/** + * When the certificate from the authority expires. + * + * @example 2016-01-01T05:20:00Z + * @format date-time + */ +export type ExpiresOn = string; + +/** + * The expiration time on or after which the JWT MUST NOT be accepted for processing. + * + * @example 2020-01-01T00:00:00Z + * @format date-time + */ +export type ExpiresOnZ3utPxP0 = string; + +/** + * The filter expression. For more information, refer to [Expressions](https://developers.cloudflare.com/ruleset-engine/rules-language/expressions/). + * + * @example (http.request.uri.path ~ ".*wp-login.php" or http.request.uri.path ~ ".*xmlrpc.php") and ip.addr ne 172.16.22.155 + */ +export type Expression = string; + +/** + * Indicates whether this plan is managed externally. + * + * @default false + * @example false + */ +export type ExternallyManaged = boolean; + +export type Facebook = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +/** + * Block requests for files that cannot be scanned. + * + * @example false + */ +export type FailClosed = boolean; + +export type FailedLoginResponse = ApiResponseCollection & { + result?: { + expiration?: number; + /** + * @example {"app_name":"Test App","aud":"39691c1480a2352a18ece567debc2b32552686cbd38eec0887aa18d5d3f00c04","datetime":"2022-02-02T21:54:34.914Z","ray_id":"6d76a8a42ead4133","user_email":"test@cloudflare.com","user_uuid":"57171132-e453-4ee8-b2a5-8cbaad333207"} + */ + metadata?: Record; + }[]; +}; + +/** + * The current failure reason if status is unhealthy. + * + * @example + */ +export type FailureReason = string; + +export type FallbackDomain = { + /** + * A description of the fallback domain, displayed in the client UI. + * + * @example Domain bypass for local development + * @maxLength 100 + */ + description?: string; + /** + * A list of IP addresses to handle domain resolution. + */ + dns_server?: any[]; + /** + * The domain suffix to match when resolving locally. + * + * @example example.com + */ + suffix: string; +}; + +export type FallbackDomainResponseCollection = ApiResponseCollection & { + result?: FallbackDomain[]; +}; + +export type FallbackDomains = FallbackDomain[]; + +export type FallbackOriginResponse = ApiResponseSingleZZHeSkIR & { + result?: Record; +}; + +export type FallbackOriginResponse8FEJU4mq = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +/** + * The pool ID to use when all other pools are detected as unhealthy. + */ +export type FallbackPool = void; + +/** + * Contact fax number. + * + * @example 123-867-5309 + */ +export type Fax = string; + +export type FeatureAppProps = { + allowed_idps?: AllowedIdps; + auto_redirect_to_identity?: SchemasAutoRedirectToIdentity; + domain?: Domain; + name?: AppsComponentsSchemasName; + session_duration?: SessionDuration; + type: TypeOK1aJkK3; +}; + +export type FeatureAppPropsC4QFi3fN = { + allowed_idps?: AllowedIdps; + auto_redirect_to_identity?: AutoRedirectToIdentityB0IhfGBw; + domain?: SchemasDomainA7q0ZzCX; + name?: AppsComponentsSchemasName; + session_duration?: SessionDuration; + type?: AppsComponentsSchemasType; +}; + +export type Features = Thresholds | ParameterSchemas; + +/** + * The timestamp of when the script was last fetched. + */ +export type FetchedAt = string | null; + +/** + * Comma-separated list of fields. + * + * @example ClientIP,ClientRequestHost,ClientRequestMethod,ClientRequestURI,EdgeEndTimestamp,EdgeResponseBytes,EdgeResponseStatus,EdgeStartTimestamp,RayID + */ +export type Fields = string; + +export type FieldsResponse = { + /** + * @example value + */ + key?: string; +}; + +/** + * Image file name. + * + * @example logo.png + * @maxLength 32 + */ +export type Filename = string; + +/** + * Filters to drill down into specific events. + * + * @example {"where":{"and":[{"key":"ClientCountry","operator":"neq","value":"ca"}]}} + */ +export type Filter = string; + +export type FilterDeleteResponseCollection = ApiResponseCollection & { + result?: { + description?: FiltersComponentsSchemasDescription; + expression?: Expression; + id: FiltersComponentsSchemasId; + paused?: FiltersComponentsSchemasPaused; + ref?: SchemasRef; + }[]; +}; + +export type FilterDeleteResponseSingle = ApiResponseSingleLarS7owG & { + result: { + description?: FiltersComponentsSchemasDescription; + expression?: Expression; + id: FiltersComponentsSchemasId; + paused?: FiltersComponentsSchemasPaused; + ref?: SchemasRef; + }; +}; + +export type FilterNoId = { + enabled: FiltersComponentsSchemasEnabled; + pattern: SchemasPattern; +}; + +export type FilterResponseCollection = { + errors: Messages; + messages: Messages; + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type FilterResponseSingle = ApiResponseSingleLarS7owG & { + result?: FiltersGBQgbSgB; +}; + +export type FilterRuleBase = { + action?: ComponentsSchemasAction; + description?: FirewallRulesComponentsSchemasDescription; + id?: FirewallRulesComponentsSchemasId; + paused?: ComponentsSchemasPaused; + priority?: FirewallRulesComponentsSchemasPriority; + products?: Products; + ref?: Ref; +}; + +export type FilterRuleResponse = FilterRuleBase & { + filter?: FilterYvYniAZC | DeletedFilter; +}; + +export type FilterRulesResponseCollection = ApiResponseCollection & { + result: (FilterRuleResponse & Record)[]; +}; + +export type FilterRulesResponseCollectionDelete = ApiResponseCollection & { + result: (FilterRuleResponse & Record)[]; +}; + +export type FilterRulesSingleResponse = ApiResponseSingleLarS7owG & { + result: FilterRuleResponse & Record; +}; + +export type FilterRulesSingleResponseDelete = ApiResponseSingleLarS7owG & { + result: FilterRuleResponse & Record; +}; + +export type FilterYvYniAZC = { + description?: FiltersComponentsSchemasDescription; + expression?: Expression; + id?: FiltersComponentsSchemasId; + paused?: FiltersComponentsSchemasPaused; + ref?: SchemasRef; +}; + +/** + * Filter options for a particular resource type (pool or origin). Use null to reset. + */ +export type FilterOptions = { + /** + * If set true, disable notifications for this type of resource (pool or origin). + * + * @default false + */ + disable?: boolean; + /** + * If present, send notifications only for this health status (e.g. false for only DOWN events). Use null to reset (all events). + */ + healthy?: boolean | null; +} | null; + +/** + * Segmentation filter in 'attribute operator value' format. + * + * @example responseCode==NOERROR,queryType==A + */ +export type Filters = string; + +/** + * The protocol or layer to evaluate the traffic, identity, and device posture expressions. + * + * @example http + */ +export type FiltersUTAknCFs = ('http' | 'dns' | 'l4' | 'egress')[]; + +export type FiltersGBQgbSgB = { + enabled: FiltersComponentsSchemasEnabled; + id: CommonComponentsSchemasIdentifier; + pattern: SchemasPattern; +}; + +/** + * An informative summary of the filter. + * + * @example Restrict access from these browsers on this address range. + * @maxLength 500 + */ +export type FiltersComponentsSchemasDescription = string; + +/** + * @example true + */ +export type FiltersComponentsSchemasEnabled = boolean; + +/** + * The unique identifier of the filter. + * + * @example 372e67954025e0ba6aaa6d586b9e0b61 + * @maxLength 32 + * @minLength 32 + */ +export type FiltersComponentsSchemasId = string; + +/** + * When true, indicates that the filter is currently paused. + * + * @example false + */ +export type FiltersComponentsSchemasPaused = boolean; + +/** + * The MD5 fingerprint of the certificate. + * + * @example MD5 Fingerprint=1E:80:0F:7A:FD:31:55:96:DE:D5:CB:E2:F0:91:F6:91 + */ +export type Fingerprint = string; + +/** + * Unique identifier of the Client Certificate + * + * @example 256c24690243359fb8cf139a125bd05ebf1d968b71e4caf330718e9f5c8a89ea + */ +export type FingerprintSha256 = string; + +/** + * FIPS settings. + */ +export type FipsSettings = { + /** + * Enable only cipher suites and TLS versions compliant with FIPS 140-2. + * + * @example true + */ + tls?: boolean; +}; + +/** + * An informative summary of the firewall rule. + * + * @example Blocks traffic identified during investigation for MIR-31 + * @maxLength 500 + */ +export type FirewallRulesComponentsSchemasDescription = string; + +/** + * The unique identifier of the firewall rule. + * + * @example 372e67954025e0ba6aaa6d586b9e0b60 + * @maxLength 32 + */ +export type FirewallRulesComponentsSchemasId = string; + +/** + * The priority of the rule. Optional value used to define the processing order. A lower number indicates a higher priority. If not provided, rules with a defined priority will be processed before rules without a priority. + * + * @example 50 + * @maximum 2147483647 + * @minimum 0 + */ +export type FirewallRulesComponentsSchemasPriority = number; + +export type Firewalluablock = { + configuration?: ComponentsSchemasConfiguration; + description?: UaRulesComponentsSchemasDescription; + id?: UaRulesComponentsSchemasId; + mode?: UaRulesComponentsSchemasMode; + paused?: SchemasPaused; +}; + +export type FirewalluablockResponseCollection = ApiResponseCollection & { + result?: UaRules[]; +}; + +export type FirewalluablockResponseSingle = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +/** + * User's first name + * + * @example John + * @maxLength 60 + */ +export type FirstName = string | null; + +/** + * The fit property describes how the width and height dimensions should be interpreted. + * + * @example scale-down + */ +export type Fit = 'scale-down' | 'contain' | 'cover' | 'crop' | 'pad'; + +/** + * The log retention flag for Logpull API. + * + * @example true + */ +export type Flag = boolean; + +export type FlagResponse = ApiResponseSingleLarS7owG & { + result?: { + /** + * @example true + */ + flag?: boolean; + }; +}; + +/** + * Flag for DNSSEC record. + * + * @example 257 + */ +export type Flags = number | null; + +/** + * Follow redirects if returned by the origin. This parameter is only valid for HTTP and HTTPS monitors. + * + * @default false + * @example true + */ +export type FollowRedirects = boolean; + +export type ForceResponse = ApiResponseSingleWkFwqHKI & { + result?: ForceResult; +}; + +/** + * When force_axfr query parameter is set to true, the response is a simple string + * + * @example OK + */ +export type ForceResult = string; + +/** + * The frequency at which Cloudflare sends batches of logs to your destination. Setting frequency to high sends your logs in larger quantities of smaller files. Setting frequency to low sends logs in smaller quantities of larger files. + * + * @default high + * @example high + */ +export type Frequency = 'high' | 'low' | null; + +/** + * How often the subscription is renewed automatically. + * + * @example monthly + */ +export type FrequencyATMhv5XI = 'weekly' | 'monthly' | 'quarterly' | 'yearly'; + +export type FullResponse = ApiResponseSingleZ04EBmfK & { + result?: AddressMaps & { + ips?: SchemasIps; + memberships?: Memberships; + }; +}; + +export type FullResponseVrSr0rHM = ApiResponseSingleLarS7owG & { + result?: AddressMapsTAVtBJaW & { + ips?: Ips9iuFUAPm; + memberships?: Memberships; + }; +}; + +export type GatewayAccountDeviceSettings = { + /** + * Enable gateway proxy filtering on TCP. + * + * @example true + */ + gateway_proxy_enabled?: boolean; + /** + * Enable gateway proxy filtering on UDP. + * + * @example true + */ + gateway_udp_proxy_enabled?: boolean; +}; + +export type GatewayAccountDeviceSettingsResponse = ApiResponseSingleI8cJ1fX8 & { + result?: GatewayAccountDeviceSettings; +}; + +export type GatewayAccountLoggingSettings = { + /** + * Redact personally identifiable information from activity logging (PII fields are: source IP, user email, user ID, device ID, URL, referrer, user agent). + * + * @example true + */ + redact_pii?: boolean; + /** + * Logging settings by rule type. + */ + settings_by_rule_type?: { + /** + * Logging settings for DNS firewall. + */ + dns?: Record; + /** + * Logging settings for HTTP/HTTPS firewall. + */ + http?: Record; + /** + * Logging settings for Network firewall. + */ + l4?: Record; + }; +}; + +export type GatewayAccountLoggingSettingsResponse = ApiResponseSingleVxjnpV7r & { + result?: GatewayAccountLoggingSettings; +}; + +/** + * account settings. + */ +export type GatewayAccountSettings = { + /** + * account settings. + */ + settings?: { + activity_log?: ActivityLogSettings; + antivirus?: AntiVirusSettings; + block_page?: BlockPageSettings; + body_scanning?: BodyScanningSettings; + browser_isolation?: BrowserIsolationSettings; + custom_certificate?: CustomCertificateSettings; + fips?: FipsSettings; + tls_decrypt?: TlsSettings; + }; +}; + +export type GatewayAccount = ApiResponseSingleVxjnpV7r & { + result?: { + gateway_tag?: GatewayTag; + id?: CfAccountId; + provider_name?: ProviderName; + }; +}; + +export type GatewayAccountConfig = ApiResponseSingleVxjnpV7r & { + /** + * account settings. + */ + result?: GatewayAccountSettings & { + created_at?: Timestamp; + updated_at?: Timestamp; + }; +}; + +/** + * True if the seat is part of Gateway. + * + * @example false + */ +export type GatewaySeat = boolean; + +/** + * Gateway internal id. + * + * @example f174e90afafe4643bbbc4a0ed4fc8415 + * @maxLength 32 + */ +export type GatewayTag = string; + +/** + * @example 699d98642c564d2e855e9661899b7252 + */ +export type GatewayUniqueId = string; + +export type GenericOauthConfig = { + /** + * Your OAuth Client ID + * + * @example + */ + client_id?: string; + /** + * Your OAuth Client Secret + * + * @example + */ + client_secret?: string; +}; + +/** + * Specify the region where your private key can be held locally for optimal TLS performance. HTTPS connections to any excluded data center will still be fully encrypted, but will incur some latency while Keyless SSL is used to complete the handshake with the nearest allowed data center. Options allow distribution to only to U.S. data centers, only to E.U. data centers, or only to highest security data centers. Default distribution is to all Cloudflare datacenters, for optimal performance. + */ +export type GeoRestrictions = { + /** + * @example us + */ + label?: 'us' | 'eu' | 'highest_security'; +}; + +export type GetZoneConnectionResponse = Connection; + +export type GetZonePolicyResponse = PageshieldPolicy; + +export type GetZoneScriptResponse = Script & { + /** + * @example {"fetched_at":"2021-08-18T10:51:08Z","hash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b423","js_integrity_score":2} + */ + versions?: Version[] | null; +}; + +export type GetZoneSettingsResponse = { + enabled?: Enabled; + updated_at?: UpdatedAt; + use_cloudflare_reporting_endpoint?: UseCloudflareReportingEndpoint; + use_connection_url_path?: UseConnectionUrlPath; +}; + +export type GetOwnershipResponse = { + errors: Messages; + messages: Messages; + result: + | { + /** + * @example logs/challenge-filename.txt + */ + filename?: string; + /** + * @example + */ + message?: string; + /** + * @example true + */ + valid?: boolean; + } + | any[] + | string + | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type GetResponse = ApiResponseCollection & ZoneMetadata; + +export type GetSettingsResponse = ApiResponseSingleUypB4bgI & { + result?: { + /** + * @example EmpOvSXw8BfbrGCi0fhGiD/3yXk2SiV1Nzg2lru3oj0= + */ + public_key: string | null; + }; +}; + +export type GetSettingsResponseGLRUxD06 = ApiResponseSingleLarS7owG & { + result?: { + /** + * @example EmpOvSXw8BfbrGCi0fhGiD/3yXk2SiV1Nzg2lru3oj0= + */ + public_key: string | null; + }; +}; + +export type Github = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +/** + * Matches a Github organization. + * Requires a Github identity provider. + */ +export type GithubOrganizationRule = { + ['github-organization']: { + /** + * The ID of your Github identity provider. + * + * @example ea85612a-29c8-46c2-bacb-669d65136971 + */ + connection_id: string; + /** + * The name of the organization. + * + * @example cloudflare + */ + name: string; + }; +}; + +export type Google = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +export type GoogleApps = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig & { + /** + * Your companies TLD + * + * @example mycompany.com + */ + apps_domain?: string; + }; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +/** + * @example {"read":true,"write":false} + */ +export type Grants = { + /** + * @example true + */ + read?: boolean; + /** + * @example true + */ + write?: boolean; +}; + +/** + * The configuration specific to GRE interconnects. + */ +export type Gre = { + /** + * The IP address assigned to the Cloudflare side of the GRE tunnel created as part of the Interconnect. + * + * @example 203.0.113.1 + */ + cloudflare_endpoint?: string; +}; + +export type GreTunnel = { + cloudflare_gre_endpoint: CloudflareGreEndpoint; + created_on?: SchemasCreatedOn; + customer_gre_endpoint: CustomerGreEndpoint; + description?: SchemasDescriptionVR40R5E7; + health_check?: HealthCheck; + id?: SchemasIdentifierRYBwrxr7; + interface_address: InterfaceAddress; + modified_on?: SchemasModifiedOn; + mtu?: Mtu; + name: NameBTvYm8cQ; + ttl?: Ttl; +}; + +export type Group = { + description?: GroupComponentsSchemasDescription; + id?: GroupComponentsSchemasIdentifier; + modified_rules_count?: ModifiedRulesCount; + name?: GroupComponentsSchemasName; + package_id?: PackageComponentsSchemasIdentifier; + rules_count?: RulesCount; +}; + +/** + * An informative summary of what the rule group does. + * + * @example Group designed to protect against IP addresses that are a threat and typically used to launch DDoS attacks + */ +export type GroupComponentsSchemasDescription = string | null; + +/** + * The unique identifier of the rule group. + * + * @example de677e5818985db1285d0e80225f06e5 + * @maxLength 32 + */ +export type GroupComponentsSchemasIdentifier = string; + +/** + * The name of the rule group. + * + * @example Project Honey Pot + */ +export type GroupComponentsSchemasName = string; + +export type Groups = { + created_at?: Timestamp; + exclude?: Exclude; + id?: SchemasUuid; + include?: Include; + name?: ComponentsSchemasNameUYr2s0a0; + require?: Require; + updated_at?: Timestamp; +}; + +/** + * An object that allows you to enable or disable WAF rule groups for the current WAF override. Each key of this object must be the ID of a WAF rule group, and each value must be a valid WAF action (usually `default` or `disable`). When creating a new URI-based WAF override, you must provide a `groups` object or a `rules` object. + * + * @example {"ea8687e59929c1fd05ba97574ad43f77":"default"} + */ +export type Groups19vIuPeV = { + [key: string]: any; +}; + +export type GroupsComponentsSchemasIdResponse = ApiResponseSingleLarS7owG & { + result?: { + id?: SchemasUuid; + }; +}; + +/** + * The name of the Access group. + * + * @example Allow devs + */ +export type GroupsComponentsSchemasName = string; + +export type GroupsComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: SchemasGroups[]; +}; + +export type GroupsComponentsSchemasSingleResponse = ApiResponseSingleLarS7owG & { + result?: SchemasGroups; +}; + +/** + * Matches a group in Google Workspace. + * Requires a Google Workspace identity provider. + */ +export type GsuiteGroupRule = { + gsuite: { + /** + * The ID of your Google Workspace identity provider. + * + * @example ea85612a-29c8-46c2-bacb-669d65136971 + */ + connection_id: string; + /** + * The email of the Google Workspace group. + * + * @example devs@cloudflare.com + */ + email: string; + }; +}; + +/** + * HTTP/2 Edge Prioritization optimises the delivery of resources served through HTTP/2 to improve page load performance. It also supports fine control of content delivery when used in conjunction with Workers. + */ +export type H2Prioritization = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example h2_prioritization + */ + id: 'h2_prioritization'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: H2PrioritizationValue; +}; + +/** + * Value of the zone setting. + * + * @default off + */ +export type H2PrioritizationValue = 'on' | 'off' | 'custom'; + +/** + * The computed hash of the analyzed script. + * + * @maxLength 64 + * @minLength 64 + */ +export type Hash = string | null; + +/** + * The HTTP request headers to send in the health check. It is recommended you set a Host header by default. The User-Agent header cannot be overridden. This parameter is only valid for HTTP and HTTPS monitors. + * + * @example {"Host":["example.com"],"X-App-ID":["abc123"]} + */ +export type Header = Record; + +/** + * The name of the response header to match. + * + * @example Cf-Cache-Status + */ +export type HeaderName = string; + +/** + * The operator used when matching: `eq` means "equal" and `ne` means "not equal". + * + * @example ne + */ +export type HeaderOp = 'eq' | 'ne'; + +/** + * The value of the response header, which must match exactly. + * + * @example HIT + */ +export type HeaderValue = string; + +export type HealthCheck = { + /** + * Determines whether to run healthchecks for a tunnel. + * + * @default true + * @example true + */ + enabled?: boolean; + /** + * How frequent the health check is run. The default value is `mid`. + * + * @default mid + * @example low + */ + rate?: 'low' | 'mid' | 'high'; + /** + * The destination address in a request type health check. After the healthcheck is decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded to this address. This field defaults to `customer_gre_endpoint address`. + * + * @example 203.0.113.1 + */ + target?: string; + /** + * The type of healthcheck to run, reply or request. The default value is `reply`. + * + * @default reply + * @example request + */ + type?: 'reply' | 'request'; +}; + +export type HealthDetails = ApiResponseSingleUl1k90Mw & { + /** + * A list of regions from which to run health checks. Null means every Cloudflare data center. + * + * @example {"pool_id":"17b5962d775c646f3f9725cbc7a53df4","pop_health":{"Amsterdam, NL":{"healthy":true,"origins":[{"2001:DB8::5":{"failure_reason":"No failures","healthy":true,"response_code":401,"rtt":"12.1ms"}}]}}} + */ + result?: Record; +}; + +export type HealthDetailsQWO9Uxvr = ApiResponseSingleLarS7owG & { + /** + * A list of regions from which to run health checks. Null means every Cloudflare data center. + * + * @example {"pool_id":"17b5962d775c646f3f9725cbc7a53df4","pop_health":{"Amsterdam, NL":{"healthy":true,"origins":[{"2001:DB8::5":{"failure_reason":"No failures","healthy":true,"response_code":401,"rtt":"12.1ms"}}]}}} + */ + result?: Record; +}; + +export type Healthchecks = { + address?: Address; + check_regions?: CheckRegions; + consecutive_fails?: ConsecutiveFails; + consecutive_successes?: ConsecutiveSuccesses; + created_on?: Timestamp; + description?: DescriptionNNNUBbC7; + failure_reason?: FailureReason; + http_config?: HttpConfig; + id?: Identifier; + interval?: Interval; + modified_on?: Timestamp; + name?: Name8NztOXJ3; + retries?: RetriesZPd5bYtZ; + status?: Status; + suspended?: Suspended; + tcp_config?: TcpConfig; + timeout?: Timeout; + type?: Type; +}; + +/** + * The height of the image in pixels. + */ +export type Height = number; + +/** + * Maximum height in image pixels. + * + * @example 768 + * @minimum 1 + */ +export type HeightHdzALmvb = number; + +/** + * URI to hero variant for an image. + * + * @example https://imagedelivery.net/MTt4OTd0b0w5aj/107b9558-dd06-4bbd-5fef-9c2c16bb7900/hero + * @format uri + */ +export type HeroUrl = string; + +export type History = { + alert_body?: AlertBody; + alert_type?: SchemasAlertType; + description?: HistoryComponentsSchemasDescription; + id?: Uuid; + mechanism?: Mechanism; + mechanism_type?: MechanismType; + name?: HistoryComponentsSchemasName; + sent?: Sent; +}; + +/** + * Description of the notification policy (if present). + * + * @example Universal Certificate validation status, issuance, renewal, and expiration notices + */ +export type HistoryComponentsSchemasDescription = string; + +/** + * Name of the policy. + * + * @example SSL Notification Event Policy + */ +export type HistoryComponentsSchemasName = string; + +/** + * Number of items per page. + * + * @default 25 + * @maximum 1000 + * @minimum 5 + */ +export type HistoryComponentsSchemasPerPage = number; + +export type HistoryComponentsSchemasResponseCollection = ApiResponseCollection & { + /** + * @example {"alert_body":"SSL certificate has expired","alert_type":"universal_ssl_event_type","description":"Universal Certificate validation status, issuance, renewal, and expiration notices.","id":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","mechanism":"test@example.com","mechanism_type":"email","name":"SSL Notification Event Policy","sent":"2021-10-08T17:52:17.571336Z"} + */ + result?: History[]; + /** + * @example {"count":1,"page":1,"per_page":20} + */ + result_info?: Record; +}; + +export type HopResult = { + /** + * An array of node objects. + */ + nodes?: NodeResult[]; + packets_lost?: PacketsLost; + packets_sent?: PacketsSent; + packets_ttl?: PacketsTtl; +}; + +/** + * The keyless SSL name. + * + * @example example.com + * @format hostname + * @maxLength 253 + */ +export type Host = string; + +/** + * RFC3986-compliant host. + * + * @example www.example.com + * @format hostname + * @maxLength 255 + */ +export type HostD2DhpgVX = string; + +/** + * The host name to which the waiting room will be applied (no wildcards). Please do not include the scheme (http:// or https://). The host and path combination must be unique. + * + * @example shop.example.com + */ +export type HostB3JrS1Yy = string; + +/** + * The custom hostname that will point to your hostname via CNAME. + * + * @example app.example.com + * @maxLength 255 + */ +export type Hostname = string; + +export type HostnameAuthenticatedOriginPull = HostnameCertidObject; + +export type HostnameAuthenticatedOriginPull7j0VlcSx = HostnameCertidObjectBCFXjAw3; + +/** + * The hostname certificate. + * + * @example -----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIJAMHAwfXZ5/PWMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV +BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX +aWRnaXRzIFB0eSBMdGQwHhcNMTYwODI0MTY0MzAxWhcNMTYxMTIyMTY0MzAxWjBF +MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50 +ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAwQHoetcl9+5ikGzV6cMzWtWPJHqXT3wpbEkRU9Yz7lgvddmGdtcGbg/1 +CGZu0jJGkMoppoUo4c3dts3iwqRYmBikUP77wwY2QGmDZw2FvkJCJlKnabIRuGvB +KwzESIXgKk2016aTP6/dAjEHyo6SeoK8lkIySUvK0fyOVlsiEsCmOpidtnKX/a+5 +0GjB79CJH4ER2lLVZnhePFR/zUOyPxZQQ4naHf7yu/b5jhO0f8fwt+pyFxIXjbEI +dZliWRkRMtzrHOJIhrmJ2A1J7iOrirbbwillwjjNVUWPf3IJ3M12S9pEewooaeO2 +izNTERcG9HzAacbVRn2Y2SWIyT/18QIDAQABo4GnMIGkMB0GA1UdDgQWBBT/LbE4 +9rWf288N6sJA5BRb6FJIGDB1BgNVHSMEbjBsgBT/LbE49rWf288N6sJA5BRb6FJI +GKFJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV +BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAMHAwfXZ5/PWMAwGA1UdEwQF +MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAHHFwl0tH0quUYZYO0dZYt4R7SJ0pCm2 +2satiyzHl4OnXcHDpekAo7/a09c6Lz6AU83cKy/+x3/djYHXWba7HpEu0dR3ugQP +Mlr4zrhd9xKZ0KZKiYmtJH+ak4OM4L3FbT0owUZPyjLSlhMtJVcoRp5CJsjAMBUG +SvD8RX+T01wzox/Qb+lnnNnOlaWpqu8eoOenybxKp1a9ULzIVvN/LAcc+14vioFq +2swRWtmocBAs8QR9n4uvbpiYvS8eYueDCWMM4fvFfBhaDZ3N9IbtySh3SpFdQDhw +YbjM2rxXiyLGxB4Bol7QTv4zHif7Zt89FReT/NBy4rzaskDJY5L6xmY= +-----END CERTIFICATE----- + */ +export type HostnameAuthenticatedOriginPullComponentsSchemasCertificate = string; + +export type HostnameAuthenticatedOriginPullComponentsSchemasCertificateResponseCollection = ApiResponseCollection & { + result?: HostnameAuthenticatedOriginPull7j0VlcSx[]; +}; + +/** + * Indicates whether hostname-level authenticated origin pulls is enabled. A null value voids the association. + * + * @example true + */ +export type HostnameAuthenticatedOriginPullComponentsSchemasEnabled = boolean | null; + +/** + * The date when the certificate expires. + * + * @example 2100-01-01T05:20:00Z + * @format date-time + */ +export type HostnameAuthenticatedOriginPullComponentsSchemasExpiresOn = string; + +/** + * Certificate identifier tag. + * + * @example 2458ce5a-0c35-4c7f-82c7-8e9487d3ff60 + * @maxLength 36 + */ +export type HostnameAuthenticatedOriginPullComponentsSchemasIdentifier = string; + +/** + * Status of the certificate or the association. + * + * @example active + */ +export type HostnameAuthenticatedOriginPullComponentsSchemasStatus = + | 'initializing' + | 'pending_deployment' + | 'pending_deletion' + | 'active' + | 'deleted' + | 'deployment_timed_out' + | 'deletion_timed_out'; + +export type HostnameAopResponseCollection = ApiResponseCollection & { + result?: HostnameAuthenticatedOriginPull7j0VlcSx[]; +}; + +export type HostnameAopSingleResponse = ApiResponseSingleZZHeSkIR & { + result?: HostnameCertidObject; +}; + +export type HostnameAopSingleResponseYzEPUGqk = ApiResponseSingleLarS7owG & { + result?: HostnameCertidObjectBCFXjAw3; +}; + +export type HostnameAssociation = { + hostnames?: string[]; +}; + +export type HostnameAssociationsResponse = ApiResponseSingleZZHeSkIR & { + result?: HostnameAssociation; +}; + +export type HostnameCertidInput = { + cert_id?: CertId; + enabled?: HostnameAuthenticatedOriginPullComponentsSchemasEnabled; + hostname?: SchemasHostname; +}; + +export type HostnameCertidInputKYvlDdSs = { + cert_id?: HostnameAuthenticatedOriginPullComponentsSchemasIdentifier; + enabled?: HostnameAuthenticatedOriginPullComponentsSchemasEnabled; + hostname?: SchemasHostname; +}; + +export type HostnameCertidObject = { + cert_id?: Identifier; + cert_status?: HostnameAuthenticatedOriginPullComponentsSchemasStatus; + cert_updated_at?: UpdatedAt2oKeN2sz; + cert_uploaded_on?: ComponentsSchemasUploadedOn; + certificate?: HostnameAuthenticatedOriginPullComponentsSchemasCertificate; + created_at?: SchemasCreatedAt; + enabled?: HostnameAuthenticatedOriginPullComponentsSchemasEnabled; + expires_on?: HostnameAuthenticatedOriginPullComponentsSchemasExpiresOn; + hostname?: SchemasHostname; + issuer?: Issuer; + serial_number?: SerialNumber; + signature?: Signature; + status?: HostnameAuthenticatedOriginPullComponentsSchemasStatus; + updated_at?: UpdatedAt2oKeN2sz; +}; + +export type HostnameCertidObjectBCFXjAw3 = { + cert_id?: HostnameAuthenticatedOriginPullComponentsSchemasIdentifier; + cert_status?: HostnameAuthenticatedOriginPullComponentsSchemasStatus; + cert_updated_at?: UpdatedAtOvRg3NFi; + cert_uploaded_on?: ComponentsSchemasUploadedOn; + certificate?: HostnameAuthenticatedOriginPullComponentsSchemasCertificate; + created_at?: SchemasCreatedAt; + enabled?: HostnameAuthenticatedOriginPullComponentsSchemasEnabled; + expires_on?: HostnameAuthenticatedOriginPullComponentsSchemasExpiresOn; + hostname?: SchemasHostname; + issuer?: Issuer; + serial_number?: SerialNumber; + signature?: Signature; + status?: HostnameAuthenticatedOriginPullComponentsSchemasStatus; + updated_at?: UpdatedAtOvRg3NFi; +}; + +/** + * The custom hostname that will point to your hostname via CNAME. + * + * @example app.example.com + * @maxLength 255 + */ +export type HostnamePost = string; + +/** + * Array of hostnames or wildcard names (e.g., *.example.com) bound to the certificate. + * + * @example example.com + * @example *.example.com + */ +export type Hostnames = any[]; + +export type Hosts = string[]; + +/** + * When enabled, the Hotlink Protection option ensures that other sites cannot suck up your bandwidth by building pages that use images hosted on your site. Anytime a request for an image on your site hits Cloudflare, we check to ensure that it's not another site requesting them. People will still be able to download and view images from your page, but other sites won't be able to steal them for use on their own pages. (https://support.cloudflare.com/hc/en-us/articles/200170026). + */ +export type HotlinkProtection = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example hotlink_protection + */ + id: 'hotlink_protection'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: HotlinkProtectionValue; +}; + +/** + * Value of the zone setting. + * + * @default off + */ +export type HotlinkProtectionValue = 'on' | 'off'; + +/** + * HTTP2 enabled for this zone. + */ +export type Http2 = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example http2 + */ + id: 'http2'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: Http2Value; +}; + +/** + * Value of the HTTP2 setting. + * + * @default off + */ +export type Http2Value = 'on' | 'off'; + +/** + * HTTP3 enabled for this zone. + */ +export type Http3 = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example http3 + */ + id: 'http3'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: Http3Value; +}; + +/** + * Value of the HTTP3 setting. + * + * @default off + */ +export type Http3Value = 'on' | 'off'; + +/** + * Parameters specific to an HTTP or HTTPS health check. + */ +export type HttpConfig = { + /** + * Do not validate the certificate when the health check uses HTTPS. + * + * @default false + */ + allow_insecure?: boolean; + /** + * A case-insensitive sub-string to look for in the response body. If this string is not found, the origin will be marked as unhealthy. + * + * @example success + */ + expected_body?: string; + /** + * The expected HTTP response codes (e.g. "200") or code ranges (e.g. "2xx" for all codes starting with 2) of the health check. + * + * @default 200 + * @example 2xx + * @example 302 + */ + expected_codes?: string[] | null; + /** + * Follow redirects if the origin returns a 3xx status code. + * + * @default false + */ + follow_redirects?: boolean; + /** + * The HTTP request headers to send in the health check. It is recommended you set a Host header by default. The User-Agent header cannot be overridden. + * + * @example {"Host":["example.com"],"X-App-ID":["abc123"]} + */ + header?: Record | null; + /** + * The HTTP method to use for the health check. + * + * @default GET + */ + method?: 'GET' | 'HEAD'; + /** + * The endpoint path to health check against. + * + * @default / + * @example /health + */ + path?: string; + /** + * Port number to connect to for the health check. Defaults to 80 if type is HTTP or 443 if type is HTTPS. + * + * @default 80 + */ + port?: number; +} | null; + +/** + * Enables the HttpOnly cookie attribute, which increases security against XSS attacks. + * + * @default true + * @example true + */ +export type HttpOnlyCookieAttribute = boolean; + +/** + * Unique id of the job. + * + * @minimum 1 + */ +export type Id = number; + +/** + * The ID of the CA. + * + * @example 7eddae4619b50ab1361ba8ae9bd72269a432fea041529ed9 + * @maxLength 48 + */ +export type Id4G7SFJfZ = string; + +/** + * The identifier for this category. There is only one category per id. + */ +export type IdWr4kBzDa = number; + +/** + * Identifier of a recommedation result. + * + * @example ssl_recommendation + */ +export type IdBt8zQIzG = string; + +export type IdResponse = ApiResponseSingleZ04EBmfK & { + result?: { + id?: DelegationIdentifier; + }; +}; + +export type IdResponse0zYv01t8 = ApiResponseSingleUl1k90Mw & { + result?: { + id?: IdentifierYmSdxGUH; + }; +}; + +export type IdResponse49rxVYCd = ApiResponseSingleI8cJ1fX8 & { + result?: { + id?: UuidUoyzrwvx; + }; +}; + +export type IdResponseBkIvko3W = ApiResponseSingleWkFwqHKI & { + result?: { + id?: Identifier6txek3jw; + }; +}; + +export type IdResponseBBq1dCvd = ApiResponseSingleLarS7owG & { + result?: { + id?: MonitorComponentsSchemasIdentifier; + }; +}; + +export type IdResponseI7tw1Lck = ApiResponseSingleO4T7cMiV & { + result?: { + id?: Identifier; + }; +}; + +export type IdResponseQOfcO1so = ApiResponseSingleKLIlNaxV & { + result?: { + id?: SchemasUuid; + }; +}; + +/** + * Identifier + * + * @example 023e105f4ecef8ad9ca31a8372d0c353 + * @maxLength 32 + */ +export type Identifier = string; + +/** + * @example 699d98642c564d2e855e9661899b7252 + */ +export type Identifier4iUVdVcr = void; + +/** + * @example 269d8f4853475ca241c4e730be286b20 + */ +export type Identifier6txek3jw = void; + +/** + * Policy identifier. + * + * @example f267e341f3dd4697bd3b9f71dd96247f + */ +export type IdentifierEhp5XJwv = string; + +/** + * A Cloudflare-generated unique identifier for a media item. + * + * @example ea95132c15732412d22c1476fa83f27a + * @maxLength 32 + */ +export type IdentifierKW7g5KGL = string; + +/** + * Identifier + * + * @example 023e105f4ecef8ad9ca31a8372d0c353 + * @maxLength 32 + */ +export type IdentifierY35LcWMV = string; + +/** + * @example f1aba936b94213e5b8dca0c0dbf1f9cc + */ +export type IdentifierYmSdxGUH = void; + +export type IdentifierA7Wi2jzJ = string; + +/** + * @example 699d98642c564d2e855e9661899b7252 + */ +export type IdentifierOTCaIgPs = void; + +/** + * Account identifier tag. + * + * @example 372e67954025e0ba6aaa6d586b9e0b59 + * @maxLength 32 + */ +export type IdentifierQ5PXAdjT = string; + +/** + * @example 699d98642c564d2e855e9661899b7252 + */ +export type IdentifierUwBKGNkE = void; + +/** + * The wirefilter expression to be used for identity matching. + * + * @example any(identity.groups.name[*] in {"finance"}) + */ +export type Identity = string; + +export type IdentityProvider = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: Record; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +export type IdentityProviders = + | AzureAD + | Centrify + | Facebook + | Github + | Google + | GoogleApps + | Linkedin + | Oidc + | Okta + | Onelogin + | Pingone + | Saml + | Yandex; + +export type IdentityProvidersD6lP78R4 = { + config?: SchemasConfig; + id?: Uuid; + name?: IdentityProvidersComponentsSchemasName; + type?: IdentityProvidersComponentsSchemasType; +}; + +/** + * The name of the identity provider, shown to users on the login page. + * + * @example Widget Corps OTP + */ +export type IdentityProvidersComponentsSchemasName = string; + +export type IdentityProvidersComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: ( + | SchemasAzureAD + | SchemasCentrify + | SchemasFacebook + | SchemasGithub + | SchemasGoogle + | SchemasGoogleApps + | SchemasLinkedin + | SchemasOidc + | SchemasOkta + | SchemasOnelogin + | SchemasPingone + | SchemasSaml + | SchemasYandex + )[]; +}; + +export type IdentityProvidersComponentsSchemasResponseCollectionBXesFUJJ = ApiResponseCollection & { + result?: IdentityProvidersD6lP78R4[]; +}; + +export type IdentityProvidersComponentsSchemasSingleResponse = ApiResponseSingleKLIlNaxV & { + result?: SchemasIdentityProviders; +}; + +export type IdentityProvidersComponentsSchemasSingleResponseIlfaxGl3 = ApiResponseSingleLarS7owG & { + result?: IdentityProvidersD6lP78R4; +}; + +/** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ +export type IdentityProvidersComponentsSchemasType = string; + +export type ImageBasicUploadViaUrl = { + /** + * User modifiable key-value store. Can use used for keeping references to another system of record for managing images. + */ + metadata?: Record; + /** + * Indicates whether the image requires a signature token for the access. + * + * @default false + * @example true + */ + requireSignedURLs?: boolean; + /** + * A URL to fetch an image from origin. + * + * @example https://example.com/path/to/logo.png + */ + url: string; +}; + +export type ImagePatchRequest = { + /** + * User modifiable key-value store. Can be used for keeping references to another system of record for managing images. No change if not specified. + */ + metadata?: Record; + /** + * Indicates whether the image can be accessed using only its UID. If set to `true`, a signed token needs to be generated with a signing key to view the image. Returns a new UID on a change. No change if not specified. + * + * @example true + */ + requireSignedURLs?: boolean; +}; + +/** + * Image Resizing provides on-demand resizing, conversion and optimisation for images served through Cloudflare's network. Refer to the [Image Resizing documentation](https://developers.cloudflare.com/images/) for more information. + */ +export type ImageResizing = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example image_resizing + */ + id: 'image_resizing'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: ImageResizingValue; +}; + +/** + * Whether the feature is enabled, disabled, or enabled in `open proxy` mode. + * + * @default off + */ +export type ImageResizingValue = 'on' | 'off' | 'open'; + +/** + * @example + */ +export type ImageResponseBlob = string | Record; + +export type ImageResponseCollection = ApiResponseCollection & { + result?: Images[]; +}; + +export type ImageResponseSingle = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type Images = { + filename?: Filename; + id?: ImagesComponentsSchemasIdentifier; + metadata?: Metadata; + requireSignedURLs?: RequireSignedURLsT5ww2QVG; + uploaded?: UploadedYGkLPeev; + variants?: SchemasVariants; +}; + +/** + * Image unique identifier. + * + * @example 107b9558-dd06-4bbd-5fef-9c2c16bb7900 + * @maxLength 32 + */ +export type ImagesComponentsSchemasIdentifier = string; + +export type ImagesCount = { + allowed?: Allowed26ctRtQW; + current?: Current; +}; + +export type ImagesStats = { + count?: ImagesCount; +}; + +/** + * Rules evaluated with an OR logical operator. A user needs to meet only one of the Include rules. + */ +export type Include = Rule[]; + +/** + * Rules evaluated with an OR logical operator. A user needs to meet only one of the Include rules. + */ +export type IncludeRuTbCgSD = RuleComponentsSchemasRule[]; + +export type IncludeFVRZ2Ny8 = SplitTunnelInclude[]; + +/** + * The value to be checked against. + */ +export type Input = { + checkDisks?: CheckDisks; + id?: UuidUoyzrwvx; + requireAll?: RequireAll; +}; + +export type InputOZLZZB6G = { + /** + * The video height in pixels. A value of `-1` means the height is unknown. The value becomes available after the upload and before the video is ready. + */ + height?: number; + /** + * The video width in pixels. A value of `-1` means the width is unknown. The value becomes available after the upload and before the video is ready. + */ + width?: number; +}; + +/** + * The value to be checked against. + */ +export type InputZcd2nhY2 = { + id?: DevicePostureRulesComponentsSchemasUuid; +}; + +/** + * Details for streaming to an live input using RTMPS. + */ +export type InputRtmps = { + streamKey?: InputRtmpsStreamKey; + url?: InputRtmpsUrl; +}; + +/** + * The secret key to use when streaming via RTMPS to a live input. + * + * @example 2fb3cb9f17e68a2568d6ebed8d5505eak3ceaf8c9b1f395e1b76b79332497cada + */ +export type InputRtmpsStreamKey = string; + +/** + * The RTMPS URL you provide to the broadcaster, which they stream live video to. + * + * @example rtmps://live.cloudflare.com:443/live/ + */ +export type InputRtmpsUrl = string; + +/** + * Details for streaming to a live input using SRT. + */ +export type InputSrt = { + passphrase?: InputSrtStreamPassphrase; + streamId?: InputSrtStreamId; + url?: InputSrtUrl; +}; + +/** + * The identifier of the live input to use when streaming via SRT. + * + * @example f256e6ea9341d51eea64c9454659e576 + */ +export type InputSrtStreamId = string; + +/** + * The secret key to use when streaming via SRT to a live input. + * + * @example 2fb3cb9f17e68a2568d6ebed8d5505eak3ceaf8c9b1f395e1b76b79332497cada + */ +export type InputSrtStreamPassphrase = string; + +/** + * The SRT URL you provide to the broadcaster, which they stream live video to. + * + * @example srt://live.cloudflare.com:778 + */ +export type InputSrtUrl = string; + +/** + * Details for streaming to a live input using WebRTC. + */ +export type InputWebrtc = { + url?: InputWebrtcUrl; +}; + +/** + * The WebRTC URL you provide to the broadcaster, which they stream live video to. + * + * @example https://customer-m033z5x00ks6nunl.cloudflarestream.com/b236bde30eb07b9d01318940e5fc3edake34a3efb3896e18f2dc277ce6cc993ad/webRTC/publish + */ +export type InputWebrtcUrl = string; + +/** + * app install id. + */ +export type InstallId = string; + +export type InstantLogsJob = { + destination_conf?: SchemasDestinationConf; + fields?: Fields; + filter?: Filter; + sample?: Sample; + session_id?: SessionId; +} | null; + +export type InstantLogsJobResponseCollection = { + errors: Messages; + messages: Messages; + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type InstantLogsJobResponseSingle = ApiResponseSingleJE9eFdPt & { + result?: InstantLogsJob; +}; + +/** + * An entry derived from an integration + */ +export type IntegrationEntry = { + created_at?: Timestamp; + /** + * Whether the entry is enabled or not. + * + * @example true + */ + enabled?: boolean; + id?: EntryId; + /** + * The name of the entry. + * + * @example Top Secret + */ + name?: string; + /** + * ID of the parent profile + */ + profile_id?: void; + updated_at?: Timestamp; +}; + +export type IntegrationProfile = { + created_at?: Timestamp; + /** + * The description of the profile. + */ + description?: string; + /** + * The entries for this profile. + */ + entries?: IntegrationEntry[]; + id?: ProfileId; + /** + * The name of the profile. + * + * @example MIP Sensitivity Labels: Profile 1 + */ + name?: string; + /** + * The type of the profile. + * + * @example integration + */ + type?: 'integration'; + updated_at?: Timestamp; +}; + +export type Interconnect = { + colo_name?: ComponentsSchemasName; + created_on?: SchemasCreatedOn; + description?: InterconnectComponentsSchemasDescription; + gre?: Gre; + health_check?: SchemasHealthCheck; + id?: SchemasIdentifierRYBwrxr7; + interface_address?: InterfaceAddress; + modified_on?: SchemasModifiedOn; + mtu?: SchemasMtu; + name?: ComponentsSchemasName; +}; + +/** + * An optional description of the interconnect. + * + * @example Tunnel for Interconnect to ORD + */ +export type InterconnectComponentsSchemasDescription = string; + +/** + * A 31-bit prefix (/31 in CIDR notation) supporting two hosts, one for each side of the tunnel. Select the subnet from the following private IP space: 10.0.0.0–10.255.255.255, 172.16.0.0–172.31.255.255, 192.168.0.0–192.168.255.255. + * + * @example 192.0.2.0/31 + */ +export type InterfaceAddress = string; + +/** + * The interval between each health check. Shorter intervals may give quicker notifications if the origin status changes, but will increase load on the origin as we check from multiple locations. + * + * @default 60 + */ +export type Interval = number; + +/** + * The interval between each posture check with the third party API. Use "m" for minutes (e.g. "5m") and "h" for hours (e.g. "12h"). + * + * @example 10m + */ +export type IntervalCy0QprOB = string; + +/** + * The interval between each health check. Shorter intervals may improve failover time, but will increase load on the origins as we check from multiple locations. + * + * @default 60 + */ +export type IntervalHvanFWV2 = number; + +/** + * The interval between each health check. Shorter intervals may improve failover time, but will increase load on the origins as we check from multiple locations. + * + * @default 60 + */ +export type IntervalLx3GfHR3 = number; + +export type IntuneConfigRequest = { + /** + * The Intune client ID. + * + * @example example client id + */ + client_id: string; + /** + * The Intune client secret. + * + * @example example client secret + */ + client_secret: string; + /** + * The Intune customer ID. + * + * @example example customer id + */ + customer_id: string; +}; + +export type Invite = OrganizationInvite; + +/** + * Invite identifier tag. + * + * @example 4f5f0c14a2a41d5063dd301b2f829f04 + * @maxLength 32 + */ +export type InviteComponentsSchemasIdentifier = string; + +/** + * The email address of the user who created the invite. + * + * @example user@example.com + * @maxLength 90 + */ +export type InvitedBy = string; + +/** + * Email address of the user to add to the organization. + * + * @example user@example.com + * @maxLength 90 + */ +export type InvitedMemberEmail = string; + +/** + * When the invite was sent. + * + * @example 2014-01-01T05:20:00Z + * @format date-time + */ +export type InvitedOn = string; + +/** + * An IPv4 or IPv6 address. + * + * @example 192.0.2.1 + */ +export type Ip = string; + +/** + * IPv4/IPv6 address of primary or secondary nameserver, depending on what zone this peer is linked to. For primary zones this IP defines the IP of the secondary nameserver Cloudflare will NOTIFY upon zone changes. For secondary zones this IP defines the IP of the primary nameserver Cloudflare will send AXFR/IXFR requests to. + * + * @example 192.0.2.53 + */ +export type Ip6EYJJOTh = string; + +/** + * IPV6 destination ip assigned to this location. DNS requests sent to this IP will counted as the request under this location. (auto-generated). + * + * @example 2001:0db8:85a3:0000:0000:8a2e:0370:7334 + */ +export type IpCcOd8dAo = string; + +export type IpList = { + description?: string; + id?: number; + /** + * @example Malware + */ + name?: string; +}; + +/** + * IPv4 or IPv6 address. + * + * @example 1.1.1.1 + */ +export type IpMKmJkd3b = string; + +/** + * The IP address of the authenticating user. + * + * @example 198.41.129.166 + */ +export type IpRSepkSnX = string; + +/** + * An IPv4 or IPv6 address. + * + * @example 192.0.2.1 + */ +export type IpAddress = string; + +export type IpComponentsSchemasIp = { + /** + * Specifies a reference to the autonomous systems (AS) that the IP address belongs to. + */ + belongs_to_ref?: { + /** + * @example US + */ + country?: string; + /** + * @example CLOUDFLARENET + */ + description?: string; + /** + * @example autonomous-system--2fa28d71-3549-5a38-af05-770b79ad6ea8 + */ + id?: void; + /** + * Infrastructure type of this ASN. + * + * @example hosting_provider + */ + type?: 'hosting_provider' | 'isp' | 'organization'; + value?: string; + }; + ip?: CommonComponentsSchemasIp; + /** + * @example {"id":131,"name":"Phishing","super_category_id":21} + */ + risk_types?: void; +}; + +export type IpConfiguration = { + /** + * The configuration target. You must set the target to `ip` when specifying an IP address in the rule. + * + * @example ip + */ + target?: 'ip'; + /** + * The IP address to match. This address will be compared to the IP address of incoming requests. + * + * @example 198.51.100.4 + */ + value?: string; +}; + +/** + * Enables IP Access Rules for this application. + * Notes: Only available for TCP applications. + * + * @example true + */ +export type IpFirewall = boolean; + +/** + * Enable IP Geolocation to have Cloudflare geolocate visitors to your website and pass the country code to you. (https://support.cloudflare.com/hc/en-us/articles/200168236). + */ +export type IpGeolocation = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example ip_geolocation + */ + id: 'ip_geolocation'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: IpGeolocationValue; +}; + +/** + * Value of the zone setting. + * + * @default on + */ +export type IpGeolocationValue = 'on' | 'off'; + +/** + * Matches an IP address from a list. + */ +export type IpListRule = { + ip_list: { + /** + * The ID of a previously created IP list. + * + * @example aa0a4aab-672b-4bdb-bc33-a59f1130a11f + */ + id: string; + }; +}; + +/** + * The private IPv4 or IPv6 range connected by the route, in CIDR notation. + * + * @example 172.16.0.0/16 + */ +export type IpNetwork = string; + +/** + * IP/CIDR range in URL-encoded format + * + * @example 172.16.0.0%2F16 + */ +export type IpNetworkEncoded = string; + +/** + * Allowed IPv4/IPv6 address range of primary or secondary nameservers. This will be applied for the entire account. The IP range is used to allow additional NOTIFY IPs for secondary zones and IPs Cloudflare allows AXFR/IXFR requests from for primary zones. CIDRs are limited to a maximum of /24 for IPv4 and /64 for IPv6 respectively. + * + * @example 192.0.2.53/28 + */ +export type IpRange = string; + +/** + * A single IP address range to search for in existing rules. + * + * @example 1.2.3.0/16 + */ +export type IpRangeSearch = string; + +/** + * Matches an IP address block. + */ +export type IpRule = { + ip: { + /** + * An IPv4 or IPv6 CIDR block. + * + * @example 2400:cb00:21:10a::/64 + */ + ip: string; + }; +}; + +/** + * A single IP address to search for in existing rules. + * + * @example 1.2.3.4 + */ +export type IpSearch = string; + +export type IpamDelegations = { + cidr?: Cidr; + created_at?: Timestamp; + delegated_account_id?: DelegatedAccountIdentifier; + id?: DelegationIdentifier; + modified_at?: Timestamp; + parent_prefix_id?: Identifier; +}; + +export type IpamDelegationsGltFXre0 = { + cidr?: Cidr; + created_at?: Timestamp; + delegated_account_id?: DelegatedAccountIdentifier4pd98LdN; + id?: DelegationIdentifier; + modified_at?: Timestamp; + parent_prefix_id?: CommonComponentsSchemasIdentifier; +}; + +export type IpamDelegationsComponentsSchemasIdResponse = ApiResponseSingleLarS7owG & { + result?: { + id?: DelegationIdentifier; + }; +}; + +export type IpamDelegationsComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: IpamDelegationsGltFXre0[]; +}; + +export type IpamDelegationsComponentsSchemasSingleResponse = ApiResponseSingleLarS7owG & { + result?: IpamDelegationsGltFXre0; +}; + +export type IpamPrefixes = { + account_id?: Identifier; + advertised?: Advertised; + advertised_modified_at?: ModifiedAtNullable; + approved?: Approved; + asn?: Asn; + cidr?: Cidr; + created_at?: Timestamp; + description?: Description; + id?: Identifier; + loa_document_id?: LoaDocumentIdentifier; + modified_at?: Timestamp; + on_demand_enabled?: OnDemandEnabled; + on_demand_locked?: OnDemandLocked; +}; + +export type IpamPrefixesUvf9zgla = { + account_id?: CommonComponentsSchemasIdentifier; + advertised?: Advertised; + advertised_modified_at?: ModifiedAtNullable; + approved?: Approved; + asn?: AsnT2U9T8kj; + cidr?: Cidr; + created_at?: Timestamp; + description?: IpamPrefixesComponentsSchemasDescription; + id?: CommonComponentsSchemasIdentifier; + loa_document_id?: LoaDocumentIdentifierGtDvyfh0; + modified_at?: Timestamp; + on_demand_enabled?: OnDemandEnabled; + on_demand_locked?: OnDemandLocked; +}; + +/** + * Description of the prefix. + * + * @example Internal test prefix + * @maxLength 1000 + */ +export type IpamPrefixesComponentsSchemasDescription = string; + +export type IpamPrefixesComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: IpamPrefixesUvf9zgla[]; +}; + +export type IpamPrefixesComponentsSchemasSingleResponse = ApiResponseSingleLarS7owG & { + result?: IpamPrefixesUvf9zgla; +}; + +export type Ips = { + /** + * A digest of the IP data. Useful for determining if the data has changed. + * + * @example a8e453d9d129a3769407127936edfdb0 + */ + etag?: string; + /** + * List of Cloudflare IPv4 CIDR addresses. + */ + ipv4_cidrs?: string[]; + /** + * List of Cloudflare IPv6 CIDR addresses. + */ + ipv6_cidrs?: string[]; +}; + +/** + * The set of IPs on the Address Map. + */ +export type Ips9iuFUAPm = AddressMapsIpSOzzPbBz[]; + +/** + * A list of CIDRs to restrict ingress connections. + */ +export type IpsFDl19jsa = string[]; + +export type IpsJdcloud = { + etag?: Etag; + ipv4_cidrs?: Ipv4Cidrs; + ipv6_cidrs?: Ipv6Cidrs; + /** + * List IPv4 and IPv6 CIDRs, only popoulated if `?networks=jdcloud` is used. + */ + jdcloud_cidrs?: string[]; +}; + +export type IpsecTunnel = { + allow_null_cipher?: AllowNullCipher; + cloudflare_endpoint: CloudflareIpsecEndpoint; + created_on?: SchemasCreatedOn; + customer_endpoint?: CustomerIpsecEndpoint; + description?: ComponentsSchemasDescription; + id?: SchemasIdentifierRYBwrxr7; + interface_address: InterfaceAddress; + modified_on?: SchemasModifiedOn; + name: SchemasName; + psk_metadata?: PskMetadata; + tunnel_health_check?: TunnelHealthCheck; +}; + +/** + * @example 192.0.2.0 + * @format ipv4 + */ +export type Ipv4 = string; + +/** + * List of Cloudflare IPv4 CIDR addresses. + */ +export type Ipv4Cidrs = string[]; + +/** + * Enable IPv6 on all subdomains that are Cloudflare enabled. (https://support.cloudflare.com/hc/en-us/articles/200168586). + */ +export type Ipv6 = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example ipv6 + */ + id: 'ipv6'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: Ipv6Value; +}; + +/** + * @example 2001:0DB8:: + * @format ipv6 + */ +export type Ipv6Dw2g7BEM = string; + +/** + * List of Cloudflare IPv6 CIDR addresses. + */ +export type Ipv6Cidrs = string[]; + +export type Ipv6Configuration = { + /** + * The configuration target. You must set the target to `ip6` when specifying an IPv6 address in the rule. + * + * @example ip6 + */ + target?: 'ip6'; + /** + * The IPv6 address to match. + * + * @example 2001:DB8:100::CF + */ + value?: string; +}; + +/** + * Value of the zone setting. + * + * @default off + */ +export type Ipv6Value = 'off' | 'on'; + +/** + * If `true`, this virtual network is the default for the account. + * + * @example true + */ +export type IsDefaultNetwork = boolean; + +/** + * Cloudflare continues to track connections for several minutes after they disconnect. This is an optimization to improve latency and reliability of reconnecting. If `true`, the connection has disconnected but is still being tracked. If `false`, the connection is actively serving traffic. + * + * @example false + */ +export type IsPendingReconnect = boolean; + +/** + * Indicates whether you are currently subscribed to this plan. + * + * @default false + * @example false + */ +export type IsSubscribed = boolean; + +/** + * Lock all settings as Read-Only in the Dashboard, regardless of user permission. Updates may only be made via the API or Terraform for this account when enabled. + * + * @example false + */ +export type IsUiReadOnly = boolean; + +/** + * Require this application to be served in an isolated browser for users matching this policy. + * + * @default false + * @example false + */ +export type IsolationRequired = boolean; + +/** + * Date that the Client Certificate was issued by the Certificate Authority + * + * @example 2023-02-23T23:18:00Z + */ +export type IssuedOn = string; + +/** + * The time on which the token was created. + * + * @example 2018-07-01T05:20:00Z + * @format date-time + */ +export type IssuedOnHmshAtfd = string; + +/** + * The certificate authority that issued the certificate. + * + * @example GlobalSign + */ +export type Issuer = string; + +/** + * @example {"comment":"Private IP address","created_on":"2020-01-01T08:00:00Z","id":"2c0fc9fa937b11eaa1b71c4d701ab86e","ip":"10.0.0.1","modified_on":"2020-01-10T14:00:00Z"} + */ +export type Item = + | { + comment?: ItemComment; + /** + * The RFC 3339 timestamp of when the item was created. + * + * @example 2020-01-01T08:00:00Z + */ + created_on?: string; + hostname?: ItemHostname; + id?: ListId; + ip: ItemIp; + /** + * The RFC 3339 timestamp of when the item was last modified. + * + * @example 2020-01-10T14:00:00Z + */ + modified_on?: string; + redirect?: ItemRedirect; + } + | { + comment?: ItemComment; + /** + * The RFC 3339 timestamp of when the item was created. + * + * @example 2020-01-01T08:00:00Z + */ + created_on?: string; + hostname?: ItemHostname; + id?: ListId; + ip?: ItemIp; + /** + * The RFC 3339 timestamp of when the item was last modified. + * + * @example 2020-01-10T14:00:00Z + */ + modified_on?: string; + redirect: ItemRedirect; + } + | { + comment?: ItemComment; + /** + * The RFC 3339 timestamp of when the item was created. + * + * @example 2020-01-01T08:00:00Z + */ + created_on?: string; + hostname: ItemHostname; + id?: ListId; + ip?: ItemIp; + /** + * The RFC 3339 timestamp of when the item was last modified. + * + * @example 2020-01-10T14:00:00Z + */ + modified_on?: string; + redirect?: ItemRedirect; + }; + +export type ItemResponseCollection = ApiResponseCollection & { + result?: Item; +}; + +/** + * An informative summary of the list item. + * + * @example Private IP address + */ +export type ItemComment = string; + +/** + * Valid characters for hostnames are ASCII(7) letters from a to z, the digits from 0 to 9, wildcards (*), and the hyphen (-). + */ +export type ItemHostname = string; + +/** + * The unique ID of the item in the List. + * + * @example 34b12448945f11eaa1b71c4d701ab86e + */ +export type ItemId = string; + +/** + * An IPv4 address, an IPv4 CIDR, or an IPv6 CIDR. IPv6 CIDRs are limited to a maximum of /64. + * + * @example 10.0.0.1 + */ +export type ItemIp = string; + +/** + * The definition of the redirect. + */ +export type ItemRedirect = { + /** + * @default false + */ + include_subdomains?: boolean; + /** + * @default true + */ + preserve_path_suffix?: boolean; + /** + * @default false + */ + preserve_query_string?: boolean; + /** + * @example example.com/arch + */ + source_url: string; + /** + * @default 301 + */ + status_code?: 301 | 302 | 307 | 308; + /** + * @default false + */ + subpath_matching?: boolean; + /** + * @example https://archlinux.org/ + */ + target_url: string; +}; + +/** + * The items in the List. + */ +export type Items = { + created_at?: Timestamp; + value?: ValueBmHGW0nn; +}[]; + +export type ItemsListResponseCollection = ApiResponseCollection & { + result?: ItemsYDMk5o9K; + result_info?: { + cursors?: { + /** + * @example yyy + */ + after?: string; + /** + * @example xxx + */ + before?: string; + }; + }; +}; + +export type ItemsUpdateRequestCollection = ( + | { + comment?: ItemComment; + ip: ItemIp; + redirect?: ItemRedirect; + } + | { + comment?: ItemComment; + ip?: ItemIp; + redirect: ItemRedirect; + } + | { + comment?: ItemComment; + ip?: ItemIp; + redirect?: ItemRedirect; + } +)[]; + +export type ItemsYDMk5o9K = Item[]; + +/** + * Enable IXFR transfer protocol, default is AXFR. Only applicable to secondary zones. + * + * @example false + */ +export type IxfrEnable = boolean; + +/** + * The integrity score of the JavaScript content. + * + * @maximum 99 + * @minimum 1 + */ +export type JsIntegrityScore = number | null; + +/** + * Only available for the Waiting Room Advanced subscription. If `true`, requests to the waiting room with the header `Accept: application/json` will receive a JSON response object with information on the user's status in the waiting room as opposed to the configured static HTML page. This JSON response object has one property `cfWaitingRoom` which is an object containing the following fields: + * 1. `inWaitingRoom`: Boolean indicating if the user is in the waiting room (always **true**). + * 2. `waitTimeKnown`: Boolean indicating if the current estimated wait times are accurate. If **false**, they are not available. + * 3. `waitTime`: Valid only when `waitTimeKnown` is **true**. Integer indicating the current estimated time in minutes the user will wait in the waiting room. When `queueingMethod` is **random**, this is set to `waitTime50Percentile`. + * 4. `waitTime25Percentile`: Valid only when `queueingMethod` is **random** and `waitTimeKnown` is **true**. Integer indicating the current estimated maximum wait time for the 25% of users that gain entry the fastest (25th percentile). + * 5. `waitTime50Percentile`: Valid only when `queueingMethod` is **random** and `waitTimeKnown` is **true**. Integer indicating the current estimated maximum wait time for the 50% of users that gain entry the fastest (50th percentile). In other words, half of the queued users are expected to let into the origin website before `waitTime50Percentile` and half are expected to be let in after it. + * 6. `waitTime75Percentile`: Valid only when `queueingMethod` is **random** and `waitTimeKnown` is **true**. Integer indicating the current estimated maximum wait time for the 75% of users that gain entry the fastest (75th percentile). + * 7. `waitTimeFormatted`: String displaying the `waitTime` formatted in English for users. If `waitTimeKnown` is **false**, `waitTimeFormatted` will display **unavailable**. + * 8. `queueIsFull`: Boolean indicating if the waiting room's queue is currently full and not accepting new users at the moment. + * 9. `queueAll`: Boolean indicating if all users will be queued in the waiting room and no one will be let into the origin website. + * 10. `lastUpdated`: String displaying the timestamp as an ISO 8601 string of the user's last attempt to leave the waiting room and be let into the origin website. The user is able to make another attempt after `refreshIntervalSeconds` past this time. If the user makes a request too soon, it will be ignored and `lastUpdated` will not change. + * 11. `refreshIntervalSeconds`: Integer indicating the number of seconds after `lastUpdated` until the user is able to make another attempt to leave the waiting room and be let into the origin website. When the `queueingMethod` is `reject`, there is no specified refresh time — it will always be **zero**. + * 12. `queueingMethod`: The queueing method currently used by the waiting room. It is either **fifo**, **random**, **passthrough**, or **reject**. + * 13. `isFIFOQueue`: Boolean indicating if the waiting room uses a FIFO (First-In-First-Out) queue. + * 14. `isRandomQueue`: Boolean indicating if the waiting room uses a Random queue where users gain access randomly. + * 15. `isPassthroughQueue`: Boolean indicating if the waiting room uses a passthrough queue. Keep in mind that when passthrough is enabled, this JSON response will only exist when `queueAll` is **true** or `isEventPrequeueing` is **true** because in all other cases requests will go directly to the origin. + * 16. `isRejectQueue`: Boolean indicating if the waiting room uses a reject queue. + * 17. `isEventActive`: Boolean indicating if an event is currently occurring. Events are able to change a waiting room's behavior during a specified period of time. For additional information, look at the event properties `prequeue_start_time`, `event_start_time`, and `event_end_time` in the documentation for creating waiting room events. Events are considered active between these start and end times, as well as during the prequeueing period if it exists. + * 18. `isEventPrequeueing`: Valid only when `isEventActive` is **true**. Boolean indicating if an event is currently prequeueing users before it starts. + * 19. `timeUntilEventStart`: Valid only when `isEventPrequeueing` is **true**. Integer indicating the number of minutes until the event starts. + * 20. `timeUntilEventStartFormatted`: String displaying the `timeUntilEventStart` formatted in English for users. If `isEventPrequeueing` is **false**, `timeUntilEventStartFormatted` will display **unavailable**. + * 21. `timeUntilEventEnd`: Valid only when `isEventActive` is **true**. Integer indicating the number of minutes until the event ends. + * 22. `timeUntilEventEndFormatted`: String displaying the `timeUntilEventEnd` formatted in English for users. If `isEventActive` is **false**, `timeUntilEventEndFormatted` will display **unavailable**. + * 23. `shuffleAtEventStart`: Valid only when `isEventActive` is **true**. Boolean indicating if the users in the prequeue are shuffled randomly when the event starts. + * + * An example cURL to a waiting room could be: + * + * curl -X GET "https://example.com/waitingroom" \ + * -H "Accept: application/json" + * + * If `json_response_enabled` is **true** and the request hits the waiting room, an example JSON response when `queueingMethod` is **fifo** and no event is active could be: + * + * { + * "cfWaitingRoom": { + * "inWaitingRoom": true, + * "waitTimeKnown": true, + * "waitTime": 10, + * "waitTime25Percentile": 0, + * "waitTime50Percentile": 0, + * "waitTime75Percentile": 0, + * "waitTimeFormatted": "10 minutes", + * "queueIsFull": false, + * "queueAll": false, + * "lastUpdated": "2020-08-03T23:46:00.000Z", + * "refreshIntervalSeconds": 20, + * "queueingMethod": "fifo", + * "isFIFOQueue": true, + * "isRandomQueue": false, + * "isPassthroughQueue": false, + * "isRejectQueue": false, + * "isEventActive": false, + * "isEventPrequeueing": false, + * "timeUntilEventStart": 0, + * "timeUntilEventStartFormatted": "unavailable", + * "timeUntilEventEnd": 0, + * "timeUntilEventEndFormatted": "unavailable", + * "shuffleAtEventStart": false + * } + * } + * + * If `json_response_enabled` is **true** and the request hits the waiting room, an example JSON response when `queueingMethod` is **random** and an event is active could be: + * + * { + * "cfWaitingRoom": { + * "inWaitingRoom": true, + * "waitTimeKnown": true, + * "waitTime": 10, + * "waitTime25Percentile": 5, + * "waitTime50Percentile": 10, + * "waitTime75Percentile": 15, + * "waitTimeFormatted": "5 minutes to 15 minutes", + * "queueIsFull": false, + * "queueAll": false, + * "lastUpdated": "2020-08-03T23:46:00.000Z", + * "refreshIntervalSeconds": 20, + * "queueingMethod": "random", + * "isFIFOQueue": false, + * "isRandomQueue": true, + * "isPassthroughQueue": false, + * "isRejectQueue": false, + * "isEventActive": true, + * "isEventPrequeueing": false, + * "timeUntilEventStart": 0, + * "timeUntilEventStartFormatted": "unavailable", + * "timeUntilEventEnd": 15, + * "timeUntilEventEndFormatted": "15 minutes", + * "shuffleAtEventStart": true + * } + * }. + * + * @default false + * @example false + */ +export type JsonResponseEnabled = boolean; + +/** + * The signing key in JWK format. + * + * @example eyJ1c2UiOiJzaWciLCJrdHkiOiJSU0EiLCJraWQiOiI1MjEzY2ZhMTIxZjcwYjhjMTM4MDY4NmZmYzM3MWJhMyIsImFsZyI6IlJTMjU2IiwibiI6IjBUandqT2laV21KNDN2ZjNUbzREb1htWFd0SkdOR3lYZmh5dHRMYUJnRjEtRVFXUURLaG9LYm9hS21xakNBc21za3V0YkxVN1BVOGRrUU5ER1p3S3VWczA4elNaNGt4aTR0RWdQUFp5dDdkWEMtbFlSWW95ckFHRjRBWGh5MzI5YkhDUDFJbHJCQl9Ba0dnbmRMQWd1bnhZMHJSZ2N2T3ppYXc2S0p4Rm5jMlVLMFdVOGIwcDRLS0hHcDFLTDlkazBXVDhkVllxYmVSaUpqQ2xVRW1oOHl2OUNsT1ZhUzRLeGlYNnhUUTREWnc2RGFKZklWM1F0Tmd2cG1ieWxOSmFQSG5zc3JodDJHS1A5NjJlS2poUVJsaWd2SFhKTE9uSm9KZkxlSUVIWi1peFdmY1RETUg5MnNHdm93MURPanhMaUNOMXpISy1oN2JMb1hUaUxnYzRrdyIsImUiOiJBUUFCIiwiZCI6IndpQWEwaU5mWnNYSGNOcVMxSWhnUmdzVHJHay1TcFlYV2lReDZHTU9kWlJKekhGazN0bkRERFJvNHNKZTBxX0dEOWkzNlEyZkVadS15elpEcEJkc3U5OHNtaHhNU19Ta0s5X3VFYUo1Zm96V2IyN3JRRnFoLVliUU9MUThkUnNPRHZmQl9Hb2txWWJzblJDR3kzWkFaOGZJZ25ocXBUNEpiOHdsaWxpMUgxeFpzM3RnTWtkTEluTm1yMFAtcTYxZEtNd3JYZVRoSWNEc0kyb2Z1LTFtRm1MWndQb2ZGbmxaTW9QN1pfRU5pUGNfWGtWNzFhaHBOZE9pcW5ablZtMHBCNE5QS1UweDRWTjQyYlAzWEhMUmpkV2hJOGt3SC1BdXhqb3BLaHJ0R2tvcG1jZFRkM1ZRdElaOGRpZHByMXpBaEpvQi16ZVlIaTFUel9ZSFFld0FRUSIsInAiOiIyVTZFVUJka3U3TndDYXoyNzZuWGMxRXgwVHpNZjU4U0UtU2M2eUNaYWk2TkwzVURpWi1mNHlIdkRLYnFGUXdLWDNwZ0l2aVE3Y05QYUpkbE9NeS1mU21GTXU3V3hlbVZYamFlTjJCMkRDazhQY0NEOVgxU2hhR3E1ZUdSSHNObVUtSDNxTG1FRGpjLWliazRHZ0RNb2lVYjQ2OGxFZHAwU2pIOXdsOUdsYTgiLCJxIjoiOW5ucXg5ZnNNY2dIZ29DemhfVjJmaDhoRUxUSUM5aFlIOVBCTG9aQjZIaE1TWG1ja1BSazVnUlpPWlFEN002TzlMaWZjNmFDVXdEbjBlQzU2YkFDNUNrcWxjODJsVDhzTWlMeWJyTjh3bWotcjNjSTBGQTlfSGQySEY1ZkgycnJmenVqd0NWM3czb09Ud3p4d1g3c2xKbklRanphel91SzEyWEtucVZZcUYwIiwiZHAiOiJxQklTUTlfVUNWaV9Ucng0UU9VYnZoVU9jc2FUWkNHajJiNzNudU9YeElnOHFuZldSSnN4RG5zd2FKaXdjNWJjYnZ3M1h0VGhRd1BNWnhpeE1UMHFGNlFGWVY5WXZibnJ6UEp4YkdNdTZqajZYc2lIUjFlbWU3U09lVDM4Xzg0aFZyOXV6UkN2RWstb0R0MHlodW9YVzFGWVFNRTE2cGtMV0ZkUjdRUERsQUUiLCJkcSI6Im5zQUp3eXZFbW8tdW5wU01qYjVBMHB6MExCRjBZNFMxeGRJYXNfLVBSYzd0dThsVFdWMl8teExEOFR6dmhqX0lmY0RJR3JJZGNKNjlzVVZnR1M3ZnZkcng3Y21uNjFyai1XcmU0UVJFRC1lV1dxZDlpc2FVRmg5UGVKZ2tCbFZVVnYtdnladVlWdFF2a1NUU05ZR3RtVXl2V2xKZDBPWEFHRm9jdGlfak9aVSIsInFpIjoib0dYaWxLQ2NKRXNFdEE1eG54WUdGQW5UUjNwdkZLUXR5S0F0UGhHaHkybm5ya2VzN1RRaEFxMGhLRWZtU1RzaE1hNFhfd05aMEstX1F0dkdoNDhpeHdTTDVLTEwxZnFsY0k2TF9XUnF0cFQxS21LRERlUHR2bDVCUzFGbjgwSGFwR215cmZRWUU4S09QR2UwUl82S1BOZE1vc3dYQ3Nfd0RYMF92ZzNoNUxRIn0= + */ +export type Jwk = string; + +/** + * The device's public key. + * + * @example yek0SUYoOQ10vMGsIYAevozXUQpQtNFJFfFGqER/BGc= + */ +export type Key = string; + +/** + * A name for a value. A value stored under a given key may be retrieved via the same key. + */ +export type KeyFEYbivGQ = { + /** + * The time, measured in number of seconds since the UNIX epoch, at which the key will expire. This property is omitted for keys that will not expire. + * + * @example 1577836800 + */ + expiration?: number; + metadata?: ListMetadata; + name: KeyName; +}; + +export type KeyConfig = { + days_until_next_rotation?: DaysUntilNextRotation; + key_rotation_interval_days?: KeyRotationIntervalDays; + last_key_rotation_at?: LastKeyRotationAt; +}; + +export type KeyGenerationResponse = ApiResponseCollection & { + result?: Keys; +}; + +/** + * A key's name. The name may be at most 512 bytes. All printable, non-whitespace characters are valid. Use percent-encoding to define key names as part of a URL. + * + * @example My-Key + * @maxLength 512 + */ +export type KeyName = string; + +/** + * A key's name. The name may be at most 512 bytes. All printable, non-whitespace characters are valid. + * + * @example My-Key + * @maxLength 512 + */ +export type KeyNameBulk = string; + +export type KeyResponseCollection = ApiResponseCollection & { + result?: { + created?: SigningKeyCreated; + id?: SchemasIdentifier; + }[]; +}; + +export type KeyResponseCollectionOyAZovtl = ApiResponseCollection & { + result?: KeysResponse; +}; + +/** + * The number of days between key rotations. + * + * @example 30 + * @maximum 365 + * @minimum 21 + */ +export type KeyRotationIntervalDays = number; + +/** + * Code for key tag. + * + * @example 42 + */ +export type KeyTag = number | null; + +/** + * Algorithm key type. + * + * @example ECDSAP256SHA256 + */ +export type KeyType = string | null; + +export type KeylessCertificate = Base; + +export type KeylessCertificateHXaxgAu6 = ComponentsSchemasBase; + +/** + * Keyless certificate identifier tag. + * + * @example 4d2844d2ce78891c34d0b6c0535a291e + * @maxLength 32 + */ +export type KeylessCertificateComponentsSchemasIdentifier = string; + +/** + * The keyless SSL name. + * + * @example example.com Keyless SSL + * @maxLength 180 + */ +export type KeylessCertificateComponentsSchemasName = string; + +/** + * Status of the Keyless SSL. + * + * @example active + */ +export type KeylessCertificateComponentsSchemasStatus = 'active' | 'deleted'; + +/** + * Private IP of the Key Server Host + * + * @example 10.0.0.1 + */ +export type KeylessPrivateIp = string; + +export type KeylessResponseCollection = ApiResponseCollection & { + result?: KeylessCertificateHXaxgAu6[]; +}; + +export type KeylessResponseSingle = ApiResponseSingleZZHeSkIR & { + result?: Base; +}; + +export type KeylessResponseSingleZksQvj76 = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type KeylessResponseSingleId = ApiResponseSingleZZHeSkIR & { + result?: { + id?: Identifier; + }; +}; + +export type KeylessResponseSingleIdRO91wPYN = ApiResponseSingleLarS7owG & { + result?: { + id?: KeylessCertificateComponentsSchemasIdentifier; + }; +}; + +/** + * Configuration for using Keyless SSL through a Cloudflare Tunnel + */ +export type KeylessTunnel = { + private_ip: KeylessPrivateIp; + vnet_id: KeylessVnetId; +}; + +/** + * Cloudflare Tunnel Virtual Network ID + * + * @example 7365377a-85a4-4390-9480-531ef7dc7a3c + */ +export type KeylessVnetId = string; + +export type Keys = { + created?: SigningKeyCreated; + id?: SchemasIdentifier; + jwk?: Jwk; + pem?: Pem; +}; + +export type KeysJZLBRHLA = { + name?: KeysComponentsSchemasName; + value?: KeysComponentsSchemasValue; +}; + +/** + * Key name. + * + * @example default + */ +export type KeysComponentsSchemasName = string; + +export type KeysComponentsSchemasSingleResponse = ApiResponseSingleKLIlNaxV & KeyConfig; + +export type KeysComponentsSchemasSingleResponseI72uQ4Jz = ApiResponseSingleLarS7owG & KeyConfig; + +/** + * Key value. + * + * @example Oix0bbNaT8Rge9PuyxUBrjI6zrgnsyJ5= + */ +export type KeysComponentsSchemasValue = string; + +export type KeysResponse = { + keys?: KeysJZLBRHLA[]; +}; + +/** + * The type of the membership. + * + * @example zone + */ +export type Kind = 'zone' | 'account'; + +/** + * The type of the list. Each type supports specific list items (IP addresses, hostnames or redirects). + * + * @example ip + */ +export type KindI00awcl2 = 'ip' | 'redirect' | 'hostname'; + +export type KolideConfigRequest = { + /** + * The Kolide client ID. + * + * @example example client id + */ + client_id: string; + /** + * The Kolide client secret. + * + * @example example client secret + */ + client_secret: string; +}; + +/** + * A byte sequence to be stored, up to 10 MB in length. + * + * @example Some Value + */ +export type KvComponentsSchemasValue = string; + +export type KvNamespaceBinding = { + name: BindingName; + namespace_id: NamespaceIdentifier; + /** + * The class of resource that the binding provides. + * + * @example kv_namespace + */ + type: 'kv_namespace'; +}; + +/** + * The language label displayed in the native language to users. + * + * @example Türkçe + */ +export type Label = string; + +/** + * Field appears if there is an additional annotation printed when the probe returns. Field also appears when running a GRE+ICMP traceroute to denote which traceroute a node comes from. + */ +export type Labels = string[]; + +/** + * The language tag in BCP 47 format. + * + * @example tr + */ +export type Language = string; + +export type LanguageResponseCollection = ApiResponseCollection & { + result?: Captions[]; +}; + +export type LanguageResponseSingle = ApiResponseSingleYdRGfgTy & { + result?: Record; +}; + +/** + * Records the last time for which logs have been successfully pushed. If the last successful push was for logs range 2018-07-23T10:00:00Z to 2018-07-23T10:01:00Z then the value of this field will be 2018-07-23T10:01:00Z. If the job has never run or has just been enabled and hasn't run yet then the field will be empty. + * + * @format date-time + */ +export type LastComplete = string | null; + +/** + * Records the last time the job failed. If not null, the job is currently failing. If null, the job has either never failed or has run successfully at least once since last failure. See also the error_message field. + * + * @format date-time + */ +export type LastError = string | null; + +/** + * Timestamp of the last time an attempt to dispatch a notification to this webhook failed. + * + * @example 2020-10-26T18:25:04.532316Z + * @format date-time + */ +export type LastFailure = string; + +/** + * The timestamp of the previous key rotation. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ +export type LastKeyRotationAt = string; + +/** + * User's last name + * + * @example Appleseed + * @maxLength 60 + */ +export type LastName = string | null; + +/** + * When the device last connected to Cloudflare services. + * + * @example 2017-06-14T00:00:00Z + * @format date-time + */ +export type LastSeen = string; + +/** + * Timestamp of the last time Cloudflare was able to successfully dispatch a notification using this webhook. + * + * @example 2020-10-26T18:25:04.532316Z + * @format date-time + */ +export type LastSuccess = string; + +/** + * The time at which the user last successfully logged in. + * + * @example 2020-07-01T05:20:00Z + * @format date-time + */ +export type LastSuccessfulLogin = string; + +/** + * The timestamp of when the ruleset was last modified. + * + * @example 2000-01-01T00:00:00.000000Z + */ +export type LastUpdated = string; + +/** + * The latitude of the data center containing the origins used in this pool in decimal degrees. If this is set, longitude must also be set. + */ +export type Latitude = number; + +/** + * Indicates whether this plan has a legacy discount applied. + * + * @default false + * @example false + */ +export type LegacyDiscount = boolean; + +/** + * The legacy identifier for this rate plan, if any. + * + * @example free + */ +export type LegacyId = string; + +/** + * Limit number of returned metrics. + * + * @default 100000 + * @example 100 + */ +export type Limit = number; + +export type Linkedin = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +export type List = { + created_on?: SchemasCreatedOnNgcP5F83; + description?: ListsComponentsSchemasDescription; + id?: ListId; + kind?: KindI00awcl2; + modified_on?: ListsComponentsSchemasModifiedOn; + name?: ListsComponentsSchemasName; + num_items?: NumItems; + num_referencing_filters?: NumReferencingFilters; +}; + +export type ListDeleteResponseCollection = ApiResponseCollection & { + result?: { + id?: ItemId; + }; +}; + +export type ListResponseCollection = ApiResponseCollection & { + result?: List; +}; + +export type ListZoneConnectionsResponse = ApiResponseCollection & { + result?: Connection[]; + result_info?: ResultInfo; +}; + +export type ListZonePoliciesResponse = ApiResponseCollection & { + result?: PageshieldPolicy[]; +}; + +export type ListZoneScriptsResponse = ApiResponseCollection & { + result?: Script[]; + result_info?: ResultInfo; +}; + +/** + * The unique ID of the list. + * + * @example 2c0fc9fa937b11eaa1b71c4d701ab86e + * @maxLength 32 + * @minLength 32 + */ +export type ListId = string; + +export type ListItemResponseCollection = ApiResponseCollection & { + result?: Items[]; +} & { + result_info?: { + /** + * Total results returned based on your search parameters. + * + * @example 1 + */ + count?: number; + /** + * Current page within paginated list of results. + * + * @example 1 + */ + page?: number; + /** + * Number of results per page of results. + * + * @example 20 + */ + per_page?: number; + /** + * Total results available without any search parameters. + * + * @example 2000 + */ + total_count?: number; + }; +}; + +/** + * Arbitrary JSON that is associated with a key. + * + * @example {"someMetadataKey":"someMetadataValue"} + */ +export type ListMetadata = Record; + +export type Lists = { + count?: Count; + created_at?: Timestamp; + description?: DescriptionX9wAFqIk; + id?: Uuid1mDHWugl; + name?: NameCf4EglAb; + type?: TypeKFroakje; + updated_at?: Timestamp; +}; + +export type ListsAsyncResponse = ApiResponseCollection & { + result?: { + operation_id?: OperationId; + }; +}; + +export type ListsResponseCollection = ApiResponseCollection & { + result?: { + created_on: SchemasCreatedOnNgcP5F83; + description?: ListsComponentsSchemasDescription; + id: ListId; + kind: KindI00awcl2; + modified_on: ListsComponentsSchemasModifiedOn; + name: ListsComponentsSchemasName; + num_items: NumItems; + num_referencing_filters?: NumReferencingFilters; + }[]; +}; + +/** + * An informative summary of the list. + * + * @example This is a note. + * @maxLength 500 + */ +export type ListsComponentsSchemasDescription = string; + +/** + * The RFC 3339 timestamp of when the list was last modified. + * + * @example 2020-01-10T14:00:00Z + */ +export type ListsComponentsSchemasModifiedOn = string; + +/** + * An informative name for the list. Use this name in filter and rule expressions. + * + * @example list1 + * @maxLength 50 + * @pattern ^[a-zA-Z0-9_]+$ + */ +export type ListsComponentsSchemasName = string; + +/** + * The live input ID used to upload a video with Stream Live. + * + * @example fc0a8dc887b16759bfd9ad922230a014 + * @maxLength 32 + */ +export type LiveInput = string; + +/** + * Details about a live input. + */ +export type LiveInput = { + created?: LiveInputCreated; + meta?: LiveInputMetadata; + modified?: LiveInputModified; + recording?: LiveInputRecordingSettings; + rtmps?: InputRtmps; + rtmpsPlayback?: PlaybackRtmps; + srt?: InputSrt; + srtPlayback?: PlaybackSrt; + status?: LiveInputStatus; + uid?: LiveInputIdentifier; + webRTC?: InputWebrtc; + webRTCPlayback?: PlaybackWebrtc; +}; + +/** + * The date and time the live input was created. + * + * @example 2014-01-02T02:20:00Z + * @format date-time + */ +export type LiveInputCreated = string; + +/** + * Sets the creator ID asssociated with this live input. + */ +export type LiveInputDefaultCreator = string; + +/** + * A unique identifier for a live input. + * + * @example 66be4bf738797e01e1fca35a7bdecdcd + * @maxLength 32 + */ +export type LiveInputIdentifier = string; + +/** + * A user modifiable key-value store used to reference other systems of record for managing live inputs. + * + * @example {"name":"test stream 1"} + */ +export type LiveInputMetadata = Record; + +/** + * The date and time the live input was last modified. + * + * @example 2014-01-02T02:20:00Z + * @format date-time + */ +export type LiveInputModified = string; + +export type LiveInputObjectWithoutUrl = { + created?: LiveInputCreated; + meta?: LiveInputMetadata; + modified?: LiveInputModified; + uid?: LiveInputIdentifier; +}; + +/** + * Lists the origins allowed to display videos created with this input. Enter allowed origin domains in an array and use `*` for wildcard subdomains. An empty array allows videos to be viewed on any origin. + * + * @example example.com + */ +export type LiveInputRecordingAllowedOrigins = string[]; + +/** + * Specifies the recording behavior for the live input. Set this value to `off` to prevent a recording. Set the value to `automatic` to begin a recording and transition to on-demand after Stream Live stops receiving input. + * + * @default off + * @example automatic + */ +export type LiveInputRecordingMode = 'off' | 'automatic'; + +/** + * Indicates if a video using the live input has the `requireSignedURLs` property set. Also enforces access controls on any video recording of the livestream with the live input. + * + * @default false + * @example true + */ +export type LiveInputRecordingRequireSignedURLs = boolean; + +/** + * Records the input to a Cloudflare Stream video. Behavior depends on the mode. In most cases, the video will initially be viewable as a live video and transition to on-demand after a condition is satisfied. + * + * @example {"mode":"off","requireSignedURLs":false,"timeoutSeconds":0} + */ +export type LiveInputRecordingSettings = { + allowedOrigins?: LiveInputRecordingAllowedOrigins; + mode?: LiveInputRecordingMode; + requireSignedURLs?: LiveInputRecordingRequireSignedURLs; + timeoutSeconds?: LiveInputRecordingTimeoutSeconds; +}; + +/** + * Determines the amount of time a live input configured in `automatic` mode should wait before a recording transitions from live to on-demand. `0` is recommended for most use cases and indicates the platform default should be used. + * + * @default 0 + */ +export type LiveInputRecordingTimeoutSeconds = number; + +export type LiveInputResponseCollection = ApiResponseCollection & { + result?: { + liveInputs?: LiveInputObjectWithoutUrl[]; + /** + * The total number of remaining live inputs based on cursor position. + * + * @example 1000 + */ + range?: number; + /** + * The total number of live inputs that match the provided filters. + * + * @example 35586 + */ + total?: number; + }; +}; + +export type LiveInputResponseSingle = ApiResponseSingleYdRGfgTy & { + result?: LiveInput; +}; + +/** + * The connection status of a live input. + */ +export type LiveInputStatus = + | any + | 'connected' + | 'reconnected' + | 'reconnecting' + | 'client_disconnect' + | 'ttl_exceeded' + | 'failed_to_connect' + | 'failed_to_reconnect' + | 'new_configuration_accepted' + | null; + +/** + * Identifier for the uploaded LOA document. + * + * @example d933b1530bc56c9953cf8ce166da8004 + * @maxLength 32 + */ +export type LoaDocumentIdentifier = string | null; + +/** + * Identifier for the uploaded LOA document. + * + * @example d933b1530bc56c9953cf8ce166da8004 + * @maxLength 32 + */ +export type LoaDocumentIdentifierGtDvyfh0 = string | null; + +export type LoaUploadResponse = ApiResponseSingleZ04EBmfK & { + result?: { + /** + * Name of LOA document. + * + * @example document.pdf + */ + filename?: string; + }; +}; + +export type LoaUploadResponseCKBnZwZO = ApiResponseSingleLarS7owG & { + result?: { + /** + * Name of LOA document. + * + * @example document.pdf + */ + filename?: string; + }; +}; + +export type LoadBalancer = { + adaptive_routing?: AdaptiveRouting; + country_pools?: CountryPools; + created_on?: Timestamp; + default_pools?: DefaultPools; + description?: ComponentsSchemasDescriptionPGj41dmE; + enabled?: ComponentsSchemasEnabledQ79EL5TU; + fallback_pool?: FallbackPool; + id?: LoadBalancerComponentsSchemasIdentifier; + location_strategy?: LocationStrategy; + modified_on?: Timestamp; + name?: ComponentsSchemasNamePmZCIPld; + pop_pools?: PopPools; + proxied?: Proxied; + random_steering?: RandomSteering; + region_pools?: RegionPools; + rules?: Rules; + session_affinity?: SessionAffinity; + session_affinity_attributes?: SessionAffinityAttributes; + session_affinity_ttl?: SessionAffinityTtl; + steering_policy?: SteeringPolicy; + ttl?: TtlHaRIhRKD; +}; + +export type LoadBalancerUJT5l2Nt = { + adaptive_routing?: AdaptiveRouting; + country_pools?: CountryPools; + created_on?: Timestamp; + default_pools?: DefaultPools; + description?: LoadBalancerComponentsSchemasDescription; + enabled?: LoadBalancerComponentsSchemasEnabled; + fallback_pool?: FallbackPool; + id?: LoadBalancerComponentsSchemasIdentifier; + location_strategy?: LocationStrategy; + modified_on?: Timestamp; + name?: LoadBalancerComponentsSchemasName; + pop_pools?: PopPools; + proxied?: Proxied; + random_steering?: RandomSteering; + region_pools?: RegionPools; + rules?: ComponentsSchemasRules; + session_affinity?: SessionAffinity; + session_affinity_attributes?: SessionAffinityAttributes; + session_affinity_ttl?: SessionAffinityTtl; + steering_policy?: SteeringPolicy; + ttl?: TtlXvgb35JN; +}; + +/** + * Object description. + * + * @example Load Balancer for www.example.com + */ +export type LoadBalancerComponentsSchemasDescription = string; + +/** + * Whether to enable (the default) this load balancer. + * + * @default true + * @example true + */ +export type LoadBalancerComponentsSchemasEnabled = boolean; + +/** + * @example 699d98642c564d2e855e9661899b7252 + */ +export type LoadBalancerComponentsSchemasIdentifier = void; + +/** + * The DNS hostname to associate with your Load Balancer. If this hostname already exists as a DNS record in Cloudflare's DNS, the Load Balancer will take precedence and the DNS record will not be used. + * + * @example www.example.com + */ +export type LoadBalancerComponentsSchemasName = string; + +export type LoadBalancerComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: LoadBalancerUJT5l2Nt[]; +}; + +export type LoadBalancerComponentsSchemasSingleResponse = ApiResponseSingleUl1k90Mw & { + result?: LoadBalancer; +}; + +export type LoadBalancerComponentsSchemasSingleResponseMP6TZKst = ApiResponseSingleLarS7owG & { + result?: LoadBalancerUJT5l2Nt; +}; + +/** + * Configures load shedding policies and percentages for the pool. + */ +export type LoadShedding = { + /** + * The percent of traffic to shed from the pool, according to the default policy. Applies to new sessions and traffic without session affinity. + * + * @default 0 + * @maximum 100 + * @minimum 0 + */ + default_percent?: number; + /** + * The default policy to use when load shedding. A random policy randomly sheds a given percent of requests. A hash policy computes a hash over the CF-Connecting-IP address and sheds all requests originating from a percent of IPs. + * + * @default random + */ + default_policy?: 'random' | 'hash'; + /** + * The percent of existing sessions to shed from the pool, according to the session policy. + * + * @default 0 + * @maximum 100 + * @minimum 0 + */ + session_percent?: number; + /** + * Only the hash policy is supported for existing sessions (to avoid exponential decay). + * + * @default hash + */ + session_policy?: 'hash'; +}; + +/** + * Location, provided by the CSR + * + * @example Somewhere + */ +export type Location = string; + +/** + * Controls location-based steering for non-proxied requests. See `steering_policy` to learn how steering is affected. + */ +export type LocationStrategy = { + /** + * Determines the authoritative location when ECS is not preferred, does not exist in the request, or its GeoIP lookup is unsuccessful. + * - `"pop"`: Use the Cloudflare PoP location. + * - `"resolver_ip"`: Use the DNS resolver GeoIP location. If the GeoIP lookup is unsuccessful, use the Cloudflare PoP location. + * + * @default pop + * @example resolver_ip + */ + mode?: 'pop' | 'resolver_ip'; + /** + * Whether the EDNS Client Subnet (ECS) GeoIP should be preferred as the authoritative location. + * - `"always"`: Always prefer ECS. + * - `"never"`: Never prefer ECS. + * - `"proximity"`: Prefer ECS only when `steering_policy="proximity"`. + * - `"geo"`: Prefer ECS only when `steering_policy="geo"`. + * + * @default proximity + * @example always + */ + prefer_ecs?: 'always' | 'never' | 'proximity' | 'geo'; +}; + +export type Locations = { + client_default?: ClientDefault; + created_at?: Timestamp; + doh_subdomain?: Subdomain; + ecs_support?: EcsSupport; + id?: SchemasUuidHmO1cTZ9; + ip?: IpCcOd8dAo; + name?: SchemasName4xhKRX0o; + networks?: Network; + updated_at?: Timestamp; +}; + +/** + * An informative summary of the rule. + * + * @example Restrict access to these endpoints to requests from a known IP address + * @maxLength 1024 + */ +export type LockdownsComponentsSchemasDescription = string; + +/** + * The unique identifier of the Zone Lockdown rule. + * + * @example 372e67954025e0ba6aaa6d586b9e0b59 + * @maxLength 32 + */ +export type LockdownsComponentsSchemasId = string; + +/** + * The priority of the rule to control the processing order. A lower number indicates higher priority. If not provided, any rules with a configured priority will be processed before rules without a priority. + * + * @example 5 + */ +export type LockdownsComponentsSchemasPriority = number; + +/** + * Shows whether a registrar lock is in place for a domain. + * + * @example false + */ +export type Locked = boolean; + +/** + * An object configuring the rule's logging behavior. + * + * @example {"enabled":true} + */ +export type Logging = { + /** + * Whether to generate a log when the rule matches. + * + * @example true + */ + enabled?: boolean; +}; + +export type LoginDesign = { + /** + * The background color on your login page. + * + * @example #c5ed1b + */ + background_color?: string; + /** + * The text at the bottom of your login page. + * + * @example This is an example description. + */ + footer_text?: string; + /** + * The text at the top of your login page. + * + * @example This is an example description. + */ + header_text?: string; + /** + * The URL of the logo on your login page. + * + * @example https://example.com/logo.png + */ + logo_path?: string; + /** + * The text color on your login page. + * + * @example #c5ed1b + */ + text_color?: string; +}; + +/** + * The image URL for the logo shown in the App Launcher dashboard. + * + * @example https://www.cloudflare.com/img/logo-web-badges/cf-logo-on-white-bg.svg + */ +export type LogoUrl = string; + +/** + * Configuration string. It specifies things like requested fields and timestamp formats. If migrating from the logpull api, copy the url (full url or just the query string) of your call here, and logpush will keep on making this call for you, setting start and end times appropriately. + * + * @example fields=RayID,ClientIP,EdgeStartTimestamp×tamps=rfc3339 + * @format uri-reference + * @maxLength 4096 + */ +export type LogpullOptions = string | null; + +/** + * Whether Logpush is turned on for the Worker. + * + * @example false + */ +export type Logpush = boolean; + +export type LogpushFieldResponseCollection = { + errors: Messages; + messages: Messages; + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type LogpushJob = { + dataset?: Dataset; + destination_conf?: DestinationConf; + enabled?: EnabledKv09N7E6; + error_message?: ErrorMessage; + frequency?: Frequency; + id?: Id; + last_complete?: LastComplete; + last_error?: LastError; + logpull_options?: LogpullOptions; + name?: NameGjT0muUM; +} | null; + +export type LogpushJobResponseCollection = { + errors: Messages; + messages: Messages; + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type LogpushJobResponseSingle = ApiResponseSingleJE9eFdPt & { + result?: LogpushJob; +}; + +/** + * @example {"ClientIP":"192.0.2.1","RayID":"41ddf1740f67442d","EdgeStartTimestamp":1526810289280000000} +{"ClientIP":"192.0.2.1","RayID":"41ddf1740f67442d","EdgeStartTimestamp":1526810289280000000} +{"ClientIP":"192.0.2.1","RayID":"41ddf1740f67442d","EdgeStartTimestamp":1526810289280000000} + */ +export type Logs = string | Record; + +/** + * The longitude of the data center containing the origins used in this pool in decimal degrees. If this is set, latitude must also be set. + */ +export type Longitude = number; + +/** + * The device mac address. + * + * @example 00-00-5E-00-53-00 + */ +export type MacAddress = string; + +/** + * When true, the Managed Transform is enabled. + * + * @example true + */ +export type ManagedHeadersComponentsSchemasEnabled = boolean; + +/** + * Human-readable identifier of the Managed Transform. + * + * @example add_cf-bot-score_header + */ +export type ManagedHeadersComponentsSchemasId = string; + +/** + * The device manufacturer name. + * + * @example My phone corp + */ +export type Manufacturer = string; + +/** + * The conditions that the client must match to run the rule. + */ +export type Match = MatchItem[]; + +/** + * Whether to match all search requirements or at least one (any). If set to `all`, acts like a logical AND between filters. If set to `any`, acts like a logical OR instead. Note that the interaction between tag filters is controlled by the `tag-match` parameter instead. + * + * @default all + * @example any + */ +export type Match90leq6MH = 'any' | 'all'; + +/** + * Determines which traffic the rate limit counts towards the threshold. + */ +export type MatchVa0wXlcX = { + headers?: { + name?: HeaderName; + op?: HeaderOp; + value?: HeaderValue; + }[]; + request?: { + methods?: Methods; + schemes?: Schemes; + url?: SchemasUrl; + }; + response?: { + origin_traffic?: OriginTraffic; + }; +}; + +export type MatchItem = { + platform?: Platform; +}; + +/** + * The maximum duration in seconds for a video upload. Can be set for a video that is not yet uploaded to limit its duration. Uploads that exceed the specified duration will fail during processing. A value of `-1` means the value is unknown. + * + * @maximum 21600 + * @minimum 1 + */ +export type MaxDurationSeconds = number; + +/** + * The maximum number of seconds the results of a preflight request can be cached. + * + * @example -1 + * @maximum 86400 + * @minimum -1 + */ +export type MaxAge = number; + +export type MaxEstimatedTimeMinutes = number; + +/** + * @example 3 + */ +export type MaxRetries = number; + +/** + * Maximum RTT in ms. + */ +export type MaxRttMs = number; + +/** + * Max TTL. + * + * @default 15 + * @maximum 64 + * @minimum 0 + */ +export type MaxTtl = number; + +/** + * Maximum size of an allowable upload. + */ +export type MaxUpload = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * identifier of the zone setting. + * + * @example max_upload + */ + id: 'max_upload'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: MaxUploadValue; +}; + +/** + * Value of the zone setting. + * Notes: The size depends on the plan level of the zone. (Enterprise = 500, Business = 200, Pro = 100, Free = 100) + * + * @default 100 + */ +export type MaxUploadValue = 100 | 200 | 500; + +/** + * @example 5000 + */ +export type MaxWaitTimeMs = number; + +/** + * Maximum DNS Cache TTL. + * + * @default 900 + * @example 900 + * @maximum 36000 + * @minimum 30 + */ +export type MaximumCacheTtl = number; + +/** + * Mean RTT in ms. + */ +export type MeanRttMs = number; + +/** + * The mechanism to which the notification has been dispatched. + * + * @example test@example.com + */ +export type Mechanism = string; + +/** + * The type of mechanism to which the notification has been dispatched. This can be email/pagerduty/webhook based on the mechanism configured. + * + * @example email + */ +export type MechanismType = 'email' | 'pagerduty' | 'webhook'; + +/** + * List of IDs that will be used when dispatching a notification. IDs for email type will be the email address. + * + * @example {"email":[{"id":"test@example.com"}],"pagerduty":[{"id":"e8133a15-00a4-4d69-aec1-32f70c51f6e5"}],"webhooks":[{"id":"14cc1190-5d2b-4b98-a696-c424cb2ad05f"}]} + */ +export type Mechanisms = { + [key: string]: { + id?: Uuid; + }[]; +}; + +/** + * A user modifiable key-value store used to reference other systems of record for managing videos. + * + * @example {} + */ +export type MediaMetadata = Record; + +/** + * Specifies the processing status of the video. + * + * @example inprogress + */ +export type MediaState = 'pendingupload' | 'downloading' | 'queued' | 'inprogress' | 'ready' | 'error'; + +/** + * Specifies a detailed status for a video. If the `state` is `inprogress` or `error`, the `step` field returns `encoding` or `manifest`. If the `state` is `inprogress`, `pctComplete` returns a number between 0 and 100 to indicate the approximate percent of completion. If the `state` is `error`, `errorReasonCode` and `errorReasonText` provide additional details. + */ +export type MediaStatus = { + errorReasonCode?: ErrorReasonCode; + errorReasonText?: ErrorReasonText; + pctComplete?: PctComplete; + state?: MediaState; +}; + +export type Member = { + code?: Code; + id: MembershipComponentsSchemasIdentifier; + /** + * Roles assigned to this member. + */ + roles: Role[]; + status: void; + user: { + email: EmailPuzf53IC; + first_name?: FirstName; + id?: CommonComponentsSchemasIdentifier; + last_name?: LastName; + two_factor_authentication_enabled?: TwoFactorAuthenticationEnabled; + }; +}; + +/** + * Member Name. + * + * @example John Smith + * @maxLength 100 + */ +export type MemberComponentsSchemasName = string | null; + +export type Membership = { + account?: SchemasAccount; + api_access_enabled?: ApiAccessEnabled; + code?: Code; + id?: MembershipComponentsSchemasIdentifier; + /** + * All access permissions for the user at the account. + * + * @example {"analytics":{"read":true,"write":false},"zones":{"read":true,"write":true}} + */ + permissions?: Permissions; + roles?: Roles; + status?: SchemasStatusJI04pNVL; +}; + +/** + * Membership identifier tag. + * + * @example 4536bcfad5faccb111b47003c79917fa + * @maxLength 32 + */ +export type MembershipComponentsSchemasIdentifier = string; + +/** + * Zones and Accounts which will be assigned IPs on this Address Map. A zone membership will take priority over an account membership. + */ +export type Memberships = AddressMapsMembership5Sv6b19f[]; + +export type Messages = { + /** + * @minimum 1000 + */ + code: number; + message: string; +}[]; + +/** + * User modifiable key-value store. Can be used for keeping references to another system of record for managing images. Metadata must not exceed 1024 bytes. + * + * @example {"key":"value"} + */ +export type Metadata = Record; + +/** + * The method to use for the health check. This defaults to 'GET' for HTTP/HTTPS based checks and 'connection_established' for TCP based health checks. + * + * @default GET + * @example GET + */ +export type Method = string; + +/** + * The HTTP method used to access the endpoint. + * + * @example GET + */ +export type MethodA9T9ZDIH = 'GET' | 'POST' | 'HEAD' | 'OPTIONS' | 'PUT' | 'DELETE' | 'CONNECT' | 'PATCH' | 'TRACE'; + +/** + * The HTTP methods to match. You can specify a subset (for example, `['POST','PUT']`) or all methods (`['_ALL_']`). This field is optional when creating a rate limit. + * + * @example GET + * @example POST + */ +export type Methods = ('GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | '_ALL_')[]; + +/** + * A comma-separated list of metrics to query. + * + * @example queryCount,uncachedCount + */ +export type Metrics = string; + +/** + * Minimum RTT in ms. + */ +export type MinRttMs = number; + +/** + * Only accepts HTTPS requests that use at least the TLS protocol version specified. For example, if TLS 1.1 is selected, TLS 1.0 connections will be rejected, while 1.1, 1.2, and 1.3 (if enabled) will be permitted. + * + * @default 1.0 + */ +export type MinTlsVersion = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example min_tls_version + */ + id: 'min_tls_version'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: MinTlsVersionValue; +}; + +/** + * Value of the zone setting. + * + * @default 1.0 + */ +export type MinTlsVersionValue = '1.0' | '1.1' | '1.2' | '1.3'; + +/** + * Automatically minify certain assets for your website. Refer to [Using Cloudflare Auto Minify](https://support.cloudflare.com/hc/en-us/articles/200168196) for more information. + */ +export type Minify = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * Zone setting identifier. + * + * @example minify + */ + id: 'minify'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: MinifyValue; +}; + +/** + * Value of the zone setting. + */ +export type MinifyValue = { + /** + * Automatically minify all CSS files for your website. + * + * @default off + */ + css?: 'on' | 'off'; + /** + * Automatically minify all HTML files for your website. + * + * @default off + */ + html?: 'on' | 'off'; + /** + * Automatically minify all JavaScript files for your website. + * + * @default off + */ + js?: 'on' | 'off'; +}; + +/** + * Minimum DNS Cache TTL. + * + * @default 60 + * @example 60 + * @maximum 36000 + * @minimum 30 + */ +export type MinimumCacheTtl = number; + +/** + * The minimum number of origins that must be healthy for this pool to serve traffic. If the number of healthy origins falls below this number, the pool will be marked unhealthy and will failover to the next available pool. + * + * @default 1 + */ +export type MinimumOrigins = number; + +/** + * Automatically optimize image loading for website visitors on mobile + * devices. Refer to [our blog post](http://blog.cloudflare.com/mirage2-solving-mobile-speed) + * for more information. + */ +export type Mirage = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example mirage + */ + id: 'mirage'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: MirageValue; +}; + +/** + * Value of the zone setting. + * + * @default off + */ +export type MirageValue = 'on' | 'off'; + +export type Miscategorization = { + /** + * Content category IDs to add. + * + * @example 82 + */ + content_adds?: void; + /** + * Content category IDs to remove. + * + * @example 155 + */ + content_removes?: void; + /** + * @example domain + */ + indicator_type?: 'domain' | 'ipv4' | 'ipv6' | 'url'; + /** + * Provide only if indicator_type is `ipv4` or `ipv6`. + */ + ip?: void; + /** + * Security category IDs to add. + * + * @example 117 + * @example 131 + */ + security_adds?: void; + /** + * Security category IDs to remove. + * + * @example 83 + */ + security_removes?: void; + /** + * Provide only if indicator_type is `domain` or `url`. Example if indicator_type is `domain`: `example.com`. Example if indicator_type is `url`: `https://example.com/news/`. + */ + url?: string; +}; + +export type MnmConfig = { + default_sampling: MnmConfigDefaultSampling; + name: MnmConfigName; + router_ips: MnmConfigRouterIps; +}; + +/** + * Fallback sampling rate of flow messages being sent in packets per second. This should match the packet sampling rate configured on the router. + * + * @default 1 + * @minimum 1 + */ +export type MnmConfigDefaultSampling = number; + +/** + * The account name. + * + * @example cloudflare user's account + */ +export type MnmConfigName = string; + +/** + * IPv4 CIDR of the router sourcing flow data. Only /32 addresses are currently supported. + * + * @example 203.0.113.1/32 + */ +export type MnmConfigRouterIp = string; + +export type MnmConfigRouterIps = MnmConfigRouterIp[]; + +export type MnmConfigSingleResponse = ApiResponseSingleLarS7owG & { + result?: MnmConfig; +}; + +export type MnmRule = { + automatic_advertisement: MnmRuleAutomaticAdvertisement; + bandwidth_threshold?: MnmRuleBandwidthThreshold; + duration: MnmRuleDuration; + id?: RuleIdentifier; + name: MnmRuleName; + packet_threshold?: MnmRulePacketThreshold; + prefixes: MnmRuleIpPrefixes; +} | null; + +export type MnmRuleAdvertisableResponse = { + automatic_advertisement: MnmRuleAutomaticAdvertisement; +} | null; + +export type MnmRuleAdvertisementSingleResponse = ApiResponseSingleLarS7owG & { + result?: MnmRuleAdvertisableResponse; +}; + +/** + * Toggle on if you would like Cloudflare to automatically advertise the IP Prefixes within the rule via Magic Transit when the rule is triggered. Only available for users of Magic Transit. + * + * @example false + */ +export type MnmRuleAutomaticAdvertisement = boolean | null; + +/** + * The number of bits per second for the rule. When this value is exceeded for the set duration, an alert notification is sent. Minimum of 1 and no maximum. + * + * @example 1000 + * @minimum 1 + */ +export type MnmRuleBandwidthThreshold = number; + +/** + * The amount of time that the rule threshold must be exceeded to send an alert notification. The minimum is 60 seconds and maximum is 21600 seconds. The format is XhYmZs where X, Y, and Z durations are optional; however at least one unit must be provided. + * + * @default 60s + * @example 1h2m3s + */ +export type MnmRuleDuration = string; + +/** + * The IP prefixes that are monitored for this rule. Must be a CIDR range like 203.0.113.0/24. Max 5000 different CIDR ranges. + * + * @example 203.0.113.1/32 + */ +export type MnmRuleIpPrefix = string; + +export type MnmRuleIpPrefixes = MnmRuleIpPrefix[]; + +/** + * The name of the rule. Must be unique. Supports characters A-Z, a-z, 0-9, underscore (_), dash (-), period (.), and tilde (~). You can’t have a space in the rule name. Max 256 characters. + * + * @example my_rule_1 + */ +export type MnmRuleName = string; + +/** + * The number of packets per second for the rule. When this value is exceeded for the set duration, an alert notification is sent. Minimum of 1 and no maximum. + * + * @example 10000 + * @minimum 1 + */ +export type MnmRulePacketThreshold = number; + +export type MnmRulesCollectionResponse = ApiResponseCollection & { + result?: MnmRule[] | null; +}; + +export type MnmRulesSingleResponse = ApiResponseSingleLarS7owG & { + result?: MnmRule; +}; + +/** + * Automatically redirect visitors on mobile devices to a mobile-optimized subdomain. Refer to [Understanding Cloudflare Mobile Redirect](https://support.cloudflare.com/hc/articles/200168336) for more information. + */ +export type MobileRedirect = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * Identifier of the zone setting. + * + * @example mobile_redirect + */ + id: 'mobile_redirect'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: MobileRedirectValue; +}; + +/** + * Value of the zone setting. + */ +export type MobileRedirectValue = { + /** + * Which subdomain prefix you wish to redirect visitors on mobile devices to (subdomain must already exist). + * + * @example m + * @minLength 1 + */ + mobile_subdomain?: string | null; + /** + * Whether or not mobile redirect is enabled. + * + * @default off + */ + status?: 'on' | 'off'; + /** + * Whether to drop the current page path and redirect to the mobile subdomain URL root, or keep the path and redirect to the same page on the mobile subdomain. + * + * @default false + * @example false + */ + strip_uri?: boolean; +}; + +/** + * The action to perform. + * + * @example challenge + */ +export type Mode = 'simulate' | 'ban' | 'challenge' | 'js_challenge' | 'managed_challenge'; + +/** + * When set to `on`, the current rule will be used when evaluating the request. Applies to traditional (allow) WAF rules. + * + * @example on + */ +export type ModeAllowTraditional = 'on' | 'off'; + +/** + * When set to `on`, the current WAF rule will be used when evaluating the request. Applies to anomaly detection WAF rules. + * + * @example on + */ +export type ModeAnomaly = 'on' | 'off'; + +/** + * The action that the current WAF rule will perform when triggered. Applies to traditional (deny) WAF rules. + * + * @example block + */ +export type ModeDenyTraditional = 'default' | 'disable' | 'simulate' | 'block' | 'challenge'; + +/** + * The device model name. + * + * @example MyPhone(pro-X) + */ +export type Model = string; + +/** + * The date and time the media item was last modified. + * + * @example 2014-01-02T02:20:00Z + * @format date-time + */ +export type Modified = string; + +/** + * The date and time the destination address was last modified. + * + * @example 2014-01-02T02:20:00Z + * @format date-time + */ +export type ModifiedCBEhc8Ab = string; + +/** + * When the Application was last modified. + * + * @example 2014-01-02T02:20:00Z + * @format date-time + */ +export type ModifiedXJlHjzHE = string; + +/** + * Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ +export type ModifiedAtNullable = string | null; + +/** + * Last modification of DNS Firewall cluster. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ +export type ModifiedOn = string; + +/** + * When DNSSEC was last modified. + * + * @example 2014-01-01T05:20:00Z + * @format date-time + */ +export type ModifiedOn4CdIXZup = string | null; + +/** + * When the certificate was last modified. + * + * @example 2014-01-01T05:20:00Z + * @format date-time + */ +export type ModifiedOnBXl82yTE = string; + +/** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ +export type ModifiedOnDrYUvDnK = string | null; + +/** + * When the script was last modified. + * + * @example 2017-01-01T00:00:00Z + * @format date-time + */ +export type ModifiedOnKlppwHF4 = string; + +/** + * When the route was last modified. + * + * @example 2017-06-14T05:20:00Z + * @format date-time + */ +export type ModifiedOnMQy5ittP = string; + +/** + * Last time the token was modified. + * + * @example 2018-07-02T05:20:00Z + * @format date-time + */ +export type ModifiedOnSimuKuKK = string; + +/** + * The number of rules within the group that have been modified from their default configuration. + * + * @default 0 + * @example 2 + */ +export type ModifiedRulesCount = number; + +export type ModifiedTunnelsCollectionResponse = ApiResponseSingleRxxEmdsv & { + result?: { + /** + * @example true + */ + modified?: boolean; + modified_gre_tunnels?: GreTunnel[]; + }; +}; + +export type ModifyRequest = { + description?: Web3HostnameComponentsSchemasDescription; + dnslink?: Dnslink; +}; + +export type Monitor = { + allow_insecure?: AllowInsecure; + created_on?: Timestamp; + description?: Description329lsFZ7; + expected_body?: ExpectedBody; + expected_codes?: ExpectedCodes; + follow_redirects?: FollowRedirects; + header?: Header; + id?: IdentifierYmSdxGUH; + interval?: IntervalHvanFWV2; + method?: Method; + modified_on?: Timestamp; + path?: Path; + port?: PortFtc1VWvE; + retries?: RetriesGl6521CK; + timeout?: Timeout; + type?: TypeB9S5DdJI; +}; + +export type MonitorHN4sJkEF = { + allow_insecure?: AllowInsecure; + created_on?: Timestamp; + description?: MonitorComponentsSchemasDescription; + expected_body?: ExpectedBody; + expected_codes?: ExpectedCodes; + follow_redirects?: FollowRedirects; + header?: Header; + id?: MonitorComponentsSchemasIdentifier; + interval?: IntervalLx3GfHR3; + method?: SchemasMethod; + modified_on?: Timestamp; + path?: Path; + port?: SchemasPortRWJFwo9O; + retries?: Retries7RuyOW7F; + timeout?: SchemasTimeout; + type?: MonitorComponentsSchemasType; +}; + +/** + * Object description. + * + * @example Login page monitor + */ +export type MonitorComponentsSchemasDescription = string; + +/** + * @example f1aba936b94213e5b8dca0c0dbf1f9cc + */ +export type MonitorComponentsSchemasIdentifier = void; + +export type MonitorComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: ComponentsSchemasMonitor[]; +}; + +export type MonitorComponentsSchemasResponseCollection2 = ApiResponseCollection & { + result?: ComponentsSchemasMonitor2jUnhefX[]; +}; + +export type MonitorComponentsSchemasResponseCollectionA9oUxpwl = ApiResponseCollection & { + result?: MonitorHN4sJkEF[]; +}; + +export type MonitorComponentsSchemasSingleResponse = ApiResponseSingleUl1k90Mw & { + result?: ComponentsSchemasMonitor; +}; + +export type MonitorComponentsSchemasSingleResponseYOkpwnDw = ApiResponseSingleLarS7owG & { + result?: ComponentsSchemasMonitor2jUnhefX; +}; + +/** + * The protocol to use for the health check. Currently supported protocols are 'HTTP','HTTPS', 'TCP', 'ICMP-PING', 'UDP-ICMP', and 'SMTP'. + * + * @default http + * @example https + */ +export type MonitorComponentsSchemasType = 'http' | 'https' | 'tcp' | 'udp_icmp' | 'icmp_ping' | 'smtp'; + +export type MtlsManagementComponentsSchemasCertificateResponseCollection = ApiResponseCollection & { + result?: ComponentsSchemasCertificateObject6kagZg5y[]; +} & { + result_info?: { + /** + * @example 1 + */ + count?: void; + /** + * @example 1 + */ + page?: void; + /** + * @example 50 + */ + per_page?: void; + /** + * @example 1 + */ + total_count?: void; + /** + * @example 1 + */ + total_pages?: void; + }; +}; + +export type MtlsManagementComponentsSchemasCertificateResponseSingle = ApiResponseSingleZZHeSkIR & { + result?: ComponentsSchemasCertificateObject; +}; + +export type MtlsManagementComponentsSchemasCertificateResponseSingleVPgDx3nJ = ApiResponseSingleLarS7owG & { + result?: ComponentsSchemasCertificateObject6kagZg5y; +}; + +/** + * When the certificate expires. + * + * @example 2122-10-29T16:59:47Z + * @format date-time + */ +export type MtlsManagementComponentsSchemasExpiresOn = string; + +/** + * Certificate identifier tag. + * + * @example 2458ce5a-0c35-4c7f-82c7-8e9487d3ff60 + * @maxLength 36 + */ +export type MtlsManagementComponentsSchemasIdentifier = string; + +/** + * Optional unique name for the certificate. Only used for human readability. + * + * @example example_ca_cert + */ +export type MtlsManagementComponentsSchemasName = string; + +/** + * Certificate deployment status for the given service. + * + * @example pending_deployment + */ +export type MtlsManagementComponentsSchemasStatus = string; + +/** + * This is the time the certificate was uploaded. + * + * @example 2022-11-22T17:32:30.467938Z + * @format date-time + */ +export type MtlsManagementComponentsSchemasUploadedOn = string; + +/** + * Maximum Transmission Unit (MTU) in bytes for the GRE tunnel. The minimum value is 576. + * + * @default 1476 + */ +export type Mtu = number; + +export type MultipleRouteDeleteResponse = ApiResponseSingleRxxEmdsv & { + result?: { + /** + * @example true + */ + deleted?: boolean; + deleted_routes?: Record; + }; +}; + +export type MultipleRouteModifiedResponse = ApiResponseSingleRxxEmdsv & { + result?: { + /** + * @example true + */ + modified?: boolean; + modified_routes?: Route[]; + }; +}; + +/** + * DNS Firewall Cluster Name. + * + * @example My Awesome DNS Firewall cluster + * @maxLength 160 + */ +export type Name = string; + +/** + * DNS record name (or @ for the zone apex) in Punycode. + * + * @example example.com + * @maxLength 255 + */ +export type Name5Ag1twUN = string; + +/** + * A short name to identify the health check. Only alphanumeric characters, hyphens and underscores are allowed. + * + * @example server-1 + */ +export type Name8NztOXJ3 = string; + +/** + * The name of the List. + * + * @example Admin Serial Numbers + */ +export type NameCf4EglAb = string; + +/** + * A unique name to identify the waiting room. Only alphanumeric characters, hyphens and underscores are allowed. + * + * @example production_webinar + */ +export type NameGu3WWDHz = string; + +/** + * A short name (tag) for the pool. Only alphanumeric characters, hyphens, and underscores are allowed. + * + * @example primary-dc-1 + */ +export type NameILH8OrHN = string; + +/** + * The name of your Zero Trust organization. + * + * @example Widget Corps Internal Applications + */ +export type NameRPn8IBAr = string; + +/** + * A short description of the watermark profile. + * + * @default + * @example Marketing Videos + */ +export type NameWjx50o7Y = string; + +/** + * Token name. + * + * @example readonly token + * @maxLength 120 + */ +export type NameZZnqpiZc = string; + +/** + * The name of the tunnel. The name cannot contain spaces or special characters, must be 15 characters or less, and cannot share a name with another GRE tunnel. + * + * @example GRE_1 + */ +export type NameBTvYm8cQ = string; + +/** + * The domain name + * + * @example example.com + * @maxLength 253 + * @pattern ^([a-zA-Z0-9][\-a-zA-Z0-9]*\.)+[\-a-zA-Z0-9]{2,20}$ + */ +export type NameCklnDVgY = string; + +/** + * Optional human readable job name. Not unique. Cloudflare suggests that you set this to a meaningful string, like the domain name, to make it easier to identify your job. + * + * @example example.com + * @maxLength 512 + * @pattern ^[a-zA-Z0-9\-\.]*$ + */ +export type NameGjT0muUM = string | null; + +/** + * The name of the Device Posture Rule. + * + * @example Admin Serial Numbers + */ +export type NameKU9Y1gf9 = string; + +/** + * The keyless SSL name. + * + * @example example.com Keyless SSL + * @maxLength 180 + */ +export type NameOdTv91XZ = string; + +/** + * Zone name. + * + * @example www.example.com. + */ +export type NameSjz7boGi = string; + +/** + * List of name servers. + * + * @example preston.ns.cloudflare.com + * @example oli.ns.cloudflare.com + */ +export type NameServers = string[]; + +/** + * The keyless SSL name. + * + * @example example.com Keyless SSL + * @maxLength 180 + */ +export type NameWrite = string; + +export type Namespace = { + id: NamespaceIdentifier; + /** + * True if keys written on the URL will be URL-decoded before storing. For example, if set to "true", a key written on the URL as "%3F" will be stored as "?". + * + * @example true + */ + supports_url_encoding?: boolean; + title: NamespaceTitle; +}; + +/** + * Namespace identifier tag. + * + * @example 0f2ac74b498b48028cb68387c421e279 + * @maxLength 32 + */ +export type NamespaceIdentifier = string; + +/** + * A human-readable string name for a Namespace. + * + * @example My Own Namespace + */ +export type NamespaceTitle = string; + +/** + * Negative DNS Cache TTL. + * + * @example 900 + * @maximum 36000 + * @minimum 30 + */ +export type NegativeCacheTtl = number | null; + +/** + * Enable Network Error Logging reporting on your zone. (Beta) + */ +export type Nel = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * Zone setting identifier. + * + * @example nel + */ + id: 'nel'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: NelValue; +}; + +/** + * Value of the zone setting. + */ +export type NelValue = { + /** + * @default false + * @example false + */ + enabled?: boolean; +}; + +/** + * A list of network ranges that requests from this location would originate from. + */ +export type Network = string[]; + +/** + * Indicates whether the variant can access an image without a signature, regardless of image access control. + * + * @default false + * @example true + */ +export type NeverRequireSignedURLs = boolean; + +export type NewProjectResponse = { + errors: Messages; + messages: Messages; + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +/** + * A custom entry create payload + */ +export type NewCustomEntry = { + /** + * Whether the entry is enabled or not. + * + * @example true + */ + enabled: boolean; + /** + * The name of the entry. + * + * @example Credit card (Visa) + */ + name: string; + pattern: Pattern; +}; + +/** + * A custom entry create payload + */ +export type NewCustomEntryGJ2LIzhS = { + /** + * Whether the entry is enabled or not. + * + * @example true + */ + enabled: boolean; + /** + * The name of the entry. + * + * @example Credit card (Visa) + */ + name: string; + pattern: ComponentsSchemasPattern; +}; + +export type NewCustomProfile = { + allowed_match_count?: AllowedMatchCount; + /** + * The description of the profile. + * + * @example A standard CVV card number + */ + description?: string; + /** + * The entries for this profile. + */ + entries?: NewCustomEntryGJ2LIzhS[]; + /** + * The name of the profile. + * + * @example Generic CVV Card Number + */ + name?: string; +}; + +/** + * Sets the number of new users that will be let into the route every minute. This value is used as baseline for the number of users that are let in per minute. So it is possible that there is a little more or little less traffic coming to the route based on the traffic patterns at that time around the world. + * + * @maximum 2147483647 + * @minimum 200 + */ +export type NewUsersPerMinute = number; + +/** + * An ISO 8601 timestamp that marks when the next event will begin queueing. + * + * @example 2021-09-28T15:00:00.000Z + */ +export type NextEventPrequeueStartTime = string | null; + +/** + * An ISO 8601 timestamp that marks when the next event will start. + * + * @example 2021-09-28T15:00:00.000Z + */ +export type NextEventStartTime = string | null; + +/** + * The next-hop IP Address for the static route. + * + * @example 203.0.113.1 + */ +export type Nexthop = string; + +/** + * @example {"asn":"AS13335","ip":"1.1.1.1","max_latency_ms":0.034,"mean_latency_ms":0.021,"min_latency_ms":0.014,"name":"one.one.one.one","packet_count":3,"std_dev_latency_ms":0.011269427669584647} + */ +export type NodeResult = { + asn?: SchemasAsn; + ip?: TracerouteComponentsSchemasIp; + labels?: Labels; + max_rtt_ms?: MaxRttMs; + mean_rtt_ms?: MeanRttMs; + min_rtt_ms?: MinRttMs; + name?: TracerouteComponentsSchemasName; + packet_count?: PacketCount; + std_dev_rtt_ms?: StdDevRttMs; +}; + +/** + * The time before which the token MUST NOT be accepted for processing. + * + * @example 2018-07-01T05:20:00Z + * @format date-time + */ +export type NotBefore = string; + +/** + * An informative summary of the rule, typically used as a reminder or explanation. + * + * @example This rule is enabled because of an event that occurred on date X. + */ +export type Notes = string; + +/** + * The URL where webhooks will be sent. + * + * @example https://example.com + * @format uri + */ +export type NotificationUrl = string; + +/** + * This field is now deprecated. It has been moved to Cloudflare's Centralized Notification service https://developers.cloudflare.com/fundamentals/notifications/. The email address to send health status notifications to. This can be an individual mailbox or a mailing list. Multiple emails can be supplied as a comma delimited list. + * + * @example someone@example.com,sometwo@example.com + */ +export type NotificationEmail = string; + +/** + * The email address to send health status notifications to. This can be an individual mailbox or a mailing list. Multiple emails can be supplied as a comma delimited list. + * + * @example someone@example.com,sometwo@example.com + */ +export type NotificationEmailRSyVUYWe = string; + +/** + * Filter pool and origin health notifications by resource type or health status. Use null to reset. + * + * @example {"origin":{"disable":true},"pool":{"healthy":false}} + */ +export type NotificationFilter = { + origin?: FilterOptions; + pool?: FilterOptions; +} | null; + +/** + * The FQDN of the name server. + * + * @example ns1.example.com + * @format hostname + */ +export type NsName = string; + +/** + * The number of items in the list. + * + * @example 10 + */ +export type NumItems = number; + +/** + * The number of [filters](#filters) referencing the list. + * + * @example 2 + */ +export type NumReferencingFilters = number; + +export type Object = { + /** + * Whether the Durable Object has stored data. + * + * @example true + */ + hasStoredData?: boolean; + /** + * ID of the Durable Object. + * + * @example fe7803fc55b964e09d94666545aab688d360c6bda69ba349ced1e5f28d2fc2c8 + */ + id?: string; +}; + +/** + * When the billing item was created. + * + * @example 2014-03-01T12:21:59.3456Z + * @format date-time + */ +export type OccurredAt = string; + +export type Oidc = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig & { + /** + * The authorization_endpoint URL of your IdP + * + * @example https://accounts.google.com/o/oauth2/auth + */ + auth_url?: string; + /** + * The jwks_uri endpoint of your IdP to allow the IdP keys to sign the tokens + * + * @example https://www.googleapis.com/oauth2/v3/certs + */ + certs_url?: string; + /** + * OAuth scopes + * + * @example openid + * @example email + * @example profile + */ + scopes?: string[]; + /** + * The token_endpoint URL of your IdP + * + * @example https://accounts.google.com/o/oauth2/token + */ + token_url?: string; + }; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +export type Okta = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig & { + /** + * Your okta account url + * + * @example https://dev-abc123.oktapreview.com + */ + okta_account?: string; + }; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +/** + * Matches an Okta group. + * Requires an Okta identity provider. + */ +export type OktaGroupRule = { + okta: { + /** + * The ID of your Okta identity provider. + * + * @example ea85612a-29c8-46c2-bacb-669d65136971 + */ + connection_id: string; + /** + * The email of the Okta group. + * + * @example devs@cloudflare.com + */ + email: string; + }; +}; + +/** + * Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled. + * + * @example true + */ +export type OnDemandEnabled = boolean; + +/** + * Whether advertisement status of the prefix is locked, meaning it cannot be changed. + * + * @example false + */ +export type OnDemandLocked = boolean; + +/** + * The date and time when the video upload URL is no longer valid for direct user uploads. + * + * @example 2014-01-02T02:20:00Z + * @format date-time + */ +export type OneTimeUploadExpiry = string; + +export type Onelogin = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig & { + /** + * Your OneLogin account url + * + * @example https://mycompany.onelogin.com + */ + onelogin_account?: string; + }; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +/** + * The translucency of the image. A value of `0.0` makes the image completely transparent, and `1.0` makes the image completely opaque. Note that if the image is already semi-transparent, setting this to `1.0` will not make the image completely opaque. + * + * @default 1 + * @example 0.75 + * @maximum 1 + * @minimum 0 + */ +export type Opacity = number; + +/** + * A OpenAPI 3.0.0 compliant schema. + * + * @example {"info":{"title":"OpenAPI JSON schema for www.example.com","version":"1.0"},"openapi":"3.0.0","paths":{"... Further paths ...":{},"/api/v1/users/{var1}":{"get":{"parameters":[{"in":"path","name":"var1","required":true,"schema":{"type":"string"}}]}}},"servers":[{"url":"www.example.com"}]} + */ +export type Openapi = Record; + +/** + * A OpenAPI 3.0.0 compliant schema. + * + * @example {"info":{"title":"OpenAPI JSON schema for www.example.com","version":"1.0"},"openapi":"3.0.0","paths":{"... Further paths ...":{},"/api/v1/users/{var1}":{"get":{"parameters":[{"in":"path","name":"var1","required":true,"schema":{"type":"string"}}]}}},"servers":[{"url":"www.example.com"}]} + */ +export type Openapiwiththresholds = Record; + +export type Operation = { + endpoint: Endpoint; + features?: Features; + host: HostD2DhpgVX; + last_updated: Timestamp; + method: MethodA9T9ZDIH; + operation_id: Uuid; +}; + +/** + * The unique operation ID of the asynchronous action. + * + * @example 4da8780eeb215e6cb7f48dd981c4ea02 + */ +export type OperationId = string; + +/** + * Enables the Opportunistic Encryption feature for a zone. + */ +export type OpportunisticEncryption = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example opportunistic_encryption + */ + id: 'opportunistic_encryption'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: OpportunisticEncryptionValue; +}; + +/** + * Value of the zone setting. + * Notes: Default value depends on the zone's plan level. + * + * @default on + */ +export type OpportunisticEncryptionValue = 'on' | 'off'; + +/** + * Add an Alt-Svc header to all legitimate requests from Tor, allowing the connection to use our onion services instead of exit nodes. + * + * @default off + */ +export type OpportunisticOnion = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example opportunistic_onion + */ + id: 'opportunistic_onion'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: OpportunisticOnionValue; +}; + +/** + * Value of the zone setting. + * Notes: Default value depends on the zone's plan level. + * + * @default off + */ +export type OpportunisticOnionValue = 'on' | 'off'; + +/** + * Allows you to define image resizing sizes for different use cases. + */ +export type Options = { + fit: Fit; + height: HeightHdzALmvb; + metadata: SchemasMetadata; + width: Width3qFBlIcS; +}; + +/** + * Orange to Orange (O2O) allows zones on Cloudflare to CNAME to other zones also on Cloudflare. + */ +export type OrangeToOrange = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example orange_to_orange + */ + id: 'orange_to_orange'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: OrangeToOrangeValue; +}; + +/** + * Value of the zone setting. + * + * @default on + */ +export type OrangeToOrangeValue = 'on' | 'off'; + +/** + * Field to order DNS records by. + * + * @default type + */ +export type Order = 'type' | 'name' | 'content' | 'ttl' | 'proxied'; + +/** + * Organization, provided by the CSR + * + * @example Organization + */ +export type Organization = string; + +export type Organization4zEoGtIG = { + id?: CommonComponentsSchemasIdentifier; + name?: SchemasNameMUD1zc5L; + permissions?: SchemasPermissions; + /** + * List of roles that a user has within an organization. + */ + roles?: string[]; + status?: ComponentsSchemasStatusMKwOT5XZ; +}; + +/** + * Organization identifier tag. + * + * @example 01a7362d577a6c3019a474fd6f485823 + * @maxLength 32 + */ +export type OrganizationComponentsSchemasIdentifier = string; + +export type OrganizationInvite = BaseMktMcgEk & { + /** + * Current status of two-factor enforcement on the organization. + * + * @default false + * @example true + */ + organization_is_enforcing_twofactor?: boolean; + /** + * Current status of the invitation. + * + * @example accepted + */ + status?: 'pending' | 'accepted' | 'rejected' | 'canceled' | 'left' | 'expired'; +}; + +/** + * Organizational Unit, provided by the CSR + * + * @example Organizational Unit + */ +export type OrganizationalUnit = string; + +export type Organizations = { + auth_domain?: AuthDomain; + auto_redirect_to_identity?: AutoRedirectToIdentity; + created_at?: Timestamp; + is_ui_read_only?: IsUiReadOnly; + login_design?: LoginDesign; + name?: NameRPn8IBAr; + ui_read_only_toggle_reason?: UiReadOnlyToggleReason; + updated_at?: Timestamp; + user_seat_expiration_inactive_time?: UserSeatExpirationInactiveTime; +}; + +export type OrganizationsHXYA9SXW = { + auth_domain?: AuthDomain; + created_at?: Timestamp; + is_ui_read_only?: IsUiReadOnly; + login_design?: LoginDesign; + name?: OrganizationsComponentsSchemasName; + updated_at?: Timestamp; +}; + +/** + * The name of your Zero Trust organization. + * + * @example Widget Corps Internal Applications + */ +export type OrganizationsComponentsSchemasName = string; + +export type OrganizationsComponentsSchemasSingleResponse = ApiResponseSingleKLIlNaxV & { + result?: SchemasOrganizations; +}; + +export type OrganizationsComponentsSchemasSingleResponseZfZi7x26 = ApiResponseSingleLarS7owG & { + result?: OrganizationsHXYA9SXW; +}; + +/** + * Your origin hostname that requests to your custom hostnames will be sent to. + * + * @example fallback.example.com + * @maxLength 255 + */ +export type Origin = string; + +export type OriginLs8Gu3ue = { + address?: Address2vBDvjOD; + disabled_at?: DisabledAt; + enabled?: SchemasEnabledFbTTZgfc; + header?: SchemasHeader; + name?: SchemasNamePvgM4uwK; + virtual_network_id?: VirtualNetworkId; + weight?: WeightNB8okIS7; +}; + +export type OriginRulesComponentsSchemasRule = { + /** + * @example route + */ + action?: void; + action_parameters?: SchemasActionParameters; + /** + * @example change the host header, origin, and SNI + */ + description?: void; + /** + * @example http.cookie contains "something" + */ + expression?: void; + /** + * @example 3a03d665bac047339bb530ecb439a90d + */ + id?: void; + /** + * @example 1 + */ + version?: void; +}; + +/** + * Whether to enable (the default) this origin within the pool. Disabled origins will not receive traffic and are excluded from health checks. The origin will only be disabled for the current pool. + * + * @default true + * @example true + */ +export type OriginComponentsSchemasEnabled = boolean; + +/** + * A human-identifiable name for the origin. + * + * @example app-server-1 + */ +export type OriginComponentsSchemasName = string; + +/** + * The name and type of DNS record for the Spectrum application. + */ +export type OriginDns = { + name?: OriginDnsName; + ttl?: DnsTtl; + type?: OriginDnsType; +}; + +/** + * The name of the DNS record associated with the origin. + * + * @example origin.example.com + * @format hostname + */ +export type OriginDnsName = string; + +/** + * The type of DNS record associated with the origin. "" is used to specify a combination of A/AAAA records. + * + * @example + */ +export type OriginDnsType = '' | 'A' | 'AAAA' | 'SRV'; + +/** + * Cloudflare will proxy customer error pages on any 502,504 errors on origin server instead of showing a default Cloudflare error page. This does not apply to 522 errors and is limited to Enterprise Zones. + * + * @default off + */ +export type OriginErrorPagePassThru = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example origin_error_page_pass_thru + */ + id: 'origin_error_page_pass_thru'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: OriginErrorPagePassThruValue; +}; + +/** + * Value of the zone setting. + * + * @default off + */ +export type OriginErrorPagePassThruValue = 'on' | 'off'; + +/** + * The origin ipv4/ipv6 address or domain name mapped to it's health data. + * + * @example {"failure_reason":"No failures","healthy":true,"response_code":200,"rtt":"66ms"} + */ +export type OriginHealthData = { + failure_reason?: string; + healthy?: boolean; + response_code?: number; + rtt?: string; +}; + +/** + * If true, filter events where the origin status is healthy. If false, filter events where the origin status is unhealthy. + * + * @default true + * @example true + */ +export type OriginHealthy = boolean; + +/** + * The highest HTTP version Cloudflare will attempt to use with your origin. This setting allows Cloudflare to make HTTP/2 requests to your origin. (Refer to [Enable HTTP/2 to Origin](https://developers.cloudflare.com/cache/how-to/enable-http2-to-origin/), for more information.). + */ +export type OriginMaxHttpVersion = { + /** + * Identifier of the zone setting. + * + * @example origin_max_http_version + */ + id: 'origin_max_http_version'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; +}; + +/** + * The destination port at the origin. Only specified in conjunction with origin_dns. May use an integer to specify a single origin port, for example `1000`, or a string to specify a range of origin ports, for example `"1000-2000"`. + * Notes: If specifying a port range, the number of ports in the range must match the number of ports specified in the "protocol" field. + * + * @example 22 + * @maximum 65535 + * @minimum 1 + */ +export type OriginPort = number | string; + +/** + * Configures origin steering for the pool. Controls how origins are selected for new sessions and traffic without session affinity. + */ +export type OriginSteering = { + /** + * The type of origin steering policy to use, either "random" or "hash" (based on CF-Connecting-IP). + * + * @default random + */ + policy?: 'random' | 'hash'; +}; + +/** + * When true, only the uncached traffic served from your origin servers will count towards rate limiting. In this case, any cached traffic served by Cloudflare will not count towards rate limiting. This field is optional. + * Notes: This field is deprecated. Instead, use response headers and set "origin_traffic" to "false" to avoid legacy behaviour interacting with the "response_headers" property. + */ +export type OriginTraffic = boolean; + +/** + * URI to original variant for an image. + * + * @example https://imagedelivery.net/MTt4OTd0b0w5aj/107b9558-dd06-4bbd-5fef-9c2c16bb7900/original + * @format uri + */ +export type OriginalUrl = string; + +/** + * The list of origins within this pool. Traffic directed at this pool is balanced across all currently healthy origins, provided the pool itself is healthy. + */ +export type Origins = OriginLs8Gu3ue[]; + +/** + * The list of origins within this pool. Traffic directed at this pool is balanced across all currently healthy origins, provided the pool itself is healthy. + */ +export type OriginsSJsVZfMb = SchemasOrigin[]; + +/** + * The Linux distro name. + * + * @example ubuntu + */ +export type OsDistroName = string; + +/** + * The Linux distro revision. + * + * @example 1.0.0 + */ +export type OsDistroRevision = string; + +/** + * The operating system version. + * + * @example 10.0.0 + */ +export type OsVersion = string; + +export type Output = { + enabled?: OutputEnabled; + streamKey?: OutputStreamKey; + uid?: OutputIdentifier; + url?: OutputUrl; +}; + +/** + * When enabled, live video streamed to the associated live input will be sent to the output URL. When disabled, live video will not be sent to the output URL, even when streaming to the associated live input. Use this to control precisely when you start and stop simulcasting to specific destinations like YouTube and Twitch. + * + * @default true + * @example true + */ +export type OutputEnabled = boolean; + +/** + * A unique identifier for the output. + * + * @example baea4d9c515887b80289d5c33cf01145 + * @maxLength 32 + */ +export type OutputIdentifier = string; + +export type OutputResponseCollection = ApiResponseCollection & { + result?: Output[]; +}; + +export type OutputResponseSingle = ApiResponseSingleYdRGfgTy & { + result?: Output; +}; + +/** + * The streamKey used to authenticate against an output's target. + * + * @example uzya-f19y-g2g9-a2ee-51j2 + */ +export type OutputStreamKey = string; + +/** + * The URL an output uses to restream. + * + * @example rtmp://a.rtmp.youtube.com/live2 + */ +export type OutputUrl = string; + +export type Override = { + description?: OverridesComponentsSchemasDescription; + groups?: Groups19vIuPeV; + id?: OverridesComponentsSchemasId; + paused?: Paused26QCY3k0; + priority?: ComponentsSchemasPriority; + rewrite_action?: RewriteAction; + rules?: Rules8wmBD69l; + urls?: Urls; +}; + +export type OverrideCodesResponse = ApiResponseCollection & { + result?: { + disable_for_time?: DisableForTime; + }; +}; + +export type OverrideResponseCollection = ApiResponseCollection & { + result: { + description?: OverridesComponentsSchemasDescription; + groups?: Groups19vIuPeV; + id: OverridesComponentsSchemasId; + paused: Paused26QCY3k0; + priority: ComponentsSchemasPriority; + rewrite_action?: RewriteAction; + rules?: Rules8wmBD69l; + urls: Urls; + }[]; +}; + +export type OverrideResponseSingle = ApiResponseSingleLarS7owG & { + result: Override; +}; + +/** + * An informative summary of the current URI-based WAF override. + * + * @example Enable Cloudflare Magento ruleset for shop.example.com + * @maxLength 1024 + */ +export type OverridesComponentsSchemasDescription = string | null; + +/** + * The unique identifier of the WAF override. + * + * @example de677e5818985db1285d0e80225f06e5 + * @maxLength 32 + */ +export type OverridesComponentsSchemasId = string; + +/** + * Ownership challenge token to prove destination ownership. + * + * @example 00000000000000000000 + * @maxLength 4096 + * @pattern ^[a-zA-Z0-9/\+\.\-_]*$ + */ +export type OwnershipChallenge = string; + +/** + * This is a record which can be placed to activate a hostname. + */ +export type OwnershipVerification = { + /** + * DNS Name for record. + * + * @example _cf-custom-hostname.app.example.com + */ + name?: string; + /** + * DNS Record type. + * + * @example txt + */ + type?: 'txt'; + /** + * Content for the record. + * + * @example 5cc07c04-ea62-4a5a-95f0-419334a875a4 + */ + value?: string; +}; + +/** + * This presents the token to be served by the given http url to activate a hostname. + */ +export type OwnershipVerificationHttp = { + /** + * Token to be served. + * + * @example 5cc07c04-ea62-4a5a-95f0-419334a875a4 + */ + http_body?: string; + /** + * The HTTP URL that will be checked during custom hostname verification and where the customer should host the token. + * + * @example http://custom.test.com/.well-known/cf-custom-hostname-challenge/0d89c70d-ad9f-4843-b99f-6cc0252067e9 + */ + http_url?: string; +}; + +/** + * The p50 quantile of requests (in period_seconds). + */ +export type P50 = number; + +/** + * The p90 quantile of requests (in period_seconds). + */ +export type P90 = number; + +/** + * The p99 quantile of requests (in period_seconds). + */ +export type P99 = number; + +export type Package = PackageDefinition | AnomalyPackage; + +/** + * A summary of the purpose/function of the WAF package. + * + * @example null + */ +export type PackageComponentsSchemasDescription = string; + +/** + * The unique identifier of a WAF package. + * + * @example a25a9a7e9c00afc1fb2e0245519d725b + * @maxLength 32 + */ +export type PackageComponentsSchemasIdentifier = string; + +/** + * The name of the WAF package. + * + * @example USER + */ +export type PackageComponentsSchemasName = string; + +/** + * When set to `active`, indicates that the WAF package will be applied to the zone. + * + * @default active + */ +export type PackageComponentsSchemasStatus = 'active'; + +export type PackageDefinition = { + description: PackageComponentsSchemasDescription; + detection_mode: DetectionMode; + id: PackageComponentsSchemasIdentifier; + name: PackageComponentsSchemasName; + status?: PackageComponentsSchemasStatus; + zone_id: CommonComponentsSchemasIdentifier; +}; + +export type PackageResponseCollection = + | ApiResponseCollection + | { + result?: Package[]; + }; + +export type PackageResponseSingle = + | ApiResponseSingleLarS7owG + | { + result?: Record; + }; + +/** + * Number of packets with a response from this node. + */ +export type PacketCount = number; + +/** + * Type of packet sent. + * + * @default icmp + * @example icmp + */ +export type PacketType = 'icmp' | 'tcp' | 'udp' | 'gre' | 'gre+icmp'; + +/** + * Number of packets where no response was received. + */ +export type PacketsLost = number; + +/** + * Number of packets sent at each TTL. + * + * @default 3 + * @maximum 10 + * @minimum 0 + */ +export type PacketsPerTtl = number; + +/** + * Number of packets sent with specified TTL. + */ +export type PacketsSent = number; + +/** + * The time to live (TTL). + */ +export type PacketsTtl = number; + +/** + * The whitespace between the adjacent edges (determined by position) of the video and the image. `0.0` indicates no padding, and `1.0` indicates a fully padded video width or length, as determined by the algorithm. + * + * @default 0.05 + * @example 0.1 + * @maximum 1 + * @minimum 0 + */ +export type Padding = number; + +/** + * Page number of paginated results. + * + * @default 1 + * @minimum 1 + */ +export type Page = number; + +/** + * Current page within paginated list of results. + * + * @example 1 + */ +export type PageEKO5IlXB = number; + +export type PageRule = { + actions: Actions; + created_on: CreatedOn1QmUCKgu; + id: SchemasIdentifier; + modified_on: SchemasModifiedOnPkJiYI69; + priority: PriorityCHRoVVCg; + status: StatusLJNunJhf; + targets: Targets; +}; + +export type Pagerduty = { + id?: Uuid; + name?: PagerdutyComponentsSchemasName; +}; + +/** + * The name of the pagerduty service. + * + * @example My PagerDuty Service + */ +export type PagerdutyComponentsSchemasName = string; + +export type PagerdutyComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: Pagerduty[]; +}; + +export type PageruleResponseCollection = { + errors: Messages; + messages: Messages; + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type PageruleResponseSingle = ApiResponseSingle9gEyfxyF & { + result?: Record; +}; + +export type PageruleSettingsResponseCollection = { + errors: Messages; + messages: Messages; + result: SettingsWG7ImyVP; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type PageshieldPolicy = { + /** + * The action to take if the expression matches + * + * @example allow + */ + action?: 'allow' | 'log'; + /** + * A description for the policy + * + * @example Checkout page CSP policy + */ + description?: string; + /** + * Whether the policy is enabled + * + * @example true + */ + enabled?: boolean; + /** + * The expression which must match for the policy to be applied, using the Cloudflare Firewall rule expression syntax + * + * @example ends_with(http.request.uri.path, "/checkout") + */ + expression?: string; + /** + * The ID of the policy + * + * @example c9ef84a6bf5e47138c75d95e2f933e8f + */ + id?: string; + /** + * The policy which will be applied + * + * @example script-src 'none'; + */ + value?: string; +}; + +/** + * Breakdown of totals for pageviews. + */ +export type Pageviews = { + /** + * The total number of pageviews served within the time range. + */ + all?: number; + /** + * A variable list of key/value pairs representing the search engine and number of hits. + * + * @example {"baidubot":1345,"bingbot":5372,"googlebot":35272,"pingdom":13435} + */ + search_engine?: Record; +}; + +export type ParameterSchemas = { + parameter_schemas: { + last_updated?: Timestamp; + parameter_schemas?: ParameterSchemasDefinition; + }; +}; + +/** + * An operation schema object containing a response. + * + * @example {"parameters":[{"description":"Sufficient requests have been observed for this parameter to provide high confidence in this parameter schema.","in":"path","name":"var1","required":true,"schema":{"maximum":10,"minimum":1,"type":"integer"}}],"responses":null} + */ +export type ParameterSchemasDefinition = { + /** + * An array containing the learned parameter schemas. + * + * @example {"description":"Sufficient requests have been observed for this parameter to provide high confidence in this parameter schema.","in":"path","name":"var1","required":true,"schema":{"maximum":10,"minimum":1,"type":"integer"}} + */ + parameters?: any[]; + /** + * An empty response object. This field is required to yield a valid operation schema. + */ + responses?: Record; +}; + +export type PassiveDnsByIp = { + /** + * Total results returned based on your search parameters. + * + * @example 1 + */ + count?: number; + /** + * Current page within paginated list of results. + * + * @example 1 + */ + page?: number; + /** + * Number of results per page of results. + * + * @example 20 + */ + per_page?: number; + /** + * Reverse DNS look-ups observed during the time period. + */ + reverse_records?: { + /** + * First seen date of the DNS record during the time period. + * + * @example 2021-04-01 + * @format date + */ + first_seen?: string; + /** + * Hostname that the IP was observed resolving to. + */ + hostname?: void; + /** + * Last seen date of the DNS record during the time period. + * + * @example 2021-04-30 + * @format date + */ + last_seen?: string; + }[]; +}; + +export type PassiveDnsByIpComponentsSchemasSingleResponse = ApiResponseSingleLarS7owG & { + result?: PassiveDnsByIp; +}; + +/** + * Update enablement of Tiered Caching + */ +export type Patch = { + value: Value; +}; + +/** + * Update enablement of Argo Smart Routing + */ +export type PatchSwNjVZjB = { + value: SchemasValueGg4TAeXR; +}; + +/** + * The email address to send health status notifications to. This field is now deprecated in favor of Cloudflare Notifications for Load Balancing, so only resetting this field with an empty string `""` is accepted. + * + * @example + */ +export type PatchPoolsNotificationEmail = '""'; + +export type PatchRule = { + action: RuleAction; + description?: RuleDescription; + enabled?: RuleEnabled; + expression: RuleExpression; + position?: RulePosition; +}; + +/** + * The endpoint path you want to conduct a health check against. This parameter is only valid for HTTP and HTTPS monitors. + * + * @default / + * @example /health + */ +export type Path = string; + +/** + * Sets the path within the host to enable the waiting room on. The waiting room will be enabled for all subpaths as well. If there are two waiting rooms on the same subpath, the waiting room for the most specific path will be chosen. Wildcards and query parameters are not supported. + * + * @default / + * @example /shop/checkout + */ +export type PathIVkcNWHz = string; + +/** + * Enables cookie paths to scope an application's JWT to the application path. If disabled, the JWT will scope to the hostname by default + * + * @default false + * @example true + */ +export type PathCookieAttribute = boolean; + +/** + * A pattern that matches an entry + */ +export type Pattern = { + /** + * The regex pattern. + * + * @example ^4[0-9]{6,14}$ + */ + regex: string; + /** + * Validation algorithm for the pattern. This algorithm will get run on potential matches, and if it returns false, the entry will not be matched. + * + * @example luhn + */ + validation?: 'luhn'; +}; + +/** + * @example example.net/* + */ +export type Pattern2dXyN8SA = string; + +/** + * Indicates whether the zone is only using Cloudflare DNS services. A + * true value means the zone will not receive security or performance + * benefits. + * + * @default false + */ +export type Paused = boolean; + +/** + * When true, indicates that the WAF package is currently paused. + */ +export type Paused26QCY3k0 = boolean; + +/** + * The maximum number of bytes to capture. This field only applies to `full` packet captures. + * + * @example 500000 + * @maximum 1000000000 + * @minimum 1 + */ +export type PcapsByteLimit = number; + +export type PcapsCollectionResponse = ApiResponseCollection & { + result?: (PcapsResponseSimple | PcapsResponseFull)[]; +}; + +/** + * The name of the data center used for the packet capture. This can be a specific colo (ord02) or a multi-colo name (ORD). This field only applies to `full` packet captures. + * + * @example ord02 + */ +export type PcapsColoName = string; + +/** + * The full URI for the bucket. This field only applies to `full` packet captures. + * + * @example s3://pcaps-bucket?region=us-east-1 + */ +export type PcapsDestinationConf = string; + +/** + * An error message that describes why the packet capture failed. This field only applies to `full` packet captures. + * + * @example No packets matched the filter in the time limit given. Please modify the filter or try again. + */ +export type PcapsErrorMessage = string; + +/** + * The packet capture filter. When this field is empty, all packets are captured. + */ +export type PcapsFilterV1 = { + /** + * The destination IP address of the packet. + * + * @example 1.2.3.4 + */ + destination_address?: string; + /** + * The destination port of the packet. + * + * @example 80 + */ + destination_port?: number; + /** + * The protocol number of the packet. + * + * @example 6 + */ + protocol?: number; + /** + * The source IP address of the packet. + * + * @example 1.2.3.4 + */ + source_address?: string; + /** + * The source port of the packet. + * + * @example 123 + */ + source_port?: number; +}; + +/** + * The ID for the packet capture. + * + * @example 66802ca5668e47a2b82c2e6746e45037 + * @maxLength 32 + * @minLength 32 + */ +export type PcapsId = string; + +/** + * The ownership challenge filename stored in the bucket. + * + * @example ownership-challenge-9883874ecac311ec8475433579a6bf5f.txt + */ +export type PcapsOwnershipChallenge = string; + +export type PcapsOwnershipCollection = ApiResponseCollection & { + result?: PcapsOwnershipResponse[] | null; +}; + +export type PcapsOwnershipRequest = { + destination_conf: PcapsDestinationConf; +}; + +export type PcapsOwnershipResponse = { + destination_conf: PcapsDestinationConf; + filename: PcapsOwnershipChallenge; + /** + * The bucket ID associated with the packet captures API. + * + * @example 9883874ecac311ec8475433579a6bf5f + * @maxLength 32 + * @minLength 32 + */ + id: string; + /** + * The status of the ownership challenge. Can be pending, success or failed. + * + * @example success + */ + status: 'pending' | 'success' | 'failed'; + /** + * The RFC 3339 timestamp when the bucket was added to packet captures API. + * + * @example 2020-01-01T08:00:00Z + */ + submitted: string; + /** + * The RFC 3339 timestamp when the bucket was validated. + * + * @example 2020-01-01T08:00:00Z + */ + validated?: string; +}; + +export type PcapsOwnershipSingleResponse = { + errors: Messages; + messages: Messages; + result: PcapsOwnershipResponse; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type PcapsOwnershipValidateRequest = { + destination_conf: PcapsDestinationConf; + ownership_challenge: PcapsOwnershipChallenge; +}; + +/** + * The limit of packets contained in a packet capture. + * + * @example 10000 + * @maximum 10000 + * @minimum 1 + */ +export type PcapsPacketLimit = number; + +export type PcapsRequestFull = { + byte_limit?: PcapsByteLimit; + colo_name: PcapsColoName; + destination_conf: PcapsDestinationConf; + filter_v1?: PcapsFilterV1; + packet_limit?: PcapsPacketLimit; + system: PcapsSystem; + time_limit: PcapsTimeLimit; + type: PcapsType; +}; + +export type PcapsRequestPcap = PcapsRequestSimple | PcapsRequestFull; + +export type PcapsRequestSimple = { + filter_v1?: PcapsFilterV1; + packet_limit: PcapsPacketLimit; + system: PcapsSystem; + time_limit: PcapsTimeLimit; + type: PcapsType; +}; + +export type PcapsResponseFull = { + byte_limit?: PcapsByteLimit; + colo_name?: PcapsColoName; + destination_conf?: PcapsDestinationConf; + error_message?: PcapsErrorMessage; + filter_v1?: PcapsFilterV1; + id?: PcapsId; + status?: PcapsStatus; + submitted?: PcapsSubmitted; + system?: PcapsSystem; + time_limit?: PcapsTimeLimit; + type?: PcapsType; +}; + +export type PcapsResponseSimple = { + filter_v1?: PcapsFilterV1; + id?: PcapsId; + status?: PcapsStatus; + submitted?: PcapsSubmitted; + system?: PcapsSystem; + time_limit?: PcapsTimeLimit; + type?: PcapsType; +}; + +export type PcapsSingleResponse = ApiResponseSingleLarS7owG & { + result?: PcapsResponseSimple | PcapsResponseFull; +}; + +/** + * The status of the packet capture request. + * + * @example success + */ +export type PcapsStatus = + | 'unknown' + | 'success' + | 'pending' + | 'running' + | 'conversion_pending' + | 'conversion_running' + | 'complete' + | 'failed'; + +/** + * The RFC 3339 timestamp when the packet capture was created. + * + * @example 2020-01-01T08:00:00Z + */ +export type PcapsSubmitted = string; + +/** + * The system used to collect packet captures. + * + * @example magic-transit + */ +export type PcapsSystem = 'magic-transit'; + +/** + * The packet capture duration in seconds. + * + * @example 300 + * @maximum 300 + * @minimum 1 + */ +export type PcapsTimeLimit = number; + +/** + * The type of packet capture. `Simple` captures sampled packets, and `full` captures entire payloads and non-sampled packets. + * + * @example simple + */ +export type PcapsType = 'simple' | 'full'; + +/** + * Indicates the size of the entire upload in bytes. The value must be a non-negative integer. + * + * @maximum 100 + * @minimum 0 + */ +export type PctComplete = string; + +export type Peer = { + id: ComponentsSchemasIdentifierNz3bhUPI; + ip?: Ip6EYJJOTh; + ixfr_enable?: IxfrEnable; + name: ComponentsSchemasNameT0FRMejA; + port?: PortXQsQDzbx; + tsig_id?: TsigId; +}; + +/** + * A list of peer tags. + * + * @example 23ff594956f20c2a721606e94745a8aa + * @example 00920f38ce07c2e2f4df50b1f61d4194 + */ +export type Peers = any[]; + +/** + * The signing key in PEM format. + * + * @example LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcGdJQkFBS0NBUUVBMFRqd2pPaVpXbUo0M3ZmM1RvNERvWG1YV3RKR05HeVhmaHl0dExhQmdGMStFUVdRCkRLaG9LYm9hS21xakNBc21za3V0YkxVN1BVOGRrUU5ER1p3S3VWczA4elNaNGt4aTR0RWdQUFp5dDdkWEMrbFkKUllveXJBR0Y0QVhoeTMyOWJIQ1AxSWxyQkIvQWtHZ25kTEFndW54WTByUmdjdk96aWF3NktKeEZuYzJVSzBXVQo4YjBwNEtLSEdwMUtMOWRrMFdUOGRWWXFiZVJpSmpDbFVFbWg4eXY5Q2xPVmFTNEt4aVg2eFRRNERadzZEYUpmCklWM1F0Tmd2cG1ieWxOSmFQSG5zc3JodDJHS1A5NjJlS2poUVJsaWd2SFhKTE9uSm9KZkxlSUVIWitpeFdmY1QKRE1IOTJzR3ZvdzFET2p4TGlDTjF6SEsraDdiTG9YVGlMZ2M0a3dJREFRQUJBb0lCQVFEQ0lCclNJMTlteGNkdwoycExVaUdCR0N4T3NhVDVLbGhkYUpESG9ZdzUxbEVuTWNXVGUyY01NTkdqaXdsN1NyOFlQMkxmcERaOFJtNzdMCk5rT2tGMnk3M3l5YUhFeEw5S1FyMys0Um9ubCtqTlp2YnV0QVdxSDVodEE0dER4MUd3NE85OEg4YWlTcGh1eWQKRUliTGRrQm54OGlDZUdxbFBnbHZ6Q1dLV0xVZlhGbXplMkF5UjBzaWMyYXZRLzZyclYwb3pDdGQ1T0Vod093agphaCs3N1dZV1l0bkEraDhXZVZreWcvdG44UTJJOXo5ZVJYdlZxR2sxMDZLcWRtZFdiU2tIZzA4cFRUSGhVM2paCnMvZGNjdEdOMWFFanlUQWY0QzdHT2lrcUd1MGFTaW1aeDFOM2RWQzBobngySjJtdlhNQ0VtZ0g3TjVnZUxWUFAKOWdkQjdBQkJBb0dCQU5sT2hGQVhaTHV6Y0Ftczl1K3AxM05STWRFOHpIK2ZFaFBrbk9zZ21Xb3VqUzkxQTRtZgpuK01oN3d5bTZoVU1DbDk2WUNMNGtPM0RUMmlYWlRqTXZuMHBoVEx1MXNYcGxWNDJuamRnZGd3cFBEM0FnL1Y5ClVvV2hxdVhoa1I3RFpsUGg5Nmk1aEE0M1BvbTVPQm9BektJbEcrT3ZKUkhhZEVveC9jSmZScFd2QW9HQkFQWjUKNnNmWDdESElCNEtBczRmMWRuNGZJUkMweUF2WVdCL1R3UzZHUWVoNFRFbDVuSkQwWk9ZRVdUbVVBK3pPanZTNApuM09tZ2xNQTU5SGd1ZW13QXVRcEtwWFBOcFUvTERJaThtNnpmTUpvL3E5M0NOQlFQZngzZGh4ZVh4OXE2Mzg3Cm84QWxkOE42RGs4TThjRis3SlNaeUVJODJzLzdpdGRseXA2bFdLaGRBb0dCQUtnU0VrUGYxQWxZdjA2OGVFRGwKRzc0VkRuTEdrMlFobzltKzk1N2psOFNJUEtwMzFrU2JNUTU3TUdpWXNIT1czRzc4TjE3VTRVTUR6R2NZc1RFOQpLaGVrQldGZldMMjU2OHp5Y1d4akx1bzQrbDdJaDBkWHBudTBqbms5L1AvT0lWYS9iczBRcnhKUHFBN2RNb2JxCkYxdFJXRURCTmVxWkMxaFhVZTBEdzVRQkFvR0JBSjdBQ2NNcnhKcVBycDZVakkyK1FOS2M5Q3dSZEdPRXRjWFMKR3JQL2owWE83YnZKVTFsZHYvc1N3L0U4NzRZL3lIM0F5QnF5SFhDZXZiRkZZQmt1MzczYThlM0pwK3RhNC9scQozdUVFUkEvbmxscW5mWXJHbEJZZlQzaVlKQVpWVkZiL3I4bWJtRmJVTDVFazBqV0JyWmxNcjFwU1hkRGx3QmhhCkhMWXY0em1WQW9HQkFLQmw0cFNnbkNSTEJMUU9jWjhXQmhRSjAwZDZieFNrTGNpZ0xUNFJvY3RwNTY1SHJPMDAKSVFLdElTaEg1a2s3SVRHdUYvOERXZEN2djBMYnhvZVBJc2NFaStTaXk5WDZwWENPaS8xa2FyYVU5U3BpZ3czago3YjVlUVV0UlovTkIycVJwc3EzMEdCUENqanhudEVmK2lqelhUS0xNRndyUDhBMTlQNzRONGVTMAotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo= + */ +export type Pem = string; + +/** + * Number of DNS records per page. + * + * @default 100 + * @maximum 50000 + * @minimum 5 + */ +export type PerPage = number; + +/** + * Maximum number of results per page. + * + * @default 20 + * @maximum 50 + * @minimum 5 + */ +export type PerPage6pFKSuRs = number; + +/** + * The time in seconds (an integer value) to count matching traffic. If the count exceeds the configured threshold within this period, Cloudflare will perform the configured action. + * + * @example 900 + * @maximum 86400 + * @minimum 10 + */ +export type Period = number; + +/** + * The period over which this threshold is suggested. + */ +export type PeriodSeconds = number; + +/** + * A named group of permissions that map to a group of operations against resources. + */ +export type PermissionGroup = { + /** + * Identifier of the group. + * + * @example 6d7f2f5f5b1d4a0e9081fdc98d432fd1 + */ + id: string; + /** + * Name of the group. + * + * @example Load Balancers Write + */ + name?: string; +}; + +/** + * A set of permission groups that are specified to the policy. + * + * @example {"id":"c8fed203ed3043cba015a93ad1616f1f","name":"Zone Read"} + * @example {"id":"82e64a83756745bbbb1c9c2701bf816b","name":"DNS Read"} + */ +export type PermissionGroups = PermissionGroup[]; + +/** + * @example {"analytics":{"read":true,"write":false},"zones":{"read":true,"write":true}} + */ +export type Permissions = { + analytics?: Grants; + billing?: Grants; + cache_purge?: Grants; + dns?: Grants; + dns_records?: Grants; + lb?: Grants; + logs?: Grants; + organization?: Grants; + ssl?: Grants; + waf?: Grants; + zone_settings?: Grants; + zones?: Grants; +}; + +/** + * The phase of the ruleset. + * + * @example http_request_firewall_managed + * @pattern ^[a-z_]+$ + */ +export type Phase = string; + +export type PhishingUrlInfo = { + /** + * List of categorizations applied to this submission. + */ + categorizations?: { + /** + * Name of the category applied. + * + * @example PHISHING + */ + category?: string; + /** + * Result of human review for this categorization. + * + * @example confirmed + */ + verification_status?: string; + }[]; + /** + * List of model results for completed scans. + */ + model_results?: { + /** + * Name of the model. + * + * @example MACHINE_LEARNING_v2 + */ + model_name?: string; + /** + * Score output by the model for this submission. + * + * @example 0.024 + */ + model_score?: number; + }[]; + /** + * List of signatures that matched against site content found when crawling the URL. + */ + rule_matches?: { + /** + * For internal use. + */ + banning?: boolean; + /** + * For internal use. + */ + blocking?: boolean; + /** + * Description of the signature that matched. + * + * @example Match frequently used social followers phishing kit + */ + description?: string; + /** + * Name of the signature that matched. + * + * @example phishkit.social_followers + */ + name?: string; + }[]; + /** + * Status of the most recent scan found. + */ + scan_status?: { + /** + * Timestamp of when the submission was processed. + * + * @example Wed, 26 Oct 2022 16:04:51 GMT + */ + last_processed?: string; + /** + * For internal use. + */ + scan_complete?: boolean; + /** + * Status code that the crawler received when loading the submitted URL. + */ + status_code?: number; + /** + * ID of the most recent submission. + */ + submission_id?: number; + }; + /** + * For internal use. + */ + screenshot_download_signature?: string; + /** + * For internal use. + */ + screenshot_path?: string; + /** + * URL that was submitted. + * + * @example https://www.cloudflare.com + */ + url?: string; +}; + +export type PhishingUrlInfoComponentsSchemasSingleResponse = ApiResponseSingleLarS7owG & { + result?: PhishingUrlInfo; +}; + +export type PhishingUrlSubmit = { + /** + * URLs that were excluded from scanning because their domain is in our no-scan list. + */ + excluded_urls?: { + /** + * URL that was excluded. + * + * @example https://developers.cloudflare.com + */ + url?: string; + }[]; + /** + * URLs that were skipped because the same URL is currently being scanned + */ + skipped_urls?: { + /** + * URL that was skipped. + * + * @example https://www.cloudflare.com/developer-week/ + */ + url?: string; + /** + * ID of the submission of that URL that is currently scanning. + * + * @example 2 + */ + url_id?: number; + }[]; + /** + * URLs that were successfully submitted for scanning. + */ + submitted_urls?: { + /** + * URL that was submitted. + * + * @example https://www.cloudflare.com + */ + url?: string; + /** + * ID assigned to this URL submission. Used to retrieve scanning results. + * + * @example 1 + */ + url_id?: number; + }[]; +}; + +export type PhishingUrlSubmitComponentsSchemasSingleResponse = ApiResponseSingleLarS7owG & { + result?: PhishingUrlSubmit; +}; + +export type Pingone = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig & { + /** + * Your PingOne environment identifier + * + * @example 342b5660-0c32-4936-a5a4-ce21fae57b0a + */ + ping_env_id?: string; + }; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +export type PlanResponseCollection = ApiResponseCollection & { + result?: SchemasRatePlan[]; +}; + +/** + * @example windows + */ +export type Platform = 'windows' | 'mac' | 'linux' | 'android' | 'ios'; + +export type Playback = { + /** + * DASH Media Presentation Description for the video. + * + * @example https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/manifest/video.mpd + */ + dash?: string; + /** + * The HLS manifest for the video. + * + * @example https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/manifest/video.m3u8 + */ + hls?: string; +}; + +/** + * Details for playback from an live input using RTMPS. + */ +export type PlaybackRtmps = { + streamKey?: PlaybackRtmpsStreamKey; + url?: PlaybackRtmpsUrl; +}; + +/** + * The secret key to use for playback via RTMPS. + * + * @example 2fb3cb9f17e68a2568d6ebed8d5505eak3ceaf8c9b1f395e1b76b79332497cada + */ +export type PlaybackRtmpsStreamKey = string; + +/** + * The URL used to play live video over RTMPS. + * + * @example rtmps://live.cloudflare.com:443/live/ + */ +export type PlaybackRtmpsUrl = string; + +/** + * Details for playback from an live input using SRT. + */ +export type PlaybackSrt = { + passphrase?: PlaybackSrtStreamPassphrase; + streamId?: PlaybackSrtStreamId; + url?: PlaybackSrtUrl; +}; + +/** + * The identifier of the live input to use for playback via SRT. + * + * @example f256e6ea9341d51eea64c9454659e576 + */ +export type PlaybackSrtStreamId = string; + +/** + * The secret key to use for playback via SRT. + * + * @example 2fb3cb9f17e68a2568d6ebed8d5505eak3ceaf8c9b1f395e1b76b79332497cada + */ +export type PlaybackSrtStreamPassphrase = string; + +/** + * The URL used to play live video over SRT. + * + * @example rtmps://live.cloudflare.com:443/live/ + */ +export type PlaybackSrtUrl = string; + +/** + * Details for playback from a live input using WebRTC. + */ +export type PlaybackWebrtc = { + url?: PlaybackWebrtcUrl; +}; + +/** + * The URL used to play live video over WebRTC. + * + * @example https://customer-m033z5x00ks6nunl.cloudflarestream.com/b236bde30eb07b9d01318940e5fc3edake34a3efb3896e18f2dc277ce6cc993ad/webRTC/play + */ +export type PlaybackWebrtcUrl = string; + +export type Policies = { + approval_groups?: ApprovalGroups; + approval_required?: ApprovalRequired; + created_at?: Timestamp; + decision?: Decision; + exclude?: SchemasExclude; + id?: ComponentsSchemasUuid; + include?: Include; + isolation_required?: IsolationRequired; + name?: PoliciesComponentsSchemasName; + precedence?: Precedence; + purpose_justification_prompt?: PurposeJustificationPrompt; + purpose_justification_required?: PurposeJustificationRequired; + require?: SchemasRequire; + updated_at?: Timestamp; +}; + +/** + * List of access policies assigned to the token. + */ +export type PoliciesJfEKIGCD = AccessPolicy[]; + +/** + * Optional description for the Notification policy. + * + * @example Something describing the policy. + */ +export type PoliciesComponentsSchemasDescription = string; + +/** + * Whether or not the Notification policy is enabled. + * + * @default true + * @example true + */ +export type PoliciesComponentsSchemasEnabled = boolean; + +export type PoliciesComponentsSchemasIdResponse = ApiResponseSingleKLIlNaxV & { + result?: { + id?: ComponentsSchemasUuid; + }; +}; + +export type PoliciesComponentsSchemasIdResponse2 = ApiResponseSingleLarS7owG & { + result?: { + id?: Uuid; + }; +}; + +export type PoliciesComponentsSchemasIdResponseD2Y8aAWj = ApiResponseSingleLarS7owG & { + result?: { + id?: ComponentsSchemasUuid; + }; +}; + +/** + * The name of the Access policy. + * + * @example Allow devs + */ +export type PoliciesComponentsSchemasName = string; + +/** + * Name of the policy. + * + * @example SSL Notification Event Policy + */ +export type PoliciesComponentsSchemasName2 = string; + +export type PoliciesComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: Policies[]; +}; + +export type PoliciesComponentsSchemasResponseCollection2 = ApiResponseCollection & { + result?: ComponentsSchemasPolicies[]; +}; + +export type PoliciesComponentsSchemasResponseCollectionJuXSbNTB = ApiResponseCollection & { + result?: SchemasPolicies[]; +}; + +export type PoliciesComponentsSchemasSingleResponse = ApiResponseSingleKLIlNaxV & { + result?: Policies; +}; + +export type PoliciesComponentsSchemasSingleResponse2 = ApiResponseSingleLarS7owG & { + result?: ComponentsSchemasPolicies; +}; + +export type PoliciesComponentsSchemasSingleResponse549KxnWt = ApiResponseSingleLarS7owG & { + result?: SchemasPolicies; +}; + +/** + * Specify the policy that determines the region where your private key will be held locally. HTTPS connections to any excluded data center will still be fully encrypted, but will incur some latency while Keyless SSL is used to complete the handshake with the nearest allowed data center. Any combination of countries, specified by their two letter country code (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) can be chosen, such as 'country: IN', as well as 'region: EU' which refers to the EU region. If there are too few data centers satisfying the policy, it will be rejected. + * + * @example (country: US) or (region: EU) + */ +export type Policy = string; + +export type PolicyCheckResponse = ApiResponseSingleKLIlNaxV & { + result?: { + app_state?: { + app_uid?: Uuid; + /** + * @example 737646a56ab1df6ec9bddc7e5ca84eaf3b0768850f3ffb5d74f1534911fe389 + */ + aud?: string; + /** + * @example test.com + */ + hostname?: string; + /** + * @example Test App + */ + name?: string; + /** + * @example {"decision":"allow","exclude":[],"include":[{"_type":"email","email":"testuser@gmail.com"}],"precedence":0,"require":[],"status":"Success"} + */ + policies?: any[]; + /** + * @example Success + */ + status?: string; + }; + user_identity?: { + /** + * @example 41ecfbb341f033e52b46742756aabb8b + */ + account_id?: string; + /** + * @example {} + */ + device_sessions?: Record; + /** + * @example testuser@gmail.com + */ + email?: string; + geo?: { + /** + * @example US + */ + country?: string; + }; + iat?: number; + /** + * @example 1164449231815010287495 + */ + id?: string; + /** + * @example false + */ + is_gateway?: boolean; + /** + * @example false + */ + is_warp?: boolean; + /** + * @example Test User + */ + name?: string; + user_uuid?: Uuid; + version?: number; + }; + }; +}; + +export type PolicyCheckResponseCmGkYgva = ApiResponseSingleLarS7owG & { + result?: { + app_state?: { + app_uid?: Uuid; + /** + * @example 737646a56ab1df6ec9bddc7e5ca84eaf3b0768850f3ffb5d74f1534911fe389 + */ + aud?: string; + /** + * @example test.com + */ + hostname?: string; + /** + * @example Test App + */ + name?: string; + /** + * @example {"decision":"allow","exclude":[],"include":[{"_type":"email","email":"testuser@gmail.com"}],"precedence":0,"require":[],"status":"Success"} + */ + policies?: any[]; + /** + * @example Success + */ + status?: string; + }; + user_identity?: { + /** + * @example 41ecfbb341f033e52b46742756aabb8b + */ + account_id?: string; + /** + * @example {} + */ + device_sessions?: Record; + /** + * @example testuser@gmail.com + */ + email?: string; + geo?: { + /** + * @example US + */ + country?: string; + }; + iat?: number; + /** + * @example 1164449231815010287495 + */ + id?: string; + /** + * @example false + */ + is_gateway?: boolean; + /** + * @example false + */ + is_warp?: boolean; + /** + * @example Test User + */ + name?: string; + user_uuid?: Uuid; + version?: number; + }; + }; +}; + +/** + * The ID of the policy. + * + * @example c9ef84a6bf5e47138c75d95e2f933e8f + * @maxLength 32 + * @minLength 32 + */ +export type PolicyId = string; + +export type PolicyWithPermissionGroups = { + effect: Effect; + id: IdentifierEhp5XJwv; + permission_groups: PermissionGroups; + resources: Resources; +}; + +/** + * Removes metadata and compresses your images for faster page load times. Basic (Lossless): Reduce the size of PNG, JPEG, and GIF files - no impact on visual quality. Basic + JPEG (Lossy): Further reduce the size of JPEG files for faster image loading. Larger JPEGs are converted to progressive images, loading a lower-resolution image first and ending in a higher-resolution version. Not recommended for hi-res photography sites. + */ +export type Polish = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example polish + */ + id: 'polish'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: PolishValue; +}; + +/** + * Value of the zone setting. + * + * @default off + */ +export type PolishValue = 'off' | 'lossless' | 'lossy'; + +export type Pool = { + check_regions?: CheckRegionsPQxNXzsr; + created_on?: Timestamp; + description?: SchemasDescriptionZxAuqPgI; + disabled_at?: SchemasDisabledAt; + enabled?: EnabledMECT4zDK; + id?: SchemasIdentifierVx9UGvBM; + latitude?: Latitude; + load_shedding?: LoadShedding; + longitude?: Longitude; + minimum_origins?: MinimumOrigins; + modified_on?: Timestamp; + monitor?: SchemasMonitor; + name?: NameILH8OrHN; + notification_email?: NotificationEmail; + notification_filter?: NotificationFilter; + origin_steering?: OriginSteering; + origins?: Origins; +}; + +export type Pool86qV21Xs = { + check_regions?: CheckRegionsM0UYyZsj; + created_on?: Timestamp; + description?: PoolComponentsSchemasDescription; + disabled_at?: SchemasDisabledAt; + enabled?: PoolComponentsSchemasEnabled; + id?: PoolComponentsSchemasIdentifier; + latitude?: Latitude; + load_shedding?: LoadShedding; + longitude?: Longitude; + minimum_origins?: MinimumOrigins; + modified_on?: Timestamp; + monitor?: SchemasMonitor; + name?: PoolComponentsSchemasName; + notification_email?: NotificationEmailRSyVUYWe; + notification_filter?: NotificationFilter; + origin_steering?: OriginSteering; + origins?: OriginsSJsVZfMb; +}; + +/** + * A human-readable description of the pool. + * + * @example Primary data center - Provider XYZ + */ +export type PoolComponentsSchemasDescription = string; + +/** + * Whether to enable (the default) or disable this pool. Disabled pools will not receive traffic and are excluded from health checks. Disabling a pool will cause any load balancers using it to failover to the next pool (if any). + * + * @default true + * @example false + */ +export type PoolComponentsSchemasEnabled = boolean; + +/** + * @example 17b5962d775c646f3f9725cbc7a53df4 + */ +export type PoolComponentsSchemasIdentifier = void; + +/** + * A short name (tag) for the pool. Only alphanumeric characters, hyphens, and underscores are allowed. + * + * @example primary-dc-1 + */ +export type PoolComponentsSchemasName = string; + +export type PoolComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: Pool86qV21Xs[]; +}; + +export type PoolComponentsSchemasSingleResponse = ApiResponseSingleLarS7owG & { + result?: Pool86qV21Xs; +}; + +/** + * The name for the pool to filter. + * + * @example primary-dc + */ +export type PoolName = string; + +/** + * (Enterprise only): A mapping of Cloudflare PoP identifiers to a list of pool IDs (ordered by their failover priority) for the PoP (datacenter). Any PoPs not explicitly defined will fall back to using the corresponding country_pool, then region_pool mapping if it exists else to default_pools. + * + * @example {"LAX":["de90f38ced07c2e2f4df50b1f61d4194","9290f38c5d07c2e2f4df57b1f61d4196"],"LHR":["abd90f38ced07c2e2f4df50b1f61d4194","f9138c5d07c2e2f4df57b1f61d4196"],"SJC":["00920f38ce07c2e2f4df50b1f61d4194"]} + */ +export type PopPools = Record; + +/** + * Global Cloudflare 100k ranking for the last 30 days, if available for the hostname. The top ranked domain is 1, the lowest ranked domain is 100,000. + */ +export type PopularityRank = number; + +/** + * The keyless SSL port used to communicate between Cloudflare and the client's Keyless SSL server. + * + * @default 24008 + * @example 24008 + * @maxLength 65535 + */ +export type Port = number; + +/** + * Port number to connect to for the health check. Required for TCP, UDP, and SMTP checks. HTTP and HTTPS checks should only define the port when using a non-standard port (HTTP: default 80, HTTPS: default 443). + * + * @default 0 + */ +export type PortFtc1VWvE = number; + +/** + * The keyless SSL port used to commmunicate between Cloudflare and the client's Keyless SSL server. + * + * @default 24008 + * @example 24008 + * @maxLength 65535 + */ +export type PortImSN1BQg = number; + +/** + * DNS port of primary or secondary nameserver, depending on what zone this peer is linked to. + * + * @example 53 + */ +export type PortXQsQDzbx = number; + +/** + * The location of the image. Valid positions are: `upperRight`, `upperLeft`, `lowerLeft`, `lowerRight`, and `center`. Note that `center` ignores the `padding` parameter. + * + * @default upperRight + * @example center + */ +export type Position = string; + +/** + * The order of execution for this policy. Must be unique for each policy. + */ +export type Precedence = number; + +/** + * The precedence of the policy. Lower values indicate higher precedence. Policies will be evaluated in ascending order of this field. + * + * @example 100 + */ +export type PrecedenceBOmzKeZm = number; + +/** + * Precedence sets the ordering of the rules. Lower values indicate higher precedence. At each processing phase, applicable rules are evaluated in ascending order of this value. + */ +export type PrecedenceEPoGsEKD = number; + +/** + * A predefined entry that matches a profile + */ +export type PredefinedEntry = { + /** + * Whether the entry is enabled or not. + * + * @example true + */ + enabled?: boolean; + id?: EntryId; + /** + * The name of the entry. + * + * @example Credit card (Visa) + */ + name?: string; + /** + * ID of the parent profile + */ + profile_id?: void; +}; + +export type PredefinedProfile = { + allowed_match_count?: AllowedMatchCount; + /** + * The entries for this profile. + */ + entries?: PredefinedEntry[]; + id?: ProfileId; + /** + * The name of the profile. + * + * @example Generic CVV Card Number + */ + name?: string; + /** + * The type of the profile. + * + * @example predefined + */ + type?: 'predefined'; +}; + +export type PredefinedProfileResponse = ApiResponseSingleUypB4bgI & { + result?: PredefinedProfile; +}; + +export type PredefinedProfileResponse6Euc3s68 = ApiResponseSingleLarS7owG & { + result?: PredefinedProfile; +}; + +/** + * Cloudflare will prefetch any URLs that are included in the response headers. This is limited to Enterprise Zones. + * + * @default off + */ +export type PrefetchPreload = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example prefetch_preload + */ + id: 'prefetch_preload'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: PrefetchPreloadValue; +}; + +/** + * Value of the zone setting. + * + * @default off + */ +export type PrefetchPreloadValue = 'on' | 'off'; + +/** + * IP Prefix in Classless Inter-Domain Routing format. + * + * @example 192.0.2.0/24 + */ +export type Prefix = string; + +/** + * The video's preview page URI. This field is omitted until encoding is complete. + * + * @example https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/watch + * @format uri + */ +export type Preview = string; + +/** + * @example f1aba936b94213e5b8dca0c0dbf1f9cc + */ +export type PreviewId = void; + +export type PreviewResponse = ApiResponseSingleUl1k90Mw & { + result?: { + /** + * Monitored pool IDs mapped to their respective names. + * + * @example {"abwlnp5jbqn45ecgxd03erbgtxtqai0d":"WNAM Datacenter","ve8h9lrcip5n5bbga9yqmdws28ay5d0l":"EEU Datacenter"} + */ + pools?: { + [key: string]: string; + }; + preview_id?: IdentifierYmSdxGUH; + }; +}; + +export type PreviewResponseETd0IjUP = ApiResponseSingleLarS7owG & { + result?: { + /** + * @example {"abwlnp5jbqn45ecgxd03erbgtxtqai0d":"WNAM Datacenter","ve8h9lrcip5n5bbga9yqmdws28ay5d0l":"EEU Datacenter"} + */ + pools?: { + [key: string]: any; + }; + preview_id?: MonitorComponentsSchemasIdentifier; + }; +}; + +export type PreviewResponseHBJY2UOs = ApiResponseSinglePn9rJJNX & { + result?: { + preview_url?: PreviewUrl; + }; +}; + +/** + * Resulting health data from a preview operation. + * + * @example {"abwlnp5jbqn45ecgxd03erbgtxtqai0d":{"healthy":true,"origins":[{"originone.example.com.":{"failure_reason":"No failures","healthy":true,"response_code":200,"rtt":"66ms"}}]}} + */ +export type PreviewResult = { + [key: string]: { + healthy?: boolean; + origins?: { + [key: string]: OriginHealthData; + }[]; + }; +}; + +/** + * Resulting health data from a preview operation. + * + * @example {"abwlnp5jbqn45ecgxd03erbgtxtqai0d":{"healthy":true,"origins":[{"originone.example.com.":{"$ref":"#/components/schemas/origin_health_data/example"}}]}} + */ +export type PreviewResultT4uBMpzm = { + [key: string]: any; +}; + +export type PreviewResultResponse = ApiResponseSingleUl1k90Mw & { + result?: PreviewResult; +}; + +/** + * Resulting health data from a preview operation. + * + * @example {"abwlnp5jbqn45ecgxd03erbgtxtqai0d":{"healthy":true,"origins":[{"originone.example.com.":{"$ref":"#/components/schemas/origin_health_data/example"}}]}} + */ +export type PreviewResultResponseLuMgL00Q = ApiResponseSingleLarS7owG & PreviewResultT4uBMpzm; + +/** + * URL where the custom waiting room page can temporarily be previewed. + * + * @example http://waitingrooms.dev/preview/35af8c12-6d68-4608-babb-b53435a5ddfb + */ +export type PreviewUrl = string; + +/** + * The price of the subscription that will be billed, in US dollars. + * + * @example 20 + */ +export type Price = number; + +/** + * Priority of the static route. + */ +export type Priority = number; + +/** + * The order/priority in which the certificate will be used in a request. The higher priority will break ties across overlapping 'legacy_custom' certificates, but 'legacy_custom' certificates will always supercede 'sni_custom' certificates. + * + * @default 20 + * @example 1 + */ +export type PriorityFZPZtZRb = number; + +/** + * Required for MX, SRV and URI records; unused by other record types. Records with lower priorities are preferred. + * + * @example 10 + * @maximum 65535 + * @minimum 0 + */ +export type PriorityVEsVispp = number; + +/** + * The priority of the rule, used to define which Page Rule is processed over another. A higher number indicates a higher priority. For example, if you have a catch-all Page Rule (rule A: `/images/*`) but want a more specific Page Rule to take precedence (rule B: `/images/special/*`), specify a higher priority for rule B so it overrides rule A. + * + * @default 1 + */ +export type PriorityCHRoVVCg = number; + +/** + * The order/priority in which the certificate will be used in a request. The higher priority will break ties across overlapping 'legacy_custom' certificates, but 'legacy_custom' certificates will always supercede 'sni_custom' certificates. + * + * @default 20 + * @example 1 + */ +export type PriorityOBYCnVp3 = number; + +/** + * Privacy option controls redacting WHOIS information. + * + * @example true + */ +export type Privacy = boolean; + +/** + * Privacy Pass is a browser extension developed by the Privacy Pass Team to improve the browsing experience for your visitors. Enabling Privacy Pass will reduce the number of CAPTCHAs shown to your visitors. (https://support.cloudflare.com/hc/en-us/articles/115001992652-Privacy-Pass). + */ +export type PrivacyPass = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example privacy_pass + */ + id: 'privacy_pass'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: PrivacyPassValue; +}; + +/** + * Value of the zone setting. + * + * @default on + */ +export type PrivacyPassValue = 'on' | 'off'; + +/** + * The zone's private key. + * + * @example -----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAwQHoetcl9+5ikGzV6cMzWtWPJHqXT3wpbEkRU9Yz7lgvddmG +dtcGbg/1CGZu0jJGkMoppoUo4c3dts3iwqRYmBikUP77wwY2QGmDZw2FvkJCJlKn +abIRuGvBKwzESIXgKk2016aTP6/dAjEHyo6SeoK8lkIySUvK0fyOVlsiEsCmOpid +tnKX/a+50GjB79CJH4ER2lLVZnhePFR/zUOyPxZQQ4naHf7yu/b5jhO0f8fwt+py +FxIXjbEIdZliWRkRMtzrHOJIhrmJ2A1J7iOrirbbwillwjjNVUWPf3IJ3M12S9pE +ewooaeO2izNTERcG9HzAacbVRn2Y2SWIyT/18QIDAQABAoIBACbhTYXBZYKmYPCb +HBR1IBlCQA2nLGf0qRuJNJZg5iEzXows/6tc8YymZkQE7nolapWsQ+upk2y5Xdp/ +axiuprIs9JzkYK8Ox0r+dlwCG1kSW+UAbX0bQ/qUqlsTvU6muVuMP8vZYHxJ3wmb ++ufRBKztPTQ/rYWaYQcgC0RWI20HTFBMxlTAyNxYNWzX7RKFkGVVyB9RsAtmcc8g ++j4OdosbfNoJPS0HeIfNpAznDfHKdxDk2Yc1tV6RHBrC1ynyLE9+TaflIAdo2MVv +KLMLq51GqYKtgJFIlBRPQqKoyXdz3fGvXrTkf/WY9QNq0J1Vk5ERePZ54mN8iZB7 +9lwy/AkCgYEA6FXzosxswaJ2wQLeoYc7ceaweX/SwTvxHgXzRyJIIT0eJWgx13Wo +/WA3Iziimsjf6qE+SI/8laxPp2A86VMaIt3Z3mJN/CqSVGw8LK2AQst+OwdPyDMu +iacE8lj/IFGC8mwNUAb9CzGU3JpU4PxxGFjS/eMtGeRXCWkK4NE+G08CgYEA1Kp9 +N2JrVlqUz+gAX+LPmE9OEMAS9WQSQsfCHGogIFDGGcNf7+uwBM7GAaSJIP01zcoe +VAgWdzXCv3FLhsaZoJ6RyLOLay5phbu1iaTr4UNYm5WtYTzMzqh8l1+MFFDl9xDB +vULuCIIrglM5MeS/qnSg1uMoH2oVPj9TVst/ir8CgYEAxrI7Ws9Zc4Bt70N1As+U +lySjaEVZCMkqvHJ6TCuVZFfQoE0r0whdLdRLU2PsLFP+q7qaeZQqgBaNSKeVcDYR +9B+nY/jOmQoPewPVsp/vQTCnE/R81spu0mp0YI6cIheT1Z9zAy322svcc43JaWB7 +mEbeqyLOP4Z4qSOcmghZBSECgYACvR9Xs0DGn+wCsW4vze/2ei77MD4OQvepPIFX +dFZtlBy5ADcgE9z0cuVB6CiL8DbdK5kwY9pGNr8HUCI03iHkW6Zs+0L0YmihfEVe +PG19PSzK9CaDdhD9KFZSbLyVFmWfxOt50H7YRTTiPMgjyFpfi5j2q348yVT0tEQS +fhRqaQKBgAcWPokmJ7EbYQGeMbS7HC8eWO/RyamlnSffdCdSc7ue3zdVJxpAkQ8W +qu80pEIF6raIQfAf8MXiiZ7auFOSnHQTXUbhCpvDLKi0Mwq3G8Pl07l+2s6dQG6T +lv6XTQaMyf6n1yjzL+fzDrH3qXMxHMO/b13EePXpDMpY7HQpoLDi +-----END RSA PRIVATE KEY----- + */ +export type PrivateKey = string; + +/** + * Assign this monitor to emulate the specified zone while probing. This parameter is only valid for HTTP and HTTPS monitors. + * + * @example example.com + */ +export type ProbeZone = string; + +export type Products = ('zoneLockdown' | 'uaBlock' | 'bic' | 'hot' | 'securityLevel' | 'rateLimit' | 'waf')[]; + +/** + * UUID + * + * @example f174e90a-fafe-4643-bbbc-4a0ed4fc8415 + * @maxLength 36 + */ +export type ProfileId = Uuid; + +export type Profiles = PredefinedProfile | CustomProfile | IntegrationProfile; + +export type ProfilesFWhiUuM4 = PredefinedProfile | CustomProfile; + +export type ProfilesComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: ProfilesFWhiUuM4[]; +}; + +/** + * @example {"deployment_configs":{"production":{"compatibility_date":"2022-01-01","compatibility_flags":["url_standard"],"env_vars":{"BUILD_VERSION":{"value":"3.3"},"delete_this_env_var":null,"secret_var":{"type":"secret_text","value":"A_CMS_API_TOKEN"}}}}} + */ +export type ProjectPatch = void; + +export type ProjectResponse = { + errors: Messages; + messages: Messages; + result: Projects; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +/** + * Name of the project. + * + * @example this-is-my-project-01 + * @pattern ^[a-z0-9][a-z0-9-]*$ + */ +export type ProjectName = string; + +export type Projects = { + build_config?: BuildConfig; + /** + * Most recent deployment to the repo. + */ + canonical_deployment?: (void | null) | Deployments; + /** + * When the project was created. + * + * @example 2017-01-01T00:00:00Z + * @format date-time + */ + created_on?: string; + deployment_configs?: DeploymentConfigs; + /** + * A list of associated custom domains for the project. + * + * @example customdomain.com + * @example customdomain.org + */ + domains?: any[]; + /** + * Id of the project. + * + * @example 7b162ea7-7367-4d67-bcde-1160995d5 + */ + id?: string; + /** + * Most recent deployment to the repo. + */ + latest_deployment?: (void | null) | Deployments; + /** + * Name of the project. + * + * @example NextJS Blog + */ + name?: string; + /** + * Production branch of the project. Used to identify production deployments. + * + * @example main + */ + production_branch?: string; + source?: void; + /** + * The Cloudflare subdomain associated with the project. + * + * @example helloworld.pages.dev + */ + subdomain?: string; +}; + +export type ProjectsResponse = { + errors: Messages; + messages: Messages; + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; + result_info?: { + /** + * @example 1 + */ + count?: void; + /** + * @example 1 + */ + page?: void; + /** + * @example 100 + */ + per_page?: void; + /** + * @example 1 + */ + total_count?: void; + }; +}; + +/** + * Requests information about certain properties. + * + * @example auth_id_characteristics + * @uniqueItems true + */ +export type Properties = 'auth_id_characteristics'[]; + +/** + * Account name + * + * @example Demo Account + * @maxLength 100 + */ +export type PropertiesName = string; + +/** + * The port configuration at Cloudflare’s edge. May specify a single port, for example `"tcp/1000"`, or a range of ports, for example `"tcp/1000-2000"`. + * + * @example tcp/22 + */ +export type Protocol = string; + +/** + * The name of provider. Usually cloudflare. + * + * @example Cloudflare + */ +export type ProviderName = string; + +/** + * Whether the hostname should be gray clouded (false) or orange clouded (true). + * + * @default false + * @example true + */ +export type Proxied = boolean; + +/** + * Whether the record is receiving the performance and security benefits of Cloudflare. + * + * @example false + */ +export type ProxiedDwzKQw8a = boolean; + +export type ProxyEndpoints = { + created_at?: Timestamp; + id?: SchemasUuidHmO1cTZ9; + ips?: IpsFDl19jsa; + name?: ProxyEndpointsComponentsSchemasName; + subdomain?: SchemasSubdomain; + updated_at?: Timestamp; +}; + +/** + * The name of the Proxy Endpoint. + * + * @example Devops team + */ +export type ProxyEndpointsComponentsSchemasName = string; + +export type ProxyEndpointsComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: ProxyEndpoints[]; +}; + +export type ProxyEndpointsComponentsSchemasSingleResponse = ApiResponseSingleVxjnpV7r & { + result?: ProxyEndpoints; +}; + +/** + * Enables Proxy Protocol to the origin. Refer to [Enable Proxy protocol](https://developers.cloudflare.com/spectrum/getting-started/proxy-protocol/) for implementation details on PROXY Protocol V1, PROXY Protocol V2, and Simple Proxy Protocol. + * + * @default off + * @example off + */ +export type ProxyProtocol = 'off' | 'v1' | 'v2' | 'simple'; + +/** + * Maximum time between two read operations from origin. + */ +export type ProxyReadTimeout = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example proxy_read_timeout + */ + id: 'proxy_read_timeout'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: ProxyReadTimeoutValue; +}; + +/** + * Value of the zone setting. + * Notes: Value must be between 1 and 6000 + * + * @default 100 + */ +export type ProxyReadTimeoutValue = number; + +/** + * The value set for the Pseudo IPv4 setting. + */ +export type PseudoIpv4 = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * Value of the Pseudo IPv4 setting. + * + * @example development_mode + * @default pseudo_ipv4 + */ + id: 'pseudo_ipv4'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: PseudoIpv4Value; +}; + +/** + * Value of the Pseudo IPv4 setting. + * + * @default off + */ +export type PseudoIpv4Value = 'off' | 'add_header' | 'overwrite_header'; + +/** + * A randomly generated or provided string for use in the IPsec tunnel. + * + * @example O3bwKSjnaoCxDoUxjcq4Rk8ZKkezQUiy + */ +export type Psk = string; + +export type PskGenerationResponse = ApiResponseSingleRxxEmdsv & { + result?: { + ipsec_tunnel_id?: Identifier; + psk?: Psk; + psk_metadata?: PskMetadata; + }; +}; + +/** + * The PSK metadata that includes when the PSK was generated. + */ +export type PskMetadata = { + last_generated_on?: SchemasModifiedOn; +}; + +/** + * The public key to add to your SSH server configuration. + * + * @example ecdsa-sha2-nistp256 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= open-ssh-ca@cloudflareaccess.org + */ +export type PublicKey = string; + +/** + * Public key for DS record. + * + * @example oXiGYrSTO+LSCJ3mohc8EP+CzF9KxBj8/ydXJ22pKuZP3VAC3/Md/k7xZfz470CoRyZJ6gV6vml07IC3d8xqhA== + */ +export type PublicKeyAH0a9AtA = string | null; + +/** + * A custom message that will appear on the purpose justification screen. + * + * @example Please enter a justification for entering this protected domain. + */ +export type PurposeJustificationPrompt = string; + +/** + * Require users to enter a justification when they log in to the application. + * + * @default false + * @example true + */ +export type PurposeJustificationRequired = boolean; + +export type Query = { + /** + * Array of dimension names. + * + * @example responseCode + * @example queryName + */ + dimensions: string[]; + filters?: Filters; + limit: Limit; + /** + * Array of metric names. + * + * @example queryCount + * @example responseTimeAvg + */ + metrics: string[]; + since: Since; + /** + * Array of dimensions to sort by, where each dimension may be prefixed by - (descending) or + (ascending). + * + * @example +responseCode + * @example -queryName + */ + sort?: string[]; + until: Until; +}; + +/** + * For specifying result metrics. + */ +export type QueryLWVM8wx5 = { + /** + * Can be used to break down the data by given attributes. + * + * @default [] + */ + dimensions?: string[]; + /** + * Used to filter rows by one or more dimensions. Filters can be combined using OR and AND boolean logic. AND takes precedence over OR in all the expressions. The OR operator is defined using a comma (,) or OR keyword surrounded by whitespace. The AND operator is defined using a semicolon (;) or AND keyword surrounded by whitespace. Note that the semicolon is a reserved character in URLs (rfc1738) and needs to be percent-encoded as %3B. Comparison options are: + * + * Operator | Name | URL Encoded + * --------------------------|---------------------------------|-------------------------- + * == | Equals | %3D%3D + * != | Does not equals | !%3D + * > | Greater Than | %3E + * < | Less Than | %3C + * >= | Greater than or equal to | %3E%3D + * <= | Less than or equal to | %3C%3D . + * + * @default "" + */ + filters?: string; + /** + * Limit number of returned metrics. + * + * @default 10000 + */ + limit?: number; + /** + * One or more metrics to compute. + */ + metrics?: string[]; + /** + * Start of time interval to query, defaults to 6 hours before request received. + * + * @default <6 hours ago> + * @example 2019-01-02T02:20:00Z + * @format date-time + */ + since?: string; + /** + * Array of dimensions or metrics to sort by, each dimension/metric may be prefixed by - (descending) or + (ascending). + * + * @default [] + */ + sort?: any[]; + /** + * End of time interval to query, defaults to current time. + * + * @default + * @example 2019-01-02T03:20:00Z + * @format date-time + */ + until?: string; +}; + +export type QueryEvent = { + custom_page_html?: EventCustomPageHtml; + description?: EventDescription; + disable_session_renewal?: EventDisableSessionRenewal; + event_end_time: EventEndTime; + event_start_time: EventStartTime; + name: EventName; + new_users_per_minute?: EventNewUsersPerMinute; + prequeue_start_time?: EventPrequeueStartTime; + queueing_method?: EventQueueingMethod; + session_duration?: EventSessionDuration; + shuffle_at_event_start?: EventShuffleAtEventStart; + suspended?: EventSuspended; + total_active_users?: EventTotalActiveUsers; +}; + +export type QueryHealthcheck = { + address: Address; + check_regions?: CheckRegions; + consecutive_fails?: ConsecutiveFails; + consecutive_successes?: ConsecutiveSuccesses; + description?: DescriptionNNNUBbC7; + http_config?: HttpConfig; + interval?: Interval; + name: Name8NztOXJ3; + retries?: RetriesZPd5bYtZ; + suspended?: Suspended; + tcp_config?: TcpConfig; + timeout?: Timeout; + type?: Type; +}; + +export type QueryPreview = { + custom_html: CustomPageHtml; +}; + +/** + * The exact parameters/timestamps the analytics service used to return data. + */ +export type QueryResponse = { + since?: SinceO1OWzWkU; + /** + * The amount of time (in minutes) that each data point in the timeseries represents. The granularity of the time-series returned (e.g. each bucket in the time series representing 1-minute vs 1-day) is calculated by the API based on the time-range provided to the API. + */ + time_delta?: number; + until?: UntilOh0IDugA; +}; + +export type QueryWaitingroom = { + cookie_attributes?: CookieAttributes; + custom_page_html?: CustomPageHtml; + default_template_language?: DefaultTemplateLanguage; + description?: DescriptionJIh6Lv2u; + disable_session_renewal?: DisableSessionRenewal; + host: HostB3JrS1Yy; + json_response_enabled?: JsonResponseEnabled; + name: NameGu3WWDHz; + new_users_per_minute: NewUsersPerMinute; + path?: PathIVkcNWHz; + queue_all?: QueueAll; + queueing_method?: QueueingMethod; + session_duration?: SessionDurationDWa1S8Ip; + suspended?: SuspendedW815GHPM; + total_active_users: TotalActiveUsers; +}; + +export type Queue = { + consumers?: void; + consumers_total_count?: void; + created_on?: void; + modified_on?: void; + producers?: void; + producers_total_count?: void; + queue_id?: void; + queue_name?: QueuesComponentsSchemasName; +}; + +/** + * If queue_all is `true`, all the traffic that is coming to a route will be sent to the waiting room. No new traffic can get to the route once this field is set and estimated time will become unavailable. + * + * @default false + * @example true + */ +export type QueueAll = boolean; + +export type QueueCreated = { + created_on?: void; + modified_on?: void; + queue_id?: void; + queue_name?: QueuesComponentsSchemasName; +}; + +export type QueueUpdated = { + created_on?: void; + modified_on?: void; + queue_id?: void; + queue_name?: RenamedName; +}; + +/** + * Sets the queueing method used by the waiting room. Changing this parameter from the **default** queueing method is only available for the Waiting Room Advanced subscription. Regardless of the queueing method, if `queue_all` is enabled or an event is prequeueing, users in the waiting room will not be accepted to the origin. These users will always see a waiting room page that refreshes automatically. The valid queueing methods are: + * 1. `fifo` **(default)**: First-In-First-Out queue where customers gain access in the order they arrived. + * 2. `random`: Random queue where customers gain access randomly, regardless of arrival time. + * 3. `passthrough`: Users will pass directly through the waiting room and into the origin website. As a result, any configured limits will not be respected while this is enabled. This method can be used as an alternative to disabling a waiting room (with `suspended`) so that analytics are still reported. This can be used if you wish to allow all traffic normally, but want to restrict traffic during a waiting room event, or vice versa. + * 4. `reject`: Users will be immediately rejected from the waiting room. As a result, no users will reach the origin website while this is enabled. This can be used if you wish to reject all traffic while performing maintenance, block traffic during a specified period of time (an event), or block traffic while events are not occurring. Consider a waiting room used for vaccine distribution that only allows traffic during sign-up events, and otherwise blocks all traffic. For this case, the waiting room uses `reject`, and its events override this with `fifo`, `random`, or `passthrough`. When this queueing method is enabled and neither `queueAll` is enabled nor an event is prequeueing, the waiting room page **will not refresh automatically**. + * + * @default fifo + * @example fifo + */ +export type QueueingMethod = 'fifo' | 'random' | 'passthrough' | 'reject'; + +/** + * @example example-queue + */ +export type QueuesComponentsSchemasName = string; + +export type Quota = { + /** + * Quantity Allocated. + */ + allocated?: number; + /** + * Quantity Used. + */ + used?: number; +}; + +export type R2SingleBucketOperationResponse = { + errors: Messages; + messages: Messages; + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type Railgun = { + activated_on: ActivatedOn; + activation_key: ActivationKey; + build: Build; + created_on: ComponentsSchemasCreatedOn; + enabled: RailgunComponentsSchemasEnabled; + id: RailgunComponentsSchemasIdentifier; + modified_on: RailgunComponentsSchemasModifiedOn; + name: RailgunComponentsSchemasName; + revision: Revision; + status: RailgunComponentsSchemasStatus; + upgrade_info?: UpgradeInfo; + version: ComponentsSchemasVersion; + zones_connected: ZonesConnected; +}; + +/** + * Flag to determine if the Railgun is accepting connections. + * + * @default false + * @example true + */ +export type RailgunComponentsSchemasEnabled = boolean; + +/** + * Railgun identifier tag. + * + * @example e928d310693a83094309acf9ead50448 + * @maxLength 32 + */ +export type RailgunComponentsSchemasIdentifier = string; + +/** + * Railgun connection identifier tag. + * + * @example e928d310693a83094309acf9ead50448 + * @maxLength 32 + */ +export type RailgunComponentsSchemasIdentifier2 = string; + +/** + * When the Railgun was last modified. + * + * @example 2014-01-01T05:20:00Z + * @format date-time + */ +export type RailgunComponentsSchemasModifiedOn = string; + +/** + * Readable identifier of the Railgun. + * + * @example My Railgun. + * @maxLength 160 + */ +export type RailgunComponentsSchemasName = string; + +/** + * Status of the Railgun. + * + * @example active + */ +export type RailgunComponentsSchemasStatus = 'initializing' | 'active'; + +export type RailgunResponseCollection = ApiResponseCollection & { + result?: Railgun[]; +}; + +export type RailgunResponseSingle = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type RailgunResponseSingleId = RailgunResponseSingle & { + result?: { + id?: RailgunComponentsSchemasIdentifier; + }; +}; + +/** + * Configures pool weights for random steering. When steering_policy is 'random', a random pool is selected with probability proportional to these pool weights. + */ +export type RandomSteering = { + /** + * The default weight for pools in the load balancer that are not specified in the pool_weights map. + * + * @default 1 + * @example 0.2 + * @maximum 1 + * @minimum 0 + * @multipleOf 0.1 + */ + default_weight?: number; + /** + * A mapping of pool IDs to custom weights. The weight is relative to other pools in the load balancer. + * + * @example {"9290f38c5d07c2e2f4df57b1f61d4196":0.5,"de90f38ced07c2e2f4df50b1f61d4194":0.3} + */ + pool_weights?: Record; +}; + +export type RateLimits = RatelimitHlSXOBhh; + +/** + * The unique identifier of the rate limit. + * + * @example 372e67954025e0ba6aaa6d586b9e0b59 + * @maxLength 32 + */ +export type RateLimitsComponentsSchemasId = string; + +export type RatePlan = { + components?: SchemasComponentValues; + currency?: Currency; + duration?: DurationUvPDdO2C; + frequency?: SchemasFrequency; + id?: RatePlanComponentsSchemasIdentifier; + name?: RatePlanComponentsSchemasName; +}; + +/** + * Plan identifier tag. + * + * @example free + */ +export type RatePlanComponentsSchemasIdentifier = string; + +/** + * The plan name. + * + * @example Free Plan + * @maxLength 80 + */ +export type RatePlanComponentsSchemasName = string; + +/** + * The rate plan applied to the subscription. + */ +export type RatePlan = { + /** + * The currency applied to the rate plan subscription. + * + * @example USD + */ + currency?: string; + /** + * Whether this rate plan is managed externally from Cloudflare. + * + * @example false + */ + externally_managed?: boolean; + /** + * The ID of the rate plan. + * + * @example free + */ + id?: void; + /** + * Whether a rate plan is enterprise-based (or newly adopted term contract). + * + * @example false + */ + is_contract?: boolean; + /** + * The full name of the rate plan. + * + * @example Business Plan + */ + public_name?: string; + /** + * The scope that this rate plan applies to. + * + * @example zone + */ + scope?: string; + /** + * The list of sets this rate plan applies to. + */ + sets?: string[]; +}; + +/** + * Ratelimit in queries per second per datacenter (applies to DNS queries sent to the upstream nameservers configured on the cluster). + * + * @example 600 + * @maximum 1000000000 + * @minimum 100 + */ +export type Ratelimit = number | null; + +export type RatelimitHlSXOBhh = { + action?: SchemasAction; + bypass?: Bypass; + description?: ComponentsSchemasDescriptionShl7dZHd; + disabled?: Disabled; + id?: RateLimitsComponentsSchemasId; + match?: MatchVa0wXlcX; + period?: Period; + threshold?: Threshold; +}; + +export type RatelimitResponseCollection = ApiResponseCollection & { + result?: RateLimits[]; +}; + +export type RatelimitResponseSingle = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +/** + * The unique identifier for the request to Cloudflare. + * + * @example 187d944c61940c77 + * @maxLength 16 + */ +export type RayId = string; + +/** + * Ray identifier. + * + * @example 41ddf1740f67442d + * @maxLength 16 + */ +export type RayIdentifier = string; + +/** + * Beta flag. Users can create a policy with a mechanism that is not ready, but we cannot guarantee successful delivery of notifications. + * + * @example true + */ +export type Ready = boolean; + +/** + * Indicates whether the video is ready for viewing. + * + * @example true + */ +export type ReadyToStream = boolean; + +/** + * A short reference tag. Allows you to select related firewall rules. + * + * @example MIR-31 + * @maxLength 50 + */ +export type Ref = string; + +export type ReferencesResponse = ApiResponseCollection & { + /** + * List of resources that reference a given monitor. + * + * @example {"reference_type":"referrer","resource_id":"17b5962d775c646f3f9725cbc7a53df4","resource_name":"primary-dc-1","resource_type":"pool"} + */ + result?: { + reference_type?: '*' | 'referral' | 'referrer'; + resource_id?: string; + resource_name?: string; + resource_type?: string; + }[]; +}; + +/** + * A list of Cloudflare regions. WNAM: Western North America, ENAM: Eastern North America, WEU: Western Europe, EEU: Eastern Europe, NSAM: Northern South America, SSAM: Southern South America, OC: Oceania, ME: Middle East, NAF: North Africa, SAF: South Africa, SAS: Southern Asia, SEAS: South East Asia, NEAS: North East Asia). + * + * @example WNAM + */ +export type RegionCode = + | 'WNAM' + | 'ENAM' + | 'WEU' + | 'EEU' + | 'NSAM' + | 'SSAM' + | 'OC' + | 'ME' + | 'NAF' + | 'SAF' + | 'SAS' + | 'SEAS' + | 'NEAS'; + +export type RegionComponentsSchemasResponseCollection = ApiResponseSingleUl1k90Mw & { + result?: Record; +}; + +export type RegionComponentsSchemasResponseCollectionKhxOrgA8 = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type RegionComponentsSchemasSingleResponse = ApiResponseSingleLarS7owG & { + /** + * A list of countries and subdivisions mapped to a region. + * + * @example {"iso_standard":"Country and subdivision codes follow ISO 3166-1 alpha-2 and ISO 3166-2","regions":[{"countries":[{"country_code_a2":"CA","country_name":"Canada","country_subdivisions":[{"subdivision_code_a2":"AB","subdivision_name":"Alberta"},{"subdivision_code_a2":"BC","subdivision_name":"British Columbia"}]},{"country_code_a2":"HT","country_name":"Haiti"},{"country_code_a2":"MX","country_name":"Mexico"},{"country_code_a2":"US","country_name":"United States","country_subdivisions":[{"subdivision_code_a2":"AZ","subdivision_name":"Arizona"},{"subdivision_code_a2":"CA","subdivision_name":"California"},{"subdivision_code_a2":"CO","subdivision_name":"Colorado"},{"subdivision_code_a2":"HI","subdivision_name":"Hawaii"},{"subdivision_code_a2":"MN","subdivision_name":"Minnesota"},{"subdivision_code_a2":"MO","subdivision_name":"Missouri"},{"subdivision_code_a2":"NV","subdivision_name":"Nevada"},{"subdivision_code_a2":"OR","subdivision_name":"Oregon"},{"subdivision_code_a2":"TX","subdivision_name":"Texas"},{"subdivision_code_a2":"UT","subdivision_name":"Utah"},{"subdivision_code_a2":"WA","subdivision_name":"Washington"}]}],"region_code":"WNAM"}]} + */ + result?: Record; +}; + +/** + * A mapping of region codes to a list of pool IDs (ordered by their failover priority) for the given region. Any regions not explicitly defined will fall back to using default_pools. + * + * @example {"ENAM":["00920f38ce07c2e2f4df50b1f61d4194"],"WNAM":["de90f38ced07c2e2f4df50b1f61d4194","9290f38c5d07c2e2f4df57b1f61d4196"]} + */ +export type RegionPools = Record; + +/** + * Comma-separated list of regions. + * + * @example eu + * @maxLength 256 + * @pattern ^[a-z,]*$ + */ +export type Regions = string; + +/** + * Shows contact information for domain registrant. + */ +export type RegistrantContact = Contacts; + +/** + * A comma-separated list of registry status codes. A full list of status codes can be found at [EPP Status Codes](https://www.icann.org/resources/pages/epp-status-codes-2014-06-16-en). + * + * @example ok,serverTransferProhibited + */ +export type RegistryStatuses = string; + +/** + * If `true`, the tunnel can be configured remotely from the Zero Trust dashboard. If `false`, the tunnel must be configured locally on the origin machine. + * + * @example true + */ +export type RemoteConfig = boolean; + +/** + * @example renamed-example-queue + */ +export type RenamedName = string; + +export type Report = { + data: Data; + /** + * Number of seconds between current time and last processed event, in another words how many seconds of data could be missing. + * + * @example 60 + * @minimum 0 + */ + data_lag: number; + /** + * Maximum results for each metric (object mapping metric names to values). Currently always an empty object. + */ + max: Record; + /** + * Minimum results for each metric (object mapping metric names to values). Currently always an empty object. + */ + min: Record; + query: Query; + /** + * Total number of rows in the result. + * + * @example 100 + * @minimum 0 + */ + rows?: number; + /** + * Total results for metrics across all data (object mapping metric names to values). + */ + totals: Record; +}; + +export type ReportBytime = { + data: Data; + /** + * Number of seconds between current time and last processed event, in another words how many seconds of data could be missing. + * + * @example 60 + * @minimum 0 + */ + data_lag: number; + /** + * Maximum results for each metric (object mapping metric names to values). Currently always an empty object. + */ + max: Record; + /** + * Minimum results for each metric (object mapping metric names to values). Currently always an empty object. + */ + min?: Record; + query: Query; + /** + * Total number of rows in the result. + * + * @example 100 + * @minimum 0 + */ + rows?: number; + /** + * Total results for metrics across all data (object mapping metric names to values). + */ + totals?: Record; + /** + * Array of time intervals in the response data. Each interval is represented as an array containing two values: the start time, and the end time. + */ + time_intervals: string[][]; +}; + +export type RequestTracer = Record; + +/** + * Client IP restrictions. + * + * @example {"in":["123.123.123.0/24","2606:4700::/32"],"not_in":["123.123.123.100/24","2606:4700:4700::/48"]} + */ +export type RequestIp = { + ['in']?: CidrList; + not_in?: CidrList; +}; + +export type RequestList = RequestModel[]; + +export type RequestModel = { + enabled?: ManagedHeadersComponentsSchemasEnabled; + id?: ManagedHeadersComponentsSchemasId; +}; + +/** + * Signature type desired on certificate ("origin-rsa" (rsa), "origin-ecc" (ecdsa), or "keyless-certificate" (for Keyless SSL servers). + * + * @example origin-rsa + */ +export type RequestType = 'origin-rsa' | 'origin-ecc' | 'keyless-certificate'; + +/** + * The number of days for which the certificate should be valid. + * + * @default 5475 + * @example 5475 + */ +export type RequestedValidity = 7 | 30 | 90 | 365 | 730 | 1095 | 5475; + +/** + * The estimated number of requests covered by these calculations. + */ +export type Requests = number; + +/** + * Breakdown of totals for requests. + */ +export type RequestsByColo = { + /** + * Total number of requests served. + */ + all?: number; + /** + * Total number of cached requests served. + */ + cached?: number; + /** + * Key/value pairs where the key is a two-digit country code and the value is the number of requests served to that country. + * + * @example {"AG":37298,"GI":293846,"US":4181364} + */ + country?: { + [key: string]: any; + }; + /** + * A variable list of key/value pairs where the key is a HTTP status code and the value is the number of requests with that code served. + * + * @example {"200":13496983,"301":283,"400":187936,"402":1828,"404":1293} + */ + http_status?: Record; + /** + * Total number of requests served from the origin. + */ + uncached?: number; +}; + +/** + * Rules evaluated with an AND logical operator. To match a policy, a user must meet all of the Require rules. + */ +export type Require = Rule[]; + +/** + * Rules evaluated with an AND logical operator. To match a policy, a user must meet all of the Require rules. + */ +export type RequireBZzd5gGi = RuleComponentsSchemasRule[]; + +/** + * Whether to check all disks for encryption. + * + * @example true + */ +export type RequireAll = boolean; + +/** + * Indicates whether the video can be a accessed using the UID. When set to `true`, a signed token must be generated with a signing key to view the video. + * + * @default false + * @example true + */ +export type RequireSignedURLs = boolean; + +/** + * Indicates whether the image can be a accessed only using it's UID. If set to true, a signed token needs to be generated with a signing key to view the image. + * + * @default false + * @example true + */ +export type RequireSignedURLsT5ww2QVG = boolean; + +export type ResolvesToRef = { + id?: StixIdentifier; + /** + * IP address or domain name. + * + * @example 192.0.2.0 + */ + value?: string; +}; + +/** + * Specifies a list of references to one or more IP addresses or domain names that the domain name currently resolves to. + */ +export type ResolvesToRefs = ResolvesToRef[]; + +/** + * The ID of the resource. + * + * @example c9ef84a6bf5e47138c75d95e2f933e8f + * @maxLength 32 + * @minLength 32 + */ +export type ResourceId = string; + +/** + * A reference to a load balancer resource. + */ +export type ResourceReference = { + /** + * When listed as a reference, the type (direction) of the reference. + */ + reference_type?: 'referral' | 'referrer'; + /** + * A list of references to (referrer) or from (referral) this resource. + * + * @example {"reference_type":"referrer","resource_id":"699d98642c564d2e855e9661899b7252","resource_name":"www.example.com","resource_type":"load_balancer"} + * @example {"reference_type":"referral","resource_id":"f1aba936b94213e5b8dca0c0dbf1f9cc","resource_name":"Login page monitor","resource_type":"monitor"} + */ + references?: Record[]; + /** + * @example 17b5962d775c646f3f9725cbc7a53df4 + */ + resource_id?: void; + /** + * The human-identifiable name of the resource. + * + * @example primary-dc-1 + */ + resource_name?: string; + /** + * The type of the resource. + * + * @example pool + */ + resource_type?: 'load_balancer' | 'monitor' | 'pool'; +}; + +/** + * A list of resource names that the policy applies to. + * + * @example {"com.cloudflare.api.account.zone.22b1de5f1c0e4b3ea97bb1e963b06a43":"*","com.cloudflare.api.account.zone.eb78d65290b24279ba6f44721b3ea3c4":"*"} + */ +export type Resources = Record; + +export type Response = ApiResponseCollection & { + result?: DomainHistory[]; +}; + +/** + * Enables or disables buffering of responses from the proxied server. Cloudflare may buffer the whole payload to deliver it at once to the client versus allowing it to be delivered in chunks. By default, the proxied server streams directly and is not buffered by Cloudflare. This is limited to Enterprise Zones. + * + * @default off + */ +export type ResponseBuffering = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example response_buffering + */ + id: 'response_buffering'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: ResponseBufferingValue; +}; + +/** + * Value of the zone setting. + * + * @default off + */ +export type ResponseBufferingValue = 'on' | 'off'; + +export type ResponseCollection = ApiResponseCollection & { + result?: IpamPrefixes[]; +}; + +export type ResponseCollectionBphhbD1T = ApiResponseCollection & { + result?: Record[]; +}; + +export type ResponseCollectionDPc6cOos = ApiResponseCollection & { + result?: Lists[]; +}; + +export type ResponseCollectionDwMe3PpI = ApiResponseCollection & { + result?: Waitingroom[]; +}; + +export type ResponseCollectionJMgvhGPC = ApiResponseCollection & { + result?: DevicePostureRules[]; +}; + +export type ResponseCollectionNVqCaNmu = ApiResponseCollection & { + result?: ( + | AzureAD + | Centrify + | Facebook + | Github + | Google + | GoogleApps + | Linkedin + | Oidc + | Okta + | Onelogin + | Pingone + | Saml + | Yandex + )[]; +}; + +export type ResponseCollectionRq1AXflT = ApiResponseCollection & { + result?: Monitor[]; +}; + +export type ResponseCollectionBS6MoLFe = ApiResponseCollection & { + result?: Tsig[]; +}; + +export type ResponseCollectionE23aFYyQ = ApiResponseCollection & { + result?: Healthchecks[]; +}; + +export type ResponseCollectionF9zlxqDg = ApiResponseCollection & { + result?: Profiles[]; +}; + +export type ResponseCollectionHostnames = ApiResponseCollection & { + result?: Settings[]; +}; + +export type ResponseCreate = ApiResponseSingleLarS7owG & { + result?: { + value?: ValueOY5wJPpX; + }; +}; + +export type ResponseList = ResponseModel[]; + +export type ResponseModel = { + available?: Available; + enabled?: ManagedHeadersComponentsSchemasEnabled; + id?: ManagedHeadersComponentsSchemasId; +}; + +export type ResponseSingle = ApiResponseSingleIRWHLn6I & { + result?: Record; +}; + +export type ResponseSingleCIi951yd = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type ResponseSingleOriginDns = ApiResponseSingleLarS7owG & { + result?: { + argo_smart_routing?: ArgoSmartRouting; + created_on?: CreatedJTk3Ehp3; + dns?: Dns; + edge_ips?: EdgeIps; + id?: AppIdK0AoyPAB; + ip_firewall?: IpFirewall; + modified_on?: ModifiedXJlHjzHE; + origin_dns?: OriginDns; + origin_port?: OriginPort; + protocol?: Protocol; + proxy_protocol?: ProxyProtocol; + tls?: Tls; + traffic_type?: TrafficType; + }; +}; + +export type ResponseSingleSegment = ApiResponseSingleLarS7owG & { + result?: { + expires_on?: ExpiresOnZ3utPxP0; + id: ComponentsSchemasIdentifierUpjmfntS; + not_before?: NotBefore; + status: Status0icsKVdQ; + }; +}; + +export type ResponseSingleValue = ApiResponseSingleLarS7owG & { + result?: ValueOY5wJPpX; +}; + +export type Result = { + data: Data; + /** + * Number of seconds between current time and last processed event, in another words how many seconds of data could be missing. + * + * @example 60 + * @minimum 0 + */ + data_lag: number; + /** + * Maximum results for each metric (object mapping metric names to values). Currently always an empty object. + */ + max: Record; + /** + * Minimum results for each metric (object mapping metric names to values). Currently always an empty object. + */ + min: Record; + query: Query; + /** + * Total number of rows in the result. + * + * @example 100 + * @minimum 0 + */ + rows: number; + /** + * Total results for metrics across all data (object mapping metric names to values). + */ + totals: Record; +}; + +/** + * Metrics on Workers KV requests. + */ +export type Result0iSKYUfO = { + data: + | { + /** + * List of metrics returned by the query. + */ + metrics: any[]; + }[] + | null; + /** + * Number of seconds between current time and last processed event, i.e. how many seconds of data could be missing. + * + * @example 0 + * @minimum 0 + */ + data_lag: number; + /** + * Maximum results for each metric. + */ + max: void; + /** + * Minimum results for each metric. + */ + min: void; + query: QueryLWVM8wx5; + /** + * Total number of rows in the result. + * + * @example 2 + * @minimum 0 + */ + rows: number; + /** + * Total results for metrics across all data. + */ + totals: void; +}; + +export type ResultInfo = { + /** + * Total number of results for the requested service + * + * @example 1 + */ + count?: number; + /** + * Current page within paginated list of results + * + * @example 1 + */ + page?: number; + /** + * Number of results per page of results + * + * @example 20 + */ + per_page?: number; + /** + * Total results available without any search parameters + * + * @example 2000 + */ + total_count?: number; +}; + +/** + * Number of retries for fetching DNS responses from upstream nameservers (not counting the initial attempt). + * + * @default 2 + * @example 2 + * @maximum 2 + * @minimum 0 + */ +export type Retries = number; + +/** + * The number of retries to attempt in case of a timeout before marking the origin as unhealthy. Retries are attempted immediately. + * + * @default 2 + */ +export type Retries7RuyOW7F = number; + +/** + * The number of retries to attempt in case of a timeout before marking the origin as unhealthy. Retries are attempted immediately. + * + * @default 2 + */ +export type RetriesGl6521CK = number; + +/** + * The number of retries to attempt in case of a timeout before marking the origin as unhealthy. Retries are attempted immediately. + * + * @default 2 + */ +export type RetriesZPd5bYtZ = number; + +/** + * The revision of the Railgun receiver. + * + * @example 123 + */ +export type Revision = string; + +/** + * A list of device ids to revoke. + * + * @maxLength 200 + */ +export type RevokeDevicesRequest = SchemasUuid4P4vJwxm[]; + +/** + * A list of device ids to revoke. + * + * @maxLength 200 + */ +export type RevokeDevicesRequestXUKeM0p2 = Uuid[]; + +/** + * When the device was revoked. + * + * @example 2017-06-14T00:00:00Z + * @format date-time + */ +export type RevokedAt = string; + +/** + * Specifies that, when a WAF rule matches, its configured action will be replaced by the action configured in this object. + */ +export type RewriteAction = { + block?: WafRewriteAction; + /** + * @example block + */ + challenge?: void; + /** + * @example block + */ + ['default']?: void; + disable?: WafRewriteAction; + /** + * @example disable + */ + simulate?: void; +}; + +/** + * Hostname risk score, which is a value between 0 (lowest risk) to 1 (highest risk). + */ +export type RiskScore = number; + +export type RiskTypes = void; + +/** + * Rocket Loader is a general-purpose asynchronous JavaScript optimisation that prioritises rendering your content while loading your site's Javascript asynchronously. Turning on Rocket Loader will immediately improve a web page's rendering time sometimes measured as Time to First Paint (TTFP), and also the `window.onload` time (assuming there is JavaScript on the page). This can have a positive impact on your Google search ranking. When turned on, Rocket Loader will automatically defer the loading of all Javascript referenced in your HTML, with no configuration required. Refer to [Understanding Rocket Loader](https://support.cloudflare.com/hc/articles/200168056) for more information. + */ +export type RocketLoader = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example rocket_loader + */ + id: 'rocket_loader'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: RocketLoaderValue; +}; + +/** + * Value of the zone setting. + * + * @default off + */ +export type RocketLoaderValue = 'on' | 'off'; + +export type Role = { + /** + * Description of role's permissions. + * + * @example Administrative access to the entire Account + */ + description: string; + id: RoleComponentsSchemasIdentifier; + /** + * Role name. + * + * @example Account Administrator + * @maxLength 120 + */ + name: string; + permissions: Permissions; +}; + +/** + * Role identifier tag. + * + * @example 3536bcfad5faccb999b47003c79917fb + * @maxLength 32 + */ +export type RoleComponentsSchemasIdentifier = string; + +/** + * List of role names for the user at the account. + */ +export type Roles = string[]; + +export type Route = { + created_on?: CreatedOn; + description?: DescriptionPhEFvENx; + id?: Identifier; + modified_on?: ModifiedOnMQy5ittP; + nexthop: Nexthop; + prefix: Prefix; + priority: Priority; + scope?: Scope; + weight?: Weight; +}; + +export type RouteNoId = { + pattern: Pattern2dXyN8SA; + script?: SchemasScriptName; +}; + +export type RouteResponseCollection = { + errors: Messages; + messages: Messages; + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type RouteResponseSingle = ApiResponseSingleLarS7owG & { + result?: Routes; +}; + +export type RouteVdCUMuBC = { + /** + * The timestamp of when the override was last modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string; + /** + * The type of route. + * + * @example forward_url + */ + name?: 'forward_url'; + value?: { + /** + * The response type for the URL redirect. + * + * @example temporary + */ + type?: 'temporary' | 'permanent'; + /** + * The URL to redirect the request to. + * Notes: ${num} refers to the position of '*' in the constraint value. + * + * @example http://www.example.com/somewhere/$1/astring/$2/anotherstring/$3 + */ + url?: string; + }; +}; + +export type RouteAddSingleRequest = { + description?: DescriptionPhEFvENx; + nexthop: Nexthop; + prefix: Prefix; + priority: Priority; + scope?: Scope; + weight?: Weight; +}; + +export type RouteDeleteId = { + id: Identifier; +}; + +export type RouteDeleteManyRequest = { + routes: RouteDeleteId[]; +}; + +export type RouteDeletedResponse = ApiResponseSingleRxxEmdsv & { + result?: { + /** + * @example true + */ + deleted?: boolean; + deleted_route?: Record; + }; +}; + +export type RouteModifiedResponse = ApiResponseSingleRxxEmdsv & { + result?: { + /** + * @example true + */ + modified?: boolean; + modified_route?: Record; + }; +}; + +export type RouteResponseCollection = ApiResponseCollection & { + result?: Teamnet[]; +}; + +export type RouteResponseSingle = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type RouteSingleResponse = ApiResponseSingleRxxEmdsv & { + result?: { + route?: Record; + }; +}; + +export type RouteUpdateManyRequest = { + routes: RouteUpdateSingleRequest[]; +}; + +export type RouteUpdateRequest = RouteAddSingleRequest; + +export type RouteUpdateSingleRequest = { + id: Identifier; +} & RouteAddSingleRequest; + +export type Routes = { + id: CommonComponentsSchemasIdentifier; + pattern: Pattern2dXyN8SA; + script: SchemasScriptName; +}; + +export type RoutesCollectionResponse = ApiResponseSingleRxxEmdsv & { + result?: { + routes?: Route[]; + }; +}; + +export type Rule = + | EmailRule + | DomainRule + | EveryoneRule + | IpRule + | IpListRule + | CertificateRule + | AccessGroupRule + | AzureGroupRule + | GithubOrganizationRule + | GsuiteGroupRule + | OktaGroupRule + | SamlGroupRule; + +export type RuleBzMd43YS = { + /** + * The available actions that a rule can apply to a matched request. + * + * @example whitelist + * @example block + * @example challenge + * @example js_challenge + * @example managed_challenge + */ + allowed_modes: SchemasMode[]; + configuration: SchemasConfiguration; + /** + * The timestamp of when the rule was created. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + created_on?: string; + id: RuleComponentsSchemasIdentifier; + mode: SchemasMode; + /** + * The timestamp of when the rule was last modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string; + notes?: Notes; +}; + +/** + * Additional settings that modify the rule's action. + */ +export type RuleSettings = { + /** + * Add custom headers to allowed requests, in the form of key-value pairs. Keys are header names, pointing to an array with its header value(s). + * + * @example {"My-Next-Header":["foo","bar"],"X-Custom-Header-Name":["somecustomvalue"]} + */ + add_headers?: Record; + /** + * Set by parent MSP accounts to enable their children to bypass this rule. + * + * @example false + */ + allow_child_bypass?: boolean; + /** + * Audit ssh action settings + */ + audit_ssh?: { + /** + * Turn on SSH command logging. + * + * @example false + */ + command_logging?: boolean; + }; + /** + * Configure how browser isolation behaves. + */ + biso_admin_controls?: { + /** + * Disable copy-paste. + * + * @example false + */ + dcp?: boolean; + /** + * Disable download. + * + * @example false + */ + dd?: boolean; + /** + * Disable keyboard usage. + * + * @example false + */ + dk?: boolean; + /** + * Disable printing. + * + * @example false + */ + dp?: boolean; + /** + * Disable upload. + * + * @example false + */ + du?: boolean; + }; + /** + * Enable the custom block page. + * + * @example true + */ + block_page_enabled?: boolean; + /** + * The text describing why this block occurred that will be displayed on the custom block page (if enabled). + * + * @example This website is a security risk + */ + block_reason?: string; + /** + * Set by children MSP accounts to bypass their parent's rules. + * + * @example false + */ + bypass_parent_rule?: boolean; + /** + * Configure how session check behaves. + */ + check_session?: { + /** + * Configure how fresh the session needs to be to be considered valid. + * + * @example 300s + */ + duration?: string; + /** + * Enable session enforcement for this fule. + * + * @example true + */ + enforce?: boolean; + }; + /** + * Configure how Proxy traffic egresses. Can be set for rules with Egress action and Egress filter. Can be omitted to indicate local egress via Warp IPs + */ + egress?: { + /** + * The IPv4 address to be used for egress. + * + * @example 192.0.2.2 + */ + ipv4?: string; + /** + * The IPv4 address to be used for egress in the event of an error egressing with the primary IPv4. Can be '0.0.0.0' to indicate local egreass via Warp IPs. + * + * @example 192.0.2.3 + */ + ipv4_fallback?: string; + /** + * The IPv6 range to be used for egress. + * + * @example 2001:DB8::/64 + */ + ipv6?: string; + }; + /** + * INSECURE - disable DNSSEC validation (for allow actions). + * + * @example false + */ + insecure_disable_dnssec_validation?: boolean; + /** + * Include IPs in DNS resolver category blocks. By default categories only block on domain names. + * + * @example true + */ + ip_categories?: boolean; + /** + * Send matching traffic to the supplied destination IP address and port. + */ + l4override?: { + /** + * IPv4 or IPv6 address. + * + * @example 1.1.1.1 + */ + ip?: string; + /** + * A port number to use for TCP/UDP overrides. + */ + port?: number; + }; + /** + * Override matching DNS queries with this. + * + * @example example.com + */ + override_host?: string; + /** + * Override matching DNS queries with this. + * + * @example 1.1.1.1 + * @example 2.2.2.2 + */ + override_ips?: string[]; + /** + * Configure DLP payload logging. + */ + payload_log?: { + /** + * Enable DLP payload logging for this rule. + * + * @example true + */ + enabled?: boolean; + }; + /** + * Configure behavior when an upstream cert is invalid / an SSL error occurs. + */ + untrusted_cert?: { + /** + * The action to perform upon seeing an untrusted certificate. Default action is error with HTTP code 526. + * + * @example error + */ + action?: 'pass_through' | 'block' | 'error'; + }; +}; + +/** + * The action to take when the expression matches. + * + * @example bypass_waiting_room + */ +export type RuleAction = 'bypass_waiting_room'; + +/** + * Actions pattern. + */ +export type RuleActionKGdPufYw = { + /** + * Type of supported action. + * + * @example forward + */ + type: 'forward' | 'worker'; + value: string[]; +}; + +/** + * List actions patterns. + */ +export type RuleActions = RuleActionKGdPufYw[]; + +/** + * Action for the catch-all routing rule. + */ +export type RuleCatchallAction = { + /** + * Type of action for catch-all rule. + * + * @example forward + */ + type: 'drop' | 'forward' | 'worker'; + value?: string[]; +}; + +/** + * List actions for the catch-all routing rule. + */ +export type RuleCatchallActions = RuleCatchallAction[]; + +/** + * Matcher for catch-all routing rule. + */ +export type RuleCatchallMatcher = { + /** + * Type of matcher. Default is 'all'. + * + * @example all + */ + type: 'all'; +}; + +/** + * List of matchers for the catch-all routing rule. + */ +export type RuleCatchallMatchers = RuleCatchallMatcher[]; + +export type RuleCollectionResponse = ApiResponseCollection & { + result?: RuleBzMd43YS[]; +}; + +export type RuleComponentsSchemasBase = { + description?: RuleComponentsSchemasDescription; + /** + * The rule group to which the current WAF rule belongs. + */ + group?: { + id?: GroupComponentsSchemasIdentifier; + name?: GroupComponentsSchemasName; + }; + id?: RuleComponentsSchemasIdentifier2; + package_id?: PackageComponentsSchemasIdentifier; + priority?: SchemasPriority; +}; + +export type RuleComponentsSchemasBase2 = RuleComponentsSchemasBase; + +/** + * The public description of the WAF rule. + * + * @example SQL injection prevention for SELECT statements + */ +export type RuleComponentsSchemasDescription = string; + +/** + * The unique identifier of the IP Access rule. + * + * @example 92f17202ed8bd63d69a66b86a49a8f6b + * @maxLength 32 + */ +export type RuleComponentsSchemasIdentifier = string; + +/** + * The unique identifier of the WAF rule. + * + * @example f939de3be84e66e757adcdcb87908023 + * @maxLength 32 + */ +export type RuleComponentsSchemasIdentifier2 = string; + +export type RuleComponentsSchemasRule = + | EmailRule + | DomainRule + | EveryoneRule + | IpRule + | IpListRule + | CertificateRule + | AccessGroupRule + | AzureGroupRule + | GithubOrganizationRule + | GsuiteGroupRule + | OktaGroupRule + | SamlGroupRule; + +/** + * The description of the rule. + * + * @default + * @example allow all traffic from 10.20.30.40 + */ +export type RuleDescription = string; + +/** + * When set to true, the rule is enabled. + * + * @default true + * @example true + */ +export type RuleEnabled = boolean; + +/** + * Routing rule status. + * + * @default true + * @example true + */ +export type RuleEnabledXvrbaudJ = true | false; + +/** + * Criteria defining when there is a match for the current rule. + * + * @example ip.src in {10.20.30.40} + */ +export type RuleExpression = string; + +export type RuleGroupResponseCollection = ApiResponseCollection & { + result?: SchemasGroup[]; +}; + +export type RuleGroupResponseSingle = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +/** + * The ID of the rule. + * + * @example 25756b2dfe6e378a06b033b670413757 + */ +export type RuleId = string; + +/** + * @example 2890e6fa406311ed9b5a23f70f6fb8cf + */ +export type RuleIdentifier = void; + +/** + * Routing rule identifier. + * + * @example a7e6fb77503c41d8a7f3113c6918f10c + * @maxLength 32 + */ +export type RuleIdentifier2K5KLBLf = string; + +/** + * Matching pattern to forward your actions. + */ +export type RuleMatcher = { + /** + * Field for type matcher. + * + * @example to + */ + field: 'to'; + /** + * Type of matcher. + * + * @example literal + */ + type: 'literal'; + /** + * Value for matcher. + * + * @example test@example.com + * @maxLength 90 + */ + value: string; +}; + +/** + * Matching patterns to forward to your actions. + */ +export type RuleMatchers = RuleMatcher[]; + +/** + * Routing rule name. + * + * @example Send to user@example.net rule. + * @maxLength 256 + */ +export type RuleName = string; + +/** + * Reorder the position of a rule + */ +export type RulePosition = + | { + /** + * Places the rule in the exact position specified by the integer number . Position numbers start with 1. Existing rules in the ruleset from the specified position number onward are shifted one position (no rule is overwritten). + */ + index?: number; + } + | { + /** + * Places the rule before rule . Use this argument with an empty rule ID value ("") to set the rule as the first rule in the ruleset. + * + * @example + */ + before?: string; + } + | { + /** + * Places the rule after rule . Use this argument with an empty rule ID value ("") to set the rule as the last rule in the ruleset. + * + * @example + */ + after?: string; + }; + +/** + * Priority of the routing rule. + * + * @default 0 + * @minimum 0 + */ +export type RulePriority = number; + +export type RuleProperties = { + actions?: RuleActions; + enabled?: RuleEnabledXvrbaudJ; + matchers?: RuleMatchers; + name?: RuleName; + priority?: RulePriority; + tag?: RuleIdentifier2K5KLBLf; +}; + +export type RuleResponseCollection = ApiResponseCollection & { + result?: ComponentsSchemasRule[]; +}; + +export type RuleResponseSingle = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type RuleResponseSingle0HO9Xvuc = ApiResponseSingleSiIqFfOd & { + result?: RulesFaVxDtoM; +}; + +export type RuleResult = { + action?: RuleAction; + description?: RuleDescription; + enabled?: RuleEnabled; + expression?: RuleExpression; + id?: RuleId; + last_updated?: Timestamp; + version?: RuleVersion; +}; + +export type RuleSingleIdResponse = ApiResponseSingleLarS7owG & { + result?: { + id?: RuleComponentsSchemasIdentifier; + }; +}; + +export type RuleSingleResponse = ApiResponseSingleLarS7owG & { + result?: RuleBzMd43YS; +}; + +/** + * The version of the rule. + * + * @example 1 + */ +export type RuleVersion = string; + +/** + * BETA Field Not General Access: A list of rules for this load balancer to execute. + */ +export type Rules = { + /** + * The condition expressions to evaluate. If the condition evaluates to true, the overrides or fixed_response in this rule will be applied. An empty condition is always true. For more details on condition expressions, please see https://developers.cloudflare.com/load-balancing/understand-basics/load-balancing-rules/expressions. + * + * @example http.request.uri.path contains "/testing" + */ + condition?: string; + /** + * Disable this specific rule. It will no longer be evaluated by this load balancer. + * + * @default false + */ + disabled?: boolean; + /** + * A collection of fields used to directly respond to the eyeball instead of routing to a pool. If a fixed_response is supplied the rule will be marked as terminates. + */ + fixed_response?: { + /** + * The http 'Content-Type' header to include in the response. + * + * @example application/json + * @maxLength 32 + */ + content_type?: string; + /** + * The http 'Location' header to include in the response. + * + * @example www.example.com + * @maxLength 2048 + */ + location?: string; + /** + * Text to include as the http body. + * + * @example Testing Hello + * @maxLength 1024 + */ + message_body?: string; + /** + * The http status code to respond with. + */ + status_code?: number; + }; + /** + * Name of this rule. Only used for human readability. + * + * @example route the path /testing to testing datacenter. + * @maxLength 200 + */ + name?: string; + /** + * A collection of overrides to apply to the load balancer when this rule's condition is true. All fields are optional. + */ + overrides?: { + adaptive_routing?: AdaptiveRouting; + country_pools?: CountryPools; + default_pools?: DefaultPools; + fallback_pool?: FallbackPool; + location_strategy?: LocationStrategy; + pop_pools?: PopPools; + random_steering?: RandomSteering; + region_pools?: RegionPools; + session_affinity?: SessionAffinity; + session_affinity_attributes?: SessionAffinityAttributes; + session_affinity_ttl?: SessionAffinityTtl; + steering_policy?: SteeringPolicy; + ttl?: TtlHaRIhRKD; + }; + /** + * The order in which rules should be executed in relation to each other. Lower values are executed first. Values do not need to be sequential. If no value is provided for any rule the array order of the rules field will be used to assign a priority. + * + * @default 0 + */ + priority?: number; + /** + * If this rule's condition is true, this causes rule evaluation to stop after processing this rule. + * + * @default false + */ + terminates?: boolean; +}[]; + +/** + * An object that allows you to override the action of specific WAF rules. Each key of this object must be the ID of a WAF rule, and each value must be a valid WAF action. Unless you are disabling a rule, ensure that you also enable the rule group that this WAF rule belongs to. When creating a new URI-based WAF override, you must provide a `groups` object or a `rules` object. + * + * @example {"100015":"disable"} + */ +export type Rules8wmBD69l = { + [key: string]: WafAction; +}; + +export type RulesFaVxDtoM = RuleProperties; + +export type RulesLzz0wOUq = { + action?: ActionCzIx4RfS; + created_at?: Timestamp; + deleted_at?: DeletedAt; + description?: SchemasDescriptionLlKmoyYd; + device_posture?: DevicePosture; + enabled?: EnabledQcoBB5YJ; + filters?: FiltersUTAknCFs; + id?: Uuid1mDHWugl; + identity?: Identity; + name?: ComponentsSchemasNameDiPhdb0D; + precedence?: PrecedenceEPoGsEKD; + rule_settings?: RuleSettings; + schedule?: Schedule; + traffic?: Traffic; + updated_at?: Timestamp; +}; + +/** + * @example 6f91088a406011ed95aed352566e8d4c + */ +export type RulesComponentsSchemasAccountIdentifier = void; + +/** + * The action to perform when the rule matches. + * + * @example execute + * @pattern ^[a-z_]+$ + */ +export type RulesComponentsSchemasAction = string; + +/** + * An informative description of the rule. + * + * @default + * @example Execute the OWASP ruleset when the IP address is not 1.1.1.1 + */ +export type RulesComponentsSchemasDescription = string; + +/** + * Whether the rule should be executed. + * + * @default true + * @example true + */ +export type RulesComponentsSchemasEnabled = boolean; + +/** + * The unique ID of the rule. + * + * @example 3a03d665bac047339bb530ecb439a90d + */ +export type RulesComponentsSchemasId = string; + +/** + * A rule object. + */ +export type RulesComponentsSchemasRule = { + action?: RulesComponentsSchemasAction; + action_parameters?: ActionParameters; + categories?: CategoriesGr0NL98E; + description?: RulesComponentsSchemasDescription; + enabled?: RulesComponentsSchemasEnabled; + expression?: SchemasExpression; + id?: RulesComponentsSchemasId; + last_updated?: SchemasLastUpdated; + logging?: Logging; + ref?: ComponentsSchemasRef; + version?: SchemasVersion; +}; + +/** + * The number of rules in the current rule group. + * + * @default 0 + * @example 10 + */ +export type RulesCount = number; + +export type RulesResponseCollection = ApiResponseCollection & { + result?: RuleResult[]; +}; + +export type RulesResponseCollectionQMasv9nu = ApiResponseCollection & { + result?: RulesFaVxDtoM[]; + result_info?: { + /** + * @example 1 + */ + count?: void; + /** + * @example 1 + */ + page?: void; + /** + * @example 20 + */ + per_page?: void; + /** + * @example 1 + */ + total_count?: void; + }; +}; + +/** + * A ruleset object. + */ +export type Ruleset = { + description?: RulesetsComponentsSchemasDescription; + id?: RulesetsComponentsSchemasId; + kind?: SchemasKind; + last_updated?: LastUpdated; + name?: RulesetsComponentsSchemasName; + phase?: Phase; + rules?: SchemasRules; + version?: VersionF60UUqsl; +}; + +export type RulesetResponse = { + errors: Messages; + messages: Messages; + result: Ruleset; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +/** + * A ruleset object. + */ +export type RulesetWithoutRules = { + description?: RulesetsComponentsSchemasDescription; + id?: RulesetsComponentsSchemasId; + kind?: SchemasKind; + last_updated?: LastUpdated; + name?: RulesetsComponentsSchemasName; + phase?: Phase; + version?: VersionF60UUqsl; +}; + +/** + * An informative description of the ruleset. + * + * @default + * @example My ruleset to execute managed rulesets + */ +export type RulesetsComponentsSchemasDescription = string; + +/** + * The unique ID of the ruleset. + * + * @example 2f2feab2026849078ba485f918791bdc + * @pattern ^[0-9a-f]{32}$ + */ +export type RulesetsComponentsSchemasId = string; + +/** + * The human-readable name of the ruleset. + * + * @example My ruleset + */ +export type RulesetsComponentsSchemasName = string; + +export type RulesetsResponse = { + errors: Messages; + messages: Messages; + /** + * A list of rulesets. The returned information will not include the rules in each ruleset. + */ + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +/** + * Timestamp of when the tunnel connection was started. + * + * @example 2009-11-10T23:00:00Z + * @format date-time + */ +export type RunAt = string; + +export type SaasApp = { + /** + * The service provider's endpoint that is responsible for receiving and parsing a SAML assertion. + * + * @example https://example.com + */ + consumer_service_url?: string; + created_at?: Timestamp; + custom_attributes?: { + /** + * The name of the attribute. + * + * @example family_name + */ + name?: string; + /** + * A globally unique name for an identity or service provider. + * + * @example urn:oasis:names:tc:SAML:2.0:attrname-format:basic + */ + name_format?: + | 'urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified' + | 'urn:oasis:names:tc:SAML:2.0:attrname-format:basic' + | 'urn:oasis:names:tc:SAML:2.0:attrname-format:uri'; + source?: { + /** + * The name of the IdP attribute. + * + * @example last_name + */ + name?: string; + }; + }; + /** + * The unique identifier for your SaaS application. + * + * @example https://example.cloudflareaccess.com + */ + idp_entity_id?: string; + /** + * The format of the name identifier sent to the SaaS application. + * + * @example id + */ + name_id_format?: 'id' | 'email'; + /** + * The Access public certificate that will be used to verify your identity. + * + * @example example unique name + */ + public_key?: string; + /** + * A globally unique name for an identity or service provider. + * + * @example example unique name + */ + sp_entity_id?: string; + /** + * The endpoint where your SaaS application will send login requests. + * + * @example https://example.cloudflareaccess.com/cdn-cgi/access/sso/saml/b3f58a2b414e0b51d45c8c2af26fccca0e27c63763c426fa52f98dcf0b3b3bfd + */ + sso_endpoint?: string; + updated_at?: Timestamp; +}; + +export type SaasProps = { + allowed_idps?: AllowedIdps; + app_launcher_visible?: AppLauncherVisible; + auto_redirect_to_identity?: SchemasAutoRedirectToIdentity; + logo_url?: LogoUrl; + name?: AppsComponentsSchemasName; + saas_app?: SaasApp; + /** + * The application type. + * + * @example saas + */ + type?: string; +}; + +export type SaasProps5uhJMdOI = { + allowed_idps?: AllowedIdps; + app_launcher_visible?: AppLauncherVisible; + auto_redirect_to_identity?: AutoRedirectToIdentityB0IhfGBw; + logo_url?: LogoUrl; + name?: AppsComponentsSchemasName; + saas_app?: SaasApp; + /** + * The application type. + * + * @example saas + */ + type?: string; +}; + +/** + * Sets the SameSite cookie setting, which provides increased security against CSRF attacks. + * + * @example strict + */ +export type SameSiteCookieAttribute = string; + +export type Saml = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: { + /** + * A list of SAML attribute names that will be added to your signed JWT token and can be used in SAML policy rules. + * + * @example group + * @example department_code + * @example divison + */ + attributes?: string[]; + /** + * The attribute name for email in the SAML response. + * + * @example Email + */ + email_attribute_name?: string; + /** + * Add a list of attribute names that will be returned in the response header from the Access callback. + */ + header_attributes?: { + /** + * attribute name from the IDP + */ + attribute_name?: string; + /** + * header that will be added on the request to the origin + */ + header_name?: string; + }[]; + /** + * X509 certificate to verify the signature in the SAML authentication response + */ + idp_public_certs?: string[]; + /** + * IdP Entity ID or Issuer URL + * + * @example https://whoami.com + */ + issuer_url?: string; + /** + * Sign the SAML authentication request with Access credentials. To verify the signature, use the public key from the Access certs endpoints. + */ + sign_request?: boolean; + /** + * URL to send the SAML authentication requests to + * + * @example https://edgeaccess.org/idp/saml/login + */ + sso_target_url?: string; + }; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +/** + * Matches a SAML group. + * Requires a SAML identity provider. + */ +export type SamlGroupRule = { + saml: { + /** + * The name of the SAML attribute. + * + * @example group + */ + attribute_name: string; + /** + * The SAML attribute value to look for. + * + * @example devs@cloudflare.com + */ + attribute_value: string; + }; +}; + +/** + * The sample parameter is the sample rate of the records set by the client: "sample": 1 is 100% of records "sample": 10 is 10% and so on. + * + * @example 1 + */ +export type Sample = number; + +/** + * When `?sample=` is provided, a sample of matching records is returned. If `sample=0.1` then 10% of records will be returned. Sampling is random: repeated calls will not only return different records, but likely will also vary slightly in number of returned records. When `?count=` is also specified, `count` is applied to the number of returned records, not the sampled records. So, with `sample=0.05` and `count=7`, when there is a total of 100 records available, approximately five will be returned. When there are 1000 records, seven will be returned. When there are 10,000 records, seven will be returned. + * + * @example 0.1 + * @maximum 1 + * @minimum 0 + */ +export type SampleDCLw1eAf = number; + +/** + * The size of the image relative to the overall size of the video. This parameter will adapt to horizontal and vertical videos automatically. `0.0` indicates no scaling (use the size of the image as-is), and `1.0 `fills the entire video. + * + * @default 0.15 + * @example 0.1 + * @maximum 1 + * @minimum 0 + */ +export type Scale = number; + +/** + * Schedule for activating DNS policies. Does not apply to HTTP or network policies. + */ +export type Schedule = { + /** + * The time intervals when the rule will be active on Fridays, in increasing order from 00:00-24:00. If this parameter is omitted, the rule will be deactivated on Fridays. + * + * @example 08:00-12:30,13:30-17:00 + */ + fri?: string; + /** + * The time intervals when the rule will be active on Mondays, in increasing order from 00:00-24:00. If this parameter is omitted, the rule will be deactivated on Mondays. + * + * @example 08:00-12:30,13:30-17:00 + */ + mon?: string; + /** + * The time intervals when the rule will be active on Saturdays, in increasing order from 00:00-24:00. If this parameter is omitted, the rule will be deactivated on Saturdays. + * + * @example 08:00-12:30,13:30-17:00 + */ + sat?: string; + /** + * The time intervals when the rule will be active on Sundays, in increasing order from 00:00-24:00. If this parameter is omitted, the rule will be deactivated on Sundays. + * + * @example 08:00-12:30,13:30-17:00 + */ + sun?: string; + /** + * The time intervals when the rule will be active on Thursdays, in increasing order from 00:00-24:00. If this parameter is omitted, the rule will be deactivated on Thursdays. + * + * @example 08:00-12:30,13:30-17:00 + */ + thu?: string; + /** + * The time zone the rule will be evaluated against. If a [valid time zone city name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List) is provided, Gateway will always use the current time at that time zone. If this parameter is omitted, then the time zone inferred from the user's source IP is used to evaluate the rule. If Gateway cannot determine the time zone from the IP, we will fall back to the time zone of the user's connected data center. + * + * @example America/New York + */ + time_zone?: string; + /** + * The time intervals when the rule will be active on Tuesdays, in increasing order from 00:00-24:00. If this parameter is omitted, the rule will be deactivated on Tuesdays. + * + * @example 08:00-12:30,13:30-17:00 + */ + tue?: string; + /** + * The time intervals when the rule will be active on Wednesdays, in increasing order from 00:00-24:00. If this parameter is omitted, the rule will be deactivated on Wednesdays. + * + * @example 08:00-12:30,13:30-17:00 + */ + wed?: string; +}; + +/** + * Polling frequency for the WARP client posture check. Default: `5m` (poll every five minutes). Minimum: `1m`. + * + * @example 1h + */ +export type ScheduleVkuQMHl2 = string; + +/** + * Polling frequency for the WARP client posture check. Default: `5m` (poll every five minutes). Minimum: `1m`. + * + * @example 1h + */ +export type ScheduleXq5rkQsP = string; + +export type SchemaResponseDiscovery = DefaultResponse & { + result?: { + schemas?: Openapi[]; + timestamp?: string; + }; +}; + +export type SchemaResponseWithThresholds = DefaultResponse & { + result?: { + schemas?: Openapiwiththresholds[]; + timestamp?: string; + }; +}; + +/** + * True if the user has authenticated with Cloudflare Access. + * + * @example false + */ +export type SchemasAccessSeat = boolean; + +export type SchemasAccount = Account; + +/** + * Account identifier tag. + * + * @example 023e105f4ecef8ad9ca31a8372d0c353 + * @maxLength 32 + */ +export type SchemasAccountIdentifier = string; + +/** + * The action to perform when the threshold of matched traffic within the configured period is exceeded. + */ +export type SchemasAction = { + mode?: Mode; + response?: CustomResponse; + timeout?: TimeoutHaHBovKX; +}; + +/** + * The parameters configuring the action. + */ +export type SchemasActionParameters = ActionParametersRoute; + +/** + * Address. + * + * @example 123 Sesame St. + */ +export type SchemasAddress = string; + +/** + * Enablement of prefix advertisement to the Internet. + * + * @example true + */ +export type SchemasAdvertised = boolean; + +/** + * Type of notification that has been dispatched. + * + * @example universal_ssl_event_type + */ +export type SchemasAlertType = string; + +/** + * The result of the authentication event. + * + * @default false + */ +export type SchemasAllowed = boolean; + +export type SchemasApiResponseCommon = { + errors: Messages; + messages: Messages; + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type SchemasApiResponseCommonFailure = { + /** + * @example {"code":7003,"message":"No route for the URI"} + * @minLength 1 + */ + errors: Messages; + messages: Messages; + result: any | null; + /** + * Whether the API call was successful + * + * @example false + */ + success: false; +}; + +export type SchemasApiResponseSingleId = { + errors: Messages; + messages: Messages; + result: + | { + id: SchemasIdentifier; + } + | any[] + | string + | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +/** + * Displays the application in the App Launcher. + * + * @example true + */ +export type SchemasAppLauncherVisible = boolean; + +export type SchemasApps = + | (BasicAppResponseProps & SchemasSelfHostedProps) + | (BasicAppResponseProps & SaasProps) + | (BasicAppResponseProps & SchemasSshProps) + | (BasicAppResponseProps & SchemasVncProps) + | (BasicAppResponseProps & AppLauncherProps) + | (BasicAppResponseProps & WarpProps) + | (BasicAppResponseProps & BisoProps) + | (BasicAppResponseProps & SchemasBookmarkProps); + +export type SchemasAppsJxIYBSY3 = + | (BasicAppResponseProps & SelfHostedPropsUAlJDzGr) + | (BasicAppResponseProps & SaasProps5uhJMdOI) + | (BasicAppResponseProps & SshProps) + | (BasicAppResponseProps & VncProps) + | (BasicAppResponseProps & AppLauncherProps) + | (BasicAppResponseProps & WarpProps) + | (BasicAppResponseProps & BisoProps) + | (BasicAppResponseProps & SchemasBookmarkPropsIeg438mR); + +/** + * AS number associated with the node object. + */ +export type SchemasAsn = string; + +/** + * Audience tag. + * + * @example 737646a56ab1df6ec9bddc7e5ca84eaf3b0768850f3ffb5d74f1534911fe3893 + * @maxLength 64 + */ +export type SchemasAud = string; + +/** + * When set to `true`, users skip the identity provider selection step during login. You must specify only one identity provider in allowed_idps. + * + * @default false + */ +export type SchemasAutoRedirectToIdentity = boolean; + +/** + * [Automatic Platform Optimization for WordPress](https://developers.cloudflare.com/automatic-platform-optimization/) serves your WordPress site from Cloudflare's edge network and caches third-party fonts. + */ +export type SchemasAutomaticPlatformOptimization = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example automatic_platform_optimization + */ + id: 'automatic_platform_optimization'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: AutomaticPlatformOptimization; +}; + +/** + * Shows if a domain is available for transferring into Cloudflare Registrar. + * + * @example false + */ +export type SchemasAvailable = boolean; + +export type SchemasAzureAD = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig & { + /** + * Your Azure directory uuid + * + * @example + */ + directory_id?: string; + /** + * Should Cloudflare try to load groups from your account + */ + support_groups?: boolean; + }; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +export type SchemasBase = { + /** + * Identifier of the zone setting. + * + * @example development_mode + */ + id: string; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on: string | null; +}; + +export type SchemasBookmarkProps = { + /** + * @default true + */ + app_launcher_visible?: void; + /** + * The URL or domain of the bookmark. + * + * @example https://mybookmark.com + */ + domain: void; + logo_url?: LogoUrl; + name?: AppsComponentsSchemasName; + /** + * The application type. + * + * @example bookmark + */ + type: string; +}; + +export type SchemasBookmarkPropsIeg438mR = { + /** + * @default true + */ + app_launcher_visible?: void; + /** + * The URL or domain of the bookmark. + * + * @example https://mybookmark.com + */ + domain?: void; + logo_url?: LogoUrl; + name?: AppsComponentsSchemasName; + /** + * The application type. + * + * @example bookmark + */ + type?: string; +}; + +export type SchemasCa = { + aud?: Aud; + id?: CaComponentsSchemasId; + public_key?: PublicKey; +}; + +/** + * Controls whether the membership can be deleted via the API or not. + * + * @example true + */ +export type SchemasCanDelete = boolean; + +export type SchemasCentrify = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig & { + /** + * Your centrify account url + * + * @example https://abc123.my.centrify.com/ + */ + centrify_account?: string; + /** + * Your centrify app id + * + * @example exampleapp + */ + centrify_app_id?: string; + }; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +/** + * The zone's SSL certificate or SSL certificate and intermediate(s). + * + * @example -----BEGIN CERTIFICATE----- MIIDtTCCAp2gAwIBAgIJAM15n7fdxhRtMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV BAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX aWRnaXRzIFB0eSBMdGQwHhcNMTQwMzExMTkyMTU5WhcNMTQwNDEwMTkyMTU5WjBF MQswCQYDVQQGEwJVUzETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50 ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB CgKCAQEAvq3sKsHpeduJHimOK+fvQdKsI8z8A05MZyyLp2/R/GE8FjNv+hkVY1WQ LIyTNNQH7CJecE1nbTfo8Y56S7x/rhxC6/DJ8MIulapFPnorq46KU6yRxiM0MQ3N nTJHlHA2ozZta6YBBfVfhHWl1F0IfNbXCLKvGwWWMbCx43OfW6KTkbRnE6gFWKuO fSO5h2u5TaWVuSIzBvYs7Vza6m+gtYAvKAJV2nSZ+eSEFPDo29corOy8+huEOUL8 5FAw4BFPsr1TlrlGPFitduQUHGrSL7skk1ESGza0to3bOtrodKei2s9bk5MXm7lZ qI+WZJX4Zu9+mzZhc9pCVi8r/qlXuQIDAQABo4GnMIGkMB0GA1UdDgQWBBRvavf+ sWM4IwKiH9X9w1vl6nUVRDB1BgNVHSMEbjBsgBRvavf+sWM4IwKiH9X9w1vl6nUV RKFJpEcwRTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAM15n7fdxhRtMAwGA1UdEwQF MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBABY2ZzBaW0dMsAAT7tPJzrVWVzQx6KU4 UEBLudIlWPlkAwTnINCWR/8eNjCCmGA4heUdHmazdpPa8RzwOmc0NT1NQqzSyktt vTqb4iHD7+8f9MqJ9/FssCfTtqr/Qst/hGH4Wmdf1EJ/6FqYAAb5iRlPgshFZxU8 uXtA8hWn6fK6eISD9HBdcAFToUvKNZ1BIDPvh9f95Ine8ar6yGd56TUNrHR8eHBs ESxz5ddVR/oWRysNJ+aGAyYqHS8S/ttmC7r4XCAHqXptkHPCGRqkAhsterYhd4I8 /cBzejUobNCjjHFbtkAL/SjxZOLW+pNkZwfeYdM8iPkD54Uua1v2tdw= -----END CERTIFICATE----- + */ +export type SchemasCertificate = string; + +export type SchemasCertificateObject = { + certificate?: HostnameAuthenticatedOriginPullComponentsSchemasCertificate; + expires_on?: HostnameAuthenticatedOriginPullComponentsSchemasExpiresOn; + id?: Identifier; + issuer?: Issuer; + serial_number?: SerialNumber; + signature?: Signature; + status?: HostnameAuthenticatedOriginPullComponentsSchemasStatus; + uploaded_on?: ComponentsSchemasUploadedOn; +}; + +export type SchemasCertificateObjectAlDI2xY5 = { + certificate?: HostnameAuthenticatedOriginPullComponentsSchemasCertificate; + expires_on?: HostnameAuthenticatedOriginPullComponentsSchemasExpiresOn; + id?: HostnameAuthenticatedOriginPullComponentsSchemasIdentifier; + issuer?: Issuer; + serial_number?: SerialNumber; + signature?: Signature; + status?: HostnameAuthenticatedOriginPullComponentsSchemasStatus; + uploaded_on?: ComponentsSchemasUploadedOn; +}; + +/** + * Certificate Authority selected for the order. Selecting Let's Encrypt will reduce customization of other fields: validation_method must be 'txt', validity_days must be 90, cloudflare_branding must be omitted, and hosts must contain only 2 entries, one for the zone name and one for the subdomain wildcard of the zone name (e.g. example.com, *.example.com). + * + * @example digicert + */ +export type SchemasCertificateAuthority = 'digicert' | 'google' | 'lets_encrypt'; + +/** + * The Certificate Authority that Total TLS certificates will be issued through. + * + * @example google + */ +export type SchemasCertificateAuthorityNfQsLnVr = 'google' | 'lets_encrypt'; + +export type SchemasCertificateResponseCollection = ApiResponseCollection & { + result?: CertificatesJ6E1yuF3[]; +}; + +export type SchemasCertificateResponseSingle = ApiResponseSingleZZHeSkIR & { + result?: Record; +}; + +export type SchemasCertificateResponseSingleI8qAM9fN = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +/** + * The uploaded root CA certificate. + * + * @example -----BEGIN CERTIFICATE----- +MIIDmDCCAoCgAwIBAgIUKTOAZNjcXVZRj4oQt0SHsl1c1vMwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVVMxFjAUBgNVBAgMDVNhbiBGcmFuY2lzY28xEzARBgNVBAcMCkNhbGlmb3JuaWExFTATBgNVBAoMDEV4YW1wbGUgSW5jLjAgFw0yMjExMjIxNjU5NDdaGA8yMTIyMTAyOTE2NTk0N1owUTELMAkGA1UEBhMCVVMxFjAUBgNVBAgMDVNhbiBGcmFuY2lzY28xEzARBgNVBAcMCkNhbGlmb3JuaWExFTATBgNVBAoMDEV4YW1wbGUgSW5jLjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMRcORwgJFTdcG/2GKI+cFYiOBNDKjCZUXEOvXWY42BkH9wxiMT869CO+enA1w5pIrXow6kCM1sQspHHaVmJUlotEMJxyoLFfA/8Kt1EKFyobOjuZs2SwyVyJ2sStvQuUQEosULZCNGZEqoH5g6zhMPxaxm7ZLrrsDZ9maNGVqo7EWLWHrZ57Q/5MtTrbxQL+eXjUmJ9K3kS+3uEwMdqR6Z3BluU1ivanpPc1CN2GNhdO0/hSY4YkGEnuLsqJyDd3cIiB1MxuCBJ4ZaqOd2viV1WcP3oU3dxVPm4MWyfYIldMWB14FahScxLhWdRnM9YZ/i9IFcLypXsuz7DjrJPtPUCAwEAAaNmMGQwHQYDVR0OBBYEFP5JzLUawNF+c3AXsYTEWHh7z2czMB8GA1UdIwQYMBaAFP5JzLUawNF+c3AXsYTEWHh7z2czMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQBc+Be7NDhpE09y7hLPZGRPl1cSKBw4RI0XIv6rlbSTFs5EebpTGjhx/whNxwEZhB9HZ7111Oa1YlT8xkI9DshB78mjAHCKBAJ76moK8tkG0aqdYpJ4ZcJTVBB7l98Rvgc7zfTii7WemTy72deBbSeiEtXavm4EF0mWjHhQ5Nxpnp00Bqn5g1x8CyTDypgmugnep+xG+iFzNmTdsz7WI9T/7kDMXqB7M/FPWBORyS98OJqNDswCLF8bIZYwUBEe+bRHFomoShMzaC3tvim7WCb16noDkSTMlfKO4pnvKhpcVdSgwcruATV7y+W+Lvmz2OT/Gui4JhqeoTewsxndhDDE +-----END CERTIFICATE----- + */ +export type SchemasCertificates = string; + +export type SchemasCidrConfiguration = { + /** + * The configuration target. You must set the target to `ip_range` when specifying an IP address range in the Zone Lockdown rule. + * + * @example ip_range + */ + target?: 'ip_range'; + /** + * The IP address range to match. You can only use prefix lengths `/16` and `/24`. + * + * @example 198.51.100.4/16 + */ + value?: string; +}; + +export type SchemasCollectionInviteResponse = ApiResponseCollection & { + result?: SchemasInvite[]; +}; + +export type SchemasCollectionResponse = ApiResponseCollection & { + result?: { + additional_information?: AdditionalInformation; + application?: ApplicationIDJD2oSO; + content_categories?: ContentCategories; + domain?: SchemasDomainName; + popularity_rank?: PopularityRank; + risk_score?: RiskScore; + risk_types?: RiskTypes; + }[]; +}; + +/** + * The Cloudflare data center used for this connection. + * + * @example DFW + */ +export type SchemasColoName = string; + +/** + * Optional remark describing the virtual network. + * + * @example Staging VPC for data science + */ +export type SchemasComment = string; + +/** + * Array of available components values for the plan. + */ +export type SchemasComponentValues = ComponentValue[]; + +/** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ +export type SchemasConfig = Record; + +/** + * The configuration object containing information for the WARP client to detect the managed network. + * + * @example {"sha256":"b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c","tls_sockaddr":"foo.bar:1234"} + */ +export type SchemasConfigRequest = TlsConfigRequest; + +/** + * The configuration object containing information for the WARP client to detect the managed network. + * + * @example {"sha256":"b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c","tls_sockaddr":"foo.bar:1234"} + */ +export type SchemasConfigResponse = TlsConfigResponse; + +/** + * The rule configuration. + */ +export type SchemasConfiguration = + | IpConfiguration + | Ipv6Configuration + | CidrConfiguration + | AsnConfiguration + | CountryConfiguration; + +/** + * The IdP used to authenticate. + * + * @example saml + */ +export type SchemasConnection = string; + +/** + * When the device was created. + * + * @example 2017-06-14T00:00:00Z + * @format date-time + */ +export type SchemasCreated = string; + +/** + * The time when the certificate was created. + * + * @example 2100-01-01T05:20:00Z + * @format date-time + */ +export type SchemasCreatedAt = string; + +/** + * The date and time the tunnel was created. + * + * @example 2017-06-14T00:00:00Z + * @format date-time + */ +export type SchemasCreatedOn = string; + +/** + * The RFC 3339 timestamp of when the list was created. + * + * @example 2020-01-01T08:00:00Z + */ +export type SchemasCreatedOnNgcP5F83 = string; + +/** + * The Certificate Signing Request (CSR). Must be newline-encoded. + * + * @example -----BEGIN CERTIFICATE REQUEST-----\nMIICY....\n-----END CERTIFICATE REQUEST-----\n + */ +export type SchemasCsr = string; + +/** + * Opaque token indicating the position from which to continue when requesting the next set of records. A valid value for the cursor can be obtained from the cursors object in the result_info structure. + * + * @example AAAAANuhDN7SjacTnSVsDu3WW1Lvst6dxJGTjRY5BhxPXdf6L6uTcpd_NVtjhn11OUYRsVEykxoUwF-JQU4dn6QylZSKTOJuG0indrdn_MlHpMRtsxgXjs-RPdHYIVm3odE_uvEQ_dTQGFm8oikZMohns34DLBgrQpc + */ +export type SchemasCursor = string; + +/** + * Whether the policy is the default policy for an account. + * + * @example false + */ +export type SchemasDefault = boolean; + +/** + * True if the device was deleted. + * + * @example true + */ +export type SchemasDeleted = boolean; + +/** + * An optional description field which may be used to describe the types of IPs or zones on the map. + * + * @example My Ecommerce zones + */ +export type SchemasDescription = string | null; + +/** + * A human-readable description of the pool. + * + * @example Primary data center - Provider XYZ + */ +export type SchemasDescriptionZxAuqPgI = string; + +/** + * The billing item description. + * + * @example The billing item description + * @maxLength 255 + */ +export type SchemasDescriptionAeOWNvGr = string; + +/** + * The description of the Rule. + * + * @example Block the bad websites based on host name + */ +export type SchemasDescriptionLlKmoyYd = string; + +/** + * A description of the policy. + * + * @example Policy for test teams. + * @maxLength 500 + */ +export type SchemasDescriptionTQ4Ivhfo = string; + +/** + * An optional description of the GRE tunnel. + * + * @example Tunnel for ISP X + */ +export type SchemasDescriptionVR40R5E7 = string; + +/** + * A string to search for in the description of existing rules. + * + * @example endpoints + */ +export type SchemasDescriptionSearch = string; + +/** + * Unique WebSocket address that will receive messages from Cloudflare’s edge. + * + * @example wss://logs.cloudflare.com/instant-logs/ws/sessions/99d471b1ca3c23cc8e30b6acec5db987 + * @format uri + * @maxLength 4096 + */ +export type SchemasDestinationConf = string; + +/** + * This field shows up only if the pool is disabled. This field is set with the time the pool was disabled at. + * + * @format date-time + */ +export type SchemasDisabledAt = string; + +export type SchemasDnsFirewall = DnsFirewall; + +/** + * The domain of the Bookmark application. + * + * @example example.com + */ +export type SchemasDomain = string; + +/** + * The domain and path that Access will secure. + * + * @example test.example.com/admin + */ +export type SchemasDomainA7q0ZzCX = string; + +/** + * Domain identifier. + * + * @example ea95132c15732412d22c1476fa83f27a + * @maxLength 32 + */ +export type SchemasDomainIdentifier = string; + +/** + * @example cloudflare.com + */ +export type SchemasDomainName = string; + +/** + * The email of the user. + * + * @example jdoe@example.com + * @format email + */ +export type SchemasEmail = string; + +/** + * The email address of the authenticating user. + * + * @example user@example.com + * @format email + */ +export type SchemasEmailJb7fdlGM = string; + +export type SchemasEmptyResponse = { + result?: Record | null; + /** + * @example true + */ + success?: true | false; +}; + +export type SchemasEmptyResponseVoKOxgxB = { + result?: void | null; + /** + * @example true + */ + success?: true | false; +}; + +/** + * Disabling Universal SSL removes any currently active Universal SSL certificates for your zone from the edge and prevents any future Universal SSL certificates from being ordered. If there are no advanced certificates or custom certificates uploaded for the domain, visitors will be unable to access the domain over HTTPS. + * + * By disabling Universal SSL, you understand that the following Cloudflare settings and preferences will result in visitors being unable to visit your domain unless you have uploaded a custom certificate or purchased an advanced certificate. + * + * * HSTS + * * Always Use HTTPS + * * Opportunistic Encryption + * * Onion Routing + * * Any Page Rules redirecting traffic to HTTPS + * + * Similarly, any HTTP redirect to HTTPS at the origin while the Cloudflare proxy is enabled will result in users being unable to visit your site without a valid certificate at Cloudflare's edge. + * + * If you do not have a valid custom or advanced certificate at Cloudflare's edge and are unsure if any of the above Cloudflare settings are enabled, or if any HTTP redirects exist at your origin, we advise leaving Universal SSL enabled for your domain. + * + * @example true + */ +export type SchemasEnabled = boolean; + +/** + * Whether to enable (the default) this origin within the pool. Disabled origins will not receive traffic and are excluded from health checks. The origin will only be disabled for the current pool. + * + * @default true + * @example true + */ +export type SchemasEnabledFbTTZgfc = boolean; + +/** + * Rules evaluated with a NOT logical operator. To match the policy, a user cannot meet any of the Exclude rules. + */ +export type SchemasExclude = Rule[]; + +/** + * Rules evaluated with a NOT logical operator. To match the policy, a user cannot meet any of the Exclude rules. + */ +export type SchemasExcludeTDuKARb5 = RuleComponentsSchemasRule[]; + +/** + * The expected HTTP response codes or code ranges of the health check, comma-separated. This parameter is only valid for HTTP and HTTPS monitors. + * + * @default 200 + * @example 2xx + */ +export type SchemasExpectedCodes = string; + +/** + * Sets the expiration time for a posture check result. If empty, the result remains valid until it is overwritten by new data from the WARP client. + * + * @example 1h + */ +export type SchemasExpiration = string; + +/** + * When the certificate will expire. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ +export type SchemasExpiresOn = string; + +/** + * When the invite is no longer active. + * + * @example 2014-01-01T05:20:00Z + * @format date-time + */ +export type SchemasExpiresOnL7MyoHWU = string; + +/** + * The expression defining which traffic will match the rule. + * + * @example ip.src ne 1.1.1.1 + */ +export type SchemasExpression = string; + +export type SchemasFacebook = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +/** + * Features enabled for the Cloudflare Tunnel. + */ +export type SchemasFeatures = string[]; + +export type SchemasFilterResponseCollection = ApiResponseCollection & { + result?: { + description?: FiltersComponentsSchemasDescription; + expression: Expression; + id: FiltersComponentsSchemasId; + paused: FiltersComponentsSchemasPaused; + ref?: SchemasRef; + }[]; +}; + +export type SchemasFilterResponseSingle = ApiResponseSingleLarS7owG & { + result: + | { + description?: FiltersComponentsSchemasDescription; + expression: Expression; + id: FiltersComponentsSchemasId; + paused: FiltersComponentsSchemasPaused; + ref?: SchemasRef; + } + | (void | null); +}; + +/** + * Format of additional configuration options (filters) for the alert type. Data type of filters during policy creation: Array of strings. + * + * @example {"ComparisonOperator":"==","Key":"zones","Optional":false} + * @example {"ComparisonOperator":">=","Key":"slo","Optional":true} + */ +export type SchemasFilterOptions = any[]; + +export type SchemasFilters = { + /** + * The target to search in existing rules. + * + * @example ip + */ + ['configuration.target']?: 'ip' | 'ip_range' | 'asn' | 'country'; + /** + * The target value to search for in existing rules: an IP address, an IP address range, or a country code, depending on the provided `configuration.target`. + * Notes: You can search for a single IPv4 address, an IP address range with a subnet of '/16' or '/24', or a two-letter ISO-3166-1 alpha-2 country code. + * + * @example 198.51.100.4 + */ + ['configuration.value']?: string; + /** + * When set to `all`, all the search requirements must match. When set to `any`, only one of the search requirements has to match. + * + * @default all + */ + match?: 'any' | 'all'; + mode?: SchemasMode; + /** + * The string to search for in the notes of existing IP Access rules. + * Notes: For example, the string 'attack' would match IP Access rules with notes 'Attack 26/02' and 'Attack 27/02'. The search is case insensitive. + * + * @example my note + */ + notes?: string; +}; + +export type SchemasForceResponse = ApiResponseSingleWkFwqHKI & { + result?: SchemasForceResult; +}; + +/** + * When force_notify query parameter is set to true, the response is a simple string + * + * @example OK + */ +export type SchemasForceResult = string; + +/** + * The frequency at which you will be billed for this plan. + * + * @example monthly + */ +export type SchemasFrequency = 'weekly' | 'monthly' | 'quarterly' | 'yearly'; + +/** + * True if the user has logged into the WARP client. + * + * @example false + */ +export type SchemasGatewaySeat = boolean; + +export type SchemasGithub = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +export type SchemasGoogle = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +export type SchemasGoogleApps = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig & { + /** + * Your companies TLD + * + * @example mycompany.com + */ + apps_domain?: string; + }; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +export type SchemasGroup = Group & { + allowed_modes?: AllowedModes; + mode?: ComponentsSchemasMode; +}; + +export type SchemasGroups = { + created_at?: Timestamp; + exclude?: ExcludeW6GORlYf; + id?: SchemasUuid; + include?: IncludeRuTbCgSD; + name?: GroupsComponentsSchemasName; + require?: RequireBZzd5gGi; + updated_at?: Timestamp; +}; + +/** + * The request header is used to pass additional information with an HTTP request. Currently supported header is 'Host'. + */ +export type SchemasHeader = { + Host?: Host; +}; + +export type SchemasHealthCheck = { + /** + * Determines whether to run healthchecks for a tunnel. + * + * @default true + * @example true + */ + enabled?: boolean; + /** + * How frequent the health check is run. The default value is `mid`. + * + * @default mid + * @example low + */ + rate?: 'low' | 'mid' | 'high'; + /** + * The destination address in a request type health check. After the healthcheck is decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded to this address. This field defaults to `customer_gre_endpoint address`. + * + * @example 203.0.113.1 + */ + target?: string; + /** + * The type of healthcheck to run, reply or request. The default value is `reply`. + * + * @default reply + * @example request + */ + type?: 'reply' | 'request'; +}; + +/** + * The keyless SSL name. + * + * @example example.com + * @format hostname + * @maxLength 253 + */ +export type SchemasHost = string; + +/** + * The hostname on the origin for which the client certificate uploaded will be used. + * + * @example app.example.com + * @maxLength 255 + */ +export type SchemasHostname = string; + +/** + * Comma separated list of valid host names for the certificate packs. Must contain the zone apex, may not contain more than 50 hosts, and may not be empty. + * + * @example example.com + * @example *.example.com + * @example www.example.com + */ +export type SchemasHosts = string[]; + +/** + * The ID of the user. + * + * @example f3b12456-80dd-4e89-9f5f-ba3dfff12365 + */ +export type SchemasId = void; + +/** + * Identifier for the tail. + * + * @example 03dc9f77817b488fb26c5861ec18f791 + */ +export type SchemasIdSivlyEAs = string; + +export type SchemasIdResponse = ApiResponseSingleKLIlNaxV & { + result?: { + id?: Id4G7SFJfZ; + }; +}; + +export type SchemasIdResponse3xp0iyUS = ApiResponseSingleI8cJ1fX8 & { + result?: void | null; +}; + +export type SchemasIdResponseJN8dJaI9 = ApiResponseSingleLarS7owG & { + result?: { + id?: PoolComponentsSchemasIdentifier; + }; +}; + +export type SchemasIdResponseO4zIs7MB = ApiResponseSingleWkFwqHKI & { + result?: { + id?: SchemasIdentifier0HsWUjPr; + }; +}; + +export type SchemasIdResponseS4kskEwS = ApiResponseSingleUl1k90Mw & { + result?: { + id?: SchemasIdentifierVx9UGvBM; + }; +}; + +/** + * Identifier + * + * @example 023e105f4ecef8ad9ca31a8372d0c353 + * @maxLength 32 + */ +export type SchemasIdentifier = string; + +/** + * @example 69cd1e104af3e6ed3cb344f263fd0d5a + */ +export type SchemasIdentifier0HsWUjPr = void; + +export type SchemasIdentifierIAZAtI9f = void; + +/** + * @example 17b5962d775c646f3f9725cbc7a53df4 + */ +export type SchemasIdentifierVx9UGvBM = void; + +/** + * Keyless certificate identifier tag. + * + * @example 4d2844d2ce78891c34d0b6c0535a291e + * @maxLength 32 + */ +export type SchemasIdentifierEWv7yjg2 = string; + +/** + * Tunnel identifier tag. + * + * @example c4a7362d577a6c3019a474fd6f485821 + * @maxLength 32 + */ +export type SchemasIdentifierRYBwrxr7 = string; + +export type SchemasIdentityProvider = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: Record; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +export type SchemasIdentityProviders = + | SchemasAzureAD + | SchemasCentrify + | SchemasFacebook + | SchemasGithub + | SchemasGoogle + | SchemasGoogleApps + | SchemasLinkedin + | SchemasOidc + | SchemasOkta + | SchemasOnelogin + | SchemasPingone + | SchemasSaml + | SchemasYandex; + +export type SchemasInclude = SplitTunnelInclude[]; + +/** + * The interval between each posture check with the third party API. Use "m" for minutes (e.g. "5m") and "h" for hours (e.g. "12h"). + * + * @example 10m + */ +export type SchemasInterval = string; + +export type SchemasInvite = UserInvite; + +/** + * The IP address of the authenticating user. + * + * @example 198.41.129.166 + */ +export type SchemasIp = string; + +export type SchemasIpConfiguration = { + /** + * The configuration target. You must set the target to `ip` when specifying an IP address in the Zone Lockdown rule. + * + * @example ip + */ + target?: 'ip'; + /** + * The IP address to match. This address will be compared to the IP address of incoming requests. + * + * @example 198.51.100.4 + */ + value?: string; +}; + +/** + * The set of IPs on the Address Map. + */ +export type SchemasIps = AddressMapsIp[]; + +/** + * The certificate authority that issued the certificate. + * + * @example O=Example Inc.,L=California,ST=San Francisco,C=US + */ +export type SchemasIssuer = string; + +/** + * The device's public key. + * + * @example yek0SUYoOQ10vMGsIYAevozXUQpQtNFJFfFGqER/BGc= + */ +export type SchemasKey = string; + +/** + * The kind of the ruleset. + * + * @example root + */ +export type SchemasKind = 'custom' | 'root' | 'zone'; + +/** + * The timestamp of when the rule was last modified. + * + * @example 2000-01-01T00:00:00.000000Z + */ +export type SchemasLastUpdated = string; + +export type SchemasLinkedin = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +/** + * The wirefilter expression to match devices. + * + * @example user.identity == "test@cloudflare.com" + * @maxLength 500 + */ +export type SchemasMatch = string; + +/** + * The conditions that the client must match to run the rule. + */ +export type SchemasMatchPKnBbWyP = MatchItem[]; + +export type SchemasMember = Member; + +/** + * What EXIF data should be preserved in the output image. + * + * @example none + */ +export type SchemasMetadata = 'keep' | 'copyright' | 'none'; + +/** + * The method to use for the health check. This defaults to 'GET' for HTTP/HTTPS based checks and 'connection_established' for TCP based health checks. + * + * @default GET + * @example GET + */ +export type SchemasMethod = string; + +/** + * The action to apply to a matched request. + * + * @example challenge + */ +export type SchemasMode = 'block' | 'challenge' | 'whitelist' | 'js_challenge' | 'managed_challenge'; + +/** + * The date and time the tunnel was last modified. + * + * @example 2017-06-14T05:20:00Z + * @format date-time + */ +export type SchemasModifiedOn = string; + +/** + * The timestamp of when the Page Rule was last modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ +export type SchemasModifiedOnPkJiYI69 = string; + +/** + * When the certificate was last modified. + * + * @example 2014-01-01T05:20:00Z + * @format date-time + */ +export type SchemasModifiedOnRHJWTByl = string; + +export type SchemasModifiedTunnelsCollectionResponse = ApiResponseSingleRxxEmdsv & { + result?: { + /** + * @example true + */ + modified?: boolean; + modified_ipsec_tunnels?: IpsecTunnel[]; + }; +}; + +/** + * The ID of the Monitor to use for checking the health of origins within this pool. + */ +export type SchemasMonitor = void; + +/** + * The Maximum Transmission Unit (MTU) in bytes for the interconnect. The minimum value is 576. + * + * @default 1476 + */ +export type SchemasMtu = number; + +/** + * The name of the IPsec tunnel. The name cannot share a name with other tunnels. + * + * @example IPsec_1 + */ +export type SchemasName = string; + +/** + * The name of the Location. + * + * @example Austin Office Location + */ +export type SchemasName4xhKRX0o = string; + +/** + * TSIG key name. + * + * @example tsig.customer.cf. + */ +export type SchemasNameDv0ow20v = string; + +/** + * The device name. + * + * @example My mobile device + */ +export type SchemasNameLohsu7Gg = string; + +/** + * Optional unique name for the certificate. Only used for human readability. + * + * @example example_ca_cert + */ +export type SchemasNameUG4dW73x = string; + +/** + * The name of the identity provider, shown to users on the login page. + * + * @example Widget Corps IDP + */ +export type SchemasNameIXVfNmuB = string; + +/** + * Organization name. + * + * @example Cloudflare, Inc. + * @maxLength 100 + */ +export type SchemasNameMUD1zc5L = string; + +/** + * A human-identifiable name for the origin. + * + * @example app-server-1 + */ +export type SchemasNamePvgM4uwK = string; + +export type SchemasNamespace = { + ['class']?: void; + id?: void; + name?: void; + script?: void; +}; + +export type SchemasOidc = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig & { + /** + * The authorization_endpoint URL of your IdP + * + * @example https://accounts.google.com/o/oauth2/auth + */ + auth_url?: string; + /** + * The jwks_uri endpoint of your IdP to allow the IdP keys to sign the tokens + * + * @example https://www.googleapis.com/oauth2/v3/certs + */ + certs_url?: string; + /** + * List of custom claims that will be pulled from your id_token and added to your signed Access JWT token. + * + * @example given_name + * @example locale + */ + claims?: string[]; + /** + * OAuth scopes + * + * @example openid + * @example email + * @example profile + */ + scopes?: string[]; + /** + * The token_endpoint URL of your IdP + * + * @example https://accounts.google.com/o/oauth2/token + */ + token_url?: string; + }; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +export type SchemasOkta = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig & { + /** + * Your okta account url + * + * @example https://dev-abc123.oktapreview.com + */ + okta_account?: string; + }; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +export type SchemasOnelogin = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig & { + /** + * Your OneLogin account url + * + * @example https://mycompany.onelogin.com + */ + onelogin_account?: string; + }; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +export type SchemasOperation = { + /** + * The RFC 3339 timestamp of when the operation was completed. + * + * @example 2020-01-01T08:00:00Z + */ + completed?: string; + /** + * A message describing the error when the status is `failed`. + * + * @example This list is at the maximum number of items + */ + error?: string; + id: OperationId; + /** + * The current status of the asynchronous operation. + * + * @example failed + */ + status: 'pending' | 'running' | 'completed' | 'failed'; +}; + +/** + * @example {"max_ttl":15,"packet_type":"icmp"} + */ +export type SchemasOptions = { + max_ttl?: MaxTtl; + packet_type?: PacketType; + packets_per_ttl?: PacketsPerTtl; + port?: TracerouteComponentsSchemasPort; + wait_time?: WaitTime; +}; + +/** + * Name of organization. + * + * @example Cloudflare, Inc. + */ +export type SchemasOrganization = string; + +export type SchemasOrganizations = { + auth_domain?: AuthDomain; + created_at?: Timestamp; + is_ui_read_only?: IsUiReadOnly; + login_design?: LoginDesign; + name?: NameRPn8IBAr; + ui_read_only_toggle_reason?: UiReadOnlyToggleReason; + updated_at?: Timestamp; + user_seat_expiration_inactive_time?: UserSeatExpirationInactiveTime; +}; + +export type SchemasOrigin = { + address?: AddressGVmFzzym; + disabled_at?: DisabledAt; + enabled?: OriginComponentsSchemasEnabled; + header?: SchemasHeader; + name?: OriginComponentsSchemasName; + virtual_network_id?: VirtualNetworkId; + weight?: WeightUxsoOG5s; +}; + +/** + * Update enablement of Smart Tiered Cache + */ +export type SchemasPatch = { + value: SchemasValue; +}; + +/** + * Update enablement of Tiered Caching + */ +export type SchemasPatchFvWadKai = { + value: ComponentsSchemasValue; +}; + +/** + * @example example.net/* + */ +export type SchemasPattern = string; + +/** + * When true, indicates that the rule is currently paused. + * + * @example false + */ +export type SchemasPaused = boolean; + +/** + * Number of results to display. + * + * @minimum 1 + */ +export type SchemasPerPage = number; + +/** + * Access permissions for this User. + */ +export type SchemasPermissions = string[]; + +/** + * The phase where the ruleset is executed. + */ +export type SchemasPhase = 'http_request_transform' | 'http_request_late_transform' | 'http_response_headers_transform'; + +export type SchemasPingone = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig & { + /** + * Your PingOne environment identifier + * + * @example 342b5660-0c32-4936-a5a4-ce21fae57b0a + */ + ping_env_id?: string; + }; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +export type SchemasPolicies = { + approval_groups?: ApprovalGroups; + approval_required?: ApprovalRequired; + created_at?: Timestamp; + decision?: Decision; + exclude?: SchemasExcludeTDuKARb5; + id?: ComponentsSchemasUuid; + include?: IncludeRuTbCgSD; + name?: PoliciesComponentsSchemasName; + precedence?: Precedence; + purpose_justification_prompt?: PurposeJustificationPrompt; + purpose_justification_required?: PurposeJustificationRequired; + require?: SchemasRequire3P4NgB4B; + updated_at?: Timestamp; +}; + +/** + * The port number to connect to for the health check. Required for TCP, UDP, and SMTP checks. HTTP and HTTPS checks should only define the port when using a non-standard port (HTTP: default 80, HTTPS: default 443). + * + * @default 0 + */ +export type SchemasPort = number; + +/** + * Port number to connect to for the health check. Required for TCP, UDP, and SMTP checks. HTTP and HTTPS checks should only define the port when using a non-standard port (HTTP: default 80, HTTPS: default 443). + * + * @default 0 + */ +export type SchemasPortRWJFwo9O = number; + +/** + * The precedence of the policy. Lower values indicate higher precedence. Policies will be evaluated in ascending order of this field. + * + * @example 100 + */ +export type SchemasPrecedence = number; + +/** + * @example p1aba936b94213e5b8dca0c0dbf1f9cc + */ +export type SchemasPreviewId = void; + +/** + * The amount you will be billed for this plan. + * + * @example 0 + */ +export type SchemasPrice = number; + +/** + * The order in which the individual WAF rule is executed within its rule group. + */ +export type SchemasPriority = string; + +/** + * The hostname certificate's private key. + * + * @example -----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAwQHoetcl9+5ikGzV6cMzWtWPJHqXT3wpbEkRU9Yz7lgvddmG +dtcGbg/1CGZu0jJGkMoppoUo4c3dts3iwqRYmBikUP77wwY2QGmDZw2FvkJCJlKn +abIRuGvBKwzESIXgKk2016aTP6/dAjEHyo6SeoK8lkIySUvK0fyOVlsiEsCmOpid +tnKX/a+50GjB79CJH4ER2lLVZnhePFR/zUOyPxZQQ4naHf7yu/b5jhO0f8fwt+py +FxIXjbEIdZliWRkRMtzrHOJIhrmJ2A1J7iOrirbbwillwjjNVUWPf3IJ3M12S9pE +ewooaeO2izNTERcG9HzAacbVRn2Y2SWIyT/18QIDAQABAoIBACbhTYXBZYKmYPCb +HBR1IBlCQA2nLGf0qRuJNJZg5iEzXows/6tc8YymZkQE7nolapWsQ+upk2y5Xdp/ +axiuprIs9JzkYK8Ox0r+dlwCG1kSW+UAbX0bQ/qUqlsTvU6muVuMP8vZYHxJ3wmb ++ufRBKztPTQ/rYWaYQcgC0RWI20HTFBMxlTAyNxYNWzX7RKFkGVVyB9RsAtmcc8g ++j4OdosbfNoJPS0HeIfNpAznDfHKdxDk2Yc1tV6RHBrC1ynyLE9+TaflIAdo2MVv +KLMLq51GqYKtgJFIlBRPQqKoyXdz3fGvXrTkf/WY9QNq0J1Vk5ERePZ54mN8iZB7 +9lwy/AkCgYEA6FXzosxswaJ2wQLeoYc7ceaweX/SwTvxHgXzRyJIIT0eJWgx13Wo +/WA3Iziimsjf6qE+SI/8laxPp2A86VMaIt3Z3mJN/CqSVGw8LK2AQst+OwdPyDMu +iacE8lj/IFGC8mwNUAb9CzGU3JpU4PxxGFjS/eMtGeRXCWkK4NE+G08CgYEA1Kp9 +N2JrVlqUz+gAX+LPmE9OEMAS9WQSQsfCHGogIFDGGcNf7+uwBM7GAaSJIP01zcoe +VAgWdzXCv3FLhsaZoJ6RyLOLay5phbu1iaTr4UNYm5WtYTzMzqh8l1+MFFDl9xDB +vULuCIIrglM5MeS/qnSg1uMoH2oVPj9TVst/ir8CgYEAxrI7Ws9Zc4Bt70N1As+U +lySjaEVZCMkqvHJ6TCuVZFfQoE0r0whdLdRLU2PsLFP+q7qaeZQqgBaNSKeVcDYR +9B+nY/jOmQoPewPVsp/vQTCnE/R81spu0mp0YI6cIheT1Z9zAy322svcc43JaWB7 +mEbeqyLOP4Z4qSOcmghZBSECgYACvR9Xs0DGn+wCsW4vze/2ei77MD4OQvepPIFX +dFZtlBy5ADcgE9z0cuVB6CiL8DbdK5kwY9pGNr8HUCI03iHkW6Zs+0L0YmihfEVe +PG19PSzK9CaDdhD9KFZSbLyVFmWfxOt50H7YRTTiPMgjyFpfi5j2q348yVT0tEQS +fhRqaQKBgAcWPokmJ7EbYQGeMbS7HC8eWO/RyamlnSffdCdSc7ue3zdVJxpAkQ8W +qu80pEIF6raIQfAf8MXiiZ7auFOSnHQTXUbhCpvDLKi0Mwq3G8Pl07l+2s6dQG6T +lv6XTQaMyf6n1yjzL+fzDrH3qXMxHMO/b13EePXpDMpY7HQpoLDi +-----END RSA PRIVATE KEY----- + */ +export type SchemasPrivateKey = string; + +export type SchemasRailgun = { + activation: Activation; + created_on?: ComponentsSchemasCreatedOn; + enabled: RailgunComponentsSchemasEnabled; + id: RailgunComponentsSchemasIdentifier; + modified_on?: RailgunComponentsSchemasModifiedOn; + name: RailgunComponentsSchemasName; + status: RailgunComponentsSchemasStatus; + upgrade_info?: UpgradeInfo; + zones_connected: ZonesConnected; +}; + +export type SchemasRailgunResponseCollection = ApiResponseCollection & { + result?: Record[]; +}; + +export type SchemasRatePlan = RatePlan; + +/** + * A short reference tag. Allows you to select related filters. + * + * @example FIL-100 + * @maxLength 50 + */ +export type SchemasRef = string; + +export type SchemasReferencesResponse = ApiResponseCollection & { + /** + * List of resources that reference a given pool. + * + * @example {"reference_type":"referrer","resource_id":"699d98642c564d2e855e9661899b7252","resource_name":"www.example.com","resource_type":"load_balancer"} + * @example {"reference_type":"referral","resource_id":"f1aba936b94213e5b8dca0c0dbf1f9cc","resource_name":"Login page monitor","resource_type":"monitor"} + */ + result?: { + reference_type?: '*' | 'referral' | 'referrer'; + resource_id?: string; + resource_name?: string; + resource_type?: string; + }[]; +}; + +export type SchemasRequestModel = { + scope?: ScopeAeLzE8f9; + type?: UrlNormalizationComponentsSchemasType; +}; + +/** + * Breakdown of totals for requests. + */ +export type SchemasRequests = { + /** + * Total number of requests served. + */ + all?: number; + /** + * Total number of cached requests served. + */ + cached?: number; + /** + * A variable list of key/value pairs where the key represents the type of content served, and the value is the number of requests. + * + * @example {"css":15343,"gif":23178,"html":1234213,"javascript":318236,"jpeg":1982048} + */ + content_type?: Record; + /** + * A variable list of key/value pairs where the key is a two-digit country code and the value is the number of requests served to that country. + * + * @example {"AG":37298,"GI":293846,"US":4181364} + */ + country?: Record; + /** + * Key/value pairs where the key is a HTTP status code and the value is the number of requests served with that code. + * + * @example {"200":13496983,"301":283,"400":187936,"402":1828,"404":1293} + */ + http_status?: { + [key: string]: any; + }; + /** + * A break down of requests served over HTTPS. + */ + ssl?: { + /** + * The number of requests served over HTTPS. + */ + encrypted?: number; + /** + * The number of requests served over HTTP. + */ + unencrypted?: number; + }; + /** + * A breakdown of requests by their SSL protocol. + */ + ssl_protocols?: { + /** + * The number of requests served over TLS v1.0. + */ + TLSv1?: number; + /** + * The number of requests served over TLS v1.1. + */ + ['TLSv1.1']?: number; + /** + * The number of requests served over TLS v1.2. + */ + ['TLSv1.2']?: number; + /** + * The number of requests served over TLS v1.3. + */ + ['TLSv1.3']?: number; + /** + * The number of requests served over HTTP. + */ + none?: number; + }; + /** + * Total number of requests served from the origin. + */ + uncached?: number; +}; + +/** + * Rules evaluated with an AND logical operator. To match the policy, a user must meet all of the Require rules. + */ +export type SchemasRequire = Rule[]; + +/** + * Rules evaluated with an AND logical operator. To match the policy, a user must meet all of the Require rules. + */ +export type SchemasRequire3P4NgB4B = RuleComponentsSchemasRule[]; + +export type SchemasResponse = ApiResponseCollection & { + result?: IpComponentsSchemasIp[]; +}; + +export type SchemasResponseCollection = ApiResponseCollection & { + result?: IpamDelegations[]; +}; + +export type SchemasResponseCollectionFatTvRX3 = ApiResponseCollection & { + result?: Peer[]; +}; + +export type SchemasResponseCollectionGAYd9fKS = ApiResponseCollection & { + result?: DevicePostureIntegrations[]; +}; + +export type SchemasResponseCollectionQ5PNs9Pv = ApiResponseCollection & { + /** + * @example {"id":"7cf72faf220841aabcfdfab81c43c4f6","name":"Billing Read","scopes":["com.cloudflare.api.account"]} + * @example {"id":"9d24387c6e8544e2bc4024a03991339f","name":"Load Balancing: Monitors and Pools Read","scopes":["com.cloudflare.api.account"]} + * @example {"id":"d2a1802cc9a34e30852f8b33869b2f3c","name":"Load Balancing: Monitors and Pools Write","scopes":["com.cloudflare.api.account"]} + * @example {"id":"8b47d2786a534c08a1f94ee8f9f599ef","name":"Workers KV Storage Read","scopes":["com.cloudflare.api.account"]} + * @example {"id":"f7f0eda5697f475c90846e879bab8666","name":"Workers KV Storage Write","scopes":["com.cloudflare.api.account"]} + * @example {"id":"1a71c399035b4950a1bd1466bbe4f420","name":"Workers Scripts Read","scopes":["com.cloudflare.api.account"]} + * @example {"id":"e086da7e2179491d91ee5f35b3ca210a","name":"Workers Scripts Write","scopes":["com.cloudflare.api.account"]} + */ + result?: Record[]; +}; + +export type SchemasResponseCollectionCi9TfJMj = ApiResponseCollection & { + result?: Groups[]; +}; + +export type SchemasResponseCollectionQfLanROf = ApiResponseCollection & { + result?: Locations[]; +}; + +export type SchemasResponseCollectionToy0ZwDj = ApiResponseCollection & { + result?: Pool[]; +}; + +export type SchemasResponseModel = { + scope?: ScopeAeLzE8f9; + type?: UrlNormalizationComponentsSchemasType; +}; + +export type SchemasResponseSingle = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +/** + * Metrics on Workers KV requests. + */ +export type SchemasResult = { + /** + * @example {"metrics":[[2,4],[16,32]]} + */ + data: + | { + /** + * List of metrics returned by the query. + */ + metrics: any[]; + }[] + | null; + /** + * Number of seconds between current time and last processed event, i.e. how many seconds of data could be missing. + * + * @example 0 + * @minimum 0 + */ + data_lag: number; + /** + * Maximum results for each metric. + * + * @example {"readKiB":32,"requests":4} + */ + max: void; + /** + * Minimum results for each metric. + * + * @example {"readKiB":16,"requests":2} + */ + min: void; + query: QueryLWVM8wx5; + /** + * Total number of rows in the result. + * + * @example 2 + * @minimum 0 + */ + rows: number; + /** + * Total results for metrics across all data. + * + * @example {"readKiB":48,"requests":6} + */ + totals: void; +}; + +export type SchemasRole = { + description: DescriptionWY1HJwZu; + id: RoleComponentsSchemasIdentifier; + name: ComponentsSchemasNameWXo9HKYH; + permissions: SchemasPermissions; +}; + +export type SchemasRule = RuleBzMd43YS & { + /** + * All zones owned by the user will have the rule applied. + */ + scope?: { + email?: EmailPuzf53IC; + id?: CommonComponentsSchemasIdentifier; + /** + * The scope of the rule. + * + * @example user + */ + type?: 'user' | 'organization'; + }; +}; + +/** + * The list of rules in the ruleset. + */ +export type SchemasRules = RulesComponentsSchemasRule[]; + +export type SchemasRuleset = { + /** + * @example + */ + description?: void; + /** + * @example 2f2feab2026849078ba485f918791bdc + */ + id?: void; + /** + * @example zone + */ + kind?: void; + /** + * @example default + */ + name?: void; + /** + * @example http_request_origin + */ + phase?: void; + /** + * The rules in the ruleset. + */ + rules?: OriginRulesComponentsSchemasRule[]; +}; + +export type SchemasSaml = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: { + /** + * A list of SAML attribute names that will be added to your signed JWT token and can be used in SAML policy rules. + * + * @example group + * @example department_code + * @example divison + */ + attributes?: string[]; + /** + * The attribute name for email in the SAML response. + * + * @example Email + */ + email_attribute_name?: string; + /** + * Add a list of attribute names that will be returned in the response header from the Access callback. + */ + header_attributes?: { + /** + * attribute name from the IDP + */ + attribute_name?: string; + /** + * header that will be added on the request to the origin + */ + header_name?: string; + }[]; + /** + * X509 certificate to verify the signature in the SAML authentication response + */ + idp_public_certs?: string[]; + /** + * IdP Entity ID or Issuer URL + * + * @example https://whoami.com + */ + issuer_url?: string; + /** + * Sign the SAML authentication request with Access credentials. To verify the signature, use the public key from the Access certs endpoints. + */ + sign_request?: boolean; + /** + * URL to send the SAML authentication requests to + * + * @example https://edgeaccess.org/idp/saml/login + */ + sso_target_url?: string; + }; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +/** + * Name of the script to apply when the route is matched. The route is skipped when this is blank/missing. + * + * @example this-is_my_script-01 + * @pattern ^[a-z0-9_][a-z0-9-_]*$ + */ +export type SchemasScriptName = string; + +export type SchemasSelfHostedProps = { + allowed_idps?: AllowedIdps; + app_launcher_visible?: AppLauncherVisible; + auto_redirect_to_identity?: SchemasAutoRedirectToIdentity; + cors_headers?: CorsHeaders; + custom_deny_message?: CustomDenyMessage; + custom_deny_url?: CustomDenyUrl; + domain: Domain; + enable_binding_cookie?: EnableBindingCookie; + http_only_cookie_attribute?: HttpOnlyCookieAttribute; + logo_url?: LogoUrl; + name?: AppsComponentsSchemasName; + same_site_cookie_attribute?: SameSiteCookieAttribute; + service_auth_401_redirect?: ServiceAuth401Redirect; + session_duration?: SessionDuration; + skip_interstitial?: SkipInterstitial; + /** + * The application type. + * + * @example self_hosted + */ + type: string; +}; + +/** + * The certificate serial number. + * + * @example 235217144297995885180570755458463043449861756659 + */ +export type SchemasSerialNumber = string; + +/** + * Worker service associated with the zone and hostname. + * + * @example foo + */ +export type SchemasService = string; + +/** + * Certificate's signature algorithm. + */ +export type SchemasSignature = 'ECDSAWithSHA256' | 'SHA1WithRSA' | 'SHA256WithRSA'; + +export type SchemasSingleResponse = ApiResponseSingleZ04EBmfK & { + result?: IpamDelegations; +}; + +export type SchemasSingleResponse36Q7XKcn = ApiResponseSingleLarS7owG & { + result?: ApiShield; +}; + +export type SchemasSingleResponseCC6Dlpuj = ApiResponseSingleVxjnpV7r & { + result?: Locations; +}; + +export type SchemasSingleResponseL5N1aBjf = ApiResponseSingleKLIlNaxV & { + result?: IdentityProviders; +}; + +export type SchemasSingleResponseYi1wsaX1 = ApiResponseSingleUl1k90Mw & { + result?: Pool; +}; + +export type SchemasSingleResponseL7tHFHv0 = ApiResponseSingleWkFwqHKI & { + result?: Peer; +}; + +export type SchemasSingleResponseU9ST3zLM = ApiResponseSingleI8cJ1fX8 & { + result?: DevicePostureIntegrations; +}; + +export type SchemasSshProps = { + allowed_idps?: AllowedIdps; + app_launcher_visible?: AppLauncherVisible; + auto_redirect_to_identity?: SchemasAutoRedirectToIdentity; + cors_headers?: CorsHeaders; + custom_deny_message?: CustomDenyMessage; + custom_deny_url?: CustomDenyUrl; + domain: Domain; + enable_binding_cookie?: EnableBindingCookie; + http_only_cookie_attribute?: HttpOnlyCookieAttribute; + logo_url?: LogoUrl; + name?: AppsComponentsSchemasName; + same_site_cookie_attribute?: SameSiteCookieAttribute; + service_auth_401_redirect?: ServiceAuth401Redirect; + session_duration?: SessionDuration; + skip_interstitial?: SkipInterstitial; + /** + * The application type. + * + * @example ssh + */ + type: string; +}; + +/** + * The custom page state. + * + * @example default + */ +export type SchemasState = 'default' | 'customized'; + +/** + * Status of the Keyless SSL. + * + * @example active + */ +export type SchemasStatus = 'active' | 'deleted'; + +/** + * Status of this membership. + * + * @example accepted + */ +export type SchemasStatusJI04pNVL = 'accepted' | 'pending' | 'rejected'; + +/** + * The subdomain to be used as the destination in the proxy client. + * + * @example oli3n9zkz5.proxy.cloudflare-gateway.com + */ +export type SchemasSubdomain = string; + +/** + * Target gateway of the hostname. + * + * @example ipfs + */ +export type SchemasTarget = 'ethereum' | 'ipfs' | 'ipfs_universal_path' | 'polygon'; + +/** + * The timeout (in seconds) before marking the health check as failed. + * + * @default 5 + */ +export type SchemasTimeout = number; + +export type SchemasToken = Token; + +export type SchemasTunnelAddSingleRequest = { + cloudflare_endpoint: CloudflareIpsecEndpoint; + customer_endpoint?: CustomerIpsecEndpoint; + description?: ComponentsSchemasDescription; + interface_address: InterfaceAddress; + name: SchemasName; + psk?: Psk; +}; + +export type SchemasTunnelDeletedResponse = ApiResponseSingleRxxEmdsv & { + result?: { + /** + * @example true + */ + deleted?: boolean; + deleted_ipsec_tunnel?: Record; + }; +}; + +/** + * UUID of the Cloudflare Tunnel serving the route. + */ +export type SchemasTunnelId = void; + +export type SchemasTunnelModifiedResponse = ApiResponseSingleRxxEmdsv & { + result?: { + /** + * @example true + */ + modified?: boolean; + modified_ipsec_tunnel?: Record; + }; +}; + +/** + * The user-friendly name of the Cloudflare Tunnel serving the route. + */ +export type SchemasTunnelName = void; + +export type SchemasTunnelResponseCollection = ApiResponseCollection & { + result?: Tunnel[]; +}; + +export type SchemasTunnelResponseSingle = ApiResponseSingleLarS7owG & { + result?: Tunnel; +}; + +export type SchemasTunnelSingleResponse = ApiResponseSingleRxxEmdsv & { + result?: { + ipsec_tunnel?: Record; + }; +}; + +export type SchemasTunnelUpdateRequest = SchemasTunnelAddSingleRequest; + +export type SchemasTunnelsCollectionResponse = ApiResponseSingleRxxEmdsv & { + result?: { + ipsec_tunnels?: IpsecTunnel[]; + }; +}; + +/** + * The type of Device Posture Integration. + * + * @example workspace_one + */ +export type SchemasType = 'workspace_one' | 'crowdstrike_s2s' | 'uptycs' | 'intune' | 'kolide'; + +/** + * The type of characteristic. + * + * @example header + */ +export type SchemasType73ZGJLlz = 'header' | 'cookie'; + +/** + * End of time interval to query, defaults to current time. Timestamp must be in RFC3339 format and uses UTC unless otherwise specified. + * + * @example 2014-01-02T03:20:00Z + * @format date-time + */ +export type SchemasUntil = string; + +/** + * This is the time the certificate was updated. + * + * @example 2022-11-22T17:32:30.467938Z + * @format date-time + */ +export type SchemasUpdatedAt = string; + +/** + * This is the time the certificate was uploaded. + * + * @example 2019-10-28T18:11:23.37411Z + * @format date-time + */ +export type SchemasUploadedOn = string; + +/** + * The URL pattern to match, composed of a host and a path such as `example.org/path*`. Normalization is applied before the pattern is matched. `*` wildcards are expanded to match applicable traffic. Query strings are not matched. Set the value to `*` to match all traffic to your zone. + * + * @example *.example.org/path* + * @maxLength 1024 + */ +export type SchemasUrl = string; + +/** + * The URLs to include in the rule definition. You can use wildcards. Each entered URL will be escaped before use, which means you can only use simple wildcard patterns. + */ +export type SchemasUrls = string[]; + +/** + * The unique identifier for the Access group. + */ +export type SchemasUuid = void; + +/** + * Device ID. + * + * @example f174e90a-fafe-4643-bbbc-4a0ed4fc8415 + * @maxLength 36 + */ +export type SchemasUuid4P4vJwxm = string; + +/** + * @example ed35569b41ce4d1facfe683550f54086 + */ +export type SchemasUuidHmO1cTZ9 = void; + +/** + * Validation method in use for a certificate pack order. + * + * @example txt + */ +export type SchemasValidationMethod = 'http' | 'cname' | 'txt'; + +/** + * The validity period in days for the certificates ordered via Total TLS. + */ +export type SchemasValidityDays = 90; + +/** + * Enables Tiered Cache. + * + * @example on + */ +export type SchemasValue = 'on' | 'off'; + +/** + * Enables Argo Smart Routing. + * + * @example on + */ +export type SchemasValueGg4TAeXR = 'on' | 'off'; + +/** + * Object specifying available variants for an image. + * + * @example https://imagedelivery.net/MTt4OTd0b0w5aj/107b9558-dd06-4bbd-5fef-9c2c16bb7900/thumbnail + * @example https://imagedelivery.net/MTt4OTd0b0w5aj/107b9558-dd06-4bbd-5fef-9c2c16bb7900/hero + * @example https://imagedelivery.net/MTt4OTd0b0w5aj/107b9558-dd06-4bbd-5fef-9c2c16bb7900/original + */ +export type SchemasVariants = (ThumbnailUrlWiwugRbe | HeroUrl | OriginalUrl)[]; + +/** + * The version of the rule. + * + * @example 1 + * @pattern ^[0-9]+$ + */ +export type SchemasVersion = string; + +/** + * UUID of the Tunnel Virtual Network this route belongs to. If no virtual networks are configured, the route is assigned to the default virtual network of the account. + */ +export type SchemasVirtualNetworkId = void; + +export type SchemasVncProps = { + allowed_idps?: AllowedIdps; + app_launcher_visible?: AppLauncherVisible; + auto_redirect_to_identity?: SchemasAutoRedirectToIdentity; + cors_headers?: CorsHeaders; + custom_deny_message?: CustomDenyMessage; + custom_deny_url?: CustomDenyUrl; + domain: Domain; + enable_binding_cookie?: EnableBindingCookie; + http_only_cookie_attribute?: HttpOnlyCookieAttribute; + logo_url?: LogoUrl; + name?: AppsComponentsSchemasName; + same_site_cookie_attribute?: SameSiteCookieAttribute; + service_auth_401_redirect?: ServiceAuth401Redirect; + session_duration?: SessionDuration; + skip_interstitial?: SkipInterstitial; + /** + * The application type. + * + * @example vnc + */ + type: string; +}; + +export type SchemasYandex = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +export type SchemasZone = { + name?: void; +}; + +/** + * The HTTP schemes to match. You can specify one scheme (`['HTTPS']`), both schemes (`['HTTP','HTTPS']`), or all schemes (`['_ALL_']`). This field is optional. + * + * @example HTTP + * @example HTTPS + */ +export type Schemes = string[]; + +/** + * Used only for ECMP routes. + */ +export type Scope = { + colo_names?: ColoNames; + colo_regions?: ColoRegions; +}; + +/** + * The scope of the URL normalization. + * + * @example incoming + */ +export type ScopeAeLzE8f9 = string; + +export type Script = { + /** + * @example 2021-08-18T10:51:10.09615Z + */ + added_at?: void; + /** + * @example false + */ + domain_reported_malicious?: void; + /** + * @example 2021-09-02T10:17:54Z + */ + fetched_at?: void; + /** + * @example blog.cloudflare.com/page + */ + first_page_url?: void; + /** + * @example 2021-08-18T10:51:08Z + */ + first_seen_at?: void; + /** + * @example e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + */ + hash?: void; + /** + * @example blog.cloudflare.com + */ + host?: void; + /** + * @example c9ef84a6bf5e47138c75d95e2f933e8f + */ + id?: void; + /** + * @example 10 + */ + js_integrity_score?: void; + /** + * @example 2021-09-02T09:57:54Z + */ + last_seen_at?: void; + /** + * @example blog.cloudflare.com/page1 + * @example blog.cloudflare.com/page2 + */ + page_urls?: void; + /** + * @example https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js + */ + url?: void; + /** + * @example false + */ + url_contains_cdn_cgi_path?: void; +}; + +export type ScriptResponse = { + created_on?: CreatedOnLPNq9Pbi; + etag?: EtagCXrJI57j; + /** + * The id of the script in the Workers system. Usually the script name. + * + * @example my-workers-script + */ + id?: string; + logpush?: Logpush; + modified_on?: ModifiedOnKlppwHF4; + usage_model?: UsageModel; +}; + +export type ScriptResponseCollection = { + errors: Messages; + messages: Messages; + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ScriptResponseCollectionC4kQ40kQ = { + errors: Messages; + messages: Messages; + result: Record | any[] | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ScriptResponseSingle = ApiResponseSingle66BR6r1o & { + result?: ScriptResponse; +}; + +export type ScriptResponseSingle9UZV8MbP = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +/** + * @example 8ee82b3a2c0f42928b8f14dae4a97121 + * @maxLength 32 + */ +export type ScriptIdentifier = string; + +/** + * Name of the script, used in URLs and route configuration. + * + * @example this-is_my_script-01 + * @pattern ^[a-z0-9_][a-z0-9-_]*$ + */ +export type ScriptName = string; + +export type Search = { + /** + * A list of resources matching the search query. + */ + resources?: ResourceReference[]; +}; + +/** + * Allows searching in multiple properties of a DNS record simultaneously. This parameter is intended for human users, not automation. Its exact behavior is intentionally left unspecified and is subject to change in the future. This parameter works independently of the `match` setting. For automated searches, please use the other available parameters. + * + * @example www.cloudflare.com + */ +export type SearchHtkiGkPK = string; + +export type SearchParams = { + /** + * Search query term. + * + * @default + * @example primary + */ + query?: string; + /** + * The type of references to include ("*" for all). + * + * @default + * @example * + */ + references?: '' | '*' | 'referral' | 'referrer'; +}; + +export type SearchResult = { + result?: Search; +}; + +export type Seat = { + access_seat: AccessSeat; + gateway_seat: GatewaySeat; + seat_uid: SeatUid; +}; + +/** + * The unique API identifier for the Zero Trust seat. + */ +export type SeatUid = void; + +export type Seats = { + access_seat?: AccessSeat; + created_at?: Timestamp; + gateway_seat?: GatewaySeat; + seat_uid?: SeatUid; + updated_at?: Timestamp; +}; + +export type SeatsComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: Seats[]; +}; + +export type SeatsDefinition = Seat[]; + +/** + * TSIG secret. + * + * @example caf79a7804b04337c9c66ccd7bef9190a1e1679b5dd03d8aa10f7ad45e1a9dab92b417896c15d4d007c7c14194538d2a5d0feffdecc5a7f0e1c570cfa700837c + */ +export type Secret = string; + +/** + * Optional secret that will be passed in the `cf-webhook-auth` header when dispatching a webhook notification. Secrets are not returned in any API response body. + */ +export type SecretLnW39Y7R = string; + +/** + * Cloudflare security header for a zone. + */ +export type SecurityHeader = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone's security header. + * + * @example security_header + */ + id: 'security_header'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: SecurityHeaderValue; +}; + +export type SecurityHeaderValue = { + /** + * Strict Transport Security. + */ + strict_transport_security?: { + /** + * Whether or not strict transport security is enabled. + * + * @example true + */ + enabled?: boolean; + /** + * Include all subdomains for strict transport security. + * + * @example true + */ + include_subdomains?: boolean; + /** + * Max age in seconds of the strict transport security. + * + * @example 86400 + */ + max_age?: number; + /** + * Whether or not to include 'X-Content-Type-Options: nosniff' header. + * + * @example true + */ + nosniff?: boolean; + }; +}; + +/** + * Choose the appropriate security profile for your website, which will automatically adjust each of the security settings. If you choose to customize an individual security setting, the profile will become Custom. (https://support.cloudflare.com/hc/en-us/articles/200170056). + */ +export type SecurityLevel = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example security_level + */ + id: 'security_level'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: SecurityLevelValue; +}; + +/** + * Value of the zone setting. + * + * @default medium + */ +export type SecurityLevelValue = 'off' | 'essentially_off' | 'low' | 'medium' | 'high' | 'under_attack'; + +export type SelfHostedProps = { + allowed_idps?: AllowedIdps; + app_launcher_visible?: AppLauncherVisible; + auto_redirect_to_identity?: SchemasAutoRedirectToIdentity; + cors_headers?: CorsHeaders; + custom_deny_message?: CustomDenyMessage; + custom_deny_url?: CustomDenyUrl; + domain: Domain; + enable_binding_cookie?: EnableBindingCookie; + http_only_cookie_attribute?: HttpOnlyCookieAttribute; + logo_url?: LogoUrl; + name?: AppsComponentsSchemasName; + path_cookie_attribute?: PathCookieAttribute; + same_site_cookie_attribute?: SameSiteCookieAttribute; + service_auth_401_redirect?: ServiceAuth401Redirect; + session_duration?: SessionDuration; + skip_interstitial?: SkipInterstitial; + /** + * The application type. + * + * @example self_hosted + */ + type: string; +}; + +export type SelfHostedPropsUAlJDzGr = { + allowed_idps?: AllowedIdps; + app_launcher_visible?: AppLauncherVisible; + auto_redirect_to_identity?: AutoRedirectToIdentityB0IhfGBw; + cors_headers?: CorsHeaders; + custom_deny_message?: CustomDenyMessage; + custom_deny_url?: CustomDenyUrl; + domain?: SchemasDomainA7q0ZzCX; + enable_binding_cookie?: EnableBindingCookie; + http_only_cookie_attribute?: HttpOnlyCookieAttribute; + logo_url?: LogoUrl; + name?: AppsComponentsSchemasName; + same_site_cookie_attribute?: SameSiteCookieAttribute; + service_auth_401_redirect?: ServiceAuth401Redirect; + session_duration?: SessionDuration; + skip_interstitial?: SkipInterstitial; + /** + * The application type. + * + * @example self_hosted + */ + type?: string; +}; + +/** + * The sensitivity of the WAF package. + * + * @default high + */ +export type Sensitivity = 'high' | 'medium' | 'low' | 'off'; + +/** + * Timestamp of when the notification was dispatched in ISO 8601 format. + * + * @example 2021-10-08T17:52:17.571336Z + * @format date-time + */ +export type Sent = string; + +/** + * The serial number on the uploaded certificate. + * + * @example 6743787633689793699141714808227354901 + */ +export type SerialNumber = string; + +/** + * The device serial number. + * + * @example EXAMPLEHMD6R + */ +export type SerialNumberJQ6wzAYC = string; + +/** + * If there is sensitive content on your website that you want visible to real visitors, but that you want to hide from suspicious visitors, all you have to do is wrap the content with Cloudflare SSE tags. Wrap any content that you want to be excluded from suspicious visitors in the following SSE tags: . For example: Bad visitors won't see my phone number, 555-555-5555 . Note: SSE only will work with HTML. If you have HTML minification enabled, you won't see the SSE tags in your HTML source when it's served through Cloudflare. SSE will still function in this case, as Cloudflare's HTML minification and SSE functionality occur on-the-fly as the resource moves through our network to the visitor's computer. (https://support.cloudflare.com/hc/en-us/articles/200170036). + */ +export type ServerSideExclude = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example server_side_exclude + */ + id: 'server_side_exclude'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: ServerSideExcludeValue; +}; + +/** + * Value of the zone setting. + * + * @default on + */ +export type ServerSideExcludeValue = 'on' | 'off'; + +/** + * The service using the certificate. + * + * @example gateway + */ +export type Service = string; + +export type ServiceTokens = { + client_id?: ClientId; + created_at?: Timestamp; + /** + * The ID of the service token. + */ + id?: void; + name?: ServiceTokensComponentsSchemasName; + updated_at?: Timestamp; +}; + +/** + * The name of the service token. + * + * @example CI/CD token + */ +export type ServiceTokensComponentsSchemasName = string; + +export type ServiceTokensComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: ServiceTokens[]; +}; + +export type ServiceTokensComponentsSchemasSingleResponse = ApiResponseSingleKLIlNaxV & { + result?: ServiceTokens; +}; + +export type ServiceTokensComponentsSchemasSingleResponseAyQvwAXm = ApiResponseSingleLarS7owG & { + result?: ServiceTokens; +}; + +/** + * Returns a 401 status code when the request is blocked by a Service Auth policy. + * + * @example true + */ +export type ServiceAuth401Redirect = boolean; + +export type ServiceModeV2 = { + /** + * The mode to run the WARP client under. + * + * @example proxy + */ + mode?: string; + /** + * The port number when used with proxy mode. + * + * @example 3000 + */ + port?: number; +}; + +/** + * The session_affinity specifies the type of session affinity the load balancer should use unless specified as "none" or ""(default). The supported types are "cookie" and "ip_cookie". "cookie" - On the first request to a proxied load balancer, a cookie is generated, encoding information of which origin the request will be forwarded to. Subsequent requests, by the same client to the same load balancer, will be sent to the origin server the cookie encodes, for the duration of the cookie and as long as the origin server remains healthy. If the cookie has expired or the origin server is unhealthy then a new origin server is calculated and used. "ip_cookie" behaves the same as "cookie" except the initial origin selection is stable and based on the client’s ip address. + * + * @default "" + * @example cookie + */ +export type SessionAffinity = 'none' | 'cookie' | 'ip_cookie' | '""'; + +/** + * Configures cookie attributes for session affinity cookie. + */ +export type SessionAffinityAttributes = { + /** + * Configures the drain duration in seconds. This field is only used when session affinity is enabled on the load balancer. + * + * @example 100 + */ + drain_duration?: number; + /** + * Configures the SameSite attribute on session affinity cookie. Value "Auto" will be translated to "Lax" or "None" depending if Always Use HTTPS is enabled. Note: when using value "None", the secure attribute can not be set to "Never". + * + * @default Auto + * @example Auto + */ + samesite?: 'Auto' | 'Lax' | 'None' | 'Strict'; + /** + * Configures the Secure attribute on session affinity cookie. Value "Always" indicates the Secure attribute will be set in the Set-Cookie header, "Never" indicates the Secure attribute will not be set, and "Auto" will set the Secure attribute depending if Always Use HTTPS is enabled. + * + * @default Auto + * @example Auto + */ + secure?: 'Auto' | 'Always' | 'Never'; + /** + * Configures the zero-downtime failover between origins within a pool when session affinity is enabled. Value "none" means no failover takes place for sessions pinned to the origin (default). Value "temporary" means traffic will be sent to another other healthy origin until the originally pinned origin is available; note that this can potentially result in heavy origin flapping. Value "sticky" means the session affinity cookie is updated and subsequent requests are sent to the new origin. This feature is currently incompatible with Argo, Tiered Cache, and Bandwidth Alliance. + * + * @default none + * @example sticky + */ + zero_downtime_failover?: 'none' | 'temporary' | 'sticky'; +}; + +/** + * Time, in seconds, until this load balancer's session affinity cookie expires after being created. This parameter is ignored unless a supported session affinity policy is set. The current default of 23 hours will be used unless session_affinity_ttl is explicitly set. The accepted range of values is between [1800, 604800]. Once the expiry time has been reached, subsequent requests may get sent to a different origin server. + * + * @example 5000 + */ +export type SessionAffinityTtl = number; + +/** + * The amount of time that tokens issued for this application will be valid. Must be in the format `300ms` or `2h45m`. Valid time units are: ns, us (or µs), ms, s, m, h. + * + * @default 24h + * @example 24h + */ +export type SessionDuration = string; + +/** + * Lifetime of a cookie (in minutes) set by Cloudflare for users who get access to the route. If a user is not seen by Cloudflare again in that time period, they will be treated as a new user that visits the route. + * + * @default 5 + * @maximum 30 + * @minimum 1 + */ +export type SessionDurationDWa1S8Ip = number; + +/** + * Unique session id of the job. + * + * @example 99d471b1ca3c23cc8e30b6acec5db987 + */ +export type SessionId = string; + +export type Setting = + | Zerortt + | AdvancedDdos + | AlwaysOnline + | AlwaysUseHttps + | AutomaticHttpsRewrites + | Brotli + | BrowserCacheTtl + | BrowserCheck + | CacheLevel + | ChallengeTtl + | Ciphers + | CnameFlattening + | DevelopmentMode + | EarlyHints + | EdgeCacheTtl + | EmailObfuscation + | H2Prioritization + | HotlinkProtection + | Http2 + | Http3 + | ImageResizing + | IpGeolocation + | Ipv6 + | MaxUpload + | MinTlsVersion + | Minify + | Mirage + | MobileRedirect + | Nel + | OpportunisticEncryption + | OpportunisticOnion + | OrangeToOrange + | OriginErrorPagePassThru + | OriginMaxHttpVersion + | Polish + | PrefetchPreload + | PrivacyPass + | ProxyReadTimeout + | PseudoIpv4 + | ResponseBuffering + | RocketLoader + | SchemasAutomaticPlatformOptimization + | SecurityHeader + | SecurityLevel + | ServerSideExclude + | Sha1Support + | SortQueryStringForCache + | SslCvCTPIf1 + | SslRecommender + | Tls12Only + | Tls13 + | TlsClientAuth + | TrueClientIpHeader + | Waf + | Webp + | Websockets; + +export type Settings = { + /** + * Request client certificates for this hostname in China. Can only be set to true if this zone is china network enabled. + * + * @example false + */ + china_network: boolean; + /** + * Client Certificate Forwarding is a feature that takes the client cert provided by the eyeball to the edge, and forwards it to the origin as a HTTP header to allow logging on the origin. + * + * @example true + */ + client_certificate_forwarding: boolean; + /** + * The hostname that these settings apply to. + * + * @example admin.example.com + */ + hostname: string; +}; + +export type SettingsPG6mq1EP = EmailSettingsProperties; + +/** + * Settings available for the zone. + * + * @example {"id":"browser_check","properties":[{"name":"value","type":"toggle"}]} + * @example {"id":"browser_cache_ttl","properties":[{"max":31536000,"min":1800,"name":"value","suggested_values":[1800,3600,7200,10800,14400,18000,28800,43200,57600,72000,86400,172800,259200,345600,432000,691200,1382400,2073600,2678400,5356800,16070400,31536000],"type":"range"}]} + * @example {"id":"browser_check","properties":[{"name":"value","type":"toggle"}]} + * @example {"id":"cache_key_fields","properties":[{"name":"value","properties":[{"allowEmpty":true,"choices":["include","exclude"],"multiple":false,"name":"query_string","type":"select"},{"allowEmpty":true,"choices":["include","exclude","check_presence"],"multiple":true,"name":"header","type":"select"},{"allowEmpty":false,"choices":["resolved"],"multiple":true,"name":"host","type":"select"},{"allowEmpty":true,"choices":["include","check_presence"],"multiple":true,"name":"cookie","type":"select"},{"allowEmpty":false,"choices":["device_type","geo","lang"],"multiple":true,"name":"user","type":"select"}],"type":"object"}]} + * @example {"id":"cache_deception_armor","properties":[{"name":"value","type":"toggle"}]} + * @example {"id":"cache_level","properties":[{"choices":["bypass","basic","simplified","aggressive","cache_everything"],"multiple":false,"name":"value","type":"select"}]} + * @example {"id":"cache_ttl_by_status","properties":[{"allowEmpty":false,"name":"value","type":"object"}]} + * @example {"id":"disable_apps","properties":[]} + * @example {"id":"disable_performance","properties":[]} + * @example {"id":"disable_security","properties":[]} + * @example {"id":"edge_cache_ttl","properties":[{"max":2419200,"min":7200,"name":"value","suggested_values":[7200,10800,14400,18000,28800,43200,57600,72000,86400,172800,259200,345600,432000,518400,604800,1209600,2419200],"type":"range"}]} + * @example {"id":"email_obfuscation","properties":[{"name":"value","type":"toggle"}]} + * @example {"id":"forwarding_url","properties":[{"choices":[301,302],"multiple":false,"name":"status_code","type":"choice"},{"name":"url","type":"forwardingUrl"}]} + * @example {"id":"ip_geolocation","properties":[{"name":"value","type":"toggle"}]} + * @example {"id":"minify","properties":[{"allowEmpty":true,"choices":["html","css","js"],"multiple":true,"name":"value","type":"select"}]} + * @example {"id":"explicit_cache_control","properties":[{"name":"value","type":"toggle"}]} + * @example {"id":"rocket_loader","properties":[{"name":"value","type":"toggle"}]} + * @example {"id":"security_level","properties":[{"choices":["essentially_off","low","medium","high","under_attack"],"multiple":false,"name":"value","type":"select"}]} + * @example {"id":"server_side_exclude","properties":[{"name":"value","type":"toggle"}]} + * @example {"id":"ssl","properties":[{"choices":["off","flexible","full","strict"],"multiple":false,"name":"value","type":"choice"}]} + */ +export type SettingsWG7ImyVP = Record[]; + +/** + * Allow SHA1 support. + */ +export type Sha1Support = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * Zone setting identifier. + * + * @example sha1_support + */ + id: 'sha1_support'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: Sha1SupportValue; +}; + +/** + * Value of the zone setting. + * + * @default off + */ +export type Sha1SupportValue = 'off' | 'on'; + +/** + * Properties of an integration entry in a custom profile + */ +export type SharedEntryUpdateIntegration = { + /** + * Whether the entry is enabled or not. + */ + enabled?: boolean; + entry_id?: EntryId; +}; + +/** + * Properties of a predefined entry in a custom profile + */ +export type SharedEntryUpdatePredefined = { + /** + * Whether the entry is enabled or not. + * + * @example true + */ + enabled?: boolean; + entry_id?: EntryId; +}; + +/** + * The type of hash used for the certificate. + * + * @example SHA256WithRSA + */ +export type Signature = string; + +export type SignedTokenRequest = { + /** + * The optional list of access rule constraints on the token. Access can be blocked or allowed based on an IP, IP range, or by country. Access rules are evaluated from first to last. If a rule matches, the associated action is applied and no further rules are evaluated. + * + * @example {"action":"block","country":["US","MX"],"type":"ip.geoip.country"} + * @example {"action":"allow","ip":["93.184.216.0/24","2400:cb00::/32"],"type":"ip.src"} + * @example {"action":"block","type":"any"} + */ + accessRules?: AccessRules[]; + /** + * The optional boolean value that enables using signed tokens to access MP4 download links for a video. + * + * @default false + */ + downloadable?: boolean; + /** + * The optional unix epoch timestamp that specficies the time after a token is not accepted. The maximum time specification is 24 hours from issuing time. If this field is not set, the default is one hour after issuing. + */ + exp?: number; + /** + * The optional ID of a Stream signing key. If present, the `pem` field is also required. + * + * @example ab0d4ef71g4425f8dcba9041231813000 + */ + id?: string; + /** + * The optional unix epoch timestamp that specifies the time before a the token is not accepted. If this field is not set, the default is one hour before issuing. + */ + nbf?: number; + /** + * The optional base64 encoded private key in PEM format associated with a Stream signing key. If present, the `id` field is also required. + * + * @example LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBc284dnBvOFpEWXRkOUgzbWlPaW1qYXAzVXlVM0oyZ3kwTUYvN1R4blJuRnkwRHpDCkxqUk9naFZsQ0hPQmxsd3NVaE9GU0lyYnN4K05tUTdBeS90TFpXSGxuVGF3UWJ5WGZGOStJeDhVSnNlSHBGV1oKNVF5Z1JYd2liSjh1MVVsZ2xlcmZHMkpueldjVXpZTzEySktZN3doSkw1ajROMWgxZFJNUXQ5Q1pkZFlCQWRzOQpCdk02cjRFMDcxQkhQekhWeDMrUTI1VWtubGdUNXIwS3FiM1E1Y0dlTlBXY1JreW1ybkJEWWR0OXR4eFFMb1dPCllzNXdsMnVYWFVYL0VGcDMwajU0Nmp6czllWExLYlNDbjJjTDZFVE96Y2x3aG9DRGx2a2VQT05rUE9LMDVKNUMKTm1TdFdhMG9hV1VGRzM0MFl3cVVrWGt4OU9tNndXd1JldU1uU1FJREFRQUJBb0lCQUFJOHo1ck5kOEdtOGJBMgo1S3pxQjI1R2lOVENwbUNJeW53NXRJWHZTQmNHcEdydUcvdlN2WG9kVlFVSVY0TWdHQkVXUEFrVzdsNWVBcHI4CnA1ZFd5SkRXYTNkdklFSE9vSEpYU3dBYksxZzZEMTNVa2NkZ1EyRGpoNVhuWDhHZCtBY2c2SmRTQWgxOWtYSHEKMk54RUtBVDB6Ri83a1g2MkRkREFBcWxmQkpGSXJodVIvZUdEVWh4L2piTTRhQ2JCcFdiM0pnRE9OYm5tS1ZoMwpxS2ZwZmRZZENZU1lzWUxrNTlxRDF2VFNwUVFUQ0VadW9VKzNzRVNhdkJzaUs1bU0vTzY5ZkRMRXNURG1MeTVQCmhEK3BMQXI0SlhNNjFwRGVBS0l3cUVqWWJybXlDRHRXTUdJNnZzZ0E1eXQzUUJaME9vV2w5QUkwdWxoZ3p4dXQKZ2ZFNTRRRUNnWUVBN0F3a0lhVEEzYmQ4Nk9jSVZnNFlrWGk1cm5aNDdsM1k4V24zcjIzUmVISXhLdkllRUtSbgp5bUlFNDFtRVBBSmlGWFpLK1VPTXdkeS9EcnFJUithT1JiT2NiV01jWUg2QzgvbG1wdVJFaXE3SW1Ub3VWcnA4CnlnUkprMWprVDA4cTIvNmg4eTBEdjJqMitsaHFXNzRNOUt0cmwxcTRlWmZRUFREL01tR1NnTWtDZ1lFQXdhY04KaSttN1p6dnJtL3NuekF2VlZ5SEtwZHVUUjNERk1naC9maC9tZ0ZHZ1RwZWtUOVV5b3FleGNYQXdwMVlhL01iQQoyNTVJVDZRbXZZTm5yNXp6Wmxic2tMV0hsYllvbWhmWnVXTHhXR3hRaEFORWdaMFVVdUVTRGMvbWx2UXZHbEtSCkZoaGhBUWlVSmdDamhPaHk1SlBiNGFldGRKd0UxK09lVWRFaE1vRUNnWUVBNG8yZ25CM1o4ck5xa3NzemlBek4KYmNuMlJVbDJOaW9pejBwS3JMaDFaT29NNE5BekpQdjJsaHRQMzdtS0htS1hLMHczRjFqTEgwSTBxZmxFVmVZbQpSU1huakdHazJjUnpBYUVzOGgrQzNheDE0Z01pZUtGU3BqNUpNOEFNbVVZOXQ1cUVhN2FYc3o0V1ZoOUlMYmVTCkRiNzlhKzVwd21LQVBrcnBsTHhyZFdrQ2dZQlNNSHVBWVdBbmJYZ1BDS2FZWklGVWJNUWNacmY0ZnpWQ2lmYksKYWZHampvRlNPZXdEOGdGK3BWdWJRTGwxbkFieU44ek1xVDRaaHhybUhpcFlqMjJDaHV2NmN3RXJtbGRiSnpwQwpBMnRaVXdkTk1ESFlMUG5lUHlZeGRJWnlsUXFVeW14SGkydElUQUxNcWtLOGV3ZWdXZHpkeGhQSlJScU5JazhrCmZIVHhnUUtCZ1FEUFc2UXIxY3F3QjNUdnVWdWR4WGRqUTdIcDFodXhrNEVWaEFJZllKNFhSTW1NUE5YS28wdHUKdUt6LzE0QW14R0dvSWJxYVc1bDMzeFNteUxhem84clNUN0tSTjVKME9JSHcrZkR5SFgxdHpVSjZCTldDcEFTcwpjbWdNK0htSzVON0w2bkNaZFJQY2IwU1hGaVRQUGhCUG1PVWFDUnpER0ZMK2JYM1VwajJKbWc9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo= + */ + pem?: string; +}; + +export type SignedTokenResponse = ApiResponseSingleYdRGfgTy & { + result?: { + /** + * The signed token used with the signed URLs feature. + * + * @example eyJhbGciOiJSUzI1NiIsImtpZCI6ImU5ZGI5OTBhODI2NjZkZDU3MWM3N2Y5NDRhNWM1YzhkIn0.eyJzdWIiOiJlYTk1MTMyYzE1NzMyNDEyZDIyYzE0NzZmYTgzZjI3YSIsImtpZCI6ImU5ZGI5OTBhODI2NjZkZDU3MWM3N2Y5NDRhNWM1YzhkIiwiZXhwIjoiMTUzNzQ2MDM2NSIsIm5iZiI6IjE1Mzc0NTMxNjUifQ.OZhqOARADn1iubK6GKcn25hN3nU-hCFF5q9w2C4yup0C4diG7aMIowiRpP-eDod8dbAJubsiFuTKrqPcmyCKWYsiv0TQueukqbQlF7HCO1TV-oF6El5-7ldJ46eD-ZQ0XgcIYEKrQOYFF8iDQbqPm3REWd6BnjKZdeVrLzuRaiSnZ9qqFpGu5dfxIY9-nZKDubJHqCr3Imtb211VIG_b9MdtO92JjvkDS-rxT_pkEfTZSafl1OU-98A7KBGtPSJHz2dHORIrUiTA6on4eIXTj9aFhGiir4rSn-rn0OjPRTtJMWIDMoQyE_fwrSYzB7MPuzL2t82BWaEbHZTfixBm5A + */ + token?: string; + }; +}; + +/** + * The date and time a signing key was created. + * + * @example 2014-01-02T02:20:00Z + * @format date-time + */ +export type SigningKeyCreated = string; + +/** + * Start date and time of requesting data period in ISO 8601 format. + * + * @example 2023-11-11T12:00:00Z + * @format date-time + */ +export type Since = string; + +/** + * The (inclusive) beginning of the requested time frame. This value can be a negative integer representing the number of minutes in the past relative to time the request is made, or can be an absolute timestamp that conforms to RFC 3339. At this point in time, it cannot exceed a time in the past greater than one year. + * + * Ranges that the Cloudflare web application provides will provide the following period length for each point: + * - Last 60 minutes (from -59 to -1): 1 minute resolution + * - Last 7 hours (from -419 to -60): 15 minutes resolution + * - Last 15 hours (from -899 to -420): 30 minutes resolution + * - Last 72 hours (from -4320 to -900): 1 hour resolution + * - Older than 3 days (-525600 to -4320): 1 day resolution. + * + * @default -10080 + * @example 2015-01-01T12:23:00Z + */ +export type SinceO1OWzWkU = string | number; + +export type SingleInviteResponse = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type SingleMemberResponse = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type SingleMembershipResponse = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type SingleOrganizationResponse = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type SingleRequestOutgoing = { + id: Identifier6txek3jw; + name: NameSjz7boGi; + peers: Peers; +}; + +export type SingleResponse = ApiResponseSingleZ04EBmfK & { + result?: IpamPrefixes; +}; + +export type SingleResponse9WvPBIoi = ApiResponseSingleVxjnpV7r & { + result?: Lists; +}; + +export type SingleResponseGuXwMQTl = ApiResponseSingleWkFwqHKI & { + result?: Tsig; +}; + +export type SingleResponseHInSCAYE = ApiResponseSingleI8cJ1fX8 & { + result?: DevicePostureRules; +}; + +export type SingleResponseL9G76tiZ = ApiResponseSinglePn9rJJNX & { + result?: Waitingroom; +}; + +export type SingleResponseMWfbtc4A = ApiResponseSingleKLIlNaxV & { + result?: Organizations; +}; + +export type SingleResponseMt0dL1Zb = ApiResponseSingleUl1k90Mw & { + result?: Monitor; +}; + +export type SingleResponseSdWXUg59 = ApiResponseSingleO4T7cMiV & { + result?: Healthchecks; +}; + +export type SingleResponseH60I6kRL = ApiResponseSingleLarS7owG & { + result?: Configuration; +}; + +export type SingleResponseHostnames = ApiResponseSingleKLIlNaxV & { + result?: Settings; +}; + +export type SingleResponseIncoming = ApiResponseSingleWkFwqHKI & { + result?: { + auto_refresh_seconds?: AutoRefreshSeconds; + checked_time?: Time; + created_time?: Time; + id?: Identifier6txek3jw; + modified_time?: Time; + name?: NameSjz7boGi; + peers?: Peers; + soa_serial?: SoaSerial; + }; +}; + +export type SingleResponseOutgoing = ApiResponseSingleWkFwqHKI & { + result?: { + checked_time?: Time; + created_time?: Time; + id?: Identifier6txek3jw; + last_transferred_time?: Time; + name?: NameSjz7boGi; + peers?: Peers; + soa_serial?: SoaSerial; + }; +}; + +export type SingleResponseWithListItems = ApiResponseSingleVxjnpV7r & { + result?: { + created_at?: Timestamp; + description?: DescriptionX9wAFqIk; + id?: Uuid1mDHWugl; + items?: Items; + name?: NameCf4EglAb; + type?: TypeKFroakje; + updated_at?: Timestamp; + }; +}; + +export type SingleRoleResponse = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type SingleUserResponse = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +/** + * The size of the media item in bytes. + * + * @example 4190963 + */ +export type Size = number; + +/** + * Subject Key Identifier + * + * @example 8e375af1389a069a0f921f8cc8e1eb12d784b949 + */ +export type Ski = string; + +/** + * Enables automatic authentication through cloudflared. + * + * @example true + */ +export type SkipInterstitial = boolean; + +/** + * The serial number of the SOA for the given zone. + * + * @example 2019102400 + */ +export type SoaSerial = number; + +/** + * A comma-separated list of dimensions to sort by, where each dimension may be prefixed by - (descending) or + (ascending). + * + * @example +responseCode,-queryName + */ +export type Sort = string; + +/** + * The sort order for the result set; sort fields must be included in `metrics` or `dimensions`. + * + * @example +count + * @example -bytesIngress + */ +export type SortTaWT8hAQ = any[]; + +/** + * Cloudflare will treat files with the same query strings as the same file in cache, regardless of the order of the query strings. This is limited to Enterprise Zones. + * + * @default off + */ +export type SortQueryStringForCache = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example sort_query_string_for_cache + */ + id: 'sort_query_string_for_cache'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: SortQueryStringForCacheValue; +}; + +/** + * Value of the zone setting. + * + * @default off + */ +export type SortQueryStringForCacheValue = 'on' | 'off'; + +export type SplitTunnel = { + /** + * The address in CIDR format to exclude from the tunnel. If address is present, host must not be present. + * + * @example 192.0.2.0/24 + */ + address: string; + /** + * A description of the split tunnel item, displayed in the client UI. + * + * @example Exclude testing domains from the tunnel + * @maxLength 100 + */ + description: string; + /** + * The domain name to exclude from the tunnel. If host is present, address must not be present. + * + * @example *.example.com + */ + host?: string; +}; + +export type SplitTunnelInclude = { + /** + * The address in CIDR format to include in the tunnel. If address is present, host must not be present. + * + * @example 192.0.2.0/24 + */ + address: string; + /** + * A description of the split tunnel item, displayed in the client UI. + * + * @example Include testing domains from the tunnel + * @maxLength 100 + */ + description: string; + /** + * The domain name to include in the tunnel. If host is present, address must not be present. + * + * @example *.example.com + */ + host?: string; +}; + +export type SplitTunnelIncludeResponseCollection = ApiResponseCollection & { + result?: SplitTunnelInclude[]; +}; + +export type SplitTunnelResponseCollection = ApiResponseCollection & { + result?: SplitTunnel[]; +}; + +export type SshProps = { + allowed_idps?: AllowedIdps; + app_launcher_visible?: AppLauncherVisible; + auto_redirect_to_identity?: AutoRedirectToIdentityB0IhfGBw; + cors_headers?: CorsHeaders; + custom_deny_message?: CustomDenyMessage; + custom_deny_url?: CustomDenyUrl; + domain?: SchemasDomainA7q0ZzCX; + enable_binding_cookie?: EnableBindingCookie; + http_only_cookie_attribute?: HttpOnlyCookieAttribute; + logo_url?: LogoUrl; + name?: AppsComponentsSchemasName; + same_site_cookie_attribute?: SameSiteCookieAttribute; + service_auth_401_redirect?: ServiceAuth401Redirect; + session_duration?: SessionDuration; + skip_interstitial?: SkipInterstitial; + /** + * The application type. + * + * @example ssh + */ + type?: string; +}; + +/** + * SSL properties for the custom hostname. + */ +export type Ssl = { + /** + * A ubiquitous bundle has the highest probability of being verified everywhere, even by clients using outdated or unusual trust stores. An optimal bundle uses the shortest chain and newest intermediates. And the force bundle verifies the chain, but does not otherwise modify it. + * + * @default ubiquitous + * @example ubiquitous + */ + bundle_method?: 'ubiquitous' | 'optimal' | 'force'; + certificate_authority?: CertificateAuthority; + /** + * If a custom uploaded certificate is used. + * + * @example -----BEGIN CERTIFICATE-----\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\n-----END CERTIFICATE-----\n + */ + custom_certificate?: string; + /** + * The identifier for the Custom CSR that was used. + * + * @example 7b163417-1d2b-4c84-a38a-2fb7a0cd7752 + */ + custom_csr_id?: string; + /** + * The key for a custom uploaded certificate. + * + * @example -----BEGIN RSA PRIVATE KEY----- + MIIEowIBAAKCAQEAwQHoetcl9+5ikGzV6cMzWtWPJHqXT3wpbEkRU9Yz7lgvddmG + dtcGbg/1CGZu0jJGkMoppoUo4c3dts3iwqRYmBikUP77wwY2QGmDZw2FvkJCJlKn + abIRuGvBKwzESIXgKk2016aTP6/dAjEHyo6SeoK8lkIySUvK0fyOVlsiEsCmOpid + tnKX/a+50GjB79CJH4ER2lLVZnhePFR/zUOyPxZQQ4naHf7yu/b5jhO0f8fwt+py + FxIXjbEIdZliWRkRMtzrHOJIhrmJ2A1J7iOrirbbwillwjjNVUWPf3IJ3M12S9pE + ewooaeO2izNTERcG9HzAacbVRn2Y2SWIyT/18QIDAQABAoIBACbhTYXBZYKmYPCb + HBR1IBlCQA2nLGf0qRuJNJZg5iEzXows/6tc8YymZkQE7nolapWsQ+upk2y5Xdp/ + axiuprIs9JzkYK8Ox0r+dlwCG1kSW+UAbX0bQ/qUqlsTvU6muVuMP8vZYHxJ3wmb + +ufRBKztPTQ/rYWaYQcgC0RWI20HTFBMxlTAyNxYNWzX7RKFkGVVyB9RsAtmcc8g + +j4OdosbfNoJPS0HeIfNpAznDfHKdxDk2Yc1tV6RHBrC1ynyLE9+TaflIAdo2MVv + KLMLq51GqYKtgJFIlBRPQqKoyXdz3fGvXrTkf/WY9QNq0J1Vk5ERePZ54mN8iZB7 + 9lwy/AkCgYEA6FXzosxswaJ2wQLeoYc7ceaweX/SwTvxHgXzRyJIIT0eJWgx13Wo + /WA3Iziimsjf6qE+SI/8laxPp2A86VMaIt3Z3mJN/CqSVGw8LK2AQst+OwdPyDMu + iacE8lj/IFGC8mwNUAb9CzGU3JpU4PxxGFjS/eMtGeRXCWkK4NE+G08CgYEA1Kp9 + N2JrVlqUz+gAX+LPmE9OEMAS9WQSQsfCHGogIFDGGcNf7+uwBM7GAaSJIP01zcoe + VAgWdzXCv3FLhsaZoJ6RyLOLay5phbu1iaTr4UNYm5WtYTzMzqh8l1+MFFDl9xDB + vULuCIIrglM5MeS/qnSg1uMoH2oVPj9TVst/ir8CgYEAxrI7Ws9Zc4Bt70N1As+U + lySjaEVZCMkqvHJ6TCuVZFfQoE0r0whdLdRLU2PsLFP+q7qaeZQqgBaNSKeVcDYR + 9B+nY/jOmQoPewPVsp/vQTCnE/R81spu0mp0YI6cIheT1Z9zAy322svcc43JaWB7 + mEbeqyLOP4Z4qSOcmghZBSECgYACvR9Xs0DGn+wCsW4vze/2ei77MD4OQvepPIFX + dFZtlBy5ADcgE9z0cuVB6CiL8DbdK5kwY9pGNr8HUCI03iHkW6Zs+0L0YmihfEVe + PG19PSzK9CaDdhD9KFZSbLyVFmWfxOt50H7YRTTiPMgjyFpfi5j2q348yVT0tEQS + fhRqaQKBgAcWPokmJ7EbYQGeMbS7HC8eWO/RyamlnSffdCdSc7ue3zdVJxpAkQ8W + qu80pEIF6raIQfAf8MXiiZ7auFOSnHQTXUbhCpvDLKi0Mwq3G8Pl07l+2s6dQG6T + lv6XTQaMyf6n1yjzL+fzDrH3qXMxHMO/b13EePXpDMpY7HQpoLDi + -----END RSA PRIVATE KEY----- + */ + custom_key?: string; + /** + * The time the custom certificate expires on. + * + * @example 2021-02-06T18:11:23.531995Z + * @format date-time + */ + expires_on?: string; + /** + * A list of Hostnames on a custom uploaded certificate. + * + * @example app.example.com + * @example *.app.example.com + */ + hosts?: any[]; + /** + * Custom hostname SSL identifier tag. + * + * @example 0d89c70d-ad9f-4843-b99f-6cc0252067e9 + * @maxLength 36 + * @minLength 36 + */ + id?: string; + /** + * The issuer on a custom uploaded certificate. + * + * @example DigiCertInc + */ + issuer?: string; + /** + * Domain control validation (DCV) method used for this hostname. + * + * @example txt + */ + method?: 'http' | 'txt' | 'email'; + /** + * The serial number on a custom uploaded certificate. + * + * @example 6743787633689793699141714808227354901 + */ + serial_number?: string; + settings?: Sslsettings; + /** + * The signature on a custom uploaded certificate. + * + * @example SHA256WithRSA + */ + signature?: string; + /** + * Status of the hostname's SSL certificates. + * + * @example pending_validation + */ + status?: + | 'initializing' + | 'pending_validation' + | 'deleted' + | 'pending_issuance' + | 'pending_deployment' + | 'pending_deletion' + | 'pending_expiration' + | 'expired' + | 'active' + | 'initializing_timed_out' + | 'validation_timed_out' + | 'issuance_timed_out' + | 'deployment_timed_out' + | 'deletion_timed_out' + | 'pending_cleanup' + | 'staging_deployment' + | 'staging_active' + | 'deactivating' + | 'inactive' + | 'backup_issued' + | 'holding_deployment'; + /** + * Level of validation to be used for this hostname. Domain validation (dv) must be used. + * + * @example dv + */ + type?: 'dv'; + /** + * The time the custom certificate was uploaded. + * + * @example 2020-02-06T18:11:23.531995Z + * @format date-time + */ + uploaded_on?: string; + /** + * Domain validation errors that have been received by the certificate authority (CA). + */ + validation_errors?: { + /** + * A domain validation error. + * + * @example SERVFAIL looking up CAA for app.example.com + */ + message?: string; + }[]; + validation_records?: ValidationRecord[]; + /** + * Indicates whether the certificate covers a wildcard. + * + * @example false + */ + wildcard?: boolean; +}; + +/** + * SSL encrypts your visitor's connection and safeguards credit card numbers and other personal data to and from your website. SSL can take up to 5 minutes to fully activate. Requires Cloudflare active on your root domain or www domain. Off: no SSL between the visitor and Cloudflare, and no SSL between Cloudflare and your web server (all HTTP traffic). Flexible: SSL between the visitor and Cloudflare -- visitor sees HTTPS on your site, but no SSL between Cloudflare and your web server. You don't need to have an SSL cert on your web server, but your vistors will still see the site as being HTTPS enabled. Full: SSL between the visitor and Cloudflare -- visitor sees HTTPS on your site, and SSL between Cloudflare and your web server. You'll need to have your own SSL cert or self-signed cert at the very least. Full (Strict): SSL between the visitor and Cloudflare -- visitor sees HTTPS on your site, and SSL between Cloudflare and your web server. You'll need to have a valid SSL certificate installed on your web server. This certificate must be signed by a certificate authority, have an expiration date in the future, and respond for the request domain name (hostname). (https://support.cloudflare.com/hc/en-us/articles/200170416). + */ +export type SslCvCTPIf1 = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example ssl + */ + id: 'ssl'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: SslValue; +}; + +/** + * SSL properties for the custom hostname. + */ +export type SslReUR6bMS = { + /** + * A ubiquitous bundle has the highest probability of being verified everywhere, even by clients using outdated or unusual trust stores. An optimal bundle uses the shortest chain and newest intermediates. And the force bundle verifies the chain, but does not otherwise modify it. + * + * @default ubiquitous + * @example ubiquitous + */ + bundle_method?: 'ubiquitous' | 'optimal' | 'force'; + /** + * The Certificate Authority that has issued this certificate. + * + * @example digicert + */ + certificate_authority?: 'digicert' | 'google' | 'lets_encrypt'; + /** + * If a custom uploaded certificate is used. + * + * @example -----BEGIN CERTIFICATE-----\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\n-----END CERTIFICATE-----\n + */ + custom_certificate?: string; + /** + * The identifier for the Custom CSR that was used. + * + * @example 7b163417-1d2b-4c84-a38a-2fb7a0cd7752 + */ + custom_csr_id?: string; + /** + * The key for a custom uploaded certificate. + * + * @example -----BEGIN RSA PRIVATE KEY----- + MIIEowIBAAKCAQEAwQHoetcl9+5ikGzV6cMzWtWPJHqXT3wpbEkRU9Yz7lgvddmG + dtcGbg/1CGZu0jJGkMoppoUo4c3dts3iwqRYmBikUP77wwY2QGmDZw2FvkJCJlKn + abIRuGvBKwzESIXgKk2016aTP6/dAjEHyo6SeoK8lkIySUvK0fyOVlsiEsCmOpid + tnKX/a+50GjB79CJH4ER2lLVZnhePFR/zUOyPxZQQ4naHf7yu/b5jhO0f8fwt+py + FxIXjbEIdZliWRkRMtzrHOJIhrmJ2A1J7iOrirbbwillwjjNVUWPf3IJ3M12S9pE + ewooaeO2izNTERcG9HzAacbVRn2Y2SWIyT/18QIDAQABAoIBACbhTYXBZYKmYPCb + HBR1IBlCQA2nLGf0qRuJNJZg5iEzXows/6tc8YymZkQE7nolapWsQ+upk2y5Xdp/ + axiuprIs9JzkYK8Ox0r+dlwCG1kSW+UAbX0bQ/qUqlsTvU6muVuMP8vZYHxJ3wmb + +ufRBKztPTQ/rYWaYQcgC0RWI20HTFBMxlTAyNxYNWzX7RKFkGVVyB9RsAtmcc8g + +j4OdosbfNoJPS0HeIfNpAznDfHKdxDk2Yc1tV6RHBrC1ynyLE9+TaflIAdo2MVv + KLMLq51GqYKtgJFIlBRPQqKoyXdz3fGvXrTkf/WY9QNq0J1Vk5ERePZ54mN8iZB7 + 9lwy/AkCgYEA6FXzosxswaJ2wQLeoYc7ceaweX/SwTvxHgXzRyJIIT0eJWgx13Wo + /WA3Iziimsjf6qE+SI/8laxPp2A86VMaIt3Z3mJN/CqSVGw8LK2AQst+OwdPyDMu + iacE8lj/IFGC8mwNUAb9CzGU3JpU4PxxGFjS/eMtGeRXCWkK4NE+G08CgYEA1Kp9 + N2JrVlqUz+gAX+LPmE9OEMAS9WQSQsfCHGogIFDGGcNf7+uwBM7GAaSJIP01zcoe + VAgWdzXCv3FLhsaZoJ6RyLOLay5phbu1iaTr4UNYm5WtYTzMzqh8l1+MFFDl9xDB + vULuCIIrglM5MeS/qnSg1uMoH2oVPj9TVst/ir8CgYEAxrI7Ws9Zc4Bt70N1As+U + lySjaEVZCMkqvHJ6TCuVZFfQoE0r0whdLdRLU2PsLFP+q7qaeZQqgBaNSKeVcDYR + 9B+nY/jOmQoPewPVsp/vQTCnE/R81spu0mp0YI6cIheT1Z9zAy322svcc43JaWB7 + mEbeqyLOP4Z4qSOcmghZBSECgYACvR9Xs0DGn+wCsW4vze/2ei77MD4OQvepPIFX + dFZtlBy5ADcgE9z0cuVB6CiL8DbdK5kwY9pGNr8HUCI03iHkW6Zs+0L0YmihfEVe + PG19PSzK9CaDdhD9KFZSbLyVFmWfxOt50H7YRTTiPMgjyFpfi5j2q348yVT0tEQS + fhRqaQKBgAcWPokmJ7EbYQGeMbS7HC8eWO/RyamlnSffdCdSc7ue3zdVJxpAkQ8W + qu80pEIF6raIQfAf8MXiiZ7auFOSnHQTXUbhCpvDLKi0Mwq3G8Pl07l+2s6dQG6T + lv6XTQaMyf6n1yjzL+fzDrH3qXMxHMO/b13EePXpDMpY7HQpoLDi + -----END RSA PRIVATE KEY----- + */ + custom_key?: string; + /** + * The time the custom certificate expires on. + * + * @example 2021-02-06T18:11:23.531995Z + * @format date-time + */ + expires_on?: string; + /** + * A list of Hostnames on a custom uploaded certificate. + * + * @example app.example.com + * @example *.app.example.com + */ + hosts?: any[]; + /** + * Custom hostname SSL identifier tag. + * + * @example 0d89c70d-ad9f-4843-b99f-6cc0252067e9 + * @maxLength 36 + * @minLength 36 + */ + id?: string; + /** + * The issuer on a custom uploaded certificate. + * + * @example DigiCertInc + */ + issuer?: string; + /** + * Domain control validation (DCV) method used for this hostname. + * + * @example txt + */ + method?: 'http' | 'txt' | 'email'; + /** + * The serial number on a custom uploaded certificate. + * + * @example 6743787633689793699141714808227354901 + */ + serial_number?: string; + settings?: Sslsettings; + /** + * The signature on a custom uploaded certificate. + * + * @example SHA256WithRSA + */ + signature?: string; + /** + * Status of the hostname's SSL certificates. + * + * @example pending_validation + */ + status?: + | 'initializing' + | 'pending_validation' + | 'deleted' + | 'pending_issuance' + | 'pending_deployment' + | 'pending_deletion' + | 'pending_expiration' + | 'expired' + | 'active' + | 'initializing_timed_out' + | 'validation_timed_out' + | 'issuance_timed_out' + | 'deployment_timed_out' + | 'deletion_timed_out' + | 'pending_cleanup' + | 'staging_deployment' + | 'staging_active' + | 'deactivating' + | 'inactive' + | 'backup_issued' + | 'holding_deployment'; + /** + * Level of validation to be used for this hostname. Domain validation (dv) must be used. + * + * @example dv + */ + type?: 'dv'; + /** + * The time the custom certificate was uploaded. + * + * @example 2020-02-06T18:11:23.531995Z + * @format date-time + */ + uploaded_on?: string; + /** + * Domain validation errors that have been received by the certificate authority (CA). + */ + validation_errors?: { + /** + * A domain validation error. + * + * @example SERVFAIL looking up CAA for app.example.com + */ + message?: string; + }[]; + validation_records?: ValidationRecord[]; + /** + * Indicates whether the certificate covers a wildcard. + * + * @example false + */ + wildcard?: boolean; +}; + +/** + * @example strict + */ +export type SslRecommenderComponentsSchemasValue = 'flexible' | 'full' | 'strict'; + +/** + * Enrollment in the SSL/TLS Recommender service which tries to detect and recommend (by sending periodic emails) the most secure SSL/TLS setting your origin servers support. + */ +export type SslRecommender = { + enabled?: SslRecommenderEnabled; + /** + * Enrollment value for SSL/TLS Recommender. + * + * @example ssl_recommender + */ + id?: 'ssl_recommender'; + editable?: Editable; + modified_on?: ModifiedOnDrYUvDnK; +}; + +/** + * ssl-recommender enrollment setting. + * + * @default false + */ +export type SslRecommenderEnabled = boolean; + +export type SslUniversalSettingsResponse = ApiResponseSingleZZHeSkIR & { + result?: Universal; +}; + +export type SslUniversalSettingsResponseIrXB89fE = ApiResponseSingleLarS7owG & { + result?: Universal; +}; + +export type SslValidationMethodResponseCollection = ApiResponseSingleZZHeSkIR & { + result?: { + status?: ValidationMethodComponentsSchemasStatus; + validation_method?: ValidationMethodDefinition; + }; +}; + +export type SslValidationMethodResponseCollectionRqiHfQar = ApiResponseSingleLarS7owG & { + result?: { + status?: ValidationMethodComponentsSchemasStatus; + validation_method?: ValidationMethodDefinition; + }; +}; + +/** + * Value of the zone setting. + * Notes: Depends on the zone's plan level + * + * @default off + */ +export type SslValue = 'off' | 'flexible' | 'full' | 'strict'; + +export type SslVerificationResponseCollection = { + result?: Verification[]; +}; + +/** + * SSL properties used when creating the custom hostname. + */ +export type Sslpost = { + /** + * A ubiquitous bundle has the highest probability of being verified everywhere, even by clients using outdated or unusual trust stores. An optimal bundle uses the shortest chain and newest intermediates. And the force bundle verifies the chain, but does not otherwise modify it. + * + * @default ubiquitous + * @example ubiquitous + */ + bundle_method?: 'ubiquitous' | 'optimal' | 'force'; + certificate_authority?: CertificateAuthority; + /** + * If a custom uploaded certificate is used. + * + * @example -----BEGIN CERTIFICATE-----\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\n-----END CERTIFICATE-----\n + */ + custom_certificate?: string; + /** + * The key for a custom uploaded certificate. + * + * @example -----BEGIN RSA PRIVATE KEY----- + MIIEowIBAAKCAQEAwQHoetcl9+5ikGzV6cMzWtWPJHqXT3wpbEkRU9Yz7lgvddmG + dtcGbg/1CGZu0jJGkMoppoUo4c3dts3iwqRYmBikUP77wwY2QGmDZw2FvkJCJlKn + abIRuGvBKwzESIXgKk2016aTP6/dAjEHyo6SeoK8lkIySUvK0fyOVlsiEsCmOpid + tnKX/a+50GjB79CJH4ER2lLVZnhePFR/zUOyPxZQQ4naHf7yu/b5jhO0f8fwt+py + FxIXjbEIdZliWRkRMtzrHOJIhrmJ2A1J7iOrirbbwillwjjNVUWPf3IJ3M12S9pE + ewooaeO2izNTERcG9HzAacbVRn2Y2SWIyT/18QIDAQABAoIBACbhTYXBZYKmYPCb + HBR1IBlCQA2nLGf0qRuJNJZg5iEzXows/6tc8YymZkQE7nolapWsQ+upk2y5Xdp/ + axiuprIs9JzkYK8Ox0r+dlwCG1kSW+UAbX0bQ/qUqlsTvU6muVuMP8vZYHxJ3wmb + +ufRBKztPTQ/rYWaYQcgC0RWI20HTFBMxlTAyNxYNWzX7RKFkGVVyB9RsAtmcc8g + +j4OdosbfNoJPS0HeIfNpAznDfHKdxDk2Yc1tV6RHBrC1ynyLE9+TaflIAdo2MVv + KLMLq51GqYKtgJFIlBRPQqKoyXdz3fGvXrTkf/WY9QNq0J1Vk5ERePZ54mN8iZB7 + 9lwy/AkCgYEA6FXzosxswaJ2wQLeoYc7ceaweX/SwTvxHgXzRyJIIT0eJWgx13Wo + /WA3Iziimsjf6qE+SI/8laxPp2A86VMaIt3Z3mJN/CqSVGw8LK2AQst+OwdPyDMu + iacE8lj/IFGC8mwNUAb9CzGU3JpU4PxxGFjS/eMtGeRXCWkK4NE+G08CgYEA1Kp9 + N2JrVlqUz+gAX+LPmE9OEMAS9WQSQsfCHGogIFDGGcNf7+uwBM7GAaSJIP01zcoe + VAgWdzXCv3FLhsaZoJ6RyLOLay5phbu1iaTr4UNYm5WtYTzMzqh8l1+MFFDl9xDB + vULuCIIrglM5MeS/qnSg1uMoH2oVPj9TVst/ir8CgYEAxrI7Ws9Zc4Bt70N1As+U + lySjaEVZCMkqvHJ6TCuVZFfQoE0r0whdLdRLU2PsLFP+q7qaeZQqgBaNSKeVcDYR + 9B+nY/jOmQoPewPVsp/vQTCnE/R81spu0mp0YI6cIheT1Z9zAy322svcc43JaWB7 + mEbeqyLOP4Z4qSOcmghZBSECgYACvR9Xs0DGn+wCsW4vze/2ei77MD4OQvepPIFX + dFZtlBy5ADcgE9z0cuVB6CiL8DbdK5kwY9pGNr8HUCI03iHkW6Zs+0L0YmihfEVe + PG19PSzK9CaDdhD9KFZSbLyVFmWfxOt50H7YRTTiPMgjyFpfi5j2q348yVT0tEQS + fhRqaQKBgAcWPokmJ7EbYQGeMbS7HC8eWO/RyamlnSffdCdSc7ue3zdVJxpAkQ8W + qu80pEIF6raIQfAf8MXiiZ7auFOSnHQTXUbhCpvDLKi0Mwq3G8Pl07l+2s6dQG6T + lv6XTQaMyf6n1yjzL+fzDrH3qXMxHMO/b13EePXpDMpY7HQpoLDi + -----END RSA PRIVATE KEY----- + */ + custom_key?: string; + /** + * Domain control validation (DCV) method used for this hostname. + * + * @example http + */ + method?: 'http' | 'txt' | 'email'; + settings?: Sslsettings; + /** + * Level of validation to be used for this hostname. Domain validation (dv) must be used. + * + * @example dv + */ + type?: 'dv'; + /** + * Indicates whether the certificate covers a wildcard. + * + * @example false + */ + wildcard?: boolean; +}; + +/** + * SSL properties used when creating the custom hostname. + */ +export type Sslpost65QZWRdf = { + /** + * A ubiquitous bundle has the highest probability of being verified everywhere, even by clients using outdated or unusual trust stores. An optimal bundle uses the shortest chain and newest intermediates. And the force bundle verifies the chain, but does not otherwise modify it. + * + * @default ubiquitous + * @example ubiquitous + */ + bundle_method?: 'ubiquitous' | 'optimal' | 'force'; + /** + * If a custom uploaded certificate is used. + * + * @example -----BEGIN CERTIFICATE-----\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\n-----END CERTIFICATE-----\n + */ + custom_certificate?: string; + /** + * The key for a custom uploaded certificate. + * + * @example -----BEGIN RSA PRIVATE KEY----- + MIIEowIBAAKCAQEAwQHoetcl9+5ikGzV6cMzWtWPJHqXT3wpbEkRU9Yz7lgvddmG + dtcGbg/1CGZu0jJGkMoppoUo4c3dts3iwqRYmBikUP77wwY2QGmDZw2FvkJCJlKn + abIRuGvBKwzESIXgKk2016aTP6/dAjEHyo6SeoK8lkIySUvK0fyOVlsiEsCmOpid + tnKX/a+50GjB79CJH4ER2lLVZnhePFR/zUOyPxZQQ4naHf7yu/b5jhO0f8fwt+py + FxIXjbEIdZliWRkRMtzrHOJIhrmJ2A1J7iOrirbbwillwjjNVUWPf3IJ3M12S9pE + ewooaeO2izNTERcG9HzAacbVRn2Y2SWIyT/18QIDAQABAoIBACbhTYXBZYKmYPCb + HBR1IBlCQA2nLGf0qRuJNJZg5iEzXows/6tc8YymZkQE7nolapWsQ+upk2y5Xdp/ + axiuprIs9JzkYK8Ox0r+dlwCG1kSW+UAbX0bQ/qUqlsTvU6muVuMP8vZYHxJ3wmb + +ufRBKztPTQ/rYWaYQcgC0RWI20HTFBMxlTAyNxYNWzX7RKFkGVVyB9RsAtmcc8g + +j4OdosbfNoJPS0HeIfNpAznDfHKdxDk2Yc1tV6RHBrC1ynyLE9+TaflIAdo2MVv + KLMLq51GqYKtgJFIlBRPQqKoyXdz3fGvXrTkf/WY9QNq0J1Vk5ERePZ54mN8iZB7 + 9lwy/AkCgYEA6FXzosxswaJ2wQLeoYc7ceaweX/SwTvxHgXzRyJIIT0eJWgx13Wo + /WA3Iziimsjf6qE+SI/8laxPp2A86VMaIt3Z3mJN/CqSVGw8LK2AQst+OwdPyDMu + iacE8lj/IFGC8mwNUAb9CzGU3JpU4PxxGFjS/eMtGeRXCWkK4NE+G08CgYEA1Kp9 + N2JrVlqUz+gAX+LPmE9OEMAS9WQSQsfCHGogIFDGGcNf7+uwBM7GAaSJIP01zcoe + VAgWdzXCv3FLhsaZoJ6RyLOLay5phbu1iaTr4UNYm5WtYTzMzqh8l1+MFFDl9xDB + vULuCIIrglM5MeS/qnSg1uMoH2oVPj9TVst/ir8CgYEAxrI7Ws9Zc4Bt70N1As+U + lySjaEVZCMkqvHJ6TCuVZFfQoE0r0whdLdRLU2PsLFP+q7qaeZQqgBaNSKeVcDYR + 9B+nY/jOmQoPewPVsp/vQTCnE/R81spu0mp0YI6cIheT1Z9zAy322svcc43JaWB7 + mEbeqyLOP4Z4qSOcmghZBSECgYACvR9Xs0DGn+wCsW4vze/2ei77MD4OQvepPIFX + dFZtlBy5ADcgE9z0cuVB6CiL8DbdK5kwY9pGNr8HUCI03iHkW6Zs+0L0YmihfEVe + PG19PSzK9CaDdhD9KFZSbLyVFmWfxOt50H7YRTTiPMgjyFpfi5j2q348yVT0tEQS + fhRqaQKBgAcWPokmJ7EbYQGeMbS7HC8eWO/RyamlnSffdCdSc7ue3zdVJxpAkQ8W + qu80pEIF6raIQfAf8MXiiZ7auFOSnHQTXUbhCpvDLKi0Mwq3G8Pl07l+2s6dQG6T + lv6XTQaMyf6n1yjzL+fzDrH3qXMxHMO/b13EePXpDMpY7HQpoLDi + -----END RSA PRIVATE KEY----- + */ + custom_key?: string; + /** + * Domain control validation (DCV) method used for this hostname. + * + * @example http + */ + method?: 'http' | 'txt' | 'email'; + settings?: Sslsettings; + /** + * Level of validation to be used for this hostname. Domain validation (dv) must be used. + * + * @example dv + */ + type?: 'dv'; + /** + * Indicates whether the certificate covers a wildcard. + * + * @example false + */ + wildcard?: boolean; +}; + +/** + * SSL specific settings. + */ +export type Sslsettings = { + /** + * An allowlist of ciphers for TLS termination. These ciphers must be in the BoringSSL format. + * + * @example ECDHE-RSA-AES128-GCM-SHA256 + * @example AES128-SHA + * @uniqueItems true + */ + ciphers?: string[]; + /** + * Whether or not Early Hints is enabled. + * + * @example on + */ + early_hints?: 'on' | 'off'; + /** + * Whether or not HTTP2 is enabled. + * + * @example on + */ + http2?: 'on' | 'off'; + /** + * The minimum TLS version supported. + * + * @example 1.2 + */ + min_tls_version?: '1.0' | '1.1' | '1.2' | '1.3'; + /** + * Whether or not TLS 1.3 is enabled. + * + * @example on + */ + tls_1_3?: 'on' | 'off'; +}; + +/** + * The status of the deployment. + */ +export type Stage = { + /** + * When the stage ended. + * + * @example 2021-03-09T00:58:59.045655 + * @format date-time + */ + ended_on?: string | null; + /** + * The current build stage. + * + * @example deploy + * @pattern queued|initialize|clone_repo|build|deploy + */ + name?: string; + /** + * When the stage started. + * + * @example 2021-03-09T00:55:03.923456Z + * @format date-time + */ + started_on?: string | null; + /** + * State of the current stage. + * + * @example success + * @pattern success|idle|active|failure|canceled + */ + status?: string; +}; + +export type StartEndParams = { + /** + * Defaults to the current date. + * + * @example 2021-04-30 + * @format date + */ + end?: string; + /** + * Defaults to 30 days before the end parameter value. + * + * @example 2021-04-01 + * @format date + */ + start?: string; +}; + +/** + * Specifies the start time for the video clip in seconds. + */ +export type StartTimeSeconds = number; + +/** + * State, provided by the CSR + * + * @example CA + */ +export type State = string; + +/** + * The state that the subscription is in. + * + * @example Paid + */ +export type State1Ns5GX0q = 'Trial' | 'Provisioned' | 'Paid' | 'AwaitingPayment' | 'Cancelled' | 'Failed' | 'Expired'; + +/** + * The current status of the origin server according to the health check. + * + * @example healthy + */ +export type Status = 'unknown' | 'healthy' | 'unhealthy' | 'suspended'; + +/** + * Status of the token. + * + * @example active + */ +export type Status0icsKVdQ = 'active' | 'disabled' | 'expired'; + +/** + * Status of the zone's custom SSL. + * + * @example active + */ +export type Status6huN0ErS = 'active' | 'expired' | 'deleted' | 'pending' | 'initializing'; + +/** + * Status of DNSSEC, based on user-desired state and presence of necessary records. + * + * @example active + */ +export type Status7l7v1BCo = 'active' | 'pending' | 'disabled' | 'pending-disabled' | 'error'; + +/** + * @example queueing + */ +export type StatusCIis1Eze = 'event_prequeueing' | 'not_queueing' | 'queueing'; + +/** + * The status of the Page Rule. + * + * @default disabled + * @example active + */ +export type StatusLJNunJhf = 'active' | 'disabled'; + +/** + * @example 25756b2dfe6e378a06b033b670413757 + */ +export type StatusEventId = string; + +export type StatusResponse = ApiResponseSinglePn9rJJNX & { + result?: { + estimated_queued_users?: EstimatedQueuedUsers; + estimated_total_active_users?: EstimatedTotalActiveUsers; + event_id?: StatusEventId; + max_estimated_time_minutes?: MaxEstimatedTimeMinutes; + status?: StatusCIis1Eze; + }; +}; + +/** + * Standard deviation of the RTTs in ms. + */ +export type StdDevRttMs = number; + +/** + * Steering Policy for this load balancer. + * - `"off"`: Use `default_pools`. + * - `"geo"`: Use `region_pools`/`country_pools`/`pop_pools`. For non-proxied requests, the country for `country_pools` is determined by `location_strategy`. + * - `"random"`: Select a pool randomly. + * - `"dynamic_latency"`: Use round trip time to select the closest pool in default_pools (requires pool health checks). + * - `"proximity"`: Use the pools' latitude and longitude to select the closest pool using the Cloudflare PoP location for proxied requests or the location determined by `location_strategy` for non-proxied requests. + * - `""`: Will map to `"geo"` if you use `region_pools`/`country_pools`/`pop_pools` otherwise `"off"`. + * + * @default "" + * @example dynamic_latency + */ +export type SteeringPolicy = 'off' | 'geo' | 'random' | 'dynamic_latency' | 'proximity' | '""'; + +/** + * STIX 2.1 identifier: https://docs.oasis-open.org/cti/stix/v2.1/cs02/stix-v2.1-cs02.html#_64yvzeku5a5c + * + * @example ipv4-addr--baa568ec-6efe-5902-be55-0663833db537 + */ +export type StixIdentifier = string; + +/** + * String constraint. + */ +export type StringConstraint = { + /** + * The matches operator can use asterisks and pipes as wildcard and 'or' operators. + * + * @default contains + */ + operator: 'matches' | 'contains' | 'equals' | 'not_equal' | 'not_contain'; + /** + * The value to apply the operator to. + */ + value: string; +}; + +export type Subcategory = { + beta?: Beta; + ['class']?: Class; + description?: ComponentsSchemasDescriptionDHTB25HG; + id?: IdWr4kBzDa; + name?: CategoriesComponentsSchemasName; +}; + +/** + * Two-letter subdivision code followed in ISO 3166-2. + * + * @example CA + */ +export type SubdivisionCodeA2 = string; + +/** + * The DNS Over HTTPS domain to send DNS requests to. (auto-generated). + * + * @example oli3n9zkz5 + */ +export type Subdomain = string; + +export type SubdomainResponse = { + errors: Messages; + messages: Messages; + result: + | { + name?: void; + } + | any[] + | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type Subscription = SubscriptionV2; + +export type SubscriptionV2 = { + app?: { + install_id?: InstallId; + }; + component_values?: ComponentValues; + currency?: Currency; + current_period_end?: CurrentPeriodEnd; + current_period_start?: CurrentPeriodStart; + frequency?: FrequencyATMhv5XI; + id?: SubscriptionV2ComponentsSchemasIdentifier; + price?: Price; + rate_plan?: RatePlan; + state?: State1Ns5GX0q; + zone?: ZoneEBDuGM7t; +}; + +/** + * Subscription identifier tag. + * + * @example 506e3185e9c882d175a2d0cb0093d9f2 + * @maxLength 32 + */ +export type SubscriptionV2ComponentsSchemasIdentifier = string; + +/** + * The suggested threshold in requests done by the same auth_id or period_seconds. + */ +export type SuggestedThreshold = number; + +/** + * The URL to launch when the Send Feedback button is clicked. + * + * @example https://1.1.1.1/help + */ +export type SupportUrl = string; + +/** + * Whether a particular TLD is currently supported by Cloudflare Registrar. Refer to [TLD Policies](https://www.cloudflare.com/tld-policies/) for a list of supported TLDs. + * + * @example true + */ +export type SupportedTld = boolean; + +/** + * If suspended, no health checks are sent to the origin. + * + * @default false + */ +export type Suspended = boolean; + +/** + * Suspends or allows traffic going to the waiting room. If set to `true`, the traffic will not go to the waiting room. + * + * @default false + */ +export type SuspendedW815GHPM = boolean; + +/** + * Whether to allow the user to turn off the WARP switch and disconnect the client. + * + * @example true + */ +export type SwitchLocked = boolean; + +/** + * Whether to match all tag search requirements or at least one (any). If set to `all`, acts like a logical AND between tag filters. If set to `any`, acts like a logical OR instead. Note that the regular `match` parameter is still used to combine the resulting condition with other filters that aren't related to tags. + * + * @default all + * @example any + */ +export type TagMatch = 'any' | 'all'; + +/** + * Custom tags for the DNS record. This field has no effect on DNS responses. + */ +export type Tags = string[]; + +export type TailResponse = { + errors: Messages; + messages: Messages; + result: + | { + expires_at?: void; + id?: void; + url?: void; + } + | any[] + | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +/** + * A request condition target. + */ +export type Target = UrlTarget; + +/** + * The target hostname, IPv6, or IPv6 address. + * + * @example 1.1.1.1 + */ +export type TargetZsQmEMN8 = string; + +export type TargetResult = { + colos?: ColoResult[]; + target?: TargetZsQmEMN8; +}; + +/** + * Aggregated statistics from all hops about the target. + * + * @example {"asn":"","ip":"1.1.1.1","max_latency_ms":0.034,"mean_latency_ms":0.021,"min_latency_ms":0.014,"name":"1.1.1.1","packet_count":3,"std_dev_latency_ms":0.011269427669584647} + */ +export type TargetSummary = Record; + +/** + * The rule targets to evaluate on each request. + * + * @example {"constraint":{"operator":"matches","value":"*example.com/images/*"},"target":"url"} + */ +export type Targets = Target[]; + +/** + * @example 203.0.113.1 + * @example cloudflare.com + * @maxLength 10 + */ +export type TargetsGoMQUMPo = string[]; + +/** + * Parameters specific to TCP health check. + */ +export type TcpConfig = { + /** + * The TCP connection method to use for the health check. + * + * @default connection_established + */ + method?: 'connection_established'; + /** + * Port number to connect to for the health check. Defaults to 80. + * + * @default 80 + */ + port?: number; +} | null; + +export type Teamnet = { + comment: CommentCrz1ciLB; + /** + * Timestamp of when the route was created. + */ + created_at: void; + /** + * Timestamp of when the route was deleted. If `null`, the route has not been deleted. + * + * @example 2021-01-25T18:22:34.317854Z + * @format date-time + */ + deleted_at?: string | null; + network: IpNetwork; + tunnel_id: SchemasTunnelId; + tunnel_name?: SchemasTunnelName; + virtual_network_id?: SchemasVirtualNetworkId; +}; + +/** + * @example 10.1.0.137 + */ +export type TeamnetComponentsSchemasIp = string; + +/** + * User's telephone number + * + * @example +1 123-123-1234 + * @maxLength 20 + */ +export type Telephone = string | null; + +export type TestConnectionProperties = { + /** + * Hash version of body. + * + * @example be27f2429421e12f200cab1da43ba301bdc70e1d + */ + body_hash?: string; + /** + * Size of the body in bytes. + * + * @example 63910 bytes + */ + body_size?: string; + /** + * Lists any `cf-cache-status` present. + */ + ['cf-cache-status']?: string; + /** + * Lists any `cf-ray` present. + * + * @example 1ddd7570575207d9-LAX + */ + ['cf-ray']?: string; + /** + * Lists any `cf-wan-error` present. + */ + ['cf-wan-error']?: string; + /** + * Whether Cloudflare is enabled on the host. + * + * @example on + */ + cloudflare?: string; + /** + * Connection closed or open. + * + * @default true + * @example false + */ + connection_close?: boolean; + /** + * Amount of seconds that the test lasted. + * + * @example 0.239013s + */ + elapsed_time?: string; + /** + * The hostname queried. + * + * @example www.example.com + */ + host_name?: string; + /** + * The HTTP status response code. + * + * @example 200 + */ + http_status?: number; + /** + * HTTP Method used to test the connection. + * + * @example GET + */ + method?: 'GET' | 'POST'; + /** + * What headers are missing. + * + * @example No Content-Length or Transfer-Encoding. + */ + missing_headers?: string; + /** + * Protocol used to test the connection. + * + * @example HTTP/1.1 + */ + protocol?: string; + /** + * Indicates if Railgun is enabled on the queried hostname. + * + * @example on + */ + railgun?: string; + /** + * HTTP Status code. + * + * @example 200 OK + */ + response_status?: string; + /** + * Url of the domain you can compare the connection to. + * + * @example https://www.cloudflare.com + */ + url?: string; +}; + +export type TestConnectionResponse = ApiResponseSingleLarS7owG & { + result?: TestConnectionProperties; +}; + +/** + * Breakdown of totals for threats. + */ +export type Threats = { + /** + * The total number of identifiable threats received over the time frame. + */ + all?: number; + /** + * A list of key/value pairs where the key is a two-digit country code and the value is the number of malicious requests received from that country. + * + * @example {"AU":91,"CN":523423,"US":123} + */ + country?: Record; + /** + * The list of key/value pairs where the key is a threat category and the value is the number of requests. + * + * @example {"hot.ban.unknown":5324,"macro.chl.captchaErr":1341,"macro.chl.jschlErr":5323,"user.ban.ip":123} + */ + type?: Record; +}; + +/** + * The threshold that will trigger the configured mitigation action. Configure this value along with the `period` property to establish a threshold per period. + * + * @example 60 + * @minimum 1 + */ +export type Threshold = number; + +export type Thresholds = { + thresholds?: { + auth_id_tokens?: AuthIdTokens; + data_points?: DataPoints; + last_updated?: Timestamp; + p50?: P50; + p90?: P90; + p99?: P99; + period_seconds?: PeriodSeconds; + requests?: Requests; + suggested_threshold?: SuggestedThreshold; + }; +}; + +/** + * The timestamp for a thumbnail image calculated as a percentage value of the video's duration. To convert from a second-wise timestamp to a percentage, divide the desired timestamp by the total duration of the video. If this value is not set, the default thumbnail image is taken from 0s of the video. + * + * @default 0 + * @example 0.529241 + * @maximum 1 + * @minimum 0 + */ +export type ThumbnailTimestampPct = number; + +/** + * The media item's thumbnail URI. This field is omitted until encoding is complete. + * + * @example https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/thumbnails/thumbnail.jpg + * @format uri + */ +export type ThumbnailUrl = string; + +/** + * URI to thumbnail variant for an image. + * + * @example https://imagedelivery.net/MTt4OTd0b0w5aj/107b9558-dd06-4bbd-5fef-9c2c16bb7900/thumbnail + * @format uri + */ +export type ThumbnailUrlWiwugRbe = string; + +/** + * Enables Tiered Cache. + * + * @example on + */ +export type TieredCacheSmartTopologyApiComponentsSchemasValue = 'on' | 'off'; + +/** + * The time for a specific event. + * + * @example 2019-10-24T17:09:42.883908+01:00 + */ +export type Time = string; + +/** + * Unit of time to group data by. + * + * @example hour + */ +export type TimeDelta = + | 'all' + | 'auto' + | 'year' + | 'quarter' + | 'month' + | 'week' + | 'day' + | 'hour' + | 'dekaminute' + | 'minute'; + +/** + * The timeout (in seconds) before marking the health check as failed. + * + * @default 5 + */ +export type Timeout = number; + +/** + * The time in seconds during which Cloudflare will perform the mitigation action. Must be an integer value greater than or equal to the period. + * Notes: If "mode" is "challenge", "managed_challenge", or "js_challenge", Cloudflare will use the zone's Challenge Passage time and you should not provide this value. + * + * @example 86400 + * @maximum 86400 + * @minimum 1 + */ +export type TimeoutHaHBovKX = number; + +/** + * Time deltas containing metadata about each bucket of time. The number of buckets (resolution) is determined by the amount of time between the since and until parameters. + */ +export type Timeseries = { + bandwidth?: Bandwidth; + pageviews?: Pageviews; + requests?: SchemasRequests; + since?: SinceO1OWzWkU; + threats?: Threats; + uniques?: Uniques; + until?: UntilOh0IDugA; +}[]; + +/** + * Time deltas containing metadata about each bucket of time. The number of buckets (resolution) is determined by the amount of time between the since and until parameters. + */ +export type TimeseriesByColo = { + bandwidth?: BandwidthByColo; + requests?: RequestsByColo; + since?: SinceO1OWzWkU; + threats?: Threats; + until?: UntilOh0IDugA; +}[]; + +/** + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ +export type Timestamp = string; + +/** + * By default, timestamps in responses are returned as Unix nanosecond integers. The `?timestamps=` argument can be set to change the format in which response timestamps are returned. Possible values are: `unix`, `unixnano`, `rfc3339`. Note that `unix` and `unixnano` return timestamps as integers; `rfc3339` returns timestamps as strings. + * + * @default unixnano + * @example unixnano + */ +export type Timestamps = 'unix' | 'unixnano' | 'rfc3339'; + +/** + * The type of TLS termination associated with the application. + * + * @example full + */ +export type Tls = 'off' | 'flexible' | 'full' | 'strict'; + +/** + * TLS interception settings. + */ +export type TlsSettings = { + /** + * Enable inspecting encrypted HTTP traffic. + * + * @example true + */ + enabled?: boolean; +}; + +/** + * Only allows TLS1.2. + */ +export type Tls12Only = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * Zone setting identifier. + * + * @example tls_1_2_only + */ + id: 'tls_1_2_only'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: Tls12OnlyValue; +}; + +/** + * Value of the zone setting. + * + * @default off + */ +export type Tls12OnlyValue = 'off' | 'on'; + +/** + * Enables Crypto TLS 1.3 feature for a zone. + * + * @default off + */ +export type Tls13 = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example tls_1_3 + */ + id: 'tls_1_3'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: Tls13Value; +}; + +/** + * Value of the zone setting. + * Notes: Default value depends on the zone's plan level. + * + * @default off + */ +export type Tls13Value = 'on' | 'off' | 'zrt'; + +/** + * TLS Client Auth requires Cloudflare to connect to your origin server using a client certificate (Enterprise Only). + */ +export type TlsClientAuth = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example tls_client_auth + */ + id: 'tls_client_auth'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: TlsClientAuthValue; +}; + +/** + * value of the zone setting. + * + * @default on + */ +export type TlsClientAuthValue = 'on' | 'off'; + +export type TlsConfigRequest = { + /** + * The SHA-256 hash of the TLS certificate presented by the host found at tls_sockaddr. If absent, regular certificate verification (trusted roots, valid timestamp, etc) will be used to validate the certificate. + * + * @example b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c + */ + sha256?: string; + /** + * A network address of the form "host:port" that the WARP client will use to detect the presence of a TLS host. + * + * @example foobar:1234 + */ + tls_sockaddr: string; +}; + +/** + * The Managed Network TLS Config Response. + */ +export type TlsConfigResponse = { + /** + * The SHA-256 hash of the TLS certificate presented by the host found at tls_sockaddr. If absent, regular certificate verification (trusted roots, valid timestamp, etc) will be used to validate the certificate. + * + * @example b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c + */ + sha256?: string; + /** + * A network address of the form "host:port" that the WARP client will use to detect the presence of a TLS host. + * + * @example foobar:1234 + */ + tls_sockaddr: string; +}; + +export type Token = { + condition?: Condition; + expires_on?: ExpiresOnZ3utPxP0; + id: ComponentsSchemasIdentifierUpjmfntS; + issued_on?: IssuedOnHmshAtfd; + modified_on?: ModifiedOnSimuKuKK; + name: NameZZnqpiZc; + not_before?: NotBefore; + policies: PoliciesJfEKIGCD; + status: Status0icsKVdQ; +}; + +/** + * Sets the total number of active user sessions on the route at a point in time. A route is a combination of host and path on which a waiting room is available. This value is used as a baseline for the total number of active user sessions on the route. It is possible to have a situation where there are more or less active users sessions on the route based on the traffic patterns at that time around the world. + * + * @maximum 2147483647 + * @minimum 200 + */ +export type TotalActiveUsers = number; + +export type TotalTlsSettingsResponse = ApiResponseSingleZZHeSkIR & { + result?: { + certificate_authority?: ComponentsSchemasCertificateAuthority; + enabled?: ComponentsSchemasEnabled; + validity_days?: SchemasValidityDays; + }; +}; + +export type TotalTlsSettingsResponseKBGe6kc6 = ApiResponseSingleLarS7owG & { + result?: { + certificate_authority?: SchemasCertificateAuthorityNfQsLnVr; + enabled?: ComponentsSchemasEnabled; + validity_days?: SchemasValidityDays; + }; +}; + +/** + * Breakdown of totals by data type. + */ +export type Totals = { + bandwidth?: Bandwidth; + pageviews?: Pageviews; + requests?: SchemasRequests; + since?: SinceO1OWzWkU; + threats?: Threats; + uniques?: Uniques; + until?: UntilOh0IDugA; +}; + +/** + * Breakdown of totals by data type. + */ +export type TotalsByColo = { + bandwidth?: BandwidthByColo; + requests?: RequestsByColo; + since?: SinceO1OWzWkU; + threats?: Threats; + until?: UntilOh0IDugA; +}; + +export type Trace = { + /** + * If step type is rule, then action performed by this rule + * + * @example execute + * @pattern ^[a-z_]+$ + */ + action?: string; + /** + * If step type is rule, then action parameters of this rule as JSON + * + * @example {"id":"4814384a9e5d4991b9815dcfc25d2f1f"} + */ + action_parameters?: Record; + /** + * If step type is rule or ruleset, the description of this entity + * + * @example some rule + */ + description?: string; + /** + * If step type is rule, then expression used to match for this rule + * + * @example ip.src ne 1.1.1.1 + */ + expression?: string; + /** + * If step type is ruleset, then kind of this ruleset + * + * @example zone + */ + kind?: string; + /** + * Whether tracing step affected tracing request/response + * + * @example true + */ + matched?: boolean; + /** + * If step type is ruleset, then name of this ruleset + * + * @example some ruleset name + */ + name?: string; + /** + * Tracing step identifying name + * + * @example rule_id01 + */ + step_name?: string; + trace?: Trace; + /** + * Tracing step type + * + * @example rule + */ + type?: string; +}[]; + +/** + * IP address of the node. + */ +export type TracerouteComponentsSchemasIp = string; + +/** + * Host name of the address, this may be the same as the IP address. + */ +export type TracerouteComponentsSchemasName = string; + +/** + * For UDP and TCP, specifies the destination port. For ICMP, specifies the initial ICMP sequence value. Default value 0 will choose the best value to use for each protocol. + * + * @default 0 + * @maximum 65535 + * @minimum 0 + */ +export type TracerouteComponentsSchemasPort = number; + +export type TracerouteResponseCollection = ApiResponseCollection & { + result?: TargetResult[]; +}; + +/** + * Total time of traceroute in ms. + */ +export type TracerouteTimeMs = number; + +/** + * When triggered, traditional WAF rules cause the firewall to immediately act on the request based on the rule configuration. An 'allow' rule will immediately allow the request and no other rules will be processed. + */ +export type TraditionalAllowRule = RuleComponentsSchemasBase2 & { + allowed_modes?: AllowedModesAllowTraditional; + mode?: ModeAllowTraditional; +}; + +/** + * When triggered, traditional WAF rules cause the firewall to immediately act upon the request based on the configuration of the rule. A 'deny' rule will immediately respond to the request based on the configured rule action/mode (for example, 'block') and no other rules will be processed. + */ +export type TraditionalDenyRule = RuleComponentsSchemasBase2 & { + allowed_modes?: AllowedModesDenyTraditional; + default_mode?: DefaultMode; + mode?: ModeDenyTraditional; +}; + +/** + * The wirefilter expression to be used for traffic matching. + * + * @example http.request.uri matches ".*a/partial/uri.*" and http.request.host in $01302951-49f9-47c9-a400-0297e60b6a10 + */ +export type Traffic = string; + +/** + * Determines how data travels from the edge to your origin. When set to "direct", Spectrum will send traffic directly to your origin, and the application's type is derived from the `protocol`. When set to "http" or "https", Spectrum will apply Cloudflare's HTTP/HTTPS features as it sends traffic to your origin, and the application type matches this property exactly. + * + * @default direct + * @example direct + */ +export type TrafficType = 'direct' | 'http' | 'https'; + +/** + * Statuses for domain transfers into Cloudflare Registrar. + */ +export type TransferIn = { + /** + * Form of authorization has been accepted by the registrant. + * + * @example needed + */ + accept_foa?: void; + /** + * Shows transfer status with the registry. + * + * @example unknown + */ + approve_transfer?: void; + /** + * Indicates if cancellation is still possible. + * + * @example true + */ + can_cancel_transfer?: boolean; + /** + * Privacy guards are disabled at the foreign registrar. + */ + disable_privacy?: void; + /** + * Auth code has been entered and verified. + * + * @example needed + */ + enter_auth_code?: void; + /** + * Domain is unlocked at the foreign registrar. + */ + unlock_domain?: void; +}; + +/** + * The parameters configuring the action. + */ +export type TransformRulesComponentsSchemasActionParameters = ActionParametersRewrite; + +export type TransformRulesComponentsSchemasRule = { + /** + * @example rewrite + */ + action?: void; + action_parameters?: TransformRulesComponentsSchemasActionParameters; + /** + * @example change request based on ip location + */ + description?: void; + /** + * @example ip.geoip.country eq "AL" + */ + expression?: void; + /** + * @example 3a03d665bac047339bb530ecb439a90d + */ + id?: void; + /** + * @example 1 + */ + version?: void; +}; + +export type TransformRulesComponentsSchemasRuleset = { + /** + * @example + */ + description?: void; + /** + * @example 2f2feab2026849078ba485f918791bdc + */ + id?: void; + /** + * @example zone + */ + kind?: void; + /** + * @example default + */ + name?: void; + /** + * @example http_request_transform + */ + phase?: void; + /** + * The rules in the ruleset. + */ + rules?: TransformRulesComponentsSchemasRule[]; +}; + +/** + * Allows customer to continue to use True Client IP (Akamai feature) in the headers we send to the origin. This is limited to Enterprise Zones. + * + * @default off + */ +export type TrueClientIpHeader = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example true_client_ip_header + */ + id: 'true_client_ip_header'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: TrueClientIpHeaderValue; +}; + +/** + * Value of the zone setting. + * + * @default off + */ +export type TrueClientIpHeaderValue = 'on' | 'off'; + +export type Tsig = { + algo: Algo; + id: SchemasIdentifier0HsWUjPr; + name: SchemasNameDv0ow20v; + secret: Secret; +}; + +/** + * TSIG authentication will be used for zone transfer if configured. + * + * @example 69cd1e104af3e6ed3cb344f263fd0d5a + */ +export type TsigId = string; + +/** + * Time To Live (TTL) in number of hops of the GRE tunnel. + * + * @default 64 + */ +export type Ttl = number; + +/** + * Time to live (TTL) of the DNS entry for the IP address returned by this load balancer. This only applies to gray-clouded (unproxied) load balancers. + * + * @example 30 + */ +export type TtlHaRIhRKD = number; + +/** + * Time To Live (TTL) of the DNS record in seconds. Setting to 1 means 'automatic'. Value must be between 60 and 86400, with the minimum reduced to 30 for Enterprise zones. + * + * @default 1 + * @example 3600 + */ +export type TtlSfCV2rs6 = number | 1; + +/** + * Time to live (TTL) of the DNS entry for the IP address returned by this load balancer. This only applies to gray-clouded (unproxied) load balancers. + * + * @example 30 + */ +export type TtlXvgb35JN = number; + +/** + * A Cloudflare Tunnel that connects your origin to Cloudflare's edge. + */ +export type Tunnel = { + account_tag?: CfAccountId; + connections?: Connections; + conns_active_at?: ConnsActiveAt; + conns_inactive_at?: ConnsInactiveAt; + created_at?: CloudflareTunnelComponentsSchemasCreatedAt; + deleted_at?: DeletedAtYdpycuPv; + id?: TunnelId; + metadata?: CloudflareTunnelComponentsSchemasMetadata; + name?: TunnelName; + remote_config?: RemoteConfig; + status?: CloudflareTunnelComponentsSchemasStatus; + tun_type?: TunnelType; +}; + +export type TunnelAddSingleRequest = { + cloudflare_gre_endpoint: CloudflareGreEndpoint; + customer_gre_endpoint: CustomerGreEndpoint; + description?: SchemasDescriptionVR40R5E7; + health_check?: HealthCheck; + interface_address: InterfaceAddress; + mtu?: Mtu; + name: NameBTvYm8cQ; + ttl?: Ttl; +}; + +/** + * A connection between cloudflared and a Cloudflare data center. + */ +export type TunnelConnection = { + arch?: Arch; + config_version?: ConfigVersion; + conns?: Connections; + features?: SchemasFeatures; + id?: ConnectionId; + run_at?: RunAt; + version?: CloudflareTunnelComponentsSchemasVersion; +}; + +export type TunnelConnectionsResponse = ApiResponseCollection & { + result?: TunnelConnection[]; +}; + +export type TunnelDeletedResponse = ApiResponseSingleRxxEmdsv & { + result?: { + /** + * @example true + */ + deleted?: boolean; + deleted_gre_tunnel?: Record; + }; +}; + +export type TunnelHealthCheck = { + /** + * Determines whether to run healthchecks for a tunnel. + * + * @default true + * @example true + */ + enabled?: boolean; + /** + * How frequent the health check is run. The default value is `mid`. + * + * @default mid + * @example low + */ + rate?: 'low' | 'mid' | 'high'; + /** + * The destination address in a request type health check. After the healthcheck is decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded to this address. This field defaults to `customer_gre_endpoint address`. + * + * @example 203.0.113.1 + */ + target?: string; + /** + * The type of healthcheck to run, reply or request. The default value is `reply`. + * + * @default reply + * @example request + */ + type?: 'reply' | 'request'; +}; + +/** + * UUID of the tunnel. + * + * @example f70ff985-a4ef-4643-bbbc-4a0ed4fc8415 + * @maxLength 36 + */ +export type TunnelId = string; + +export type TunnelModifiedResponse = ApiResponseSingleRxxEmdsv & { + result?: { + /** + * @example true + */ + modified?: boolean; + modified_gre_tunnel?: Record; + }; +}; + +/** + * A user-friendly name for the tunnel. + * + * @example blog + */ +export type TunnelName = string; + +export type TunnelResponseCollection = ApiResponseCollection & { + result?: ArgoTunnel[]; +}; + +export type TunnelResponseSingle = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type TunnelResponseToken = ApiResponseSingleLarS7owG & { + result?: string; +}; + +/** + * Sets the password required to run a locally-managed tunnel. Must be at least 32 bytes and encoded as a base64 string. + * + * @example AQIDBAUGBwgBAgMEBQYHCAECAwQFBgcIAQIDBAUGBwg= + */ +export type TunnelSecret = string; + +export type TunnelSingleResponse = ApiResponseSingleRxxEmdsv & { + result?: { + gre_tunnel?: Record; + }; +}; + +/** + * The type of tunnel. + * + * @example cfd_tunnel + */ +export type TunnelType = 'cfd_tunnel'; + +export type TunnelUpdateRequest = TunnelAddSingleRequest; + +export type TunnelsCollectionResponse = ApiResponseSingleRxxEmdsv & { + result?: { + gre_tunnels?: GreTunnel[]; + }; +}; + +/** + * Specifies the TUS protocol version. This value must be included in every upload request. + * Notes: The only supported version of TUS protocol is 1.0.0. + * + * @example 1.0.0 + */ +export type TusResumable = '1.0.0'; + +/** + * Indicates whether two-factor authentication is enabled for the user account. Does not apply to API authentication. + * + * @default false + */ +export type TwoFactorAuthenticationEnabled = boolean; + +/** + * The protocol to use for the health check. Currently supported protocols are 'HTTP', 'HTTPS' and 'TCP'. + * + * @default HTTP + * @example HTTPS + */ +export type Type = string; + +/** + * The protocol to use for the health check. Currently supported protocols are 'HTTP','HTTPS', 'TCP', 'ICMP-PING', 'UDP-ICMP', and 'SMTP'. + * + * @default http + * @example https + */ +export type TypeB9S5DdJI = 'http' | 'https' | 'tcp' | 'udp_icmp' | 'icmp_ping' | 'smtp'; + +/** + * The application type. + * + * @example self_hosted + */ +export type TypeOK1aJkK3 = + | 'self_hosted' + | 'saas' + | 'ssh' + | 'vnc' + | 'app_launcher' + | 'warp' + | 'biso' + | 'bookmark' + | 'dash_sso'; + +/** + * The type of Device Posture Rule. + * + * @example file + */ +export type TypeS34NxojT = 'file' | 'application' | 'serial_number' | 'tanium' | 'gateway' | 'warp' | 'disk_encryption'; + +/** + * The type 'legacy_custom' enables support for legacy clients which do not include SNI in the TLS handshake. + * + * @default legacy_custom + * @example sni_custom + */ +export type TypeS5kHws3S = 'legacy_custom' | 'sni_custom'; + +/** + * Record type. + * + * @example A + */ +export type TypeCbxL4EpK = + | 'A' + | 'AAAA' + | 'CAA' + | 'CERT' + | 'CNAME' + | 'DNSKEY' + | 'DS' + | 'HTTPS' + | 'LOC' + | 'MX' + | 'NAPTR' + | 'NS' + | 'PTR' + | 'SMIMEA' + | 'SRV' + | 'SSHFP' + | 'SVCB' + | 'TLSA' + | 'TXT' + | 'URI'; + +/** + * The billing item type. + * + * @example charge + * @maxLength 30 + */ +export type TypeJfoU8Rqn = string; + +/** + * The type of List. + * + * @example SERIAL + */ +export type TypeKFroakje = 'SERIAL' | 'URL' | 'DOMAIN' | 'EMAIL' | 'IP'; + +/** + * A full zone implies that DNS is hosted with Cloudflare. A partial zone is typically a partner-hosted zone or a CNAME setup. + * + * @example full + */ +export type TypeUEHXSvjy = 'full' | 'partial'; + +export type UaRules = Firewalluablock; + +/** + * An informative summary of the rule. + * + * @example Prevent access from abusive clients identified by this User Agent to mitigate a DDoS attack + * @maxLength 1024 + */ +export type UaRulesComponentsSchemasDescription = string; + +/** + * The unique identifier of the User Agent Blocking rule. + * + * @example 372e67954025e0ba6aaa6d586b9e0b59 + * @maxLength 32 + */ +export type UaRulesComponentsSchemasId = string; + +/** + * The action to apply to a matched request. + * + * @example js_challenge + * @maxLength 12 + */ +export type UaRulesComponentsSchemasMode = 'block' | 'challenge' | 'js_challenge' | 'managed_challenge'; + +/** + * A description of the reason why the UI read only field is being toggled. + * + * @example Temporarily turn off the UI read only lock to make a change via the UI + */ +export type UiReadOnlyToggleReason = string; + +/** + * The unique API identifier for the user. + */ +export type Uid = void; + +export type Uniques = { + /** + * Total number of unique IP addresses within the time range. + */ + all?: number; +}; + +/** + * The unit price of the addon. + * + * @example 1 + */ +export type UnitPrice = number; + +export type Universal = { + enabled?: SchemasEnabled; +}; + +/** + * A list of device ids to unrevoke. + * + * @maxLength 200 + */ +export type UnrevokeDevicesRequest = SchemasUuid4P4vJwxm[]; + +/** + * A list of device ids to unrevoke. + * + * @maxLength 200 + */ +export type UnrevokeDevicesRequestZqpiEPkF = Uuid[]; + +/** + * End date and time of requesting data period in ISO 8601 format. + * + * @example 2023-11-11T13:00:00Z + * @format date-time + */ +export type Until = string; + +/** + * The (exclusive) end of the requested time frame. This value can be a negative integer representing the number of minutes in the past relative to time the request is made, or can be an absolute timestamp that conforms to RFC 3339. If omitted, the time of the request is used. + * + * @default 0 + * @example 2015-01-02T12:23:00Z + */ +export type UntilOh0IDugA = string | number; + +/** + * End date and time of requesting data period in the ISO8601 format. + * + * @example 2016-11-11T13:00:00Z + * @format date-time + */ +export type UntilYoheyxzn = string; + +export type UpdateZoneSettingsResponse = { + enabled?: Enabled; + updated_at?: UpdatedAt; + use_cloudflare_reporting_endpoint?: UseCloudflareReportingEndpoint; + use_connection_url_path?: UseConnectionUrlPath; +}; + +export type UpdateCatchAllRuleProperties = { + actions: RuleCatchallActions; + enabled?: RuleEnabledXvrbaudJ; + matchers: RuleCatchallMatchers; + name?: RuleName; +}; + +export type UpdateCustomProfile = { + allowed_match_count?: AllowedMatchCount; + /** + * The description of the profile. + * + * @example A standard CVV card number + */ + description?: string; + /** + * The custom entries for this profile. Array elements with IDs are modifying the existing entry with that ID. Elements without ID will create new entries. Any entry not in the list will be deleted. + */ + entries?: CustomEntry[]; + /** + * The name of the profile. + * + * @example Generic CVV Card Number + */ + name?: string; + /** + * Entries from other profiles (e.g. pre-defined Cloudflare profiles, or your Microsoft Information Protection profiles). + */ + shared_entries?: (SharedEntryUpdatePredefined | SharedEntryUpdateIntegration)[]; +}; + +export type UpdateCustomProfileQMnB1nrg = { + allowed_match_count?: AllowedMatchCount; + /** + * The description of the profile. + * + * @example A standard CVV card number + */ + description?: string; + /** + * The entries for this profile. Array elements with IDs are modifying the existing entry with that ID. Elements without ID will create new entries. Any entry not in the list will be deleted. + */ + entries?: CustomEntryMPO16jNs[]; + /** + * The name of the profile. + * + * @example Generic CVV Card Number + */ + name?: string; +}; + +export type UpdateInputRequest = { + defaultCreator?: LiveInputDefaultCreator; + meta?: LiveInputMetadata; + recording?: LiveInputRecordingSettings; +}; + +export type UpdateOutputRequest = { + enabled: OutputEnabled; +}; + +export type UpdatePredefinedProfile = { + allowed_match_count?: AllowedMatchCount; + /** + * The entries for this profile. + */ + entries?: { + /** + * Wheter the entry is enabled or not. + * + * @example true + */ + enabled?: boolean; + id?: EntryId; + }[]; +}; + +export type UpdateRuleProperties = { + actions: RuleActions; + enabled?: RuleEnabledXvrbaudJ; + matchers: RuleMatchers; + name?: RuleName; + priority?: RulePriority; +}; + +export type UpdateRules = CreateRule[]; + +/** + * A ruleset object. + */ +export type UpdateRuleset = { + description?: RulesetsComponentsSchemasDescription; + rules: CreateUpdateRules; +}; + +/** + * Payload log settings + */ +export type UpdateSettings = { + /** + * The public key to use when encrypting extracted payloads, as a base64 string + * + * @example EmpOvSXw8BfbrGCi0fhGiD/3yXk2SiV1Nzg2lru3oj0= + */ + public_key: string | null; +}; + +export type UpdateSettingsResponse = ApiResponseSingleUypB4bgI & { + result?: { + /** + * @example EmpOvSXw8BfbrGCi0fhGiD/3yXk2SiV1Nzg2lru3oj0= + */ + public_key: string | null; + }; +}; + +export type UpdateSettingsResponseTGrCu4w7 = ApiResponseSingleLarS7owG & { + result?: { + /** + * @example EmpOvSXw8BfbrGCi0fhGiD/3yXk2SiV1Nzg2lru3oj0= + */ + public_key: string | null; + }; +}; + +/** + * When the device was updated. + * + * @example 2017-06-14T00:00:00Z + * @format date-time + */ +export type Updated = string; + +/** + * The timestamp of when Page Shield was last updated. + * + * @example 2022-10-12T17:56:52.083582+01:00 + */ +export type UpdatedAt = string; + +/** + * The time when the certificate was updated. + * + * @example 2100-01-01T05:20:00Z + * @format date-time + */ +export type UpdatedAt2oKeN2sz = string; + +/** + * The time when the certificate was updated. + * + * @example 2100-01-01T05:20:00Z + * @format date-time + */ +export type UpdatedAtOvRg3NFi = string; + +/** + * Defined when the Railgun version is out of date from the latest release from Cloudflare. + */ +export type UpgradeInfo = { + /** + * An HTTP link to download the latest Railgun binary. + * + * @example https://www.cloudflare.com/downloads/railgun + */ + download_link?: string; + /** + * Latest version of the Railgun receiver available to install. + * + * @example 1.0.0 + */ + latest_version?: string; +}; + +/** + * Indicates the size of the entire upload in bytes. The value must be a non-negative integer. + * + * @minimum 0 + */ +export type UploadLength = number; + +/** + * The date and time the media item was uploaded. + * + * @example 2014-01-02T02:20:00Z + * @format date-time + */ +export type Uploaded = string; + +/** + * When the media item was uploaded. + * + * @example 2014-01-02T02:20:00Z + * @format date-time + */ +export type UploadedYGkLPeev = string; + +/** + * When the certificate was uploaded to Cloudflare. + * + * @example 2014-01-01T05:20:00Z + * @format date-time + */ +export type UploadedOn = string; + +/** + * @example 192.0.2.1 + * @example 198.51.100.1 + * @example 2001:DB8:100::CF + */ +export type UpstreamIps = (string | string)[]; + +export type UptycsConfigRequest = { + /** + * The Uptycs client secret. + * + * @example example client key + */ + client_key: string; + /** + * The Uptycs client secret. + * + * @example example client secret + */ + client_secret: string; + /** + * The Uptycs customer ID. + * + * @example example customer id + */ + customer_id: string; +}; + +/** + * A single URI to search for in the list of URLs of existing rules. + * + * @example /some/path + */ +export type UriSearch = string; + +/** + * The URL associated with the custom page. + * + * @default + * @example http://www.example.com + * @format uri + */ +export type Url = string; + +/** + * Submission ID(s) to filter submission results by. + */ +export type UrlId = number; + +export type UrlIdParam = { + url_id?: UrlId; +}; + +/** + * The type of URL normalization performed by Cloudflare. + * + * @example cloudflare + */ +export type UrlNormalizationComponentsSchemasType = string; + +export type UrlParam = { + url?: ComponentsSchemasUrl; +}; + +/** + * URL target. + */ +export type UrlTarget = { + /** + * String constraint. + */ + constraint?: { + /** + * The matches operator can use asterisks and pipes as wildcard and 'or' operators. + * + * @default contains + */ + operator: 'matches' | 'contains' | 'equals' | 'not_equal' | 'not_contain'; + /** + * The URL pattern to match against the current request. The pattern may contain up to four asterisks ('*') as placeholders. + * + * @example *example.com/images/* + * @pattern ^(https?://)?(([-a-zA-Z0-9*]*\.)+[-a-zA-Z0-9]{2,20})(:(8080|8443|443|80))?(/[\S]+)?$ + */ + value: string; + }; + /** + * A target based on the URL of the request. + * + * @example url + */ + target?: 'url'; +}; + +/** + * The URLs to include in the current WAF override. You can use wildcards. Each entered URL will be escaped before use, which means you can only use simple wildcard patterns. + */ +export type Urls = string[]; + +export type UsageModelResponse = { + errors: Messages; + messages: Messages; + result: + | { + usage_model?: void; + } + | any[] + | string; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +/** + * Specifies the usage model for the Worker (e.g. 'bundled' or 'unbound'). + * + * @example unbound + * @pattern ^(bundled|unbound)$ + */ +export type UsageModel = string; + +/** + * When true, CSP reports will be sent to https://csp-reporting.cloudflare.com/cdn-cgi/script_monitor/report + * + * @example true + */ +export type UseCloudflareReportingEndpoint = boolean; + +/** + * When true, the paths associated with connections URLs will also be analyzed. + * + * @example true + */ +export type UseConnectionUrlPath = boolean; + +export type User = { + email?: EmailHj6ruiEO; + id?: ComponentsSchemasUuid2bGv7FH2; + /** + * The enrolled device user's name. + * + * @example John Appleseed + */ + name?: string; +}; + +export type UserTCLIy2E3 = { + email?: EmailPuzf53IC; + id?: Uuid; + /** + * The enrolled device user's name. + * + * @example John Appleseed + */ + name?: string; +}; + +export type UserInvite = BaseMktMcgEk & { + /** + * Current status of the invitation. + * + * @example accepted + */ + status?: 'pending' | 'accepted' | 'rejected' | 'expired'; +}; + +/** + * The amount of time a user seat is inactive before it expires. When the user seat exceeds the set time of inactivity, the user is removed as an active seat and no longer counts against your Teams seat count. Must be in the format `300ms` or `2h45m`. Valid time units are: `ns`, `us` (or `µs`), `ms`, `s`, `m`, `h`. + * + * @example 720h + */ +export type UserSeatExpirationInactiveTime = string; + +export type UserSubscriptionResponseCollection = ApiResponseCollection & { + result?: Subscription[]; +}; + +export type UserSubscriptionResponseSingle = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type Users = { + access_seat?: SchemasAccessSeat; + active_device_count?: ActiveDeviceCount; + created_at?: Timestamp; + email?: SchemasEmail; + gateway_seat?: SchemasGatewaySeat; + id?: SchemasId; + last_successful_login?: LastSuccessfulLogin; + name?: UsersComponentsSchemasName; + seat_uid?: SeatUid; + uid?: Uid; + updated_at?: Timestamp; +}; + +export type UsersMEJ7mXt5 = { + access_seat?: SchemasAccessSeat; + active_device_count?: ActiveDeviceCount; + created_at?: Timestamp; + email?: ComponentsSchemasEmail; + gateway_seat?: SchemasGatewaySeat; + id?: UsersComponentsSchemasId; + last_successful_login?: LastSuccessfulLogin; + name?: UsersComponentsSchemasName; + seat_uid?: SeatUid; + uid?: Uid; + updated_at?: Timestamp; +}; + +/** + * The ID of the user. + * + * @example f3b12456-80dd-4e89-9f5f-ba3dfff12365 + */ +export type UsersComponentsSchemasId = void; + +/** + * The name of the user. + * + * @example Jane Doe + */ +export type UsersComponentsSchemasName = string; + +export type UsersComponentsSchemasResponseCollection = ApiResponseCollection & { + result_info?: { + /** + * @example 1 + */ + count?: void; + /** + * @example 1 + */ + page?: void; + /** + * @example 100 + */ + per_page?: void; + /** + * @example 1 + */ + total_count?: void; + }; +} & { + result?: UsersMEJ7mXt5[]; +}; + +/** + * UUID + * + * @example f174e90a-fafe-4643-bbbc-4a0ed4fc8415 + * @maxLength 36 + */ +export type Uuid = string; + +/** + * API Resource UUID tag. + * + * @example f174e90a-fafe-4643-bbbc-4a0ed4fc8415 + * @maxLength 36 + */ +export type Uuid1mDHWugl = string; + +/** + * API uuid tag. + * + * @example f174e90a-fafe-4643-bbbc-4a0ed4fc8415 + * @maxLength 36 + */ +export type UuidUoyzrwvx = string; + +export type ValidateOwnershipResponse = { + errors: Messages; + messages: Messages; + result: + | { + /** + * @example true + */ + valid?: boolean; + } + | any[] + | string + | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +/** + * A request to validate a pattern + */ +export type ValidatePattern = { + /** + * The regex pattern. + * + * @example ^4[0-9]{6,}$ + */ + regex: string; +}; + +export type ValidateResponse = { + errors: Messages; + messages: Messages; + result: + | { + /** + * @example + */ + message?: string; + /** + * @example true + */ + valid?: boolean; + } + | any[] + | string + | null; + /** + * Whether the API call was successful + * + * @example true + */ + success: true; +}; + +export type ValidateResponseW2HGWyNF = ApiResponseSingleLarS7owG & { + result?: { + /** + * @example true + */ + valid?: boolean; + }; +}; + +export type ValidateResponseWQcn5Sbe = ApiResponseSingleUypB4bgI & { + result?: { + /** + * @example true + */ + valid?: boolean; + }; +}; + +/** + * Validation Method selected for the order. + * + * @example txt + */ +export type ValidationMethod = 'txt' | 'http' | 'email'; + +/** + * Result status. + * + * @example pending_validation + */ +export type ValidationMethodComponentsSchemasStatus = string; + +/** + * Desired validation method. + * + * @example txt + */ +export type ValidationMethodDefinition = 'http' | 'cname' | 'txt' | 'email'; + +/** + * Certificate's required validation record. + */ +export type ValidationRecord = { + /** + * The set of email addresses that the certificate authority (CA) will use to complete domain validation. + * + * @example administrator@example.com + * @example webmaster@example.com + */ + emails?: any[]; + /** + * The content that the certificate authority (CA) will expect to find at the http_url during the domain validation. + * + * @example ca3-574923932a82475cb8592200f1a2a23d + */ + http_body?: string; + /** + * The url that will be checked during domain validation. + * + * @example http://app.example.com/.well-known/pki-validation/ca3-da12a1c25e7b48cf80408c6c1763b8a2.txt + */ + http_url?: string; + /** + * The hostname that the certificate authority (CA) will check for a TXT record during domain validation . + * + * @example _acme-challenge.app.example.com + */ + txt_name?: string; + /** + * The TXT record that the certificate authority (CA) will check during domain validation. + * + * @example 810b7d5f01154524b961ba0cd578acc2 + */ + txt_value?: string; +}; + +/** + * Validity Days selected for the order. + */ +export type ValidityDays = 14 | 30 | 90 | 365; + +/** + * Enables Tiered Caching. + * + * @example on + */ +export type Value = 'on' | 'off'; + +/** + * The token value. + * + * @example 8M7wS6hCpXVc-DoRnPPY_UCWPgy8aea4Wy6kCe5T + * @maxLength 80 + * @minLength 40 + */ +export type ValueOY5wJPpX = string; + +/** + * The value of the item in a List. + * + * @example 8GE8721REF + */ +export type ValueBmHGW0nn = string; + +/** + * An array of domains used for custom name servers. This is only + * available for Business and Enterprise plans. + * + * @example ns1.example.com + * @example ns2.example.com + */ +export type VanityNameServers = string[]; + +export type VariantGenerationRequest = { + id: VariantsComponentsSchemasIdentifier; + neverRequireSignedURLs?: NeverRequireSignedURLs; + options: Options; +}; + +export type VariantListResponse = ApiResponseCollection & { + result?: VariantsResponse; +}; + +export type VariantPatchRequest = { + neverRequireSignedURLs?: NeverRequireSignedURLs; + options: Options; +}; + +export type VariantPublicRequest = { + hero?: Record; +}; + +export type VariantResponse = { + variant?: Record; +}; + +export type VariantSimpleResponse = ApiResponseSingleLarS7owG & { + result?: VariantResponse; +}; + +/** + * Variant support enables caching variants of images with certain file extensions in addition to the original. This only applies when the origin server sends the 'Vary: Accept' response header. If the origin server sends 'Vary: Accept' but does not serve the variant requested, the response will not be cached. This will be indicated with BYPASS cache status in the response headers. + */ +export type Variants = { + /** + * ID of the zone setting. + * + * @example variants + */ + id: 'variants'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on: string | null; +}; + +/** + * Variant support enables caching variants of images with certain file extensions in addition to the original. This only applies when the origin server sends the 'Vary: Accept' response header. If the origin server sends 'Vary: Accept' but does not serve the variant requested, the response will not be cached. This will be indicated with BYPASS cache status in the response headers. + */ +export type VariantsIp3MlQD2 = { + /** + * ID of the zone setting. + * + * @example variants + */ + id: 'variants'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on: string | null; +}; + +/** + * @example hero + * @maxLength 99 + * @pattern ^[a-zA-Z0-9]$ + */ +export type VariantsComponentsSchemasIdentifier = void; + +export type VariantsResponse = { + variants?: VariantPublicRequest; +}; + +export type VariantsResponseValue = { + /** + * Variant support enables caching variants of images with certain file extensions in addition to the original. This only applies when the origin server sends the 'Vary: Accept' response header. If the origin server sends 'Vary: Accept' but does not serve the variant requested, the response will not be cached. This will be indicated with BYPASS cache status in the response headers. + */ + result?: VariantsIp3MlQD2 & { + value: VariantsValue; + }; +}; + +/** + * Value of the zone setting. + */ +export type VariantsValue = { + /** + * List of strings with the MIME types of all the variants that should be served for avif. + * + * @example image/webp + * @example image/jpeg + * @uniqueItems true + */ + avif?: any[]; + /** + * List of strings with the MIME types of all the variants that should be served for bmp. + * + * @example image/webp + * @example image/jpeg + * @uniqueItems true + */ + bmp?: any[]; + /** + * List of strings with the MIME types of all the variants that should be served for gif. + * + * @example image/webp + * @example image/jpeg + * @uniqueItems true + */ + gif?: any[]; + /** + * List of strings with the MIME types of all the variants that should be served for jp2. + * + * @example image/webp + * @example image/avif + * @uniqueItems true + */ + jp2?: any[]; + /** + * List of strings with the MIME types of all the variants that should be served for jpeg. + * + * @example image/webp + * @example image/avif + * @uniqueItems true + */ + jpeg?: any[]; + /** + * List of strings with the MIME types of all the variants that should be served for jpg. + * + * @example image/webp + * @example image/avif + * @uniqueItems true + */ + jpg?: any[]; + /** + * List of strings with the MIME types of all the variants that should be served for jpg2. + * + * @example image/webp + * @example image/avif + * @uniqueItems true + */ + jpg2?: any[]; + /** + * List of strings with the MIME types of all the variants that should be served for png. + * + * @example image/webp + * @example image/avif + * @uniqueItems true + */ + png?: any[]; + /** + * List of strings with the MIME types of all the variants that should be served for tif. + * + * @example image/webp + * @example image/avif + * @uniqueItems true + */ + tif?: any[]; + /** + * List of strings with the MIME types of all the variants that should be served for tiff. + * + * @example image/webp + * @example image/avif + * @uniqueItems true + */ + tiff?: any[]; + /** + * List of strings with the MIME types of all the variants that should be served for webp. + * + * @example image/jpeg + * @example image/avif + * @uniqueItems true + */ + webp?: any[]; +}; + +export type Verification = { + brand_check?: BrandCheck; + cert_pack_uuid?: CertPackUuid; + certificate_status: CertificateStatus; + signature?: SchemasSignature; + validation_method?: SchemasValidationMethod; + verification_info?: VerificationInfo; + verification_status?: VerificationStatus; + verification_type?: VerificationType; +}; + +/** + * These are errors that were encountered while trying to activate a hostname. + * + * @example None of the A or AAAA records are owned by this account and the pre-generated ownership verification token was not found. + */ +export type VerificationErrors = any[]; + +/** + * Certificate's required verification information. + */ +export type VerificationInfo = + | 'record_name' + | 'record_value' + | 'http_url' + | 'http_body' + | 'cname' + | 'cname_target' + | 'txt_name' + | 'txt_value'; + +/** + * Status of the required verification information, omitted if verification status is unknown. + * + * @example true + */ +export type VerificationStatus = boolean; + +/** + * Method of verification. + * + * @example cname + */ +export type VerificationType = 'cname' | 'meta tag'; + +/** + * The date and time the destination address has been verified. Null means not verified yet. + * + * @example 2014-01-02T02:20:00Z + * @format date-time + */ +export type Verified = string; + +/** + * The version of the analyzed script. + */ +export type Version = { + fetched_at?: FetchedAt; + hash?: Hash; + js_integrity_score?: JsIntegrityScore; +}; + +/** + * The version of the ruleset. + * + * @example 1 + * @pattern ^[0-9]+$ + */ +export type VersionF60UUqsl = string; + +/** + * The WARP client version. + * + * @example 1.0.0 + */ +export type VersionLix2KSZT = string; + +export type VideoClipStandard = { + allowedOrigins?: AllowedOrigins; + clippedFromVideoUID: ClippedFromVideoUid; + creator?: Creator; + endTimeSeconds: EndTimeSeconds; + maxDurationSeconds?: MaxDurationSeconds; + requireSignedURLs?: RequireSignedURLs; + startTimeSeconds: StartTimeSeconds; + thumbnailTimestampPct?: ThumbnailTimestampPct; + watermark?: WatermarkAtUpload; +}; + +export type VideoCopyRequest = { + allowedOrigins?: AllowedOrigins; + creator?: Creator; + requireSignedURLs?: RequireSignedURLs; + thumbnailTimestampPct?: ThumbnailTimestampPct; + /** + * A video's URL. The server must be publicly routable and support `HTTP HEAD` requests and `HTTP GET` range requests. The server should respond to `HTTP HEAD` requests with a `content-range` header that includes the size of the file. + * + * @example https://example.com/myvideo.mp4 + * @format uri + */ + url: string; + watermark?: WatermarkAtUpload; +}; + +export type VideoResponseCollection = ApiResponseCollection & { + result?: Videos[]; +} & { + /** + * The total number of remaining videos based on cursor position. + * + * @example 1000 + */ + range?: number; + /** + * The total number of videos that match the provided filters. + * + * @example 35586 + */ + total?: number; +}; + +export type VideoResponseSingle = ApiResponseSingleYdRGfgTy & { + result?: Videos; +}; + +export type VideoUpdate = { + allowedOrigins?: AllowedOrigins; + creator?: Creator; + maxDurationSeconds?: MaxDurationSeconds; + meta?: MediaMetadata; + requireSignedURLs?: RequireSignedURLs; + thumbnailTimestampPct?: ThumbnailTimestampPct; + uploadExpiry?: OneTimeUploadExpiry; +}; + +export type Videos = { + allowedOrigins?: AllowedOrigins; + created?: CreatedVKORkNvl; + creator?: Creator; + duration?: Duration; + input?: InputOZLZZB6G; + liveInput?: LiveInput; + maxDurationSeconds?: MaxDurationSeconds; + meta?: MediaMetadata; + modified?: Modified; + playback?: Playback; + preview?: Preview; + readyToStream?: ReadyToStream; + requireSignedURLs?: RequireSignedURLs; + size?: Size; + status?: MediaStatus; + thumbnail?: ThumbnailUrl; + thumbnailTimestampPct?: ThumbnailTimestampPct; + uid?: IdentifierKW7g5KGL; + uploadExpiry?: OneTimeUploadExpiry; + uploaded?: Uploaded; + watermark?: Watermarks; +}; + +export type VirtualNetwork = { + comment: SchemasComment; + /** + * Timestamp of when the virtual network was created. + */ + created_at: void; + /** + * Timestamp of when the virtual network was deleted. If `null`, the virtual network has not been deleted. + */ + deleted_at?: void; + id: VnetId; + is_default_network: IsDefaultNetwork; + name: VnetName; +}; + +/** + * The virtual network subnet ID the origin belongs in. Virtual network must also belong to the account. + * + * @example a5624d4e-044a-4ff0-b3e1-e2465353d4b4 + */ +export type VirtualNetworkId = string; + +export type VncProps = { + allowed_idps?: AllowedIdps; + app_launcher_visible?: AppLauncherVisible; + auto_redirect_to_identity?: AutoRedirectToIdentityB0IhfGBw; + cors_headers?: CorsHeaders; + custom_deny_message?: CustomDenyMessage; + custom_deny_url?: CustomDenyUrl; + domain?: SchemasDomainA7q0ZzCX; + enable_binding_cookie?: EnableBindingCookie; + http_only_cookie_attribute?: HttpOnlyCookieAttribute; + logo_url?: LogoUrl; + name?: AppsComponentsSchemasName; + same_site_cookie_attribute?: SameSiteCookieAttribute; + service_auth_401_redirect?: ServiceAuth401Redirect; + session_duration?: SessionDuration; + skip_interstitial?: SkipInterstitial; + /** + * The application type. + * + * @example vnc + */ + type?: string; +}; + +/** + * UUID of the virtual network. + * + * @example f70ff985-a4ef-4643-bbbc-4a0ed4fc8415 + * @maxLength 36 + */ +export type VnetId = string; + +/** + * A user-friendly name for the virtual network. + * + * @example us-east-1-vpc + */ +export type VnetName = string; + +export type VnetResponseCollection = ApiResponseCollection & { + result?: VirtualNetwork[]; +}; + +export type VnetResponseSingle = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +/** + * The WAF examines HTTP requests to your website. It inspects both GET and POST requests and applies rules to help filter out illegitimate traffic from legitimate website visitors. The Cloudflare WAF inspects website addresses or URLs to detect anything out of the ordinary. If the Cloudflare WAF determines suspicious user behavior, then the WAF will 'challenge' the web visitor with a page that asks them to submit a CAPTCHA successfully to continue their action. If the challenge is failed, the action will be stopped. What this means is that Cloudflare's WAF will block any traffic identified as illegitimate before it reaches your origin web server. (https://support.cloudflare.com/hc/en-us/articles/200172016). + */ +export type Waf = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example waf + */ + id: 'waf'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: WafValue; +}; + +/** + * The WAF rule action to apply. + */ +export type WafAction = 'challenge' | 'block' | 'simulate' | 'disable' | 'default'; + +/** + * The WAF rule action to apply. + */ +export type WafRewriteAction = 'challenge' | 'block' | 'simulate' | 'disable' | 'default'; + +/** + * Value of the zone setting. + * + * @default off + */ +export type WafValue = 'on' | 'off'; + +/** + * Set the time (in seconds) to wait for a response to a probe. + * + * @default 1 + * @maximum 5 + * @minimum 1 + */ +export type WaitTime = number; + +/** + * @example 699d98642c564d2e855e9661899b7252 + */ +export type WaitingRoomId = void; + +export type WaitingRoomIdResponse = ApiResponseSinglePn9rJJNX & { + result?: { + id?: WaitingRoomId; + }; +}; + +export type Waitingroom = { + cookie_attributes?: CookieAttributes; + created_on?: Timestamp; + custom_page_html?: CustomPageHtml; + default_template_language?: DefaultTemplateLanguage; + description?: DescriptionJIh6Lv2u; + disable_session_renewal?: DisableSessionRenewal; + host?: HostB3JrS1Yy; + id?: WaitingRoomId; + json_response_enabled?: JsonResponseEnabled; + modified_on?: Timestamp; + name?: NameGu3WWDHz; + new_users_per_minute?: NewUsersPerMinute; + next_event_prequeue_start_time?: NextEventPrequeueStartTime; + next_event_start_time?: NextEventStartTime; + path?: PathIVkcNWHz; + queue_all?: QueueAll; + queueing_method?: QueueingMethod; + session_duration?: SessionDurationDWa1S8Ip; + suspended?: SuspendedW815GHPM; + total_active_users?: TotalActiveUsers; +}; + +export type WarpProps = { + allowed_idps?: AllowedIdps; + auto_redirect_to_identity?: AutoRedirectToIdentityB0IhfGBw; + /** + * @example authdomain.cloudflareaccess.com/warp + */ + domain?: SchemasDomainA7q0ZzCX; + /** + * @default Warp Login App + * @example Warp Login App + */ + name?: AppsComponentsSchemasName; + session_duration?: SessionDuration; + /** + * The application type. + * + * @example warp + */ + type?: AppsComponentsSchemasType; +}; + +export type WasmModuleBinding = { + name: BindingName; + /** + * The class of resource that the binding provides. + * + * @example wasm_module + */ + type: 'wasm_module'; +}; + +export type WatermarkAtUpload = { + /** + * The unique identifier for the watermark profile. + * + * @example ea95132c15732412d22c1476fa83f27a + * @maxLength 32 + */ + uid?: string; +}; + +export type WatermarkAtUpload = { + /** + * The unique identifier for the watermark profile. + * + * @example ea95132c15732412d22c1476fa83f27a + * @maxLength 32 + */ + uid?: string; +}; + +export type WatermarkBasicUpload = { + /** + * The image file to upload. + * + * @example @/Users/rchen/Downloads/watermark.png + */ + file: string; + name?: NameWjx50o7Y; + opacity?: Opacity; + padding?: Padding; + position?: Position; + scale?: Scale; +}; + +/** + * The date and a time a watermark profile was created. + * + * @example 2014-01-02T02:20:00Z + * @format date-time + */ +export type WatermarkCreated = string; + +/** + * The unique identifier for a watermark profile. + * + * @example ea95132c15732412d22c1476fa83f27a + * @maxLength 32 + */ +export type WatermarkIdentifier = string; + +export type WatermarkResponseCollection = ApiResponseCollection & { + result?: Watermarks[]; +}; + +export type WatermarkResponseSingle = ApiResponseSingleYdRGfgTy & { + result?: Record; +}; + +/** + * The size of the image in bytes. + * + * @example 29472 + */ +export type WatermarkSize = number; + +export type Watermarks = { + created?: WatermarkCreated; + downloadedFrom?: DownloadedFrom; + height?: Height; + name?: NameWjx50o7Y; + opacity?: Opacity; + padding?: Padding; + position?: Position; + scale?: Scale; + size?: WatermarkSize; + uid?: WatermarkIdentifier; + width?: Width; +}; + +export type Web3Hostname = { + created_on?: Timestamp; + description?: Web3HostnameComponentsSchemasDescription; + dnslink?: Dnslink; + id?: CommonComponentsSchemasIdentifier; + modified_on?: Timestamp; + name?: Web3HostnameComponentsSchemasName; + status?: Web3HostnameComponentsSchemasStatus; + target?: SchemasTarget; +}; + +/** + * An optional description of the hostname. + * + * @example This is my IPFS gateway. + * @maxLength 500 + */ +export type Web3HostnameComponentsSchemasDescription = string; + +/** + * The hostname that will point to the target gateway via CNAME. + * + * @example gateway.example.com + * @maxLength 255 + */ +export type Web3HostnameComponentsSchemasName = string; + +export type Web3HostnameComponentsSchemasSingleResponse = ApiResponseSingleLarS7owG & { + result?: Web3Hostname; +}; + +/** + * Status of the hostname's activation. + * + * @example active + */ +export type Web3HostnameComponentsSchemasStatus = 'active' | 'pending' | 'deleting' | 'error'; + +export type WebhookRequest = { + notificationUrl: NotificationUrl; +}; + +export type WebhookResponseSingle = ApiResponseSingleYdRGfgTy & { + result?: Record; +}; + +export type Webhooks = { + created_at?: WebhooksComponentsSchemasCreatedAt; + id?: Uuid; + last_failure?: LastFailure; + last_success?: LastSuccess; + name?: WebhooksComponentsSchemasName; + secret?: SecretLnW39Y7R; + type?: WebhooksComponentsSchemasType; + url?: WebhooksComponentsSchemasUrl; +}; + +/** + * Timestamp of when the webhook destination was created. + * + * @example 2020-10-26T18:25:04.532316Z + * @format date-time + */ +export type WebhooksComponentsSchemasCreatedAt = string; + +export type WebhooksComponentsSchemasIdResponse = ApiResponseSingleLarS7owG & { + result?: { + id?: Uuid; + }; +}; + +/** + * The name of the webhook destination. This will be included in the request body when you receive a webhook notification. + * + * @example Slack Webhook + */ +export type WebhooksComponentsSchemasName = string; + +export type WebhooksComponentsSchemasResponseCollection = ApiResponseCollection & { + result?: Webhooks[]; +}; + +export type WebhooksComponentsSchemasSingleResponse = ApiResponseSingleLarS7owG & { + result?: Webhooks; +}; + +/** + * Type of webhook endpoint. + * + * @example slack + */ +export type WebhooksComponentsSchemasType = 'slack' | 'generic' | 'gchat'; + +/** + * The POST endpoint to call when dispatching a notification. + * + * @example https://hooks.slack.com/services/Ds3fdBFbV/456464Gdd + */ +export type WebhooksComponentsSchemasUrl = string; + +/** + * When the client requesting the image supports the WebP image codec, and WebP offers a performance advantage over the original image format, Cloudflare will serve a WebP version of the original image. + */ +export type Webp = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example webp + */ + id: 'webp'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: WebpValue; +}; + +/** + * Value of the zone setting. + * + * @default off + */ +export type WebpValue = 'off' | 'on'; + +/** + * WebSockets are open connections sustained between the client and the origin server. Inside a WebSockets connection, the client and the origin can pass data back and forth without having to reestablish sessions. This makes exchanging data within a WebSockets connection fast. WebSockets are often used for real-time applications such as live chat and gaming. For more information refer to [Can I use Cloudflare with Websockets](https://support.cloudflare.com/hc/en-us/articles/200169466-Can-I-use-Cloudflare-with-WebSockets-). + */ +export type Websockets = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example websockets + */ + id: 'websockets'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: WebsocketsValue; +}; + +/** + * Value of the zone setting. + * + * @default off + */ +export type WebsocketsValue = 'off' | 'on'; + +/** + * Optional weight of the ECMP scope - if provided. + */ +export type Weight = number; + +/** + * The weight of this origin relative to other origins in the pool. Based on the configured weight the total traffic is distributed among origins within the pool. + * + * @default 1 + * @example 0.6 + * @maximum 1 + * @minimum 0 + * @multipleOf 0.01 + */ +export type WeightNB8okIS7 = number; + +/** + * The weight of this origin relative to other origins in the pool. Based on the configured weight the total traffic is distributed among origins within the pool. + * + * @default 1 + * @example 0.6 + * @maximum 1 + * @minimum 0 + * @multipleOf 0.01 + */ +export type WeightUxsoOG5s = number; + +export type Whois = { + /** + * @example 2009-02-17 + * @format date + */ + created_date?: string; + domain?: SchemasDomainName; + /** + * @example ns3.cloudflare.com + * @example ns4.cloudflare.com + * @example ns5.cloudflare.com + * @example ns6.cloudflare.com + * @example ns7.cloudflare.com + */ + nameservers?: string[]; + /** + * @example DATA REDACTED + */ + registrant?: string; + /** + * @example United States + */ + registrant_country?: string; + /** + * @example https://domaincontact.cloudflareregistrar.com/cloudflare.com + */ + registrant_email?: string; + /** + * @example DATA REDACTED + */ + registrant_org?: string; + /** + * @example Cloudflare, Inc. + */ + registrar?: string; + /** + * @example 2017-05-24 + * @format date + */ + updated_date?: string; +}; + +export type WhoisComponentsSchemasSingleResponse = ApiResponseSingleLarS7owG & { + result?: Whois; +}; + +/** + * The width of the image in pixels. + */ +export type Width = number; + +/** + * Maximum width in image pixels. + * + * @example 1366 + * @minimum 1 + */ +export type Width3qFBlIcS = number; + +export type WorkspaceOneConfigRequest = { + /** + * The Workspace One API URL provided in the Workspace One Admin Dashboard. + * + * @example https://as123.awmdm.com/API + */ + api_url: string; + /** + * The Workspace One Authorization URL depending on your region. + * + * @example https://na.uemauth.vmwservices.com/connect/token + */ + auth_url: string; + /** + * The Workspace One client ID provided in the Workspace One Admin Dashboard. + * + * @example example client id + */ + client_id: string; + /** + * The Workspace One client secret provided in the Workspace One Admin Dashboard. + * + * @example example client secret + */ + client_secret: string; +}; + +/** + * The Workspace One Config Response. + */ +export type WorkspaceOneConfigResponse = { + /** + * The Workspace One API URL provided in the Workspace One Admin Dashboard. + * + * @example https://as123.awmdm.com/API + */ + api_url: string; + /** + * The Workspace One Authorization URL depending on your region. + * + * @example https://na.uemauth.vmwservices.com/connect/token + */ + auth_url: string; + /** + * The Workspace One client ID provided in the Workspace One Admin Dashboard. + * + * @example example client id + */ + client_id: string; +}; + +export type Yandex = { + /** + * The configuration parameters for the identity provider. To view the required parameters for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + */ + config: GenericOauthConfig; + id?: Uuid; + name: SchemasNameIXVfNmuB; + /** + * The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider. + */ + scim_config?: { + /** + * A flag to enable or disable SCIM for the identity provider. + */ + enabled?: boolean; + /** + * A flag to revoke a user's session in Access and force a reauthentication on the user's Gateway session when they have been added or removed from a group in the Identity Provider. + */ + group_member_deprovision?: boolean; + /** + * A flag to remove a user's seat in Zero Trust when they have been deprovisioned in the Identity Provider. This cannot be enabled unless user_deprovision is also enabled. + */ + seat_deprovision?: boolean; + /** + * A read-only token generated when the SCIM integration is enabled for the first time. It is redacted on subsequent requests. If you lose this you will need to refresh it token at /access/identity_providers/:idpID/refresh_scim_secret. + */ + secret?: string; + /** + * A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider. + */ + user_deprovision?: boolean; + }; + /** + * The type of identity provider. To determine the value for a specific provider, refer to our [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + * + * @example onetimepin + */ + type: string; +}; + +/** + * The zipcode or postal code where the user lives. + * + * @example 12345 + * @maxLength 20 + */ +export type Zipcode = string | null; + +export type Zone = { + /** + * The last time proof of ownership was detected and the zone was made + * active + * + * @example 2014-01-02T00:01:00.12345Z + * @format date-time + */ + activated_on: string | null; + /** + * When the zone was created + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + created_on: string; + /** + * The interval (in seconds) from when development mode expires + * (positive integer) or last expired (negative integer) for the + * domain. If development mode has never been enabled, this value is 0. + * + * @example 7200 + */ + development_mode: number; + id: IdentifierY35LcWMV; + /** + * When the zone was last modified + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on: string; + /** + * The domain name + * + * @example example.com + * @maxLength 253 + * @pattern ^([a-zA-Z0-9][\-a-zA-Z0-9]*\.)+[\-a-zA-Z0-9]{2,20}$ + */ + name: string; + /** + * DNS host at the time of switching to Cloudflare + * + * @example NameCheap + * @maxLength 50 + */ + original_dnshost: string | null; + /** + * Original name servers before moving to Cloudflare + * Notes: Is this only available for full zones? + * + * @example ns1.originaldnshost.com + * @example ns2.originaldnshost.com + */ + original_name_servers: string[] | null; + /** + * Registrar for the domain at the time of switching to Cloudflare + * + * @example GoDaddy + */ + original_registrar: string | null; +}; + +export type ZoneAuthenticatedOriginPull = CertificateObject; + +export type ZoneAuthenticatedOriginPullHgUvk0U1 = CertificateObject25TqpbxA; + +/** + * The zone's leaf certificate. + * + * @example -----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIJAMHAwfXZ5/PWMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV +BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX +aWRnaXRzIFB0eSBMdGQwHhcNMTYwODI0MTY0MzAxWhcNMTYxMTIyMTY0MzAxWjBF +MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50 +ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAwQHoetcl9+5ikGzV6cMzWtWPJHqXT3wpbEkRU9Yz7lgvddmGdtcGbg/1 +CGZu0jJGkMoppoUo4c3dts3iwqRYmBikUP77wwY2QGmDZw2FvkJCJlKnabIRuGvB +KwzESIXgKk2016aTP6/dAjEHyo6SeoK8lkIySUvK0fyOVlsiEsCmOpidtnKX/a+5 +0GjB79CJH4ER2lLVZnhePFR/zUOyPxZQQ4naHf7yu/b5jhO0f8fwt+pyFxIXjbEI +dZliWRkRMtzrHOJIhrmJ2A1J7iOrirbbwillwjjNVUWPf3IJ3M12S9pEewooaeO2 +izNTERcG9HzAacbVRn2Y2SWIyT/18QIDAQABo4GnMIGkMB0GA1UdDgQWBBT/LbE4 +9rWf288N6sJA5BRb6FJIGDB1BgNVHSMEbjBsgBT/LbE49rWf288N6sJA5BRb6FJI +GKFJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV +BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAMHAwfXZ5/PWMAwGA1UdEwQF +MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAHHFwl0tH0quUYZYO0dZYt4R7SJ0pCm2 +2satiyzHl4OnXcHDpekAo7/a09c6Lz6AU83cKy/+x3/djYHXWba7HpEu0dR3ugQP +Mlr4zrhd9xKZ0KZKiYmtJH+ak4OM4L3FbT0owUZPyjLSlhMtJVcoRp5CJsjAMBUG +SvD8RX+T01wzox/Qb+lnnNnOlaWpqu8eoOenybxKp1a9ULzIVvN/LAcc+14vioFq +2swRWtmocBAs8QR9n4uvbpiYvS8eYueDCWMM4fvFfBhaDZ3N9IbtySh3SpFdQDhw +YbjM2rxXiyLGxB4Bol7QTv4zHif7Zt89FReT/NBy4rzaskDJY5L6xmY= +-----END CERTIFICATE----- + */ +export type ZoneAuthenticatedOriginPullComponentsSchemasCertificate = string; + +/** + * Indicates whether zone-level authenticated origin pulls is enabled. + * + * @example true + */ +export type ZoneAuthenticatedOriginPullComponentsSchemasEnabled = boolean; + +/** + * When the certificate from the authority expires. + * + * @example 2100-01-01T05:20:00Z + * @format date-time + */ +export type ZoneAuthenticatedOriginPullComponentsSchemasExpiresOn = string; + +/** + * Certificate identifier tag. + * + * @example 2458ce5a-0c35-4c7f-82c7-8e9487d3ff60 + * @maxLength 36 + */ +export type ZoneAuthenticatedOriginPullComponentsSchemasIdentifier = string; + +/** + * Status of the certificate activation. + * + * @example active + */ +export type ZoneAuthenticatedOriginPullComponentsSchemasStatus = + | 'initializing' + | 'pending_deployment' + | 'pending_deletion' + | 'active' + | 'deleted' + | 'deployment_timed_out' + | 'deletion_timed_out'; + +/** + * A simple zone object. May have null properties if not a zone subscription. + */ +export type ZoneEBDuGM7t = { + id?: CommonComponentsSchemasIdentifier; + name?: ZonePropertiesName; +}; + +/** + * The domain name + * + * @example example.com + * @maxLength 253 + * @pattern ^([a-zA-Z0-9][\-a-zA-Z0-9]*\.)+[\-a-zA-Z0-9]{2,20}$ + */ +export type ZonePropertiesName = string; + +export type ZoneCacheSettingsResponseSingle = ApiResponseSingleIRWHLn6I & { + result?: Record; +}; + +export type ZoneCacheSettingsResponseSingle5K0MvU1F = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +/** + * Identifier of the zone. + * + * @example 593c9c94de529bbbfaac7c53ced0447d + */ +export type ZoneIdentifier = void; + +export type ZoneIdentifierWAYA2uXU = Identifier; + +export type ZoneMetadata = { + /** + * Whether zone uses account-level custom nameservers. + * + * @example true + */ + enabled?: boolean; +}; + +/** + * Name of the zone. + * + * @example example.com + */ +export type ZoneName = string; + +export type ZoneSettingsResponseCollection = ApiResponseCommonU3C2lXGw & { + result?: ( + | Zerortt + | AdvancedDdos + | AlwaysOnline + | AlwaysUseHttps + | AutomaticHttpsRewrites + | Brotli + | BrowserCacheTtl + | BrowserCheck + | CacheLevel + | ChallengeTtl + | Ciphers + | CnameFlattening + | DevelopmentMode + | EarlyHints + | EdgeCacheTtl + | EmailObfuscation + | H2Prioritization + | HotlinkProtection + | Http2 + | Http3 + | ImageResizing + | IpGeolocation + | Ipv6 + | MaxUpload + | MinTlsVersion + | Minify + | Mirage + | MobileRedirect + | Nel + | OpportunisticEncryption + | OpportunisticOnion + | OrangeToOrange + | OriginErrorPagePassThru + | OriginMaxHttpVersion + | Polish + | PrefetchPreload + | PrivacyPass + | ProxyReadTimeout + | PseudoIpv4 + | ResponseBuffering + | RocketLoader + | SchemasAutomaticPlatformOptimization + | SecurityHeader + | SecurityLevel + | ServerSideExclude + | Sha1Support + | SortQueryStringForCache + | SslCvCTPIf1 + | SslRecommender + | Tls12Only + | Tls13 + | TlsClientAuth + | TrueClientIpHeader + | Waf + | Webp + | Websockets + )[]; +}; + +export type ZoneSettingsResponseSingle = ApiResponseSingle & { + result?: Record; +}; + +export type ZoneSettingsResponseSingleJb3DGhx6 = ApiResponseCommonU3C2lXGw & { + result?: Record; +}; + +export type ZoneSubscriptionResponseSingle = ApiResponseSingleLarS7owG & { + result?: Record; +}; + +export type Zonelockdown = { + configurations: Configurations; + created_on: CreatedOnSYnNp6TW; + description: LockdownsComponentsSchemasDescription; + id: LockdownsComponentsSchemasId; + modified_on: ComponentsSchemasModifiedOn; + paused: SchemasPaused; + urls: SchemasUrls; +}; + +export type ZonelockdownResponseCollection = ApiResponseCollection & { + result: Zonelockdown[]; +}; + +export type ZonelockdownResponseSingle = ApiResponseSingleLarS7owG & { + result: Zonelockdown; +}; + +/** + * The number of zones using this Railgun. + * + * @example 2 + */ +export type ZonesConnected = number; + +/** + * 0-RTT session resumption enabled for this zone. + */ +export type Zerortt = { + /** + * Whether or not this setting can be modified for this zone (based on your Cloudflare plan level). + * + * @default true + */ + editable?: true | false; + /** + * ID of the zone setting. + * + * @example 0rtt + */ + id: '0rtt'; + /** + * last time this setting was modified. + * + * @example 2014-01-01T05:20:00.12345Z + * @format date-time + */ + modified_on?: string | null; + /** + * Current value of the zone setting. + * + * @example on + */ + value: ZerorttValue; +}; + +/** + * Value of the 0-RTT setting. + * + * @default off + */ +export type ZerorttValue = 'on' | 'off'; diff --git a/packages/cloudflare-api/src/api/utils.ts b/packages/cloudflare-api/src/api/utils.ts new file mode 100644 index 00000000..431e608c --- /dev/null +++ b/packages/cloudflare-api/src/api/utils.ts @@ -0,0 +1,6 @@ +type ComputeRange = []> = Result['length'] extends N + ? Result + : ComputeRange; + +export type ClientErrorStatus = Exclude[number], ComputeRange<400>[number]>; +export type ServerErrorStatus = Exclude[number], ComputeRange<500>[number]>; diff --git a/packages/cloudflare-api/src/client.ts b/packages/cloudflare-api/src/client.ts new file mode 100644 index 00000000..bf831768 --- /dev/null +++ b/packages/cloudflare-api/src/client.ts @@ -0,0 +1,125 @@ +import { operationsByTag } from './api/components'; +import { operationsByPath } from './api/extra'; +import { FetcherExtraProps, baseUrl, fetch as CloudflareFetch } from './api/fetcher'; +import { FetchImpl } from './utils/fetch'; +import { RequiredKeys } from './utils/types'; + +export interface CloudflareApiOptions { + token: string; + fetch?: FetchImpl; + basePath?: string; +} + +type ApiProxy = { + [Tag in keyof typeof operationsByTag]: { + [Method in keyof (typeof operationsByTag)[Tag]]: (typeof operationsByTag)[Tag][Method] extends infer Operation extends ( + ...args: any + ) => any + ? Omit[0], keyof FetcherExtraProps> extends infer Params + ? RequiredKeys extends never + ? (params?: Params) => ReturnType + : (params: Params) => ReturnType + : never + : never; + }; +}; + +type RequestEndpointParams = Omit< + Parameters<(typeof operationsByPath)[T]>[0], + keyof FetcherExtraProps +>; + +type RequestEndpointResult = ReturnType<(typeof operationsByPath)[T]>; + +export class CloudflareApi { + #token: string; + #fetch: FetchImpl; + #basePath: string; + + constructor(options: CloudflareApiOptions) { + this.#token = options.token; + if (!options.token) throw new Error('Token is required'); + + this.#fetch = options.fetch || (fetch as FetchImpl); + if (!this.#fetch) throw new Error('Fetch is required'); + + this.#basePath = options.basePath || '/api/v1'; + } + + get api() { + const token = this.#token; + const fetchImpl = this.#fetch; + const basePath = this.#basePath; + + return new Proxy( + {}, + { + get: (_target, namespace: keyof typeof operationsByTag) => { + if (operationsByTag[namespace] === undefined) { + return undefined; + } + + return new Proxy( + {}, + { + get: (_target, operation: keyof (typeof operationsByTag)[keyof typeof operationsByTag]) => { + if (operationsByTag[namespace][operation] === undefined) { + return undefined; + } + + const method = operationsByTag[namespace][operation] as any; + + return async (params: Record) => { + return await method({ ...params, token, fetchImpl, basePath }); + }; + } + } + ); + } + } + ) as ApiProxy; + } + + get auth() { + return { + refreshToken: async ({ refreshToken, authToken, clientId, clientSecret }: RefreshTokenOptions) => { + return await this.#fetch(`${baseUrl}/oauth/token`, { + method: 'POST', + headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${authToken}` }, + body: JSON.stringify({ + grant_type: 'refresh_token', + refresh_token: refreshToken, + client_id: clientId, + client_secret: clientSecret + }) + }); + } + }; + } + + public async request( + endpoint: Endpoint, + params: RequestEndpointParams + ) { + const [method = '', url = ''] = endpoint.split(' '); + const extraParams = (params || {}) as Record; + + const result = await CloudflareFetch({ + ...extraParams, + method, + url, + token: this.#token, + fetchImpl: this.#fetch, + basePath: this.#basePath + }); + + return result as RequestEndpointResult; + } +} + +type RefreshTokenOptions = { + refreshToken: string; + authToken: string; + clientId: string; + clientSecret: string; +}; diff --git a/packages/cloudflare-api/src/index.ts b/packages/cloudflare-api/src/index.ts new file mode 100644 index 00000000..593a2e70 --- /dev/null +++ b/packages/cloudflare-api/src/index.ts @@ -0,0 +1,5 @@ +export * from './client'; + +import type * as Schemas from './api/schemas'; +import type * as Components from './api/components'; +export { Schemas, Components }; diff --git a/packages/cloudflare-api/src/utils/fetch.ts b/packages/cloudflare-api/src/utils/fetch.ts new file mode 100644 index 00000000..59507b5b --- /dev/null +++ b/packages/cloudflare-api/src/utils/fetch.ts @@ -0,0 +1,22 @@ +export type RequestInit = { + body?: string | FormData | undefined; + headers?: Record | undefined; + method?: string | undefined; + signal?: any | undefined; +}; + +export type Response = { + ok: boolean; + status: number; + url: string; + json(): Promise; + text(): Promise; + headers?: + | { + get(name: string): string | null; + } + | undefined; +}; + +// Typed only the subset of the spec we actually use (to be able to build a simple mock) +export type FetchImpl = (url: string, init?: RequestInit | undefined) => Promise; diff --git a/packages/cloudflare-api/src/utils/types.ts b/packages/cloudflare-api/src/utils/types.ts new file mode 100644 index 00000000..609b31c3 --- /dev/null +++ b/packages/cloudflare-api/src/utils/types.ts @@ -0,0 +1,3 @@ +export type RequiredKeys = { + [K in keyof T]-?: {} extends Pick ? never : K; +}[keyof T]; diff --git a/packages/cloudflare-api/tsconfig.json b/packages/cloudflare-api/tsconfig.json new file mode 100644 index 00000000..b337817f --- /dev/null +++ b/packages/cloudflare-api/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "es2020", + "lib": ["dom", "dom.iterable", "esnext"], + "module": "esnext", + "moduleResolution": "node", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitAny": true, + "strictNullChecks": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "exactOptionalPropertyTypes": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedIndexedAccess": true + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2b6a910a..1c921a8a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,6 +44,9 @@ importers: typescript: 5.0.3 vitest: 0.29.8 + packages/cloudflare-api: + specifiers: {} + packages/dhis2-api: specifiers: {}