From 5eb0416f33efeacd3845bca8ca68e55dbe0f8792 Mon Sep 17 00:00:00 2001 From: ranbel <101146722+ranbel@users.noreply.github.com> Date: Mon, 14 Oct 2024 16:03:11 -0400 Subject: [PATCH 001/110] [ZT] Add warp-cli target list (#17382) * add list-targets * update target list output * update feature availability * no mobile support * add back mobile support --- src/content/changelogs/warp.yaml | 6 +-- .../non-http/infrastructure-apps.mdx | 49 +++++++++++++++++++ 2 files changed, 52 insertions(+), 3 deletions(-) diff --git a/src/content/changelogs/warp.yaml b/src/content/changelogs/warp.yaml index f8f7d2d3e4265c2..a1b2441016e239b 100644 --- a/src/content/changelogs/warp.yaml +++ b/src/content/changelogs/warp.yaml @@ -11,7 +11,7 @@ entries: A new GA release for the Linux WARP client is now available in the [package repository](https://pkg.cloudflareclient.com/). This release contains minor fixes and minor improvements. Notable updates: - - Added `list targets` to the `warp-cli` to enhance the user experience with the [Access for Infrastructure SSH](/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/) solution. + - Added `target list` to the `warp-cli` to enhance the user experience with the [Access for Infrastructure SSH](/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/) solution. - Added the ability to customize PCAP options in the `warp-cli`. - Added a list of installed applications in `warp-diag`. - Added a `tunnel reset mtu` subcommand to the `warp-cli`. @@ -36,7 +36,7 @@ entries: A new GA release for the Windows WARP client is now available in the [App Center](https://install.appcenter.ms/orgs/cloudflare/apps/1.1.1.1-windows-1/distribution_groups/release). This release contains minor fixes and improvements. Notable updates: - - Added `list targets` to the `warp-cli` to enhance the user experience with the [Access for Infrastructure SSH](/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/) solution. + - Added `target list` to the `warp-cli` to enhance the user experience with the [Access for Infrastructure SSH](/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/) solution. - Added [pre-login](/cloudflare-one/connections/connect-devices/warp/deployment/mdm-deployment/windows-prelogin/) configuration details to the `warp-diag` output. - Added a `tunnel reset mtu` subcommand to the `warp-cli`. - Added a JSON output option to the `warp-cli`. @@ -57,7 +57,7 @@ entries: All customers running macOS Ventura 13.0 and above (including Sequoia) are advised to upgrade to this release. This release fixes an incompatibility with the firewall found on macOS Sonoma 14.4 and above that could result in the firewall being disabled. Notable updates: - - Added `list targets` to the `warp-cli` to enhance the user experience with the [Access for Infrastructure SSH](/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/) solution. + - Added `target list` to the `warp-cli` to enhance the user experience with the [Access for Infrastructure SSH](/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/) solution. - Added a `tunnel reset mtu` subcommand to the `warp-cli`. - Added the ability for `warp-cli` to use the team name provided in the MDM file for initial registration. - Added a JSON output option to the `warp-cli`. diff --git a/src/content/docs/cloudflare-one/applications/non-http/infrastructure-apps.mdx b/src/content/docs/cloudflare-one/applications/non-http/infrastructure-apps.mdx index 99691288714e5f5..c9a67a7c65367fd 100644 --- a/src/content/docs/cloudflare-one/applications/non-http/infrastructure-apps.mdx +++ b/src/content/docs/cloudflare-one/applications/non-http/infrastructure-apps.mdx @@ -10,6 +10,23 @@ sidebar: import { Badge, Details, Tabs, TabItem, Render } from "~/components"; +
+ +| [WARP modes](/cloudflare-one/connections/connect-devices/warp/configure-warp/warp-modes/) | [Zero Trust plans](https://www.cloudflare.com/teams-pricing/) | +| ----------------------------------------------------------------------------------------- | ------------------------------------------------------------- | +| | All plans | + +| System | Availability | +| -------- | ------------ | +| Windows | ✅ | +| macOS | ✅ | +| Linux | ✅ | +| iOS | ✅ | +| Android | ✅ | +| ChromeOS | ✅ | + +
+ Access for Infrastructure allows you to have granular control over how users access individual servers, clusters, or databases in your private network. By adding an infrastructure application to Cloudflare Access, you can configure how users authenticate to the resource as well as control and authorize the ports, protocols, and usernames that they can connect with. Access and command logs ensure regulatory compliance and allow for auditing of user activity in case of a security breach. :::note @@ -64,6 +81,38 @@ To connect to targets that are in different VNETS, users will need to [switch th If a user is connected to a target in VNET-A and needs to connect to a target in VNET-B, switching their VNET will not break any existing connections to targets within VNET-A. At present, connections are maintained between VNETs. ::: +### Display available targets + +
+ +| System | Availability | Minimum WARP version | +| -------- | ------------ | -------------------- | +| Windows | ✅ | 2024.9.346.0 | +| macOS | ✅ | 2024.9.346.0 | +| Linux | ✅ | 2024.9.346.0 | +| iOS | ❌ | | +| Android | ❌ | | +| ChromeOS | ❌ | | + + +
+ +Users can use `warp-cli` to display a list of targets they can access. On the WARP device, open a terminal and run the following command: + +```sh +warp-cli target list +``` + +```sh output +╭──────────────────────────────────────┬──────────┬──────┬────────────────────────────────┬───────────────────────────────────────────────────┬───────────╮ +│ Target ID │ Protocol │ Port │ Attributes │ IP (Virtual Network) │ Usernames │ +├──────────────────────────────────────┼──────────┼──────┼────────────────────────────────┼───────────────────────────────────────────────────┼───────────┤ +│ 0192027a-ef8a-7966-aff6-4576475db365 │ SSH │ 22 │ hostname: digital-ocean-target │ 10.116.0.3 (a663a21c-76e5-4e3c-8296-d856682269f9) │ root │ +├──────────────────────────────────────┼──────────┼──────┼────────────────────────────────┼───────────────────────────────────────────────────┼───────────┤ +│ 0192027a-ef8a-7966-aff6-4576475db365 │ SSH │ 23 │ hostname: digital-ocean-target │ 10.116.0.3 (a663a21c-76e5-4e3c-8296-d856682269f9) │ root │ +╰──────────────────────────────────────┴──────────┴──────┴────────────────────────────────┴───────────────────────────────────────────────────┴───────────╯ +``` + ## Revoke a user's session To revoke a user's access to all infrastructure targets, you can either [revoke the user from Zero Trust](/cloudflare-one/identity/users/session-management/#per-user) or revoke their device. Cloudflare does not currently support revoking a user's session for a specific target. From 7196e2e8a58408948dd4bfc13a94aeff3e40fb9b Mon Sep 17 00:00:00 2001 From: Greg Brimble Date: Mon, 14 Oct 2024 20:11:39 -0400 Subject: [PATCH 002/110] Add disclaimer about difference between changelog and compat dates (#17525) * Add disclaimer about difference between changelog and compat dates * Update src/content/docs/workers/platform/changelog/index.mdx * Update src/content/docs/workers/platform/changelog/index.mdx Co-authored-by: Brendan Irvine-Broque --------- Co-authored-by: Brendan Irvine-Broque --- src/content/docs/workers/platform/changelog/index.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/content/docs/workers/platform/changelog/index.mdx b/src/content/docs/workers/platform/changelog/index.mdx index 31db2c60e21fea3..45d98c5c5567293 100644 --- a/src/content/docs/workers/platform/changelog/index.mdx +++ b/src/content/docs/workers/platform/changelog/index.mdx @@ -13,6 +13,10 @@ description: Review recent changes to Cloudflare Workers. import { ProductChangelog } from "~/components"; +This changelog details meaningful changes made to Workers across the Cloudflare dashboard, Wrangler, the API, and the workerd runtime. These changes are not configurable. + +This is *different* from [compatibility dates](/workers/configuration/compatibility-dates/) and [compatibility flags](/workers/configuration/compatibility-dates/#compatibility-flags), which let you explicitly opt-in to or opt-out of specific changes to the Workers Runtime. + {/* */} From 51a9d22b1ee3ea8ef14ae7789e9a0ea34aa694b4 Mon Sep 17 00:00:00 2001 From: klucks83 <42561041+klucks83@users.noreply.github.com> Date: Mon, 14 Oct 2024 21:23:32 -0400 Subject: [PATCH 003/110] Update typo in hostname-preparation.mdx (#17526) You vs Your --- .../load-balancing/setup/hostname-preparation.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/learning-paths/load-balancing/setup/hostname-preparation.mdx b/src/content/docs/learning-paths/load-balancing/setup/hostname-preparation.mdx index 85de4ded2c3e34e..0eb623ec3ac1b88 100644 --- a/src/content/docs/learning-paths/load-balancing/setup/hostname-preparation.mdx +++ b/src/content/docs/learning-paths/load-balancing/setup/hostname-preparation.mdx @@ -6,7 +6,7 @@ sidebar: --- -Before setting up anything related to your load balancer, make sure your test that production hostnames meet the following criteria: +Before setting up anything related to your load balancer, make sure you test that production hostnames meet the following criteria: * Based on the [priority order](/load-balancing/load-balancers/dns-records/#priority-order) of DNS records, they will receive the intended amount of traffic. * Each hostname is covered by an [SSL/TLS certificate](/load-balancing/load-balancers/dns-records/#ssltls-coverage). From 1ad94d9fd8b639e04b562c0d0a2370b3dac0f33c Mon Sep 17 00:00:00 2001 From: Renan Dincer Date: Mon, 14 Oct 2024 22:31:34 -0400 Subject: [PATCH 004/110] Calls: Clarify credential behavior in FAQ (#17530) --- src/content/docs/calls/turn/faq.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/content/docs/calls/turn/faq.mdx b/src/content/docs/calls/turn/faq.mdx index 72d9f65771f17fb..b885d211f3acbd3 100644 --- a/src/content/docs/calls/turn/faq.mdx +++ b/src/content/docs/calls/turn/faq.mdx @@ -165,6 +165,11 @@ Packet loss is normal in UDP and can happen occasionally even on reliable connec There is no defined limit for credential issuance. Start at 500 credentials/sec and scale up linearly. Ensure you use more than 50% of the issued credentials. +### What is the maximum value I can use for TURN credential expiry time? + + +You can set a expiration time for a credential up to 48 hours in the future. If you need your TURN allocation to last longer than this, you will need to [update](https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/setConfiguration) the TURN credentials. + ### Does Calls TURN support IPv6? @@ -219,3 +224,7 @@ Cloudflare Calls denies CreatePermission or ChannelBind requests if private IP r If you are a Cloudflare BYOIP customer and wish to connect to your BYOIP ranges with Calls TURN, please reach out to your account manager for further details. + +### What will happen if TURN credentials expire while the TURN allocation is in use? + +Cloudflare Calls will immediately stop billing and recording usage for analytics. After a short delay, the connection will be disconnected. \ No newline at end of file From 70141a02449f58e19d13d563ba86a4229274f6f4 Mon Sep 17 00:00:00 2001 From: Isaac Date: Tue, 15 Oct 2024 10:06:30 +0100 Subject: [PATCH 005/110] [Workers AI] Fix Speech-to-text pricing table (#17157) * Fix table formatting * Fix grammar --- .../docs/workers-ai/platform/pricing.mdx | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/content/docs/workers-ai/platform/pricing.mdx b/src/content/docs/workers-ai/platform/pricing.mdx index c9a56cdb083e59f..64f81db002f8a5f 100644 --- a/src/content/docs/workers-ai/platform/pricing.mdx +++ b/src/content/docs/workers-ai/platform/pricing.mdx @@ -31,7 +31,7 @@ Vision models will convert the image input into tokens for billing. Depending on | Model Size | Pricing | | ---------------- | ------------------------ | -| \<= 3B | $0.10 per Million Tokens | +| \<= 3B | $0.10 per Million Tokens | | 3.1B - 8B | $0.15 per Million Tokens | | 8.1B - 20B | $0.20 per Million Tokens | | 20.1B - 40B | $0.50 per Million Tokens | @@ -41,18 +41,18 @@ Vision models will convert the image input into tokens for billing. Depending on Model size is measured in parameters. Pricing is based on input tokens. -| Model Size | Pricing | -| ------------------ | ------------------------- | +| Model Size | Pricing | +| ------------------- | ------------------------- | | \<= 150M parameters | $0.008 per Million Tokens | -| 151M+ parameters | $0.015 per Million Tokens | +| 151M+ parameters | $0.015 per Million Tokens | ## Image Generation Standard models are large image models such as `@cf/stabilityai/stable-diffusion-xl-base-1.0` Fast models are usually smaller image models that require fewer steps to generate an image, such as `@cf/black-forest-labs/flux-1-schnell` and `@cf/bytedance/stable-diffusion-xl-lightning` We take the maximum of the image height and width to calculate pricing. For example, and image of 1024x768 would fall under 1024x1024 pricing. -| Image Size | Model Type | Price | -| ----------- | ---------- | --------------------- | +| Image Size | Model Type | Price | +| ------------ | ---------- | --------------------- | | \<=256x256 | Standard | $0.00125 per 25 steps | | \<=256x256 | Fast | $0.00025 per 5 steps | | \<=512x512 | Standard | $0.0025 per 25 steps | @@ -63,10 +63,11 @@ We take the maximum of the image height and width to calculate pricing. For exam | \<=2048x2048 | Fast | $0.002 per 5 steps | ## Speech-to-text -Speech to text models like `@cf/openai/whisper` is billed on minutes of audio input. +Speech-to-text models like `@cf/openai/whisper` are billed on minutes of audio input. -| Price | -| $0.0039 per minute of audio input| +| Price | +| --------------------------------- | +| $0.0039 per minute of audio input | ## Free Allocation @@ -86,4 +87,4 @@ All limits reset daily at 00:00 UTC. If you exceed any one of the above limits, ## Archived Pricing -Workers AI was previously metered by Neurons. We deprecated this in favor of unit-based pricing on September 26, 2024. We wanted to make it simple for people to compare and contrast Workers AI with other providers, and we also generally updated pricing to be cheaper with these new units. \ No newline at end of file +Workers AI was previously metered by Neurons. We deprecated this in favor of unit-based pricing on September 26, 2024. We wanted to make it simple for people to compare and contrast Workers AI with other providers, and we also generally updated pricing to be cheaper with these new units. From 685aa434d5027eacc659aaf38b4099336760e93d Mon Sep 17 00:00:00 2001 From: Richard Brady Date: Tue, 15 Oct 2024 10:09:15 +0100 Subject: [PATCH 006/110] [Workers] Clarify that allow_custom_ports flag affects WebSockets. (#17364) --- src/content/compatibility-dates/allow-custom-ports.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/content/compatibility-dates/allow-custom-ports.md b/src/content/compatibility-dates/allow-custom-ports.md index d230cfc550de7a2..3d71bc660bf3c4c 100644 --- a/src/content/compatibility-dates/allow-custom-ports.md +++ b/src/content/compatibility-dates/allow-custom-ports.md @@ -25,3 +25,4 @@ const response = await fetch("https://example.com:8000"); With allow_custom_ports the above example would fetch `https://example.com:8000` rather than `https://example.com:443`. +Note that creating a WebSocket client with a call to `new WebSocket(url)` will also obey this flag. From 8e9529c000014776578f7da62bd5c1b87057ca14 Mon Sep 17 00:00:00 2001 From: zeinjaber <69680657+zeinjaber@users.noreply.github.com> Date: Tue, 15 Oct 2024 12:22:40 +0300 Subject: [PATCH 007/110] [Security Center] Update security.txt examples (#17016) * Update security-file.mdx Adding examples to contact field * Update src/content/docs/security-center/infrastructure/security-file.mdx Co-authored-by: hyperlint-ai[bot] <154288675+hyperlint-ai[bot]@users.noreply.github.com> * Update src/content/docs/security-center/infrastructure/security-file.mdx Co-authored-by: hyperlint-ai[bot] <154288675+hyperlint-ai[bot]@users.noreply.github.com> * Update src/content/docs/security-center/infrastructure/security-file.mdx --------- Co-authored-by: Kim J <73549165+KimJ15@users.noreply.github.com> Co-authored-by: hyperlint-ai[bot] <154288675+hyperlint-ai[bot]@users.noreply.github.com> Co-authored-by: Kian --- .../docs/security-center/infrastructure/security-file.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/content/docs/security-center/infrastructure/security-file.mdx b/src/content/docs/security-center/infrastructure/security-file.mdx index ddfe080cb3b39ca..9502fbef5f7e6f8 100644 --- a/src/content/docs/security-center/infrastructure/security-file.mdx +++ b/src/content/docs/security-center/infrastructure/security-file.mdx @@ -15,9 +15,9 @@ From here, you can create and manage your `security.txt` file to provide the sec Fill in the following information: - **(Required) Contact**: You can enter one of the following to contact you about security issues: - - An email address: The email address must start with `mailto:`. - - A phone number: The phone number must start with `tel:`. - - A URL link: The URL link must start with `https://`. + - An email address: The email address must start with `mailto:` (for example, `mailto:help@example.com`). + - A phone number: The phone number must start with `tel:` (for example, `tel:+1 1234567890`). + - A URL link: The URL link must start with `https://` (for example, `https://example.com`). Select **Add more** to add multiple contacts. - **(Required) Expires at**: Enter the expiration date and time of the `security.txt` file. @@ -34,4 +34,4 @@ To edit your security.txt file, select **Security** > **Settings** > **Edit Secu To download your security.txt file, select **Security** > **Settings** > **Download Security.txt**. -To delete your security.txt file, select **Security** > **Settings** > **Delete Security.txt**. \ No newline at end of file +To delete your security.txt file, select **Security** > **Settings** > **Delete Security.txt**. From 9b628e54f334a15bb31a43fb0831dc2a511028d3 Mon Sep 17 00:00:00 2001 From: Adar Butel <14169758+LA@users.noreply.github.com> Date: Tue, 15 Oct 2024 02:23:45 -0700 Subject: [PATCH 008/110] [Queues] Add R2 Event Notifications disclaimer w.r.e producer Workers (#17269) --- src/content/docs/queues/get-started.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/queues/get-started.mdx b/src/content/docs/queues/get-started.mdx index a2cca9542f6718b..e6ef7656c161a31 100644 --- a/src/content/docs/queues/get-started.mdx +++ b/src/content/docs/queues/get-started.mdx @@ -20,7 +20,7 @@ To use Queues, you will need: ## 1. Create a Worker project -You will access your queue from a Worker, the producer Worker. You must create at least one producer Worker to publish messages onto your queue. +You will access your queue from a Worker, the producer Worker. You must create at least one producer Worker to publish messages onto your queue. If you are using [R2 Bucket Event Notifications](/r2/buckets/event-notifications/), then you do not need a producer Worker. To create a producer Worker, run: From 499d54e5bc97e3c2998a8b1ac4da5820cb86e908 Mon Sep 17 00:00:00 2001 From: Rob Sutter Date: Tue, 15 Oct 2024 12:41:34 +0200 Subject: [PATCH 009/110] Issue 17509 (#17511) Updates KV docs to clarify that only exact matches of `.` and `..` are prohibited in keys. Signed-off-by: Rob Sutter --- src/content/docs/kv/api/write-key-value-pairs.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/kv/api/write-key-value-pairs.mdx b/src/content/docs/kv/api/write-key-value-pairs.mdx index 4d359ade76bbfe7..7394756c5fc335e 100644 --- a/src/content/docs/kv/api/write-key-value-pairs.mdx +++ b/src/content/docs/kv/api/write-key-value-pairs.mdx @@ -48,7 +48,7 @@ env.NAMESPACE.put(key, value, options?); #### Parameters - `key`: `string` - - The key to associate with the value. A key cannot be empty, have a `.` or `..`. All other keys are valid. Keys have a maximum length of 512 bytes. + - The key to associate with the value. A key cannot be empty or be exactly equal to `.` or `..`. All other keys are valid. Keys have a maximum length of 512 bytes. - `value`: `string` | `ReadableStream` | `ArrayBuffer` - The value to store. The type is inferred. The maximum size of a value is 25 MiB. From d725180f4a7c56728012ecaabcce1c936ad7f209 Mon Sep 17 00:00:00 2001 From: Kian Date: Tue, 15 Oct 2024 14:03:13 +0100 Subject: [PATCH 010/110] [Docs Site] Add Dependabot (#17535) --- .github/dependabot.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000000000..a9cdde027e82e74 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,13 @@ +version: 2 +updates: + - package-ecosystem: "npm" + directory: "/" + versioning-strategy: "increase" + commit-message: + prefix: "[Docs Site] " + schedule: + interval: "daily" + assignees: + - "KianNH" + reviewers: + - "KianNH" From ecfcc65dac71da1cef70e4852aa3fbddf516c3ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 14:16:49 +0100 Subject: [PATCH 011/110] [Docs Site] Bump @types/react from 18.3.5 to 18.3.11 (#17537) Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.3.5 to 18.3.11. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index bfab3daa5d5ddaf..8898ce5fb80b838 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "@types/dompurify": "^3.0.5", "@types/he": "^1.2.3", "@types/node": "^20.16.1", - "@types/react": "^18.3.5", + "@types/react": "^18.3.11", "@types/react-dom": "^18.3.0", "algoliasearch": "^4.24.0", "astro": "^4.15.7", @@ -3317,9 +3317,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.3.5", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.5.tgz", - "integrity": "sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==", + "version": "18.3.11", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz", + "integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==", "dev": true, "dependencies": { "@types/prop-types": "*", diff --git a/package.json b/package.json index 81ff9169e767d81..a18c75226e86e10 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "@types/dompurify": "^3.0.5", "@types/he": "^1.2.3", "@types/node": "^20.16.1", - "@types/react": "^18.3.5", + "@types/react": "^18.3.11", "@types/react-dom": "^18.3.0", "algoliasearch": "^4.24.0", "astro": "^4.15.7", From cbce54b18c309a6f93afdf3760e70ddb0501c7ab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 14:20:47 +0100 Subject: [PATCH 012/110] [Docs Site] Bump @astro-community/astro-embed-youtube (#17541) Bumps [@astro-community/astro-embed-youtube](https://github.com/delucis/astro-embed/tree/HEAD/packages/astro-embed-youtube) from 0.5.3 to 0.5.5. - [Release notes](https://github.com/delucis/astro-embed/releases) - [Changelog](https://github.com/delucis/astro-embed/blob/main/packages/astro-embed-youtube/CHANGELOG.md) - [Commits](https://github.com/delucis/astro-embed/commits/@astro-community/astro-embed-youtube@0.5.5/packages/astro-embed-youtube) --- updated-dependencies: - dependency-name: "@astro-community/astro-embed-youtube" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 11 +++++------ package.json | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8898ce5fb80b838..159f4255beeb9fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "cloudflare-docs-starlight", "hasInstallScript": true, "devDependencies": { - "@astro-community/astro-embed-youtube": "^0.5.3", + "@astro-community/astro-embed-youtube": "^0.5.5", "@astrojs/check": "^0.9.3", "@astrojs/react": "^3.6.2", "@astrojs/rss": "^4.0.7", @@ -323,16 +323,15 @@ } }, "node_modules/@astro-community/astro-embed-youtube": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@astro-community/astro-embed-youtube/-/astro-embed-youtube-0.5.3.tgz", - "integrity": "sha512-O06Y6XwhDM5e72Hl/n3qgl7jDSrJpqTSTurFZZ7RQypJQzfyhlWgc99f0REdAtZSnLkq7069HfuMX4CzcaOdkg==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@astro-community/astro-embed-youtube/-/astro-embed-youtube-0.5.5.tgz", + "integrity": "sha512-pG9uYjyZB1kpW8Ljy/H1Klof2txVXLwQmyoG4XWblZyt9eqFlaa65MdzL7UKzzqdoOsn64TN+Q+zPbx0HJhP4Q==", "dev": true, - "license": "MIT", "dependencies": { "lite-youtube-embed": "^0.3.3" }, "peerDependencies": { - "astro": "^2.0.0 || ^3.0.0-beta || ^4.0.0-beta" + "astro": "^2.0.0 || ^3.0.0-beta || ^4.0.0-beta || ^5.0.0-beta" } }, "node_modules/@astrojs/check": { diff --git a/package.json b/package.json index a18c75226e86e10..ca5636f80864fbb 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "sync": "npx astro sync" }, "devDependencies": { - "@astro-community/astro-embed-youtube": "^0.5.3", + "@astro-community/astro-embed-youtube": "^0.5.5", "@astrojs/check": "^0.9.3", "@astrojs/react": "^3.6.2", "@astrojs/rss": "^4.0.7", From 1083cf47f39b99557bfb6ea5c7f5ab987e196de9 Mon Sep 17 00:00:00 2001 From: Rebecca Tamachiro <62246989+RebeccaTamachiro@users.noreply.github.com> Date: Tue, 15 Oct 2024 14:36:31 +0100 Subject: [PATCH 013/110] [DNS] Zone conversions guides (#17088) * Create conversions folder and add .mdx files of new guides * Process comments from gdoc review for full-to-secondary * Process comments from gdoc review for secondary-to-full * Add note about read-only state after unlinking peers * Move repeated text into partial and apply it * Review convert-secondary-to-partial * Move partial docs to conversions folder, re-order, and add redirects * For completeness, add external_link page pointing to partial-setup/setup * Fix broken link and list convert-partial-to-secondary as well * Add correct link for convert-partial-to-secondary * Add call out regarding subdomain setup as per PM suggestion * Explicitly state what NS updates could be needed as per PM suggestion * Apply suggestions from code review Co-authored-by: Jun Lee --------- Co-authored-by: Jun Lee --- public/_redirects | 2 + .../conversions/convert-full-to-partial.mdx | 8 +++ .../conversions/convert-full-to-secondary.mdx | 56 +++++++++++++++ .../convert-partial-to-full.mdx | 13 ++-- .../convert-partial-to-secondary.mdx | 10 +-- .../conversions/convert-secondary-to-full.mdx | 43 ++++++++++++ .../convert-secondary-to-partial.mdx | 68 +++++++++++++++++++ .../dns/zone-setups/conversions/index.mdx | 15 ++++ .../dns/zone-setups/partial-setup/index.mdx | 3 +- src/content/docs/dns/zone-setups/removal.mdx | 2 +- .../conversion-subdomain-setup-callout.mdx | 10 +++ .../dns/secondary-conversion-unlink.mdx | 10 +++ 12 files changed, 227 insertions(+), 13 deletions(-) create mode 100644 src/content/docs/dns/zone-setups/conversions/convert-full-to-partial.mdx create mode 100644 src/content/docs/dns/zone-setups/conversions/convert-full-to-secondary.mdx rename src/content/docs/dns/zone-setups/{partial-setup => conversions}/convert-partial-to-full.mdx (94%) rename src/content/docs/dns/zone-setups/{partial-setup => conversions}/convert-partial-to-secondary.mdx (98%) create mode 100644 src/content/docs/dns/zone-setups/conversions/convert-secondary-to-full.mdx create mode 100644 src/content/docs/dns/zone-setups/conversions/convert-secondary-to-partial.mdx create mode 100644 src/content/docs/dns/zone-setups/conversions/index.mdx create mode 100644 src/content/partials/dns/conversion-subdomain-setup-callout.mdx create mode 100644 src/content/partials/dns/secondary-conversion-unlink.mdx diff --git a/public/_redirects b/public/_redirects index 2d883423dfcba57..cbeffa4c47726c3 100644 --- a/public/_redirects +++ b/public/_redirects @@ -324,6 +324,8 @@ /dns/manage-dns-records/how-to/dns-load-balancing/ /dns/manage-dns-records/how-to/round-robin-dns/ 301 /dns/manage-dns-records/how-to/create-root-domain/ /dns/manage-dns-records/how-to/create-zone-apex/ 301 /dns/reference/troubleshooting/ /dns/reference/recommended-third-party-tools/ 301 +/dns/zone-setups/partial-setup/convert-partial-to-full/ /dns/zone-setups/conversions/convert-partial-to-full/ 301 +/dns/zone-setups/partial-setup/convert-partial-to-secondary/ /dns/zone-setups/conversions/convert-partial-to-secondary/ 301 /dns/zone-setups/troubleshooting/dns-probe-finished-nxdomain/ /dns/troubleshooting/dns-probe-finished-nxdomain/ 301 /dns/zone-setups/troubleshooting/nameservers/ /dns/zone-setups/full-setup/troubleshooting/ 301 /support/dns/ /dns/ 301 diff --git a/src/content/docs/dns/zone-setups/conversions/convert-full-to-partial.mdx b/src/content/docs/dns/zone-setups/conversions/convert-full-to-partial.mdx new file mode 100644 index 000000000000000..1213d10f2742199 --- /dev/null +++ b/src/content/docs/dns/zone-setups/conversions/convert-full-to-partial.mdx @@ -0,0 +1,8 @@ +--- +pcx_content_type: navigation +title: Convert full setup to partial setup +external_link: /dns/zone-setups/partial-setup/setup/ +sidebar: + order: 1 + label: Full to partial +--- \ No newline at end of file diff --git a/src/content/docs/dns/zone-setups/conversions/convert-full-to-secondary.mdx b/src/content/docs/dns/zone-setups/conversions/convert-full-to-secondary.mdx new file mode 100644 index 000000000000000..925e7f3715a1497 --- /dev/null +++ b/src/content/docs/dns/zone-setups/conversions/convert-full-to-secondary.mdx @@ -0,0 +1,56 @@ +--- +title: Convert full setup to secondary setup +pcx_content_type: tutorial +sidebar: + order: 2 + label: Full to secondary +--- + +import { Tabs, TabItem, Render, GlossaryTooltip } from "~/components"; + +If you initially configured a [full setup](/dns/zone-setups/full-setup/), you can later convert your zone to use [incoming zone transfers (Cloudflare as secondary)](/dns/zone-setups/zone-transfers/cloudflare-as-secondary/setup/). + + + +Follow the steps below to achieve this conversion. + +## 1. Prepare DNS records + +1. [Export a zone file](/dns/manage-dns-records/how-to/import-and-export/#export-records). +2. Import the zone file into your new primary DNS provider. +3. At your Cloudflare zone, use the [Update DNS Settings](/api/operations/dns-settings-for-a-zone-update-dns-settings) endpoint to enable [secondary DNS overrides](/dns/zone-setups/zone-transfers/cloudflare-as-secondary/proxy-traffic/). Set the value for `secondary_overrides` to `true`. + + :::note + Enabling secondary DNS overrides is necessary in case you have DNS records that you wish to keep proxied. + ::: + +## 2. Prepare the zone transfers + +1. Make adjustments to DNSSEC according to your option for [DNSSEC with secondary setup](/dns/zone-setups/zone-transfers/cloudflare-as-secondary/dnssec-for-secondary/). +2. (Optional) Create a Transaction Signature (TSIG). + + + + + + + + + + + + + +3. Create a peer server. + + + +## 3. Convert the zone and initiate zone transfers + +1. Use the [Edit Zone endpoint](/api/operations/zones-0-patch) with `type` set to `secondary` to convert the zone type. The existing records will remain in place. +2. Go to **DNS** > **Settings** > **DNS Zone Transfers** and select **Manage linked peers**. +3. Link the peer server you created in the previous steps and select **Save**. +4. On **DNS** > **Settings**, select **Initiate zone transfer**. +5. Confirm the DNS records are transferring as expected. +6. Go to [**DNS** > **Records**](https://dash.cloudflare.com/?to=/:account/:zone/dns/records) and take note of your new **Cloudflare Nameservers**. +7. At your domain registrar (or parent zone), [update your nameservers](/dns/nameservers/update-nameservers/) to include the `secondary.cloudflare.com` nameservers. \ No newline at end of file diff --git a/src/content/docs/dns/zone-setups/partial-setup/convert-partial-to-full.mdx b/src/content/docs/dns/zone-setups/conversions/convert-partial-to-full.mdx similarity index 94% rename from src/content/docs/dns/zone-setups/partial-setup/convert-partial-to-full.mdx rename to src/content/docs/dns/zone-setups/conversions/convert-partial-to-full.mdx index 1d1be620b0cdbed..e709c0e7831ef69 100644 --- a/src/content/docs/dns/zone-setups/partial-setup/convert-partial-to-full.mdx +++ b/src/content/docs/dns/zone-setups/conversions/convert-partial-to-full.mdx @@ -1,16 +1,17 @@ --- -title: Convert to full setup +title: Convert partial setup to full setup pcx_content_type: tutorial sidebar: - order: 3 -head: - - tag: title - content: Convert partial setup to full setup - + order: 4 + label: Partial to full --- +import { Render } from "~/components"; + If you initially set up a partial domain on Cloudflare, you can later migrate it to a [full setup](/dns/zone-setups/full-setup/). + + ## 1. Prepare Cloudflare SSL/TLS In the Cloudflare dashboard, either order an [advanced certificate](/ssl/edge-certificates/advanced-certificate-manager/manage-certificates/) or [upload a custom SSL certificate](/ssl/edge-certificates/custom-certificates/uploading/) for your website or application. diff --git a/src/content/docs/dns/zone-setups/partial-setup/convert-partial-to-secondary.mdx b/src/content/docs/dns/zone-setups/conversions/convert-partial-to-secondary.mdx similarity index 98% rename from src/content/docs/dns/zone-setups/partial-setup/convert-partial-to-secondary.mdx rename to src/content/docs/dns/zone-setups/conversions/convert-partial-to-secondary.mdx index 057f006b21f0df8..8fbcba8381610d7 100644 --- a/src/content/docs/dns/zone-setups/partial-setup/convert-partial-to-secondary.mdx +++ b/src/content/docs/dns/zone-setups/conversions/convert-partial-to-secondary.mdx @@ -1,17 +1,17 @@ --- -title: Convert to secondary setup +title: Convert partial setup to secondary setup pcx_content_type: tutorial sidebar: - order: 4 -head: - - tag: title - content: Convert partial setup to secondary setup + order: 5 + label: Partial to secondary --- import { Details, Render, TabItem, Tabs } from "~/components"; If you initially set up a [partial zone](/dns/zone-setups/partial-setup/) on Cloudflare, you can later convert it to use a [secondary setup](/dns/zone-setups/zone-transfers/cloudflare-as-secondary/). + + This page will guide you through this conversion using [export and import](/dns/manage-dns-records/how-to/import-and-export/) and API calls. ## Before you begin diff --git a/src/content/docs/dns/zone-setups/conversions/convert-secondary-to-full.mdx b/src/content/docs/dns/zone-setups/conversions/convert-secondary-to-full.mdx new file mode 100644 index 000000000000000..e231b0405b7f1e1 --- /dev/null +++ b/src/content/docs/dns/zone-setups/conversions/convert-secondary-to-full.mdx @@ -0,0 +1,43 @@ +--- +title: Convert secondary setup to full setup +pcx_content_type: tutorial +sidebar: + order: 7 + label: Secondary to full + +--- + +import { Render } from "~/components"; + +If you initially set up [incoming zone transfers (Cloudflare as secondary)](/dns/zone-setups/zone-transfers/cloudflare-as-secondary/setup/), you can later convert your zone to use a full setup. + + + +Follow the steps below to achieve this conversion. + +## 1. Stop transferring the zone + + + +## 2. Prepare for the conversion + +1. Plan for [DNSSEC settings](/dns/zone-setups/zone-transfers/cloudflare-as-secondary/dnssec-for-secondary/). If you were previously using [Pre-signed DNSSEC](/dns/zone-setups/zone-transfers/cloudflare-as-secondary/dnssec-for-secondary/#set-up-pre-signed-dnssec), consider disabling DNSSEC before starting the conversion. +2. Make sure the [proxy statuses](/dns/manage-dns-records/reference/proxied-dns-records/) of your DNS records are consistently set: + + - If you have [Secondary DNS override](/dns/zone-setups/zone-transfers/cloudflare-as-secondary/proxy-traffic/), confirm each record has the appropriate setting (**Proxied** or **DNS only**). + - If [Secondary DNS override](/dns/zone-setups/zone-transfers/cloudflare-as-secondary/proxy-traffic/) is disabled, make sure all of your DNS records are listed as **DNS only**. + +3. (Optional) For consistency, use the [Update DNS Settings](/api/operations/dns-settings-for-a-zone-update-dns-settings) endpoint to specify SOA record fields according to your needs. Once Cloudflare automatically generates an SOA record for your zone on full setup, the field overrides will be considered. + +## 3. Convert your zone + +1. Use the [Edit Zone endpoint](/api/operations/zones-0-patch) with `type` set to `full` to convert the zone type. Existing DNS records will not be affected. +2. Go to [**DNS** > **Records**](https://dash.cloudflare.com/?to=/:account/:zone/dns/records) and take note of your new **Cloudflare Nameservers**. +3. At your domain registrar (or parent zone), [update your nameservers](/dns/nameservers/update-nameservers/). Replace the nameservers ending in `secondary.cloudflare.com` by the ones ending in `ns.cloudflare.com`. + + :::note + If Cloudflare will be your only primary DNS provider, remove any other nameservers as well. + ::: + +4. Delete the previous SOA record to make sure Cloudflare generates a new one. +5. (Optional) If Cloudflare was previously not signing your records and you wish to use DNSSEC, follow the steps to [Enable DNSSEC](/dns/dnssec/#enable-dnssec). \ No newline at end of file diff --git a/src/content/docs/dns/zone-setups/conversions/convert-secondary-to-partial.mdx b/src/content/docs/dns/zone-setups/conversions/convert-secondary-to-partial.mdx new file mode 100644 index 000000000000000..ac6f16d8e26396e --- /dev/null +++ b/src/content/docs/dns/zone-setups/conversions/convert-secondary-to-partial.mdx @@ -0,0 +1,68 @@ +--- +title: Convert secondary setup to partial setup +pcx_content_type: tutorial +sidebar: + order: 8 + label: Secondary to partial + +--- + + +import { GlossaryTooltip, Details, Render } from "~/components"; + +If you initially set up [incoming zone transfers (Cloudflare as secondary)](/dns/zone-setups/zone-transfers/cloudflare-as-secondary/setup/), you can later convert your zone to use a partial setup. + + + +Follow the steps below to achieve this conversion. + +## 1. Stop transferring the zone + + + +## 2. Configure your authoritative DNS provider + +1. (Optional) If you are also migrating to a new authoritative DNS provider, export a zone file from the previous provider and import it into the new one. +2. At your authoritative DNS provider, create `CNAME` records pointing to `{your-hostname}.cdn.cloudflare.net` for every hostname you wish to proxy through Cloudflare. + +
+ + The `CNAME` record for `www.example.com` would be: + + ```txt + www.example.com CNAME www.example.com.cdn.cloudflare.net + ``` +
+ +3. At your authoritative DNS provider, remove any previously existing `A`, `AAAA`, or `CNAME` records referencing the hostnames you want to proxy through Cloudflare. For these hostnames, leave only the records pointing to `{your-hostname}.cdn.cloudflare.net`. + +## 3. Convert your Cloudflare zone + +1. Back at your Cloudflare zone, confirm that you have all the `A`, `AAAA`, or `CNAME` [DNS records](/dns/manage-dns-records/how-to/create-dns-records/) needed for the hostnames you pointed to `{your-hostname}.cdn.cloudflare.net` in the previous step. You can also delete any DNS records that have a different type, as they will no longer resolve once you convert your zone to a partial setup. +2. Use the [Edit Zone endpoint](/api/operations/zones-0-patch) with `type` set to `partial` to convert the zone type. Existing DNS records will not be affected. +3. On [**DNS** > **Records**](https://dash.cloudflare.com/?to=/:account/:zone/dns/records), get the **Verification TXT Record** and add it at your authoritative DNS provider. + +
+ + A verification record for `sub.example.com` might be: + + | Type | Name | Content | + | ---- | ------------------------------- | ------------------- | + | TXT | `cloudflare-verify.sub.example.com` | 966215192-518620144 | + + If your authoritative DNS provider automatically appends DNS record `name` fields with your domain, make sure to only insert `cloudflare-verify` as the record name. Otherwise, it may result in an incorrect record name, such as `cloudflare-verify.sub.example.com.sub.example.com`. + + After creating the record, you can use this [Dig Web Interface link](https://digwebinterface.com/?type=TXT&ns=auth&nameservers=) to search (`dig`) for `cloudflare-verify.` and validate if it is working. + +
+ + :::note + The verification record must remain in place for as long as you want your partial setup to be active on Cloudflare. + ::: + +## 4. Update nameservers + +At your domain registrar (or parent zone), [update the nameservers](/dns/nameservers/update-nameservers/). In a partial (CNAME) setup, only the nameservers of your external DNS provider should be listed. + + - Remove any `secondary.cloudflare.com` nameservers if you used to have them. + - If you are also migrating to a new authoritative DNS provider, add your new nameservers. \ No newline at end of file diff --git a/src/content/docs/dns/zone-setups/conversions/index.mdx b/src/content/docs/dns/zone-setups/conversions/index.mdx new file mode 100644 index 000000000000000..ffa8fa025f1cdf0 --- /dev/null +++ b/src/content/docs/dns/zone-setups/conversions/index.mdx @@ -0,0 +1,15 @@ +--- +pcx_content_type: navigation +title: Zone setup conversions +sidebar: + order: 10 + group: + hideIndex: true + label: Zone conversions +--- + +import { DirectoryListing } from "~/components"; + +You can perform the following zone setup conversions: + + \ No newline at end of file diff --git a/src/content/docs/dns/zone-setups/partial-setup/index.mdx b/src/content/docs/dns/zone-setups/partial-setup/index.mdx index 0e8011f4364f3f5..aed3068315db030 100644 --- a/src/content/docs/dns/zone-setups/partial-setup/index.mdx +++ b/src/content/docs/dns/zone-setups/partial-setup/index.mdx @@ -15,7 +15,8 @@ Once you are on a partial setup, the actual resolution of your records to Cloudf ## How to * [Set up a partial domain](/dns/zone-setups/partial-setup/setup/) -* [Convert a partial domain to a full domain](/dns/zone-setups/partial-setup/convert-partial-to-full/) +* [Convert a partial setup to a full setup](/dns/zone-setups/conversions/convert-partial-to-full/) +* [Convert a partial setup to a secondary setup](/dns/zone-setups/conversions/convert-partial-to-secondary/) ## Availability diff --git a/src/content/docs/dns/zone-setups/removal.mdx b/src/content/docs/dns/zone-setups/removal.mdx index 9713aafed6e8eac..1a59d15d670d8eb 100644 --- a/src/content/docs/dns/zone-setups/removal.mdx +++ b/src/content/docs/dns/zone-setups/removal.mdx @@ -2,7 +2,7 @@ title: Zone removal pcx_content_type: concept sidebar: - order: 8 + order: 12 --- diff --git a/src/content/partials/dns/conversion-subdomain-setup-callout.mdx b/src/content/partials/dns/conversion-subdomain-setup-callout.mdx new file mode 100644 index 000000000000000..2d6ccf3c0e1d1b4 --- /dev/null +++ b/src/content/partials/dns/conversion-subdomain-setup-callout.mdx @@ -0,0 +1,10 @@ +--- +{} + +--- + +:::caution[Subdomain setup] +If you also use subdomain setup[^1], consider the [available combinations](/dns/zone-setups/subdomain-setup/setup/#available-setups) and whether your zone conversion could have any implications. +::: + +[^1]: Meaning you have one or more subdomains (`sub.example.com`) added to Cloudflare as their own zone, separate from your apex domain (`example.com`). \ No newline at end of file diff --git a/src/content/partials/dns/secondary-conversion-unlink.mdx b/src/content/partials/dns/secondary-conversion-unlink.mdx new file mode 100644 index 000000000000000..2fdc6a359863025 --- /dev/null +++ b/src/content/partials/dns/secondary-conversion-unlink.mdx @@ -0,0 +1,10 @@ +--- +{} + +--- + +1. Log in to the [Cloudflare dashboard](https://dash.cloudflare.com/login) and select your account and zone. +2. Go to **DNS** > **Settings** > **DNS Zone Transfers** and select **Manage linked peers**. +3. Unlink the peer and select **Save**. + +At this point, your zone will be read-only. \ No newline at end of file From 81cbf7e9bfa627083c6638855ade16cc66a8aad9 Mon Sep 17 00:00:00 2001 From: Maddy <130055405+Maddy-Cloudflare@users.noreply.github.com> Date: Tue, 15 Oct 2024 15:26:07 +0100 Subject: [PATCH 014/110] [Security Center] Export insights (#17542) * [Security Center] Export insights * Update src/content/docs/security-center/security-insights/review-insights.mdx Co-authored-by: Jun Lee --------- Co-authored-by: Jun Lee --- .../security-insights/review-insights.mdx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/content/docs/security-center/security-insights/review-insights.mdx b/src/content/docs/security-center/security-insights/review-insights.mdx index 93cab4714020f28..15987aa31229c11 100644 --- a/src/content/docs/security-center/security-insights/review-insights.mdx +++ b/src/content/docs/security-center/security-insights/review-insights.mdx @@ -22,3 +22,17 @@ For each detected insight, you can resolve it or archive it, after understanding 1. In the insight details page, read the detailed information so that you understand the risks of dismissing the security insight. 2. Select **Archive Insight**. + +## Export insights + +You can export security insights to a CSV format directly from the dashboard. + +To export security insights: + +1. Log in to the [Cloudflare dashboard](https://dash.cloudflare.com) and select your account. +2. Go to Account Home > **Security Center** > **Security Insights** > **Export insights**. + +Exporting security insights allow you to perform a deeper analysis of your insights. + +The exported CSV file includes information such as the severity of your data, insight type scan date, issue class and additional optional fields, such as insight details, risk assessment, detection method, and recommended actions. + From 9159acf282d1b84444b31fc7e9bf78a5d58408d3 Mon Sep 17 00:00:00 2001 From: Greg Brimble Date: Tue, 15 Oct 2024 11:05:18 -0400 Subject: [PATCH 015/110] Move to Workers (#17502) * Move to Workers * Add a thing to force a trailing slash for redirect evaluation * Standardize _redirects * Add tests (#17503) * Exclude tests from typechecking --- .github/workflows/ci.yml | 3 + .github/workflows/publish-preview.yml | 4 +- .github/workflows/publish-production.yml | 6 +- package-lock.json | 2149 +++++++++++++++++++++- package.json | 8 +- public/_redirects | 15 +- tests/fixtures/openapi.json | 1 + tests/globalSetup.ts | 21 + tests/index.test.ts | 125 ++ tests/tsconfig.json | 11 + tsconfig.json | 2 +- vitest.config.ts | 12 + worker/index.ts | 55 +- wrangler-workers.toml | 7 +- wrangler.toml | 2 +- 15 files changed, 2330 insertions(+), 91 deletions(-) create mode 100644 tests/fixtures/openapi.json create mode 100644 tests/globalSetup.ts create mode 100644 tests/index.test.ts create mode 100644 tests/tsconfig.json create mode 100644 vitest.config.ts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c24df4d685f2a1b..9dc91e565774d4a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,3 +46,6 @@ jobs: - name: Check - Validate redirects (infinite loops, sources with fragment) run: npx tsm bin/validate-redirects.ts + + - name: Tests + run: npm run test diff --git a/.github/workflows/publish-preview.yml b/.github/workflows/publish-preview.yml index a8820ae842f5c7a..8aa9c0b3720a9ac 100644 --- a/.github/workflows/publish-preview.yml +++ b/.github/workflows/publish-preview.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-22.04 permissions: contents: read - name: Publish to Cloudflare Pages (Preview) + name: Publish Preview steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 @@ -35,7 +35,7 @@ jobs: CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} - run: npm run build:worker && npx wrangler versions upload -c ./wrangler-workers.toml - name: Deploy to Cloudflare Workers [preview] + name: Deploy to Cloudflare Workers env: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} - uses: actions/cache/save@v4 diff --git a/.github/workflows/publish-production.yml b/.github/workflows/publish-production.yml index 7cc74945289f135..df1289496b948f6 100644 --- a/.github/workflows/publish-production.yml +++ b/.github/workflows/publish-production.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-22.04 permissions: contents: read - name: Publish to Cloudflare Pages (Production) + name: Publish Production steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 @@ -30,6 +30,10 @@ jobs: env: CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} + - run: npx wrangler deploy -c ./wrangler-workers.toml + name: Deploy to Cloudflare Workers + env: + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} - uses: actions/cache/save@v4 if: always() with: diff --git a/package-lock.json b/package-lock.json index 159f4255beeb9fd..aa37eb9115d8468 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,8 @@ "@astrojs/starlight-docsearch": "^0.2.0", "@astrojs/starlight-tailwind": "^2.0.3", "@astrojs/tailwind": "^5.1.1", + "@cloudflare/puppeteer": "^0.0.14", + "@cloudflare/vitest-pool-workers": "^0.5.18", "@cloudflare/workers-types": "^4.20240903.0", "@codingheads/sticky-header": "^1.0.2", "@stoplight/json-schema-tree": "^4.0.0", @@ -47,6 +49,7 @@ "patch-package": "^8.0.0", "prettier": "^3.3.3", "prettier-plugin-astro": "^0.14.1", + "puppeteer": "^23.5.3", "react": "^18.3.1", "react-dom": "^18.3.1", "react-textarea-autosize": "^8.5.3", @@ -66,6 +69,7 @@ "tippy.js": "^6.3.7", "tsx": "^4.19.1", "typescript": "^5.5.4", + "vitest": "2.0.5", "wrangler": "^3.78.10", "yaml": "^2.5.1" }, @@ -1224,10 +1228,664 @@ "node": ">=16.13" } }, + "node_modules/@cloudflare/puppeteer": { + "version": "0.0.14", + "resolved": "https://registry.npmjs.org/@cloudflare/puppeteer/-/puppeteer-0.0.14.tgz", + "integrity": "sha512-wglNG53M4LbLnaU8i14bWNA3fUqKQy17Spczo+PWaGZO1W6m8rzi6u/x49BZ/s3LGg0VJHK4ZaLjkXo2/5ESdA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "1.7.0", + "chromium-bidi": "0.4.20", + "cross-fetch": "4.0.0", + "debug": "4.3.4", + "devtools-protocol": "0.0.1159816", + "ws": "8.13.0" + }, + "engines": { + "node": ">=16.3.0" + } + }, + "node_modules/@cloudflare/puppeteer/node_modules/@puppeteer/browsers": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.7.0.tgz", + "integrity": "sha512-sl7zI0IkbQGak/+IE3VEEZab5SSOlI5F6558WvzWGC1n3+C722rfewC1ZIkcF9dsoGSsxhsONoseVlNQG4wWvQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "4.3.4", + "extract-zip": "2.0.1", + "progress": "2.0.3", + "proxy-agent": "6.3.0", + "tar-fs": "3.0.4", + "unbzip2-stream": "1.4.3", + "yargs": "17.7.1" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=16.3.0" + } + }, + "node_modules/@cloudflare/puppeteer/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@cloudflare/puppeteer/node_modules/chromium-bidi": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.20.tgz", + "integrity": "sha512-ruHgVZFEv00mAQMz1tQjfjdG63jiPWrQPF6HLlX2ucqLqVTJoWngeBEKHaJ6n1swV/HSvgnBNbtTRIlcVyW3Fw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "mitt": "3.0.1" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/@cloudflare/puppeteer/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@cloudflare/puppeteer/node_modules/devtools-protocol": { + "version": "0.0.1159816", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1159816.tgz", + "integrity": "sha512-2cZlHxC5IlgkIWe2pSDmCrDiTzbSJWywjbDDnupOImEBcG31CQgBLV8wWE+5t+C4rimcjHsbzy7CBzf9oFjboA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@cloudflare/puppeteer/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cloudflare/puppeteer/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/puppeteer/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cloudflare/puppeteer/node_modules/proxy-agent": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.0.tgz", + "integrity": "sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.0.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@cloudflare/puppeteer/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@cloudflare/puppeteer/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@cloudflare/puppeteer/node_modules/tar-fs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", + "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + } + }, + "node_modules/@cloudflare/puppeteer/node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@cloudflare/puppeteer/node_modules/yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers": { + "version": "0.5.18", + "resolved": "https://registry.npmjs.org/@cloudflare/vitest-pool-workers/-/vitest-pool-workers-0.5.18.tgz", + "integrity": "sha512-V7KcsgS2CaTyNu16OuGki07u2j1ThhWCHM6EyqVkYm8ow6K+8jA8GQ0/ktBzjsqLYt7gimIHCOe8RaKfRcriRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "birpc": "0.2.14", + "cjs-module-lexer": "^1.2.3", + "devalue": "^4.3.0", + "esbuild": "0.17.19", + "miniflare": "3.20241004.0", + "semver": "^7.5.1", + "wrangler": "3.80.4", + "zod": "^3.22.3" + }, + "peerDependencies": { + "@vitest/runner": "2.0.x - 2.1.x", + "@vitest/snapshot": "2.0.x - 2.1.x", + "vitest": "2.0.x - 2.1.x" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/devalue": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.3.tgz", + "integrity": "sha512-UH8EL6H2ifcY8TbD2QsxwCC/pr5xSwPvv85LrLXVihmHVC3T3YqTCIwnR5ak0yO1KYqlxrPVOA/JVZJYPy2ATg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, "node_modules/@cloudflare/workerd-darwin-64": { - "version": "1.20240925.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20240925.0.tgz", - "integrity": "sha512-KdLnSXuzB65CbqZPm+qYzk+zkQ1tUNPaaRGYVd/jPYAxwwtfTUQdQ+ahDPwVVs2tmQELKy7ZjQjf2apqSWUfjw==", + "version": "1.20241004.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20241004.0.tgz", + "integrity": "sha512-c2afR486NXDRcPm7RaTSRDnffFklPCXde/IeNVhEhBJ8O+pQhBOdDcGIy8zXPwMu0CYga0iHNZmpbsl+ZcHttA==", "cpu": [ "x64" ], @@ -1242,9 +1900,9 @@ } }, "node_modules/@cloudflare/workerd-darwin-arm64": { - "version": "1.20240925.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20240925.0.tgz", - "integrity": "sha512-MiQ6uUmCXjsXgWNV+Ock2tp2/tYqNJGzjuaH6jFioeRF+//mz7Tv7J7EczOL4zq+TH8QFOh0/PUsLyazIWVGng==", + "version": "1.20241004.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20241004.0.tgz", + "integrity": "sha512-siD9fexv5lr2IpBczWV7OPgJvHj8/fJUrRAYCMcBURkfiwssK91coQeZlN1NdQ85aYELVgxDFoG+p86OS+ZzLw==", "cpu": [ "arm64" ], @@ -1259,9 +1917,9 @@ } }, "node_modules/@cloudflare/workerd-linux-64": { - "version": "1.20240925.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20240925.0.tgz", - "integrity": "sha512-Rjix8jsJMfsInmq3Hm3fmiRQ+rwzuWRPV1pg/OWhMSfNP7Qp2RCU+RGkhgeR9Z5eNAje0Sn2BMrFq4RvF9/yRA==", + "version": "1.20241004.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20241004.0.tgz", + "integrity": "sha512-EtKGXO5fzRgX6UhDDLhjjEsB1QtliHb12zavZ/S0C8hKPz76II7MQ3Lls9kfB62fbdMP8L6vcqWPObEUcw6GSw==", "cpu": [ "x64" ], @@ -1276,9 +1934,9 @@ } }, "node_modules/@cloudflare/workerd-linux-arm64": { - "version": "1.20240925.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20240925.0.tgz", - "integrity": "sha512-VYIPeMHQRtbwQoIjUwS/zULlywPxyDvo46XkTpIW5MScEChfqHvAYviQ7TzYGx6Q+gmZmN+DUB2KOMx+MEpCxA==", + "version": "1.20241004.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20241004.0.tgz", + "integrity": "sha512-XO7VBE1YaFf/o9tKO1PqDqaxkU2eAR2DLX7R0+R8p+q92sUDXyoxo48T3yJDfxWndnKJ6hSJfvKanw3Mq9Tisw==", "cpu": [ "arm64" ], @@ -1293,9 +1951,9 @@ } }, "node_modules/@cloudflare/workerd-windows-64": { - "version": "1.20240925.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20240925.0.tgz", - "integrity": "sha512-C8peGvaU5R51bIySi1VbyfRgwNSSRknqoFSnSbSBI3uTN3THTB3UnmRKy7GXJDmyjgXuT9Pcs1IgaWNubLtNtw==", + "version": "1.20241004.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20241004.0.tgz", + "integrity": "sha512-o+TmCYGq58jNUDbG73xOvd648XvJ2TicI++2BBoySklJXG6f4But5AwA8TxQgmeujR3vpBjPZKexEzcZSUOTtA==", "cpu": [ "x64" ], @@ -1310,9 +1968,9 @@ } }, "node_modules/@cloudflare/workers-shared": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@cloudflare/workers-shared/-/workers-shared-0.5.4.tgz", - "integrity": "sha512-PNL/0TjKRdUHa1kwgVdqUNJVZ9ez4kacsi8omz+gv859EvJmsVuGiMAClY2YfJnC9LVKhKCcjqmFgKNXG9/IXA==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workers-shared/-/workers-shared-0.6.0.tgz", + "integrity": "sha512-rfUCvb3hx4AsvdUZsxgk9lmgEnQehqV3jdtXLP/Xr0+P56n11T/0nXNMzmn7Nnv+IJFOV6X9NmFhuMz4sBPw7w==", "dev": true, "license": "MIT OR Apache-2.0", "dependencies": { @@ -1324,9 +1982,9 @@ } }, "node_modules/@cloudflare/workers-types": { - "version": "4.20240925.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20240925.0.tgz", - "integrity": "sha512-KpqyRWvanEuXgBTKYFzRp4NsWOEcswxjsPRSre1zYQcODmc8PUrraVHQUmgvkJgv3FzB+vI9xm7J6oE4MmZHCA==", + "version": "4.20241011.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20241011.0.tgz", + "integrity": "sha512-emwBnuFB/2lS1z6NXAeBqrSL8Xwnr7YpgdLuchOmgu/igqBsLLNPBb4Qmgh3neFWUe9wbzQyx030836YF3c3Xw==", "dev": true, "license": "MIT OR Apache-2.0" }, @@ -2670,6 +3328,29 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@puppeteer/browsers": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.4.0.tgz", + "integrity": "sha512-x8J1csfIygOwf6D6qUAZ0ASk3z63zPb7wkNeHRerCMh82qWKUrOgkuP005AJC8lDL6/evtXETGEJVcwykKT4/g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.3.6", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.4.0", + "semver": "^7.6.3", + "tar-fs": "^3.0.6", + "unbzip2-stream": "^1.4.3", + "yargs": "^17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@rollup/pluginutils": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.2.tgz", @@ -3082,6 +3763,13 @@ "node": "^12.20 || >=14.13" } }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "dev": true, + "license": "MIT" + }, "node_modules/@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -3383,34 +4071,147 @@ "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dev": true, "license": "MIT", - "optional": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", + "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.24.5", + "@babel/plugin-transform-react-jsx-self": "^7.24.5", + "@babel/plugin-transform-react-jsx-source": "^7.24.1", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, + "node_modules/@vitest/expect": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.0.5.tgz", + "integrity": "sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.0.5", + "@vitest/utils": "2.0.5", + "chai": "^5.1.1", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/pretty-format": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.2.tgz", + "integrity": "sha512-FIoglbHrSUlOJPDGIrh2bjX1sNars5HbxlcsFKCtKzu4+5lpsRhOCVcuzp0fEhAGHkPZRIXVNzPcpSlkoZ3LuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.0.5.tgz", + "integrity": "sha512-TfRfZa6Bkk9ky4tW0z20WKXFEwwvWhRY+84CnSEtq4+3ZvDlJyY32oNTJtM7AW9ihW90tX/1Q78cb6FjoAs+ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "2.0.5", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.0.5.tgz", + "integrity": "sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.0.5", + "magic-string": "^0.30.10", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot/node_modules/@vitest/pretty-format": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.0.5.tgz", + "integrity": "sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.0.5.tgz", + "integrity": "sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.0.5.tgz", + "integrity": "sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@types/node": "*" + "@vitest/pretty-format": "2.0.5", + "estree-walker": "^3.0.3", + "loupe": "^3.1.1", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "node_modules/@vitejs/plugin-react": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", - "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", + "node_modules/@vitest/utils/node_modules/@vitest/pretty-format": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.0.5.tgz", + "integrity": "sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/core": "^7.24.5", - "@babel/plugin-transform-react-jsx-self": "^7.24.5", - "@babel/plugin-transform-react-jsx-source": "^7.24.1", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" + "tinyrainbow": "^1.2.0" }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" + "funding": { + "url": "https://opencollective.com/vitest" } }, "node_modules/@volar/kit": { @@ -3700,6 +4501,19 @@ "node": ">=0.4.0" } }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/ajv": { "version": "8.17.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", @@ -3934,6 +4748,29 @@ "printable-characters": "^1.0.42" } }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/astring": { "version": "1.8.6", "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", @@ -4188,6 +5025,13 @@ "node": ">= 0.4" } }, + "node_modules/b4a": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/bail": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", @@ -4204,12 +5048,95 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/bare-events": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz", + "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==", + "dev": true, + "license": "Apache-2.0", + "optional": true + }, + "node_modules/bare-fs": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz", + "integrity": "sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-events": "^2.0.0", + "bare-path": "^2.0.0", + "bare-stream": "^2.0.0" + } + }, + "node_modules/bare-os": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz", + "integrity": "sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==", + "dev": true, + "license": "Apache-2.0", + "optional": true + }, + "node_modules/bare-path": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz", + "integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-os": "^2.1.0" + } + }, + "node_modules/bare-stream": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.3.0.tgz", + "integrity": "sha512-pVRWciewGUeCyKEuRxwv06M079r+fRjAQjBEK2P6OYGrO43O+Z0LrPZZEjlc4mB6C2RpZ9AxJ1s7NLEtOHO6eA==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "b4a": "^1.6.6", + "streamx": "^2.20.0" + } + }, "node_modules/base-64": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==", "dev": true }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/bcp-47": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-2.1.0.tgz", @@ -4247,6 +5174,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/birpc": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.14.tgz", + "integrity": "sha512-37FHE8rqsYM5JEKCnXFyHpBCzvgHEExwVVTq+nUmloInU7l8ezD1TpOhKpS8oe1DTYFqEK27rFZVKG43oTqXRA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/blake3-wasm": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", @@ -4380,6 +5317,31 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -4390,6 +5352,16 @@ "node": "*" } }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -4410,6 +5382,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/camelcase": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", @@ -4474,6 +5456,23 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/chai": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.1.tgz", + "integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -4529,6 +5528,16 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, "node_modules/cheerio": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", @@ -4635,6 +5644,21 @@ "node": ">=10" } }, + "node_modules/chromium-bidi": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.8.0.tgz", + "integrity": "sha512-uJydbGdTw0DEUjhoogGveneJVWX/9YuqkWePzMmkBYwtdAqo5d3J/ovNKFr+/2hWXYmYCr6it8mSSTIj6SS6Ug==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "mitt": "3.0.1", + "urlpattern-polyfill": "10.0.0", + "zod": "3.23.8" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, "node_modules/ci-info": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz", @@ -4650,6 +5674,13 @@ "node": ">=8" } }, + "node_modules/cjs-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", + "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", + "dev": true, + "license": "MIT" + }, "node_modules/cli-boxes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", @@ -4972,6 +6003,43 @@ "layout-base": "^1.0.0" } }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cross-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.12" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -5717,6 +6785,16 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -5760,6 +6838,21 @@ "dev": true, "license": "MIT" }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/delaunator": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", @@ -5851,6 +6944,13 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/devtools-protocol": { + "version": "0.0.1342118", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1342118.tgz", + "integrity": "sha512-75fMas7PkYNDTmDyb6PRJCH7ILmHLp+BhrZGeMsa4bCh40DTxgCz2NRy5UDzII4C5KuD0oBMZ9vXKhEl6UD/3w==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -6052,6 +7152,33 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-ex/node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, "node_modules/es-abstract": { "version": "1.23.3", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", @@ -6235,14 +7362,47 @@ "node": ">=6" } }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", + "optional": true, "engines": { - "node": ">=0.8.0" + "node": ">=0.10.0" } }, "node_modules/esprima": { @@ -6258,6 +7418,16 @@ "node": ">=4" } }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, "node_modules/estree-util-attach-comments": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", @@ -6335,12 +7505,75 @@ "@types/estree": "^1.0.0" } }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "dev": true }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/execa/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/exit-hook": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", @@ -6412,6 +7645,13 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true, + "license": "MIT" + }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -6845,6 +8085,47 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, + "node_modules/get-uri": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", + "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", + "dev": true, + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4", + "fs-extra": "^11.2.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/get-uri/node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/get-uri/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/github-slugger": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", @@ -7586,6 +8867,44 @@ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "dev": true }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, "node_modules/i18next": { "version": "23.15.1", "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.15.1.tgz", @@ -7622,6 +8941,44 @@ "node": ">=0.10.0" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/import-meta-resolve": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", @@ -7721,6 +9078,27 @@ "node": ">=12" } }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/is-absolute-url": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz", @@ -8079,6 +9457,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -8226,6 +9617,13 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true, + "license": "MIT" + }, "node_modules/jsesc": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", @@ -8239,6 +9637,13 @@ "node": ">=6" } }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, "node_modules/json-schema-compare": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz", @@ -8584,6 +9989,13 @@ "loose-envify": "cli.js" } }, + "node_modules/loupe": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", + "dev": true, + "license": "MIT" + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -9009,6 +10421,13 @@ "dev": true, "license": "CC0-1.0" }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -10427,6 +11846,19 @@ "node": ">= 0.6" } }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mimic-function": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", @@ -10450,9 +11882,9 @@ } }, "node_modules/miniflare": { - "version": "3.20240925.0", - "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-3.20240925.0.tgz", - "integrity": "sha512-2LmQbKHf0n6ertUKhT+Iltixi53giqDH7P71+wCir3OnGyXIODqYwOECx1mSDNhYThpxM2dav8UdPn6SQiMoXw==", + "version": "3.20241004.0", + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-3.20241004.0.tgz", + "integrity": "sha512-QSSmCR2V1AJnnpYwlyLXobKLSGiY1FlAiZYULMdGgOUThV7HJeSysDxsmPmrH+D4GQbmUERnmDdB6M6Rrz7uPg==", "dev": true, "license": "MIT", "dependencies": { @@ -10464,7 +11896,7 @@ "glob-to-regexp": "^0.4.1", "stoppable": "^1.1.0", "undici": "^5.28.4", - "workerd": "1.20240925.0", + "workerd": "1.20241004.0", "ws": "^8.17.1", "youch": "^3.2.2", "zod": "^3.22.3" @@ -10556,6 +11988,13 @@ "dev": true, "license": "ISC" }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true, + "license": "MIT" + }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -10569,6 +12008,13 @@ "node": ">=10" } }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true, + "license": "MIT" + }, "node_modules/mlly": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz", @@ -10664,6 +12110,16 @@ "node": ">= 10" } }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/nlcst-to-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz", @@ -10677,6 +12133,27 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", @@ -10751,6 +12228,35 @@ "integrity": "sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==", "dev": true }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -11041,6 +12547,40 @@ "node": ">=6" } }, + "node_modules/pac-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.2.tgz", + "integrity": "sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.5", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "dev": true, + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/package-json-from-dist": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", @@ -11071,6 +12611,19 @@ "@pagefind/windows-x64": "1.1.1" } }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/parse-entities": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", @@ -11097,6 +12650,25 @@ "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", "dev": true }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse-latin": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz", @@ -11364,6 +12936,16 @@ "dev": true, "license": "MIT" }, + "node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -11690,6 +13272,16 @@ "node": ">=6" } }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -11722,6 +13314,36 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/proxy-agent": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", + "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.3", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.0.1", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -11740,6 +13362,46 @@ "once": "^1.3.1" } }, + "node_modules/puppeteer": { + "version": "23.5.3", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-23.5.3.tgz", + "integrity": "sha512-FghmfBsr/UUpe48OiCg1gV3W4vVfQJKjQehbF07SjnQvEpWcvPTah1nykfGWdOQQ1ydJPIXcajzWN7fliCU3zw==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "2.4.0", + "chromium-bidi": "0.8.0", + "cosmiconfig": "^9.0.0", + "devtools-protocol": "0.0.1342118", + "puppeteer-core": "23.5.3", + "typed-query-selector": "^2.12.0" + }, + "bin": { + "puppeteer": "lib/cjs/puppeteer/node/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-core": { + "version": "23.5.3", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.5.3.tgz", + "integrity": "sha512-V58MZD/B3CwkYsqSEQlHKbavMJptF04fzhMdUpiCRCmUVhwZNwSGEPhaiZ1f8I3ABQUirg3VNhXVB6Z1ubHXtQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "2.4.0", + "chromium-bidi": "0.8.0", + "debug": "^4.3.7", + "devtools-protocol": "0.0.1342118", + "typed-query-selector": "^2.12.0", + "ws": "^8.18.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/qs": { "version": "6.9.7", "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", @@ -11772,6 +13434,13 @@ } ] }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true, + "license": "MIT" + }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -12356,6 +14025,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/resolve-pkg-maps": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", @@ -12924,6 +14603,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, "node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -12986,6 +14672,47 @@ "node": ">=6" } }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/solarflare-theme": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/solarflare-theme/-/solarflare-theme-0.0.2.tgz", @@ -13037,6 +14764,13 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, "node_modules/stacktracey": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", @@ -13118,6 +14852,13 @@ "astro": ">=4.2.7" } }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", + "dev": true, + "license": "MIT" + }, "node_modules/stdin-discarder": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", @@ -13148,6 +14889,21 @@ "integrity": "sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==", "dev": true }, + "node_modules/streamx": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz", + "integrity": "sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-fifo": "^1.3.2", + "queue-tick": "^1.0.1", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, "node_modules/string-width": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", @@ -13352,6 +15108,19 @@ "node": ">=0.10.0" } }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/strnum": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", @@ -13542,6 +15311,33 @@ "node": ">=10" } }, + "node_modules/tar-fs": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz", + "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^2.1.1", + "bare-path": "^2.1.0" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, "node_modules/tar/node_modules/minipass": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", @@ -13559,6 +15355,16 @@ "dev": true, "license": "ISC" }, + "node_modules/text-decoder": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.0.tgz", + "integrity": "sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -13580,6 +15386,20 @@ "node": ">=0.8" } }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, "node_modules/tinyexec": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.0.tgz", @@ -13587,6 +15407,36 @@ "dev": true, "license": "MIT" }, + "node_modules/tinypool": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.1.tgz", + "integrity": "sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/tippy.js": { "version": "6.3.7", "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz", @@ -13630,6 +15480,13 @@ "node": ">=8.0" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -14232,6 +16089,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typed-query-selector": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", + "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", + "dev": true, + "license": "MIT" + }, "node_modules/typesafe-path": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/typesafe-path/-/typesafe-path-0.2.2.tgz", @@ -14292,6 +16156,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, "node_modules/undici": { "version": "6.19.8", "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.8.tgz", @@ -14311,9 +16186,9 @@ }, "node_modules/unenv": { "name": "unenv-nightly", - "version": "2.0.0-20240919-125358-9a64854", - "resolved": "https://registry.npmjs.org/unenv-nightly/-/unenv-nightly-2.0.0-20240919-125358-9a64854.tgz", - "integrity": "sha512-XjsgUTrTHR7iw+k/SRTNjh6EQgwpC9voygnoCJo5kh4hKqsSDHUW84MhL9EsHTNfLctvVBHaSw8e2k3R2fKXsQ==", + "version": "2.0.0-20241009-125958-e8ea22f", + "resolved": "https://registry.npmjs.org/unenv-nightly/-/unenv-nightly-2.0.0-20241009-125958-e8ea22f.tgz", + "integrity": "sha512-hRxmKz1iSVRmuFx/vBdPsx7rX4o7Cas9vdjDNeUeWpQTK2LzU3Xy3Jz0zbo7MJX0bpqo/LEFCA+GPwsbl6zKEQ==", "dev": true, "license": "MIT", "dependencies": { @@ -14519,6 +16394,13 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/urlpattern-polyfill": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", + "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==", + "dev": true, + "license": "MIT" + }, "node_modules/use-composed-ref": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", @@ -14748,6 +16630,29 @@ } } }, + "node_modules/vite-node": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.0.5.tgz", + "integrity": "sha512-LdsW4pxj0Ot69FAoXZ1yTnA9bjGohr2yNBU7QKRxpz8ITSkhuDl6h3zS/tvgz4qrNjeRnvrWeXQ8ZF7Um4W00Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.5", + "pathe": "^1.1.2", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, "node_modules/vitefu": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.2.tgz", @@ -14767,6 +16672,71 @@ } } }, + "node_modules/vitest": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.0.5.tgz", + "integrity": "sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "@vitest/expect": "2.0.5", + "@vitest/pretty-format": "^2.0.5", + "@vitest/runner": "2.0.5", + "@vitest/snapshot": "2.0.5", + "@vitest/spy": "2.0.5", + "@vitest/utils": "2.0.5", + "chai": "^5.1.1", + "debug": "^4.3.5", + "execa": "^8.0.1", + "magic-string": "^0.30.10", + "pathe": "^1.1.2", + "std-env": "^3.7.0", + "tinybench": "^2.8.0", + "tinypool": "^1.0.0", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.0.5", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.0.5", + "@vitest/ui": "2.0.5", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, "node_modules/volar-service-css": { "version": "0.0.61", "resolved": "https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.61.tgz", @@ -15039,6 +17009,13 @@ "dev": true, "license": "Apache-2.0" }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/whatwg-encoding": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", @@ -15062,6 +17039,17 @@ "node": ">=18" } }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -15135,6 +17123,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/widest-line": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-5.0.0.tgz", @@ -15159,9 +17164,9 @@ "license": "Unlicense" }, "node_modules/workerd": { - "version": "1.20240925.0", - "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20240925.0.tgz", - "integrity": "sha512-/Jj6+yLwfieZGEt3Kx4+5MoufuC3g/8iFaIh4MPBNGJOGYmdSKXvgCqz09m2+tVCYnysRfbq2zcbVxJRBfOCqQ==", + "version": "1.20241004.0", + "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20241004.0.tgz", + "integrity": "sha512-TCFJ7Zw7svR3adg1fnlPWj/yXhjBnQloLEIJqdu57hli/GsgwlbomwrbM3mdMgbS+K9zYeaYqknXiBN0EXk3QQ==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", @@ -15172,36 +17177,36 @@ "node": ">=16" }, "optionalDependencies": { - "@cloudflare/workerd-darwin-64": "1.20240925.0", - "@cloudflare/workerd-darwin-arm64": "1.20240925.0", - "@cloudflare/workerd-linux-64": "1.20240925.0", - "@cloudflare/workerd-linux-arm64": "1.20240925.0", - "@cloudflare/workerd-windows-64": "1.20240925.0" + "@cloudflare/workerd-darwin-64": "1.20241004.0", + "@cloudflare/workerd-darwin-arm64": "1.20241004.0", + "@cloudflare/workerd-linux-64": "1.20241004.0", + "@cloudflare/workerd-linux-arm64": "1.20241004.0", + "@cloudflare/workerd-windows-64": "1.20241004.0" } }, "node_modules/wrangler": { - "version": "3.80.0", - "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-3.80.0.tgz", - "integrity": "sha512-c9aN7Buf7XgTPpQkw1d0VjNRI4qg3m35PTg70Tg4mOeHwHGjsd74PAsP1G8BjpdqDjfWtsua7tj1g4M3/5dYNQ==", + "version": "3.80.4", + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-3.80.4.tgz", + "integrity": "sha512-DyNvShtVH3k7ZyBndlIiwyRDXqtHr3g01hxwn4FfwKlAaT6EL0wb3KL3UGbsdpeM/xbJiUQxFQ4WuFBWgZS18Q==", "dev": true, "license": "MIT OR Apache-2.0", "dependencies": { "@cloudflare/kv-asset-handler": "0.3.4", - "@cloudflare/workers-shared": "0.5.4", + "@cloudflare/workers-shared": "0.6.0", "@esbuild-plugins/node-globals-polyfill": "^0.2.3", "@esbuild-plugins/node-modules-polyfill": "^0.2.2", "blake3-wasm": "^2.1.5", "chokidar": "^3.5.3", "esbuild": "0.17.19", - "miniflare": "3.20240925.0", + "miniflare": "3.20241004.0", "nanoid": "^3.3.3", "path-to-regexp": "^6.3.0", "resolve": "^1.22.8", "resolve.exports": "^2.0.2", "selfsigned": "^2.0.1", "source-map": "^0.6.1", - "unenv": "npm:unenv-nightly@2.0.0-20240919-125358-9a64854", - "workerd": "1.20240925.0", + "unenv": "npm:unenv-nightly@2.0.0-20241009-125958-e8ea22f", + "workerd": "1.20241004.0", "xxhash-wasm": "^1.0.1" }, "bin": { @@ -15215,7 +17220,7 @@ "fsevents": "~2.3.2" }, "peerDependencies": { - "@cloudflare/workers-types": "^4.20240925.0" + "@cloudflare/workers-types": "^4.20241004.0" }, "peerDependenciesMeta": { "@cloudflare/workers-types": { diff --git a/package.json b/package.json index ca5636f80864fbb..ea1586f138a01a3 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "scripts": { "astro": "npx astro", "build": "npx astro build", + "postbuild": "npm run build:worker", "build:worker": "npx wrangler types -c wrangler-workers.toml --experimental-include-runtime && npx wrangler pages functions build --outdir worker/functions", "check": "npm run check:functions && npm run check:astro", "check:astro": "npm run sync && astro check", @@ -15,7 +16,8 @@ "preview": "npx astro preview", "script:optimize-svgs": "npx tsx scripts/optimize-svgs.ts", "start": "npx astro dev", - "sync": "npx astro sync" + "sync": "npx astro sync", + "test": "npx vitest" }, "devDependencies": { "@astro-community/astro-embed-youtube": "^0.5.5", @@ -27,6 +29,8 @@ "@astrojs/starlight-docsearch": "^0.2.0", "@astrojs/starlight-tailwind": "^2.0.3", "@astrojs/tailwind": "^5.1.1", + "@cloudflare/puppeteer": "^0.0.14", + "@cloudflare/vitest-pool-workers": "^0.5.18", "@cloudflare/workers-types": "^4.20240903.0", "@codingheads/sticky-header": "^1.0.2", "@stoplight/json-schema-tree": "^4.0.0", @@ -57,6 +61,7 @@ "patch-package": "^8.0.0", "prettier": "^3.3.3", "prettier-plugin-astro": "^0.14.1", + "puppeteer": "^23.5.3", "react": "^18.3.1", "react-dom": "^18.3.1", "react-textarea-autosize": "^8.5.3", @@ -76,6 +81,7 @@ "tippy.js": "^6.3.7", "tsx": "^4.19.1", "typescript": "^5.5.4", + "vitest": "2.0.5", "wrangler": "^3.78.10", "yaml": "^2.5.1" }, diff --git a/public/_redirects b/public/_redirects index cbeffa4c47726c3..a4b94c5f94eaf3d 100644 --- a/public/_redirects +++ b/public/_redirects @@ -290,7 +290,7 @@ /d1/reference/query-json/ /d1/build-with-d1/query-json/ 301 /d1/configuration/local-development/ /d1/build-with-d1/local-development/ 301 /d1/configuration/remote-development/ /d1/build-with-d1/remote-development/ 301 -/d1/build-with-d1/import-data/ /d1/build-with-d1/import-export-data/ 301 +/d1/build-with-d1/import-data/ /d1/build-with-d1/import-export-data/ 301 /d1/reference/database-commands/ /d1/reference/sql-statements/ 301 # data loss prevention (dlp) @@ -704,7 +704,6 @@ /logs/reference/logpush-api-configuration/ /logs/get-started/api-configuration/ 301 /logs/reference/logpush-api-configuration/filters/ /logs/reference/filters/ 301 # Non-slashed version is being used in the Cloudflare dashboard -/logs/reference/logpush-api-configuration/custom-fields /logs/reference/custom-fields/ 301 /logs/reference/logpush-api-configuration/custom-fields/ /logs/reference/custom-fields/ 301 /logs/reference/logpush-api-configuration/examples/example-logpush-curl/ /logs/tutorials/examples/example-logpush-curl/ 301 @@ -1402,9 +1401,9 @@ /workers/platform/logpush/ /workers/observability/logging/logpush/ 301 /workers/observability/logpush/ /workers/observability/logging/logpush/ 301 /workers/platform/tail-workers/ /workers/observability/logging/tail-workers/ 301 -/workers/observability/tail-workers/ /workers/observability/logging/tail-workers/ 301 -/workers/errors/script-will-never-generate-a-response/ /workers/observability/errors/#the-script-will-never-generate-a-response-errors 301 -/workers/errors/illegal-invocation/ /workers/observability/errors/#illegal-invocation-errors 301 +/workers/observability/tail-workers/ /workers/observability/logging/tail-workers/ 301 +/workers/errors/script-will-never-generate-a-response/ /workers/observability/errors/#the-script-will-never-generate-a-response-errors 301 +/workers/errors/illegal-invocation/ /workers/observability/errors/#illegal-invocation-errors 301 /workers/learning/metrics-and-analytics/ /workers/observability/metrics-and-analytics/ 301 /workers/learning/integrations/databases/ /workers/databases/connecting-to-databases/ 301 /workers/learning/how-routing-works/ /workers/platform/routing/ 301 @@ -1463,6 +1462,7 @@ /workers/runtime-apis/queues/ /workers/runtime-apis/bindings/bindings/queues/ 301 /workers/runtime-apis/service-bindings/ /workers/runtime-apis/bindings/service-bindings/ 301 /workers/observability/local-development-and-testing/ /workers/testing/local-development/ 301 +/workers/observability/sentry-integration/ /workers/observability/integrations/sentry 301 /workers/configuration/deployments/ /workers/configuration/versions-and-deployments/ 301 /workers/configuration/continuous-integration/ /workers/ci-cd/ 301 /workers/wrangler/ci-cd/ /workers/ci-cd/external-cicd/ 301 @@ -1482,7 +1482,7 @@ /workers-ai/models/embedding/ /workers-ai/models/#text-embeddings 301 /workers-ai/models/text-embeddings/ /workers-ai/models/#text-embeddings 301 /workers-ai/models/speech-recognition/ /workers-ai/models/#automatic-speech-recognition 301 -/workers-ai/models/translation/ /workers-ai/models/#translation 301 +/workers-ai/models/translation/ /workers-ai/models/#translation 301 /workers-ai/models/text-classification/ /workers-ai/models/#text-classification 301 /workers-ai/models/image-classification/ /workers-ai/models/#image-classification 301 /workers-ai/models/codellama-7b-instruct-awq/ /workers-ai/models/ 301 @@ -1659,7 +1659,7 @@ /cloudflare-one/policies/zero-trust/ /cloudflare-one/policies/access/ 301 /cloudflare-one/policies/zero-trust/app-paths/ /cloudflare-one/policies/access/app-paths/ 301 /cloudflare-one/policies/zero-trust/common-configs/ /cloudflare-one/policies/access/ 301 -/cloudflare-one/policies/zero-trust/cors/ /cloudflare-one/identity/authorization-cookie/cors/ 301 +/cloudflare-one/policies/zero-trust/cors/ /cloudflare-one/identity/authorization-cookie/cors/ 301 /cloudflare-one/policies/zero-trust/temporary-auth/ /cloudflare-one/policies/access/temporary-auth/ 301 /cloudflare-one/policies/filtering/dns-policies-builder/dns-categories/ /cloudflare-one/policies/gateway/domain-categories/ 301 /cloudflare-one/policies/filtering/dns-policies/dns-categories/ /cloudflare-one/policies/gateway/domain-categories/ 301 @@ -1813,7 +1813,6 @@ # Workers /workers/reference/apis/* /workers/runtime-apis/:splat 301 /workers/templates/pages/* /workers/examples/:splat 301 -/workers/observability/sentry-integration /workers/observability/integrations/sentry 301 /workers/observability/logging/* /workers/observability/logs/:splat 301 # Others diff --git a/tests/fixtures/openapi.json b/tests/fixtures/openapi.json new file mode 100644 index 000000000000000..f4b833a86ad9b74 --- /dev/null +++ b/tests/fixtures/openapi.json @@ -0,0 +1 @@ +{"components":{"examples":{"cache_cache_reserve_clear_completed":{"value":{"errors":[],"messages":[],"result":{"end_ts":"2023-10-02T12:00:00.12345Z","id":"cache_reserve_clear","start_ts":"2023-10-02T10:00:00.12345Z","state":"Completed"},"success":true}},"cache_cache_reserve_clear_in_progress":{"value":{"errors":[],"messages":[],"result":{"id":"cache_reserve_clear","start_ts":"2023-10-02T10:00:00.12345Z","state":"In-progress"},"success":true}},"cache_cache_reserve_clear_not_found":{"value":{"errors":[{"code":1142,"message":"Unable to retrieve cache_reserve_clear setting value. The zone setting does not exist because you never performed a Cache Reserve Clear operation."}],"messages":[],"result":null,"success":false}},"cache_cache_reserve_clear_rejected_cr_on":{"value":{"errors":[{"code":1152,"message":"Turn off Cache Reserve sync to proceed with deletion."}],"messages":[],"result":null,"success":false}},"cache_cache_reserve_denied_clearing":{"value":{"errors":[{"code":1153,"message":"Cache Reserve cannot be enabled because a deletion is already in progress."}],"messages":[],"result":null,"success":false}},"cache_cache_reserve_off":{"value":{"errors":[],"messages":[],"result":{"editable":true,"id":"cache_reserve","value":"off"},"success":true}},"cache_dummy_automatic_upgrader_disabled_response":{"value":{"errors":[],"messages":[],"result":{"editable":true,"id":"ssl_tls_configuration_mode","modified_on":"2014-01-01T05:20:00.12345Z","value":"custom"},"success":true}},"cache_dummy_automatic_upgrader_enabled_response":{"value":{"errors":[],"messages":[],"result":{"editable":true,"id":"ssl_tls_configuration_mode","modified_on":"2014-01-01T05:20:00.12345Z","next_scheduled_scan":"2014-02-01T05:20:00.12345Z","value":"auto"},"success":true}},"cache_dummy_error_response":{"value":{"errors":[{"code":12345,"message":"Some error message"}],"messages":[],"result":null,"success":false}},"cache_origin_max_http_version_2":{"value":{"errors":[],"messages":[],"result":{"editable":true,"id":"origin_max_http_version","value":"2"},"success":true}}},"parameters":{"api-shield_api_discovery_origin_parameter":{"description":"Filter results to only include discovery results sourced from a particular discovery engine\n * `ML` - Discovered operations that were sourced using ML API Discovery\n * `SessionIdentifier` - Discovered operations that were sourced using Session Identifier API Discovery\n","in":"query","name":"origin","schema":{"$ref":"#/components/schemas/api-shield_api_discovery_origin"}},"api-shield_api_discovery_state_parameter":{"description":"Filter results to only include discovery results in a particular state. States are as follows\n * `review` - Discovered operations that are not saved into API Shield Endpoint Management\n * `saved` - Discovered operations that are already saved into API Shield Endpoint Management\n * `ignored` - Discovered operations that have been marked as ignored\n","in":"query","name":"state","schema":{"$ref":"#/components/schemas/api-shield_api_discovery_state"}},"api-shield_diff_parameter":{"in":"query","name":"diff","schema":{"description":"When `true`, only return API Discovery results that are not saved into API Shield Endpoint Management","type":"boolean"}},"api-shield_direction_parameter":{"in":"query","name":"direction","schema":{"description":"Direction to order results.","enum":["asc","desc"],"example":"desc","type":"string"}},"api-shield_endpoint_parameter":{"in":"query","name":"endpoint","schema":{"description":"Filter results to only include endpoints containing this pattern.","example":"/api/v1","type":"string"}},"api-shield_host_parameter":{"in":"query","name":"host","schema":{"description":"Filter results to only include the specified hosts.","items":{"example":"api.cloudflare.com","type":"string"},"type":"array","uniqueItems":true}},"api-shield_method_parameter":{"in":"query","name":"method","schema":{"description":"Filter results to only include the specified HTTP methods.","items":{"example":"GET","type":"string"},"type":"array","uniqueItems":true}},"api-shield_omit_source":{"description":"Omit the source-files of schemas and only retrieve their meta-data.","in":"query","name":"omit_source","schema":{"default":false,"type":"boolean"}},"api-shield_operation_feature_parameter":{"description":"Add feature(s) to the results. The feature name that is given here corresponds to the resulting feature object. Have a look at the top-level object description for more details on the specific meaning.","in":"query","name":"feature","schema":{"example":["thresholds"],"items":{"enum":["thresholds","parameter_schemas","schema_info"],"example":"thresholds","type":"string"},"type":"array","uniqueItems":true}},"api-shield_operation_id":{"description":"Identifier for the operation","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","in":"path","name":"operation_id","required":true,"schema":{"$ref":"#/components/schemas/api-shield_uuid"}},"api-shield_order_parameter":{"in":"query","name":"order","schema":{"description":"Field to order by","enum":["host","method","endpoint","traffic_stats.requests","traffic_stats.last_updated"],"example":"method","type":"string"}},"api-shield_page":{"description":"Page number of paginated results.","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},"api-shield_parameters-operation_id":{"description":"Identifier for the discovered operation","in":"path","name":"operation_id","required":true,"schema":{"$ref":"#/components/schemas/api-shield_schemas-uuid"}},"api-shield_per_page":{"description":"Maximum number of results per page.","in":"query","name":"per_page","schema":{"default":20,"maximum":50,"minimum":5,"type":"integer"}},"api-shield_schema_id":{"description":"Identifier for the schema-ID","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","in":"path","name":"schema_id","required":true,"schema":{"format":"uuid","maxLength":36,"readOnly":true,"type":"string"}},"api-shield_zone_id":{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/api-shield_schemas-identifier"}},"dls_account_id":{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dls_identifier"}},"dls_hostname":{"in":"path","name":"hostname","required":true,"schema":{"$ref":"#/components/schemas/dls_hostname"}},"dls_zone_id":{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dls_identifier"}},"healthchecks_page":{"description":"Page number of paginated results.","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"number"}},"healthchecks_per_page":{"description":"Maximum number of results per page. Must be a multiple of 5.","in":"query","name":"per_page","schema":{"default":25,"maximum":1000,"minimum":5,"type":"number"}},"waitingroom_page":{"description":"Page number of paginated results.","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"number"}},"waitingroom_per_page":{"description":"Maximum number of results per page. Must be a multiple of 5.","in":"query","name":"per_page","schema":{"default":25,"maximum":1000,"minimum":5,"type":"number"}}},"requestBodies":{"rulesets_CreateRuleset":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/rulesets_Ruleset"},{"properties":{"kind":{"$ref":"#/components/schemas/rulesets_RulesetKind"},"phase":{"$ref":"#/components/schemas/rulesets_RulesetPhase"},"rules":{"$ref":"#/components/schemas/rulesets_RequestRules"}},"required":["name","kind","phase","rules"]}]}}},"required":true},"rulesets_Rule":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/rulesets_RequestRule"},{"properties":{"position":{"oneOf":[{"allOf":[{"$ref":"#/components/schemas/rulesets_RulePosition"},{"properties":{"before":{"description":"The ID of another rule to place the rule before. An empty value causes the rule to be placed at the top.","example":"da5e8e506c8e7877fe06cdf4c41add54","pattern":"^(?:[0-9a-f]{32})?$","title":"Before","type":"string"}},"title":"Before position"}]},{"allOf":[{"$ref":"#/components/schemas/rulesets_RulePosition"},{"properties":{"after":{"description":"The ID of another rule to place the rule after. An empty value causes the rule to be placed at the bottom.","example":"5bccdbb2a5142cd25cad8591255bd209","pattern":"^(?:[0-9a-f]{32})?$","title":"After","type":"string"}},"title":"After position"}]},{"allOf":[{"$ref":"#/components/schemas/rulesets_RulePosition"},{"properties":{"index":{"description":"An index at which to place the rule, where index 1 is the first rule.","example":1,"minimum":1,"title":"Index","type":"number"}},"title":"Index position"}]}]}}}]}}},"required":true},"rulesets_UpdateEntrypointRuleset":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/rulesets_Ruleset"},{"properties":{"rules":{"$ref":"#/components/schemas/rulesets_RequestRules"}},"required":["rules"]}]}}},"required":true},"rulesets_UpdateRuleset":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/rulesets_Ruleset"},{"properties":{"kind":{"$ref":"#/components/schemas/rulesets_RulesetKind"},"phase":{"$ref":"#/components/schemas/rulesets_RulesetPhase"},"rules":{"$ref":"#/components/schemas/rulesets_RequestRules"}},"required":["rules"]}]}}},"required":true},"workers_script_upload":{"content":{"application/javascript":{"schema":{"description":"Raw javascript content comprising a Worker. Must be in service worker syntax.","example":"addEventListener('fetch', (event) =\u003e event.respondWith(new Response('OK')))","type":"string"}},"multipart/form-data":{"encoding":{"\u003cany part name\u003e":{"contentType":"application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream, application/source-map"}},"schema":{"oneOf":[{"properties":{"\u003cany part name\u003e":{"description":"A module comprising a Worker script, often a javascript file. Multiple modules may be provided as separate named parts, but at least one module must be present and referenced in the metadata as `main_module` or `body_part` by part name. Source maps may also be included using the `application/source-map` content type.","items":{"format":"binary","type":"string"},"type":"array"},"metadata":{"description":"JSON encoded metadata about the uploaded parts and Worker configuration.","properties":{"bindings":{"description":"List of bindings available to the worker.","example":[{"name":"MY_ENV_VAR","text":"my_data","type":"plain_text"}],"items":{"additionalProperties":{"x-stainless-any":true},"properties":{"name":{"description":"Name of the binding variable.","type":"string"},"type":{"description":"Type of binding. You can find more about bindings on our docs: https://developers.cloudflare.com/workers/configuration/multipart-upload-metadata/#bindings.","type":"string"}},"type":"object"},"type":"array"},"body_part":{"description":"Name of the part in the multipart request that contains the script (e.g. the file adding a listener to the `fetch` event). Indicates a `service worker syntax` Worker.","example":"worker.js","type":"string"},"compatibility_date":{"description":"Date indicating targeted support in the Workers runtime. Backwards incompatible fixes to the runtime following this date will not affect this Worker.","example":"2023-07-25","type":"string"},"compatibility_flags":{"description":"Flags that enable or disable certain features in the Workers runtime. Used to enable upcoming features or opt in or out of specific changes not included in a `compatibility_date`.","items":{"type":"string"},"type":"array"},"keep_bindings":{"description":"List of binding types to keep from previous_upload.","items":{"type":"string"},"type":"array"},"logpush":{"$ref":"#/components/schemas/workers_logpush"},"main_module":{"description":"Name of the part in the multipart request that contains the main module (e.g. the file exporting a `fetch` handler). Indicates a `module syntax` Worker.","example":"worker.js","type":"string"},"migrations":{"description":"Migrations to apply for Durable Objects associated with this Worker.","oneOf":[{"$ref":"#/components/schemas/workers_single_step_migrations"},{"$ref":"#/components/schemas/workers_stepped_migrations"}]},"observability":{"$ref":"#/components/schemas/workers_observability"},"placement":{"$ref":"#/components/schemas/workers_placement_config"},"tags":{"description":"List of strings to use as tags for this Worker","items":{"type":"string"},"type":"array"},"tail_consumers":{"$ref":"#/components/schemas/workers_tail_consumers"},"usage_model":{"description":"Usage model to apply to invocations.","enum":["bundled","unbound"],"type":"string"},"version_tags":{"additionalProperties":{"type":"string"},"description":"Key-value pairs to use as tags for this version of this Worker","type":"object"}},"type":"object"}},"type":"object"},{"properties":{"message":{"description":"Rollback message to be associated with this deployment. Only parsed when query param `\"rollback_to\"` is present.","type":"string"}},"type":"object"}]}},"text/javascript":{"schema":{"description":"Raw javascript content comprising a Worker. Must be in service worker syntax.","example":"addEventListener('fetch', (event) =\u003e event.respondWith(new Response('OK')))","type":"string"}}},"required":true},"workers_version-post":{"content":{"multipart/form-data":{"encoding":{"\u003cany part name\u003e":{"contentType":"application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream"}},"schema":{"properties":{"\u003cany part name\u003e":{"description":"A module comprising a Worker script, often a javascript file. Multiple modules may be provided as separate named parts, but at least one module must be present and referenced in the metadata as `main_module`.","items":{"format":"binary","type":"string"},"type":"array"},"metadata":{"description":"JSON encoded metadata about the uploaded parts and Worker configuration.","properties":{"annotations":{"properties":{"workers/message":{"description":"Human-readable message about the version.","example":"Fixed worker code.","maxLength":50,"type":"string"},"workers/tag":{"description":"User-provided identifier for the version.","example":"any-identifier-from-external-system","maxLength":25,"type":"string"}},"type":"object"},"bindings":{"description":"List of bindings available to the worker.","example":[{"name":"MY_ENV_VAR","text":"my_data","type":"plain_text"}],"items":{"type":"object"},"type":"array"},"compatibility_date":{"description":"Date indicating targeted support in the Workers runtime. Backwards incompatible fixes to the runtime following this date will not affect this Worker.","example":"2023-07-25","type":"string"},"compatibility_flags":{"description":"Flags that enable or disable certain features in the Workers runtime. Used to enable upcoming features or opt in or out of specific changes not included in a `compatibility_date`.","items":{"type":"string"},"type":"array"},"keep_bindings":{"description":"List of binding types to keep from previous_upload.","items":{"type":"string"},"type":"array"},"main_module":{"description":"Name of the part in the multipart request that contains the main module (e.g. the file exporting a `fetch` handler). Indicates a `module syntax` Worker.","example":"worker.js","type":"string"},"usage_model":{"description":"Usage model to apply to invocations.","enum":["standard"],"type":"string"}},"type":"object"}},"type":"object"}}},"required":true}},"responses":{"email-security_ClientError":{"content":{"application/json":{"schema":{"properties":{"errors":{"example":[{"code":7003,"message":"No route for the URI"}],"items":{"$ref":"#/components/schemas/email-security_Message"},"type":"array"},"messages":{"example":[],"items":{"$ref":"#/components/schemas/email-security_Message"},"type":"array"},"result":{"nullable":true,"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors","messages"],"type":"object"}}},"description":"Client Error"},"rulesets_Empty":{"description":"An empty response."},"rulesets_Failure":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/rulesets_Response"},{"properties":{"result":{"enum":[null]},"success":{"enum":[false]}}}]}}},"description":"A failure response."},"rulesets_Ruleset":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/rulesets_Response"},{"properties":{"errors":{"enum":[[]]},"result":{"allOf":[{"$ref":"#/components/schemas/rulesets_Ruleset"},{"properties":{"kind":{"$ref":"#/components/schemas/rulesets_RulesetKind"},"phase":{"$ref":"#/components/schemas/rulesets_RulesetPhase"},"rules":{"$ref":"#/components/schemas/rulesets_ResponseRules"}},"required":["name","kind","phase","rules"]}]},"success":{"enum":[true]}}}]}}},"description":"A ruleset response."},"rulesets_Rulesets":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/rulesets_Response"},{"properties":{"errors":{"enum":[[]]},"result":{"description":"A list of rulesets. The returned information will not include the rules in each ruleset.","items":{"allOf":[{"$ref":"#/components/schemas/rulesets_Ruleset"},{"properties":{"kind":{"$ref":"#/components/schemas/rulesets_RulesetKind"},"phase":{"$ref":"#/components/schemas/rulesets_RulesetPhase"}},"required":["name","kind","phase"]}]},"title":"Rulesets","type":"array"},"success":{"enum":[true]}}}]}}},"description":"A rulesets response."},"workers_200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_script-response-upload-single"},{"example":{"errors":[],"messages":[],"result":{"created_on":"2022-05-05T05:15:11.602148Z","etag":"777f24a43bef5f69174aa69ceaf1dea67968d510a31d1vw3e49d34a0187c06d1","handlers":["fetch"],"id":"this-is_my_script-01","logpush":false,"modified_on":"2022-05-20T19:02:56.446492Z","placement_mode":"smart","startup_time_ms":10,"tail_consumers":[{"environment":"production","service":"my-log-consumer"}],"usage_model":"bundled"},"success":true}}]}}},"description":"Upload Worker Module response"},"workers_4XX":{"content":{"application/json":{"schema":{"allOf":[{"example":{"errors":[],"messages":[],"result":{"created_on":"2022-05-05T05:15:11.602148Z","etag":"777f24a43bef5f69174aa69ceaf1dea67968d510a31d1vw3e49d34a0187c06d1","handlers":["fetch"],"id":"this-is_my_script-01","logpush":false,"modified_on":"2022-05-20T19:02:56.446492Z","tail_consumers":[{"environment":"production","service":"my-log-consumer"}],"usage_model":"bundled"},"success":true}},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Upload Worker Module response failure"}},"schemas":{"aaa_account-id":{"description":"The account id","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"aaa_alert-types":{"properties":{"description":{"$ref":"#/components/schemas/aaa_description"},"display_name":{"$ref":"#/components/schemas/aaa_display_name"},"filter_options":{"$ref":"#/components/schemas/aaa_filter_options"},"type":{"$ref":"#/components/schemas/aaa_type"}},"type":"object"},"aaa_alert_body":{"description":"Message body included in the notification sent.","example":"SSL certificate has expired","type":"string"},"aaa_alert_interval":{"description":"Optional specification of how often to re-alert from the same incident, not support on all alert types.","example":"30m","type":"string"},"aaa_alert_type":{"description":"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.","enum":["access_custom_certificate_expiration_type","advanced_ddos_attack_l4_alert","advanced_ddos_attack_l7_alert","advanced_http_alert_error","bgp_hijack_notification","billing_usage_alert","block_notification_block_removed","block_notification_new_block","block_notification_review_rejected","brand_protection_alert","brand_protection_digest","clickhouse_alert_fw_anomaly","clickhouse_alert_fw_ent_anomaly","cloudforce_one_request_notification","custom_analytics","custom_ssl_certificate_event_type","dedicated_ssl_certificate_event_type","device_connectivity_anomaly_alert","dos_attack_l4","dos_attack_l7","expiring_service_token_alert","failing_logpush_job_disabled_alert","fbm_auto_advertisement","fbm_dosd_attack","fbm_volumetric_attack","health_check_status_notification","hostname_aop_custom_certificate_expiration_type","http_alert_edge_error","http_alert_origin_error","incident_alert","image_notification","load_balancing_health_alert","load_balancing_pool_enablement_alert","logo_match_alert","magic_tunnel_health_check_event","magic_wan_tunnel_health","maintenance_event_notification","mtls_certificate_store_certificate_expiration_type","pages_event_alert","radar_notification","real_origin_monitoring","scriptmonitor_alert_new_code_change_detections","scriptmonitor_alert_new_hosts","scriptmonitor_alert_new_malicious_hosts","scriptmonitor_alert_new_malicious_scripts","scriptmonitor_alert_new_malicious_url","scriptmonitor_alert_new_max_length_resource_url","scriptmonitor_alert_new_resources","secondary_dns_all_primaries_failing","secondary_dns_primaries_failing","secondary_dns_warning","secondary_dns_zone_successfully_updated","secondary_dns_zone_validation_warning","sentinel_alert","stream_live_notifications","synthetic_test_latency_alert","synthetic_test_low_availability_alert","traffic_anomalies_alert","tunnel_health_event","tunnel_update_event","universal_ssl_event_type","web_analytics_metrics_update","zone_aop_custom_certificate_expiration_type"],"example":"universal_ssl_event_type","type":"string"},"aaa_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/aaa_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/aaa_result_info"}}}],"type":"object"},"aaa_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/aaa_messages"},"messages":{"$ref":"#/components/schemas/aaa_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"aaa_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/aaa_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"$ref":"#/components/schemas/aaa_messages"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"aaa_api-response-single":{"allOf":[{"$ref":"#/components/schemas/aaa_api-response-common"}],"type":"object"},"aaa_audit-logs":{"properties":{"action":{"properties":{"result":{"description":"A boolean that indicates if the action attempted was successful.","example":true,"type":"boolean"},"type":{"description":"A short string that describes the action that was performed.","example":"change_setting","type":"string"}},"type":"object"},"actor":{"properties":{"email":{"description":"The email of the user that performed the action.","example":"michelle@example.com","format":"email","type":"string"},"id":{"description":"The ID of the actor that performed the action. If a user performed the action, this will be their User ID.","example":"f6b5de0326bb5182b8a4840ee01ec774","type":"string"},"ip":{"description":"The IP address of the request that performed the action.","example":"198.41.129.166","type":"string"},"type":{"description":"The type of actor, whether a User, Cloudflare Admin, or an Automated System.","enum":["user","admin","Cloudflare"],"example":"user","type":"string"}},"type":"object"},"id":{"description":"A string that uniquely identifies the audit log.","example":"d5b0f326-1232-4452-8858-1089bd7168ef","type":"string"},"interface":{"description":"The source of the event.","example":"API","type":"string"},"metadata":{"description":"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"},"type":"object"},"newValue":{"description":"The new value of the resource that was modified.","example":"low","type":"string"},"oldValue":{"description":"The value of the resource before it was modified.","example":"high","type":"string"},"owner":{"properties":{"id":{"$ref":"#/components/schemas/aaa_identifier"}},"type":"object"},"resource":{"properties":{"id":{"description":"An identifier for the resource that was affected by the action.","example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"},"type":{"description":"A short string that describes the resource that was affected by the action.","example":"zone","type":"string"}},"type":"object"},"when":{"description":"A UTC RFC3339 timestamp that specifies when the action being logged occured.","example":"2017-04-26T17:31:07Z","format":"date-time","type":"string"}},"type":"object"},"aaa_audit_logs_response_collection":{"oneOf":[{"properties":{"errors":{"$ref":"#/components/schemas/aaa_messages"},"messages":{"$ref":"#/components/schemas/aaa_messages"},"result":{"items":{"$ref":"#/components/schemas/aaa_audit-logs"},"type":"array"},"success":{"example":true,"type":"boolean"}}},{"$ref":"#/components/schemas/aaa_api-response-common"}]},"aaa_before":{"description":"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","type":"string"},"aaa_components-schemas-description":{"description":"Description of the notification policy (if present).","example":"Universal Certificate validation status, issuance, renewal, and expiration notices","type":"string"},"aaa_components-schemas-name":{"description":"The name of the webhook destination. This will be included in the request body when you receive a webhook notification.","example":"Slack Webhook","type":"string"},"aaa_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/aaa_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/aaa_pagerduty"},"type":"array"}}}]},"aaa_components-schemas-type":{"description":"Type of webhook endpoint.","enum":["slack","generic","gchat"],"example":"slack","type":"string"},"aaa_created_at":{"description":"Timestamp of when the webhook destination was created.","example":"2020-10-26T18:25:04.532316Z","format":"date-time","readOnly":true,"type":"string"},"aaa_description":{"description":"Describes the alert type.","example":"High levels of 5xx HTTP errors at your origin","type":"string"},"aaa_display_name":{"description":"Alert type name.","example":"Origin Error Rate Alert","type":"string"},"aaa_eligibility":{"properties":{"eligible":{"$ref":"#/components/schemas/aaa_eligible"},"ready":{"$ref":"#/components/schemas/aaa_ready"},"type":{"$ref":"#/components/schemas/aaa_schemas-type"}},"type":"object"},"aaa_eligible":{"description":"Determines whether or not the account is eligible for the delivery mechanism.","example":true,"type":"boolean"},"aaa_enabled":{"default":true,"description":"Whether or not the Notification policy is enabled.","example":true,"type":"boolean"},"aaa_filter_options":{"description":"Format of additional configuration options (filters) for the alert type. Data type of filters during policy creation: Array of strings.","example":[{"AvailableValues":null,"ComparisonOperator":"==","Key":"zones","Range":"1-n"},{"AvailableValues":[{"Description":"Service-Level Objective of 99.7","ID":"99.7"},{"Description":"Service-Level Objective of 99.8","ID":"99.8"}],"ComparisonOperator":"\u003e=","Key":"slo","Range":"0-1"}],"items":{},"type":"array"},"aaa_filters":{"description":"Optional filters that allow you to be alerted only on a subset of events for that alert type based on some criteria. This is only available for select alert types. See alert type documentation for more details.","example":{"slo":["99.9"]},"properties":{"actions":{"description":"Usage depends on specific alert type","items":{"type":"string"},"type":"array"},"affected_asns":{"description":"Used for configuring radar_notification","items":{"type":"string"},"type":"array"},"affected_components":{"description":"Used for configuring incident_alert","example":"4c231tkdlpcl","items":{"type":"string"},"type":"array"},"affected_locations":{"description":"Used for configuring radar_notification","items":{"type":"string"},"type":"array"},"airport_code":{"description":"Used for configuring maintenance_event_notification","items":{"type":"string"},"type":"array"},"alert_trigger_preferences":{"description":"Usage depends on specific alert type","items":{"type":"string"},"type":"array"},"alert_trigger_preferences_value":{"description":"Usage depends on specific alert type","items":{"type":"string"},"type":"array"},"enabled":{"description":"Used for configuring load_balancing_pool_enablement_alert","items":{"minItems":1,"type":"string"},"type":"array"},"environment":{"description":"Used for configuring pages_event_alert","items":{"minItems":1,"type":"string"},"type":"array"},"event":{"description":"Used for configuring pages_event_alert","items":{"minItems":1,"type":"string"},"type":"array"},"event_source":{"description":"Used for configuring load_balancing_health_alert","items":{"type":"string"},"type":"array"},"event_type":{"description":"Usage depends on specific alert type","items":{"type":"string"},"type":"array"},"group_by":{"description":"Usage depends on specific alert type","items":{"type":"string"},"type":"array"},"health_check_id":{"description":"Used for configuring health_check_status_notification","items":{"type":"string"},"type":"array"},"incident_impact":{"description":"Used for configuring incident_alert","items":{"enum":["INCIDENT_IMPACT_NONE","INCIDENT_IMPACT_MINOR","INCIDENT_IMPACT_MAJOR","INCIDENT_IMPACT_CRITICAL"],"type":"string"},"type":"array"},"input_id":{"description":"Used for configuring stream_live_notifications","items":{"type":"string"},"type":"array"},"limit":{"description":"Used for configuring billing_usage_alert","items":{"minItems":1,"type":"string"},"type":"array"},"logo_tag":{"description":"Used for configuring logo_match_alert","items":{"type":"string"},"type":"array"},"megabits_per_second":{"description":"Used for configuring advanced_ddos_attack_l4_alert","items":{"type":"string"},"type":"array"},"new_health":{"description":"Used for configuring load_balancing_health_alert","items":{"type":"string"},"type":"array"},"new_status":{"description":"Used for configuring tunnel_health_event","items":{"type":"string"},"type":"array"},"packets_per_second":{"description":"Used for configuring advanced_ddos_attack_l4_alert","items":{"type":"string"},"type":"array"},"pool_id":{"description":"Usage depends on specific alert type","items":{"type":"string"},"type":"array"},"pop_name":{"description":"Usage depends on specific alert type","items":{"type":"string"},"type":"array"},"product":{"description":"Used for configuring billing_usage_alert","items":{"minItems":1,"type":"string"},"type":"array"},"project_id":{"description":"Used for configuring pages_event_alert","items":{"minItems":1,"type":"string"},"type":"array"},"protocol":{"description":"Used for configuring advanced_ddos_attack_l4_alert","items":{"type":"string"},"type":"array"},"query_tag":{"description":"Usage depends on specific alert type","items":{"type":"string"},"type":"array"},"requests_per_second":{"description":"Used for configuring advanced_ddos_attack_l7_alert","items":{"type":"string"},"type":"array"},"selectors":{"description":"Usage depends on specific alert type","items":{"type":"string"},"type":"array"},"services":{"description":"Used for configuring clickhouse_alert_fw_ent_anomaly","items":{"minItems":1,"type":"string"},"type":"array"},"slo":{"description":"Usage depends on specific alert type","items":{"type":"string"},"type":"array"},"status":{"description":"Used for configuring health_check_status_notification","items":{"minItems":1,"type":"string"},"type":"array"},"target_hostname":{"description":"Used for configuring advanced_ddos_attack_l7_alert","items":{"type":"string"},"type":"array"},"target_ip":{"description":"Used for configuring advanced_ddos_attack_l4_alert","items":{"type":"string"},"type":"array"},"target_zone_name":{"description":"Used for configuring advanced_ddos_attack_l7_alert","items":{"type":"string"},"type":"array"},"traffic_exclusions":{"description":"Used for configuring traffic_anomalies_alert","items":{"enum":["security_events"],"maxItems":1,"type":"string"},"type":"array"},"tunnel_id":{"description":"Used for configuring tunnel_health_event","items":{"type":"string"},"type":"array"},"tunnel_name":{"description":"Usage depends on specific alert type","items":{"type":"string"},"type":"array"},"where":{"description":"Usage depends on specific alert type","items":{"type":"string"},"type":"array"},"zones":{"description":"Usage depends on specific alert type","items":{"type":"string"},"type":"array"}},"type":"object"},"aaa_history":{"properties":{"alert_body":{"$ref":"#/components/schemas/aaa_alert_body"},"alert_type":{"$ref":"#/components/schemas/aaa_schemas-alert_type"},"description":{"$ref":"#/components/schemas/aaa_components-schemas-description"},"id":{"$ref":"#/components/schemas/aaa_uuid"},"mechanism":{"$ref":"#/components/schemas/aaa_mechanism"},"mechanism_type":{"$ref":"#/components/schemas/aaa_mechanism_type"},"name":{"$ref":"#/components/schemas/aaa_schemas-name"},"policy_id":{"$ref":"#/components/schemas/aaa_policy-id"},"sent":{"$ref":"#/components/schemas/aaa_sent"}},"type":"object"},"aaa_history_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/aaa_api-response-collection"},{"properties":{"result":{"example":[{"alert_body":{"data":{"custom_csr_id":"","expires_on":null,"hosts":[],"id":"11111111111","issuer":"","method":"txt","serial_number":"","settings":null,"signature":"","status":"","type":"","uploaded_on":null,"validation_errors":[],"validation_records":[{"cname":"","cname_target":"","emails":[],"http_body":"","http_url":"","txt_name":"_acme-challenge.example.com","txt_value":"11111111111"}]},"metadata":{"account":null,"event":{"created_at":null,"id":"","type":"ssl.certificate.validation.failed"},"zone":{"id":"11111111111"}}},"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","policy_id":"35040955-3102-4710-938c-0f4eaf736e25","sent":"2021-10-08T17:52:17.571336Z"}],"items":{"$ref":"#/components/schemas/aaa_history"},"type":"array"},"result_info":{"example":{"count":1,"page":1,"per_page":20},"type":"object"}}}]},"aaa_id_response":{"allOf":[{"$ref":"#/components/schemas/aaa_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/aaa_uuid"}},"type":"object"}}}]},"aaa_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"aaa_integration-token":{"description":"The token integration key","example":"8c71e667571b4f61b94d9e4b12158038","maxLength":32,"readOnly":true,"type":"string"},"aaa_last_failure":{"description":"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","readOnly":true,"type":"string"},"aaa_last_success":{"description":"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","readOnly":true,"type":"string"},"aaa_mechanism":{"description":"The mechanism to which the notification has been dispatched.","example":"test@example.com","type":"string"},"aaa_mechanism_type":{"description":"The type of mechanism to which the notification has been dispatched. This can be email/pagerduty/webhook based on the mechanism configured.","enum":["email","pagerduty","webhook"],"example":"email","type":"string"},"aaa_mechanisms":{"additionalProperties":{"items":{"properties":{"id":{"oneOf":[{"$ref":"#/components/schemas/aaa_uuid"},{"description":"The email address","type":"string"}]}},"type":"object"},"type":"array"},"description":"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"}]},"type":"object"},"aaa_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"aaa_name":{"description":"The name of the pagerduty service.","example":"My PagerDuty Service","type":"string"},"aaa_pagerduty":{"properties":{"id":{"$ref":"#/components/schemas/aaa_uuid"},"name":{"$ref":"#/components/schemas/aaa_name"}},"type":"object"},"aaa_per_page":{"default":25,"description":"Number of items per page.","maximum":1000,"minimum":5,"type":"number"},"aaa_policies":{"properties":{"alert_interval":{"$ref":"#/components/schemas/aaa_alert_interval"},"alert_type":{"$ref":"#/components/schemas/aaa_alert_type"},"created":{"$ref":"#/components/schemas/aaa_timestamp"},"description":{"$ref":"#/components/schemas/aaa_schemas-description"},"enabled":{"$ref":"#/components/schemas/aaa_enabled"},"filters":{"$ref":"#/components/schemas/aaa_filters"},"id":{"$ref":"#/components/schemas/aaa_policy-id"},"mechanisms":{"$ref":"#/components/schemas/aaa_mechanisms"},"modified":{"$ref":"#/components/schemas/aaa_timestamp"},"name":{"$ref":"#/components/schemas/aaa_schemas-name"}},"type":"object"},"aaa_policies_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/aaa_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/aaa_policies"},"type":"array"}}}]},"aaa_policy-id":{"description":"The unique identifier of a notification policy","example":"0da2b59e-f118-439d-8097-bdfb215203c9","maxLength":36,"readOnly":true,"type":"string"},"aaa_ready":{"description":"Beta flag. Users can create a policy with a mechanism that is not ready, but we cannot guarantee successful delivery of notifications.","example":true,"type":"boolean"},"aaa_response_collection":{"allOf":[{"$ref":"#/components/schemas/aaa_api-response-collection"},{"properties":{"result":{"additionalProperties":{"items":{"$ref":"#/components/schemas/aaa_alert-types"},"type":"array"},"example":{"Origin Monitoring":[{"description":"High levels of 5xx HTTP errors at your origin.","display_name":"Origin Error Rate Alert","filter_options":[{"AvailableValues":null,"ComparisonOperator":"==","Key":"zones","Range":"1-n"},{"AvailableValues":[{"Description":"Service-Level Objective of 99.7","ID":"99.7"},{"Description":"Service-Level Objective of 99.8","ID":"99.8"}],"ComparisonOperator":"\u003e=","Key":"slo","Range":"0-1"}],"type":"http_alert_origin_error"}]},"type":"object"}}}]},"aaa_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"aaa_schemas-alert_type":{"description":"Type of notification that has been dispatched.","example":"universal_ssl_event_type","type":"string"},"aaa_schemas-api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/aaa_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/aaa_messages"}],"example":[]},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"aaa_schemas-description":{"description":"Optional description for the Notification policy.","example":"Something describing the policy.","type":"string"},"aaa_schemas-name":{"description":"Name of the policy.","example":"SSL Notification Event Policy","type":"string"},"aaa_schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/aaa_api-response-collection"},{"properties":{"result":{"additionalProperties":{"items":{"$ref":"#/components/schemas/aaa_eligibility"},"type":"array"},"example":{"email":{"eligible":true,"ready":true,"type":"email"}},"type":"object"}}}]},"aaa_schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/aaa_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/aaa_webhooks"}}}]},"aaa_schemas-type":{"description":"Determines type of delivery mechanism.","enum":["email","pagerduty","webhook"],"example":"email","type":"string"},"aaa_secret":{"description":"Optional secret that will be passed in the `cf-webhook-auth` header when dispatching generic webhook notifications or formatted for supported destinations. Secrets are not returned in any API response body.","type":"string"},"aaa_sensitive_id_response":{"allOf":[{"$ref":"#/components/schemas/aaa_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/aaa_token"}},"type":"object"}}}]},"aaa_sent":{"description":"Timestamp of when the notification was dispatched in ISO 8601 format.","example":"2021-10-08T17:52:17.571336Z","format":"date-time","type":"string"},"aaa_single_response":{"allOf":[{"$ref":"#/components/schemas/aaa_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/aaa_policies"}}}]},"aaa_timestamp":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"aaa_token":{"description":"token in form of UUID","example":"a313ba7d-3e46-4c0e-a408-08fafbc3816a","maxLength":36,"readOnly":true,"type":"string"},"aaa_type":{"description":"Use this value when creating and updating a notification policy.","example":"http_alert_origin_error","type":"string"},"aaa_url":{"description":"The POST endpoint to call when dispatching a notification.","example":"https://hooks.slack.com/services/Ds3fdBFbV/456464Gdd","type":"string"},"aaa_uuid":{"description":"UUID","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","maxLength":36,"readOnly":true,"type":"string","x-auditable":true},"aaa_webhook-id":{"description":"The unique identifier of a webhook","example":"b115d5ec-15c6-41ee-8b76-92c449b5227b","maxLength":36,"readOnly":true,"type":"string"},"aaa_webhooks":{"properties":{"created_at":{"$ref":"#/components/schemas/aaa_created_at"},"id":{"$ref":"#/components/schemas/aaa_webhook-id"},"last_failure":{"$ref":"#/components/schemas/aaa_last_failure"},"last_success":{"$ref":"#/components/schemas/aaa_last_success"},"name":{"$ref":"#/components/schemas/aaa_components-schemas-name"},"secret":{"$ref":"#/components/schemas/aaa_secret"},"type":{"$ref":"#/components/schemas/aaa_components-schemas-type"},"url":{"$ref":"#/components/schemas/aaa_url"}},"type":"object"},"aaa_webhooks_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/aaa_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/aaa_webhooks"},"type":"array"}}}]},"access_access-requests":{"properties":{"action":{"$ref":"#/components/schemas/access_action"},"allowed":{"$ref":"#/components/schemas/access_allowed"},"app_domain":{"$ref":"#/components/schemas/access_app_domain"},"app_uid":{"$ref":"#/components/schemas/access_app_uid"},"connection":{"$ref":"#/components/schemas/access_connection"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"ip_address":{"$ref":"#/components/schemas/access_ip"},"ray_id":{"$ref":"#/components/schemas/access_ray_id"},"user_email":{"$ref":"#/components/schemas/access_schemas-email"}},"type":"object"},"access_access-requests_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/access_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/access_access-requests"},"type":"array"}}}]},"access_access_group_rule":{"description":"Matches an Access group.","properties":{"group":{"properties":{"id":{"description":"The ID of a previously created Access group.","example":"aa0a4aab-672b-4bdb-bc33-a59f1130a11f","type":"string"}},"required":["id"],"type":"object"}},"required":["group"],"title":"Access groups","type":"object"},"access_access_seat":{"description":"True if the seat is part of Access.","example":false,"type":"boolean"},"access_action":{"description":"The event that occurred, such as a login attempt.","example":"login","type":"string"},"access_active_device_count":{"description":"The number of active devices registered to the user.","example":2,"type":"number"},"access_active_session_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/access_identity"},{"properties":{"isActive":{"example":true,"type":"boolean"}},"type":"object"}],"type":"object"}}}]},"access_active_sessions_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"properties":{"expiration":{"example":1694813506,"type":"integer"},"metadata":{"properties":{"apps":{"additionalProperties":{"properties":{"hostname":{"example":"test.example.com","type":"string"},"name":{"example":"app name","type":"string"},"type":{"example":"self_hosted","type":"string"},"uid":{"example":"cc2a8145-0128-4429-87f3-872c4d380c4e","type":"string"}},"type":"object"},"type":"object"},"expires":{"example":1694813506,"type":"integer"},"iat":{"example":1694791905,"type":"integer"},"nonce":{"example":"X1aXj1lFVcqqyoXF","type":"string"},"ttl":{"example":21600,"type":"integer"}},"type":"object"},"name":{"type":"string"}},"type":"object"},"type":"array"}}}]},"access_allow_all_headers":{"description":"Allows all HTTP request headers.","example":true,"type":"boolean"},"access_allow_all_methods":{"description":"Allows all HTTP request methods.","type":"boolean"},"access_allow_all_origins":{"description":"Allows all origins.","type":"boolean"},"access_allow_authenticate_via_warp":{"description":"When set to true, users can authenticate via WARP for any application in your organization. Application settings will take precedence over this value.","example":"false","type":"boolean"},"access_allow_credentials":{"description":"When set to `true`, includes credentials (cookies, authorization headers, or TLS client certificates) with requests.","type":"boolean"},"access_allowed":{"default":false,"description":"The result of the authentication event.","type":"boolean"},"access_allowed_headers":{"description":"Allowed HTTP request headers.","items":{"type":"string"},"type":"array"},"access_allowed_idps":{"description":"The identity providers your users can select when connecting to this application. Defaults to all IdPs configured in your account.","items":{"description":"The identity providers selected for application.","example":"699d98642c564d2e855e9661899b7252","type":"string"},"type":"array"},"access_allowed_methods":{"description":"Allowed HTTP request methods.","example":["GET"],"items":{"enum":["GET","POST","HEAD","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH"],"type":"string"},"type":"array"},"access_allowed_origins":{"description":"Allowed origins.","example":["https://example.com"],"items":{"type":"string"},"type":"array"},"access_any_valid_service_token_rule":{"description":"Matches any valid Access Service Token","properties":{"any_valid_service_token":{"description":"An empty object which matches on all service tokens.","example":{},"type":"object","x-stainless-empty-object":true}},"required":["any_valid_service_token"],"title":"Any Valid Service Token","type":"object"},"access_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/access_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/access_result_info"}}}],"type":"object"},"access_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/access_messages"},"messages":{"$ref":"#/components/schemas/access_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"access_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/access_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/access_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"access_api-response-single":{"allOf":[{"$ref":"#/components/schemas/access_api-response-common"}],"type":"object"},"access_app-policies_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/access_app_policy_response"},"type":"array"}}}]},"access_app-policies_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/access_app_policy_response"}}}]},"access_app_count":{"description":"Number of access applications currently using this policy.","example":2,"type":"integer"},"access_app_domain":{"description":"The URL of the Access application.","example":"test.example.com/admin","type":"string"},"access_app_id":{"oneOf":[{"$ref":"#/components/schemas/access_identifier"},{"$ref":"#/components/schemas/access_uuid"}]},"access_app_launcher_logo_url":{"description":"The image URL of the logo shown in the App Launcher header.","example":"https://www.cloudflare.com/img/logo-web-badges/cf-logo-on-white-bg.svg","type":"string"},"access_app_launcher_props":{"allOf":[{"$ref":"#/components/schemas/access_feature_app_props"},{"properties":{"domain":{"example":"authdomain.cloudflareaccess.com","readOnly":true},"name":{"default":"App Launcher","example":"App Launcher","readOnly":true},"type":{"description":"The application type.","example":"app_launcher","type":"string"}}}]},"access_app_launcher_visible":{"default":true,"description":"Displays the application in the App Launcher.","example":true,"type":"boolean"},"access_app_policy_link":{"description":"A JSON that links a reusable policy to an application.","properties":{"id":{"$ref":"#/components/schemas/access_schemas-uuid"},"precedence":{"$ref":"#/components/schemas/access_precedence"}},"type":"object"},"access_app_policy_request":{"allOf":[{"properties":{"precedence":{"$ref":"#/components/schemas/access_precedence"}},"type":"object"},{"$ref":"#/components/schemas/access_policy_req"}]},"access_app_policy_response":{"allOf":[{"$ref":"#/components/schemas/access_policy_resp"}],"properties":{"precedence":{"$ref":"#/components/schemas/access_precedence"}},"type":"object"},"access_app_req_embedded_policies":{"properties":{"policies":{"description":"The policies that will apply to the application, in ascending order of precedence. Items can reference existing policies or create new policies exclusive to the application.","items":{"oneOf":[{"$ref":"#/components/schemas/access_app_policy_link"},{"allOf":[{"description":"A policy UID to link to this application."},{"$ref":"#/components/schemas/access_schemas-uuid"}]},{"allOf":[{"type":"object"},{"description":"An application-scoped policy JSON. If the policy does not yet exist, it will be created.","properties":{"id":{"$ref":"#/components/schemas/access_schemas-uuid"}}},{"$ref":"#/components/schemas/access_app_policy_request"}]}]},"type":"array"}},"type":"object"},"access_app_req_embedded_scim_config":{"properties":{"scim_config":{"$ref":"#/components/schemas/access_scim_config"}},"type":"object"},"access_app_request":{"anyOf":[{"allOf":[{"$ref":"#/components/schemas/access_self_hosted_props"},{"$ref":"#/components/schemas/access_app_req_embedded_policies"},{"$ref":"#/components/schemas/access_app_req_embedded_scim_config"}],"title":"Self Hosted Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_saas_props"},{"$ref":"#/components/schemas/access_app_req_embedded_policies"},{"$ref":"#/components/schemas/access_app_req_embedded_scim_config"}],"title":"SaaS Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_ssh_props"},{"$ref":"#/components/schemas/access_app_req_embedded_policies"},{"$ref":"#/components/schemas/access_app_req_embedded_scim_config"}],"title":"Browser SSH Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_vnc_props"},{"$ref":"#/components/schemas/access_app_req_embedded_policies"},{"$ref":"#/components/schemas/access_app_req_embedded_scim_config"}],"title":"Browser VNC Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_app_launcher_props"},{"$ref":"#/components/schemas/access_app_req_embedded_policies"},{"$ref":"#/components/schemas/access_app_req_embedded_scim_config"}],"title":"App Launcher Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_warp_props"},{"$ref":"#/components/schemas/access_app_req_embedded_policies"},{"$ref":"#/components/schemas/access_app_req_embedded_scim_config"}],"title":"Device Enrollment Permissions Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_biso_props"},{"$ref":"#/components/schemas/access_app_req_embedded_policies"},{"$ref":"#/components/schemas/access_app_req_embedded_scim_config"}],"title":"Browser Isolation Permissions Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_bookmark_props"},{"$ref":"#/components/schemas/access_app_req_embedded_scim_config"}],"title":"Bookmark application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_infra_props"},{"$ref":"#/components/schemas/access_app_resp_embedded_policies"}],"title":"Infrastructure application","type":"object"}]},"access_app_resp_embedded_policies":{"description":"The policies that will apply to the application.","properties":{"policies":{"items":{"$ref":"#/components/schemas/access_app_policy_response"},"type":"array"}},"type":"object"},"access_app_resp_embedded_target_criteria":{"description":"Contains the targets secured by the application.","properties":{"target_criteria":{"items":{"$ref":"#/components/schemas/access_target_criteria"},"type":"array"}},"type":"object"},"access_app_response":{"anyOf":[{"allOf":[{"$ref":"#/components/schemas/access_basic_app_response_props"},{"$ref":"#/components/schemas/access_self_hosted_props"},{"$ref":"#/components/schemas/access_app_resp_embedded_policies"}],"title":"Self Hosted Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_basic_app_response_props"},{"$ref":"#/components/schemas/access_saas_props"},{"$ref":"#/components/schemas/access_app_resp_embedded_policies"}],"title":"SaaS Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_basic_app_response_props"},{"$ref":"#/components/schemas/access_ssh_props"},{"$ref":"#/components/schemas/access_app_resp_embedded_policies"}],"title":"Browser SSH Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_basic_app_response_props"},{"$ref":"#/components/schemas/access_vnc_props"},{"$ref":"#/components/schemas/access_app_resp_embedded_policies"}],"title":"Browser VNC Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_basic_app_response_props"},{"$ref":"#/components/schemas/access_app_launcher_props"},{"$ref":"#/components/schemas/access_app_resp_embedded_policies"}],"title":"App Launcher Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_basic_app_response_props"},{"$ref":"#/components/schemas/access_warp_props"},{"$ref":"#/components/schemas/access_app_resp_embedded_policies"}],"title":"Device Enrollment Permissions Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_basic_app_response_props"},{"$ref":"#/components/schemas/access_biso_props"},{"$ref":"#/components/schemas/access_app_resp_embedded_policies"}],"title":"Browser Isolation Permissions Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_basic_app_response_props"},{"$ref":"#/components/schemas/access_bookmark_props"}],"title":"Bookmark application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_basic_app_response_props"},{"$ref":"#/components/schemas/access_infra_props"},{"$ref":"#/components/schemas/access_app_resp_embedded_policies"}],"title":"Infrastructure application","type":"object"}]},"access_app_uid":{"description":"The unique identifier for the Access application.","example":"df7e2w5f-02b7-4d9d-af26-8d1988fca630","type":"string"},"access_approval_group":{"description":"A group of email addresses that can approve a temporary authentication request.","properties":{"approvals_needed":{"description":"The number of approvals needed to obtain access.","example":1,"minimum":0,"type":"number"},"email_addresses":{"description":"A list of emails that can approve the access request.","example":["test@cloudflare.com","test2@cloudflare.com"],"items":{"type":"string"},"type":"array"},"email_list_uuid":{"description":"The UUID of an re-usable email list.","type":"string"}},"required":["approvals_needed"],"type":"object"},"access_approval_groups":{"description":"Administrators who can approve a temporary authentication request.","example":[{"approvals_needed":1,"email_addresses":["test1@cloudflare.com","test2@cloudflare.com"]},{"approvals_needed":3,"email_list_uuid":"597147a1-976b-4ef2-9af0-81d5d007fc34"}],"items":{"$ref":"#/components/schemas/access_approval_group"},"type":"array"},"access_approval_required":{"default":false,"description":"Requires the user to request access from an administrator at the start of each session.","example":true,"type":"boolean"},"access_apps":{"anyOf":[{"allOf":[{"$ref":"#/components/schemas/access_schemas-basic_app_response_props"},{"$ref":"#/components/schemas/access_schemas-self_hosted_props"}],"title":"Self Hosted Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_schemas-basic_app_response_props"},{"$ref":"#/components/schemas/access_schemas-saas_props"}],"title":"SaaS Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_schemas-basic_app_response_props"},{"$ref":"#/components/schemas/access_schemas-ssh_props"}],"title":"Browser SSH Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_schemas-basic_app_response_props"},{"$ref":"#/components/schemas/access_schemas-vnc_props"}],"title":"Browser VNC Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_schemas-basic_app_response_props"},{"$ref":"#/components/schemas/access_schemas-app_launcher_props"}],"title":"App Launcher Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_schemas-basic_app_response_props"},{"$ref":"#/components/schemas/access_schemas-warp_props"}],"title":"Device Enrollment Permissions Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_schemas-basic_app_response_props"},{"$ref":"#/components/schemas/access_schemas-biso_props"}],"title":"Browser Isolation Permissions Application","type":"object"},{"allOf":[{"$ref":"#/components/schemas/access_schemas-basic_app_response_props"},{"$ref":"#/components/schemas/access_schemas-bookmark_props"}],"title":"Bookmark application","type":"object"}],"type":"object"},"access_apps_components-schemas-name":{"description":"The name of the application.","example":"Admin Site","type":"string"},"access_apps_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/access_app_response"},"type":"array"}}}]},"access_apps_components-schemas-response_collection-2":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/access_apps"},"type":"array"}}}]},"access_apps_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/access_app_response"}}}]},"access_apps_components-schemas-single_response-2":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/access_apps"}}}]},"access_associated_hostnames":{"description":"The hostnames of the applications that will use this certificate.","items":{"description":"A fully-qualified domain name (FQDN).","example":"admin.example.com","type":"string"},"type":"array"},"access_aud":{"description":"The Application Audience (AUD) tag. Identifies the application associated with the CA.","example":"737646a56ab1df6ec9bddc7e5ca84eaf3b0768850f3ffb5d74f1534911fe3893","maxLength":64,"readOnly":true,"type":"string"},"access_auth_domain":{"description":"The unique subdomain assigned to your Zero Trust organization.","example":"test.cloudflareaccess.com","type":"string"},"access_authentication_method_rule":{"description":"Enforce different MFA options","properties":{"auth_method":{"properties":{"auth_method":{"description":"The type of authentication method https://datatracker.ietf.org/doc/html/rfc8176#section-2.","example":"mfa","type":"string"}},"required":["auth_method"],"type":"object"}},"required":["auth_method"],"title":"Authentication method","type":"object"},"access_auto_redirect_to_identity":{"default":false,"description":"When set to `true`, users skip the identity provider selection step during login.","type":"boolean"},"access_azureAD":{"allOf":[{"$ref":"#/components/schemas/access_identity-provider"},{"properties":{"config":{"allOf":[{"$ref":"#/components/schemas/access_generic-oauth-config"},{"$ref":"#/components/schemas/access_custom-claims-support"},{"properties":{"conditional_access_enabled":{"description":"Should Cloudflare try to load authentication contexts from your account","type":"boolean"},"directory_id":{"description":"Your Azure directory uuid","example":"\u003cyour azure directory uuid\u003e","type":"string"},"prompt":{"description":"Indicates the type of user interaction that is required. prompt=login forces the user to enter their credentials on that request, negating single-sign on. prompt=none is the opposite. It ensures that the user isn't presented with any interactive prompt. If the request can't be completed silently by using single-sign on, the Microsoft identity platform returns an interaction_required error. prompt=select_account interrupts single sign-on providing account selection experience listing all the accounts either in session or any remembered account or an option to choose to use a different account altogether.","enum":["login","select_account","none"],"type":"string"},"support_groups":{"description":"Should Cloudflare try to load groups from your account","type":"boolean"}},"type":"object"}]}},"type":"object"}],"title":"Azure AD","type":"object"},"access_azure_group_rule":{"description":"Matches an Azure group.\nRequires an Azure identity provider.","properties":{"azureAD":{"properties":{"id":{"description":"The ID of an Azure group.","example":"aa0a4aab-672b-4bdb-bc33-a59f1130a11f","type":"string"},"identity_provider_id":{"description":"The ID of your Azure identity provider.","example":"ea85612a-29c8-46c2-bacb-669d65136971","type":"string"}},"required":["id","identity_provider_id"],"type":"object"}},"required":["azureAD"],"title":"Azure group","type":"object"},"access_basic_app_response_props":{"properties":{"aud":{"$ref":"#/components/schemas/access_schemas-aud"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"id":{"$ref":"#/components/schemas/access_uuid"},"scim_config":{"$ref":"#/components/schemas/access_scim_config"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"type":"object"},"access_bg_color":{"description":"The background color of the App Launcher page.","example":"#ff0000","type":"string"},"access_biso_props":{"allOf":[{"$ref":"#/components/schemas/access_feature_app_props"},{"properties":{"domain":{"example":"authdomain.cloudflareaccess.com/browser","readOnly":true},"name":{"default":"Clientless Web Isolation","example":"Clientless Web Isolation","readOnly":true},"type":{"description":"The application type.","example":"biso","type":"string"}}}]},"access_bookmark_props":{"properties":{"app_launcher_visible":{"$ref":"#/components/schemas/access_app_launcher_visible"},"domain":{"description":"The URL or domain of the bookmark.","example":"https://mybookmark.com","type":"string"},"logo_url":{"$ref":"#/components/schemas/access_logo_url"},"name":{"$ref":"#/components/schemas/access_apps_components-schemas-name"},"tags":{"$ref":"#/components/schemas/access_tags"},"type":{"description":"The application type.","example":"bookmark","type":"string"}},"title":"Bookmark application","type":"object"},"access_bookmarks":{"properties":{"app_launcher_visible":{"$ref":"#/components/schemas/access_schemas-app_launcher_visible"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"domain":{"$ref":"#/components/schemas/access_schemas-domain"},"id":{"description":"The unique identifier for the Bookmark application.","type":"string"},"logo_url":{"$ref":"#/components/schemas/access_logo_url"},"name":{"$ref":"#/components/schemas/access_bookmarks_components-schemas-name"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"type":"object"},"access_bookmarks_components-schemas-name":{"description":"The name of the Bookmark application.","example":"My Website","type":"string"},"access_bookmarks_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/access_bookmarks"},"type":"array"}}}]},"access_bookmarks_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/access_bookmarks"}}}]},"access_button_color":{"description":"The background color of the log in button on the landing page.","example":"#ff0000","type":"string"},"access_button_text_color":{"description":"The color of the text in the log in button on the landing page.","example":"#ff0000","type":"string"},"access_ca":{"properties":{"aud":{"$ref":"#/components/schemas/access_aud"},"id":{"$ref":"#/components/schemas/access_id"},"public_key":{"$ref":"#/components/schemas/access_public_key"}},"type":"object"},"access_ca_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/access_ca"},"type":"array"}}}]},"access_ca_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"type":"object"}}}]},"access_centrify":{"allOf":[{"$ref":"#/components/schemas/access_identity-provider"},{"properties":{"config":{"allOf":[{"$ref":"#/components/schemas/access_generic-oauth-config"},{"$ref":"#/components/schemas/access_custom-claims-support"},{"properties":{"centrify_account":{"description":"Your centrify account url","example":"https://abc123.my.centrify.com/","type":"string"},"centrify_app_id":{"description":"Your centrify app id","example":"exampleapp","type":"string"}},"type":"object"}]}},"type":"object"}],"title":"Centrify","type":"object"},"access_certificate_rule":{"description":"Matches any valid client certificate.","example":{"certificate":{}},"properties":{"certificate":{"example":{},"type":"object","x-stainless-empty-object":true}},"required":["certificate"],"title":"Valid certificate","type":"object"},"access_certificates":{"properties":{"associated_hostnames":{"$ref":"#/components/schemas/access_associated_hostnames"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"expires_on":{"$ref":"#/components/schemas/access_timestamp"},"fingerprint":{"$ref":"#/components/schemas/access_fingerprint"},"id":{"description":"The ID of the application that will use this certificate.","type":"string"},"name":{"$ref":"#/components/schemas/access_certificates_components-schemas-name"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"type":"object"},"access_certificates_components-schemas-name":{"description":"The name of the certificate.","example":"Allow devs","type":"string"},"access_certificates_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/access_certificates"},"type":"array"}}}]},"access_certificates_components-schemas-response_collection-2":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/access_schemas-certificates"},"type":"array"}}}]},"access_certificates_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/access_certificates"}}}]},"access_certificates_components-schemas-single_response-2":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/access_schemas-certificates"}}}]},"access_client_id":{"description":"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","type":"string"},"access_client_secret":{"description":"The Client Secret for the service token. Access will check for this value in the `CF-Access-Client-Secret` request header.","example":"bdd31cbc4dec990953e39163fbbb194c93313ca9f0a6e420346af9d326b1d2a5","type":"string"},"access_components-schemas-domain":{"description":"The domain and path that Access will secure.","example":"test.example.com/admin","type":"string"},"access_components-schemas-id_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-common"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/access_uuid"}},"type":"object"}}}]},"access_components-schemas-identifier":{"example":"699d98642c564d2e855e9661899b7252","type":"string"},"access_components-schemas-name":{"description":"The name of the identity provider, shown to users on the login page.","example":"Widget Corps IDP","type":"string"},"access_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/access_service-tokens"},"type":"array"}}}]},"access_components-schemas-session_duration":{"default":"24h","description":"The amount of time that tokens issued for the application will be valid. Must be in the format `300ms` or `2h45m`. Valid time units are: ns, us (or µs), ms, s, m, h.","example":"24h","type":"string"},"access_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/access_identity-providers"}}}]},"access_components-schemas-type":{"description":"The application type.","enum":["self_hosted","saas","ssh","vnc","app_launcher","warp","biso","bookmark","dash_sso"],"example":"self_hosted","type":"string"},"access_connection":{"description":"The IdP used to authenticate.","example":"saml","type":"string"},"access_connection_rules":{"description":"The rules that define how users may connect to the targets secured by your application.","properties":{"ssh":{"$ref":"#/components/schemas/access_connection_rules_ssh"}},"title":"Connection Rules","type":"object"},"access_connection_rules_ssh":{"description":"The SSH-specific rules that define how users may connect to the targets secured by your application.","properties":{"usernames":{"$ref":"#/components/schemas/access_usernames"}},"required":["usernames"],"title":"SSH Connection Rules","type":"object"},"access_cors_headers":{"properties":{"allow_all_headers":{"$ref":"#/components/schemas/access_allow_all_headers"},"allow_all_methods":{"$ref":"#/components/schemas/access_allow_all_methods"},"allow_all_origins":{"$ref":"#/components/schemas/access_allow_all_origins"},"allow_credentials":{"$ref":"#/components/schemas/access_allow_credentials"},"allowed_headers":{"$ref":"#/components/schemas/access_allowed_headers"},"allowed_methods":{"$ref":"#/components/schemas/access_allowed_methods"},"allowed_origins":{"$ref":"#/components/schemas/access_allowed_origins"},"max_age":{"$ref":"#/components/schemas/access_max_age"}},"type":"object"},"access_country_rule":{"description":"Matches a specific country","properties":{"geo":{"properties":{"country_code":{"description":"The country code that should be matched.","example":"US","type":"string"}},"required":["country_code"],"type":"object"}},"required":["geo"],"title":"Country","type":"object"},"access_create_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"properties":{"client_id":{"$ref":"#/components/schemas/access_client_id"},"client_secret":{"$ref":"#/components/schemas/access_client_secret"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"duration":{"$ref":"#/components/schemas/access_duration"},"id":{"description":"The ID of the service token.","type":"string"},"name":{"$ref":"#/components/schemas/access_schemas-name"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}}}}}]},"access_custom-claims-support":{"properties":{"claims":{"description":"Custom claims","example":["email_verified","preferred_username","custom_claim_name"],"items":{"type":"string"},"type":"array"},"email_claim_name":{"description":"The claim name for email in the id_token response.","example":"custom_claim_name","type":"string"}},"type":"object"},"access_custom-pages_components-schemas-name":{"description":"Custom page name.","type":"string"},"access_custom-pages_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/access_custom_page_without_html"},"type":"array"}}}]},"access_custom-pages_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/access_custom_page"}}}]},"access_custom_deny_message":{"description":"The custom error message shown to a user when they are denied access to the application.","type":"string"},"access_custom_deny_url":{"description":"The custom URL a user is redirected to when they are denied access to the application when failing identity-based rules.","type":"string"},"access_custom_non_identity_deny_url":{"description":"The custom URL a user is redirected to when they are denied access to the application when failing non-identity rules.","type":"string"},"access_custom_page":{"properties":{"app_count":{"$ref":"#/components/schemas/access_schemas-app_count"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"custom_html":{"description":"Custom page HTML.","example":"\u003chtml\u003e\u003cbody\u003e\u003ch1\u003eAccess Denied\u003c/h1\u003e\u003c/body\u003e\u003c/html\u003e","type":"string"},"name":{"$ref":"#/components/schemas/access_custom-pages_components-schemas-name"},"type":{"$ref":"#/components/schemas/access_schemas-type"},"uid":{"$ref":"#/components/schemas/access_uuid"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"required":["name","custom_html","type"],"type":"object"},"access_custom_page_without_html":{"properties":{"app_count":{"$ref":"#/components/schemas/access_schemas-app_count"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"name":{"$ref":"#/components/schemas/access_custom-pages_components-schemas-name"},"type":{"$ref":"#/components/schemas/access_schemas-type"},"uid":{"$ref":"#/components/schemas/access_uuid"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"required":["name","type"],"type":"object"},"access_custom_pages":{"properties":{"forbidden":{"description":"The uid of the custom page to use when a user is denied access after failing a non-identity rule.","example":"699d98642c564d2e855e9661899b7252","type":"string"},"identity_denied":{"description":"The uid of the custom page to use when a user is denied access.","example":"699d98642c564d2e855e9661899b7252","type":"string"}}},"access_days_until_next_rotation":{"description":"The number of days until the next key rotation.","example":1,"readOnly":true,"type":"number"},"access_decision":{"description":"The action Access will take if a user matches this policy.","enum":["allow","deny","non_identity","bypass"],"example":"allow","type":"string"},"access_device_posture_check":{"properties":{"exists":{"type":"boolean"},"path":{"type":"string"}},"type":"object"},"access_device_posture_rule":{"description":"Enforces a device posture rule has run successfully","properties":{"device_posture":{"properties":{"integration_uid":{"description":"The ID of a device posture integration.","example":"aa0a4aab-672b-4bdb-bc33-a59f1130a11f","type":"string"}},"required":["integration_uid"],"type":"object"}},"required":["device_posture"],"title":"Device Posture","type":"object"},"access_device_session":{"example":{"last_authenticated":1638832687},"properties":{"last_authenticated":{"type":"number"}},"type":"object"},"access_doh_jwt_duration":{"description":"The duration the DoH JWT is valid for. Must be in the format `300ms` or `2h45m`. Valid time units are: ns, us (or µs), ms, s, m, h. Note that the maximum duration for this setting is the same as the key rotation period on the account. Default expiration is 24h","example":"800h","type":"string"},"access_domain":{"description":"The primary hostname and path that Access will secure. If the app is visible in the App Launcher dashboard, this is the domain that will be displayed.","example":"test.example.com/admin","type":"string"},"access_domain_rule":{"description":"Match an entire email domain.","properties":{"email_domain":{"properties":{"domain":{"description":"The email domain to match.","example":"example.com","type":"string"}},"required":["domain"],"type":"object"}},"required":["email_domain"],"title":"Email domain","type":"object"},"access_duration":{"default":"8760h","description":"The duration for how long the service token will be valid. Must be in the format `300ms` or `2h45m`. Valid time units are: ns, us (or µs), ms, s, m, h. The default is 1 year in hours (8760h).","example":"60m","type":"string"},"access_email":{"description":"The email of the user.","example":"jdoe@example.com","format":"email","type":"string"},"access_email_list_rule":{"description":"Matches an email address from a list.","properties":{"email_list":{"properties":{"id":{"description":"The ID of a previously created email list.","example":"aa0a4aab-672b-4bdb-bc33-a59f1130a11f","type":"string"}},"required":["id"],"type":"object"}},"required":["email_list"],"title":"Email list","type":"object"},"access_email_rule":{"description":"Matches a specific email.","properties":{"email":{"properties":{"email":{"description":"The email of the user.","example":"test@example.com","format":"email","type":"string"}},"required":["email"],"type":"object"}},"required":["email"],"title":"Email","type":"object"},"access_empty_response":{"allOf":[{"properties":{"result":{"enum":[true,false],"example":true,"type":"boolean"},"success":{"enum":[true,false],"example":true,"type":"boolean"}}}]},"access_enable_binding_cookie":{"default":false,"description":"Enables the binding cookie, which increases security against compromised authorization tokens and CSRF attacks.","type":"boolean"},"access_everyone_rule":{"description":"Matches everyone.","properties":{"everyone":{"description":"An empty object which matches on all users.","example":{},"type":"object","x-stainless-empty-object":true}},"required":["everyone"],"title":"Everyone","type":"object"},"access_exclude":{"description":"Rules evaluated with a NOT logical operator. To match a policy, a user cannot meet any of the Exclude rules.","items":{"$ref":"#/components/schemas/access_rule"},"type":"array"},"access_external_evaluation_rule":{"description":"Create Allow or Block policies which evaluate the user based on custom criteria.","properties":{"external_evaluation":{"properties":{"evaluate_url":{"description":"The API endpoint containing your business logic.","example":"https://eval.example.com","type":"string"},"keys_url":{"description":"The API endpoint containing the key that Access uses to verify that the response came from your API.","example":"https://eval.example.com/keys","type":"string"}},"required":["evaluate_url","keys_url"],"type":"object"}},"required":["external_evaluation"],"title":"External Evaluation","type":"object"},"access_facebook":{"allOf":[{"$ref":"#/components/schemas/access_identity-provider"},{"properties":{"config":{"$ref":"#/components/schemas/access_generic-oauth-config"}},"type":"object"}],"title":"Facebook","type":"object"},"access_failed_login_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"properties":{"expiration":{"type":"integer"},"metadata":{"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"},"type":"object"}},"type":"object"},"type":"array"}}}]},"access_feature_app_props":{"properties":{"allowed_idps":{"$ref":"#/components/schemas/access_allowed_idps"},"app_launcher_logo_url":{"$ref":"#/components/schemas/access_app_launcher_logo_url"},"auto_redirect_to_identity":{"$ref":"#/components/schemas/access_schemas-auto_redirect_to_identity"},"bg_color":{"$ref":"#/components/schemas/access_bg_color"},"domain":{"$ref":"#/components/schemas/access_domain"},"footer_links":{"$ref":"#/components/schemas/access_footer_links"},"header_bg_color":{"$ref":"#/components/schemas/access_header_bg_color"},"landing_page_design":{"$ref":"#/components/schemas/access_landing_page_design"},"name":{"$ref":"#/components/schemas/access_apps_components-schemas-name"},"session_duration":{"$ref":"#/components/schemas/access_schemas-session_duration"},"skip_app_launcher_login_page":{"$ref":"#/components/schemas/access_skip_app_launcher_login_page"},"type":{"$ref":"#/components/schemas/access_type"}},"required":["type"],"type":"object"},"access_fingerprint":{"description":"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","type":"string"},"access_footer_links":{"description":"The links in the App Launcher footer.","example":[{"name":"Cloudflare's Privacy Policy","url":"https://www.cloudflare.com/privacypolicy/"}],"items":{"properties":{"name":{"description":"The hypertext in the footer link.","example":"Cloudflare's Privacy Policy","type":"string"},"url":{"description":"the hyperlink in the footer link.","example":"https://www.cloudflare.com/privacypolicy/","type":"string"}},"required":["name","url"],"type":"object"},"type":"array"},"access_gateway_seat":{"description":"True if the seat is part of Gateway.","example":false,"type":"boolean"},"access_generic-oauth-config":{"properties":{"client_id":{"description":"Your OAuth Client ID","example":"\u003cyour client id\u003e","type":"string"},"client_secret":{"description":"Your OAuth Client Secret","example":"\u003cyour client secret\u003e","type":"string"}},"type":"object"},"access_geo":{"example":{"country":"US"},"properties":{"country":{"type":"string"}},"type":"object"},"access_github":{"allOf":[{"$ref":"#/components/schemas/access_identity-provider"},{"properties":{"config":{"$ref":"#/components/schemas/access_generic-oauth-config"}},"type":"object"}],"title":"GitHub","type":"object"},"access_github_organization_rule":{"description":"Matches a Github organization.\nRequires a Github identity provider.","properties":{"github-organization":{"properties":{"identity_provider_id":{"description":"The ID of your Github identity provider.","example":"ea85612a-29c8-46c2-bacb-669d65136971","type":"string"},"name":{"description":"The name of the organization.","example":"cloudflare","type":"string"}},"required":["name","identity_provider_id"],"type":"object"}},"required":["github-organization"],"title":"Github organization","type":"object"},"access_google":{"allOf":[{"$ref":"#/components/schemas/access_identity-provider"},{"properties":{"config":{"allOf":[{"$ref":"#/components/schemas/access_generic-oauth-config"},{"$ref":"#/components/schemas/access_custom-claims-support"}]}},"type":"object"}],"title":"Google","type":"object"},"access_google-apps":{"allOf":[{"$ref":"#/components/schemas/access_identity-provider"},{"properties":{"config":{"allOf":[{"$ref":"#/components/schemas/access_generic-oauth-config"},{"$ref":"#/components/schemas/access_custom-claims-support"},{"properties":{"apps_domain":{"description":"Your companies TLD","example":"mycompany.com","type":"string"}},"type":"object"}]}},"type":"object"}],"title":"Google Workspace","type":"object"},"access_groups":{"properties":{"created_at":{"$ref":"#/components/schemas/access_timestamp"},"exclude":{"$ref":"#/components/schemas/access_exclude"},"id":{"$ref":"#/components/schemas/access_uuid"},"include":{"$ref":"#/components/schemas/access_include"},"is_default":{"$ref":"#/components/schemas/access_require"},"name":{"$ref":"#/components/schemas/access_groups_components-schemas-name"},"require":{"$ref":"#/components/schemas/access_require"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"type":"object"},"access_groups_components-schemas-name":{"description":"The name of the Access group.","example":"Allow devs","type":"string"},"access_groups_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/access_schemas-groups"},"type":"array"}}}]},"access_groups_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/access_groups"}}}]},"access_groups_components-schemas-single_response-2":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/access_schemas-groups"}}}]},"access_gsuite_group_rule":{"description":"Matches a group in Google Workspace.\nRequires a Google Workspace identity provider.","properties":{"gsuite":{"properties":{"email":{"description":"The email of the Google Workspace group.","example":"devs@cloudflare.com","type":"string"},"identity_provider_id":{"description":"The ID of your Google Workspace identity provider.","example":"ea85612a-29c8-46c2-bacb-669d65136971","type":"string"}},"required":["email","identity_provider_id"],"type":"object"}},"required":["gsuite"],"title":"Google Workspace group","type":"object"},"access_header_bg_color":{"description":"The background color of the App Launcher header.","example":"#ff0000","type":"string"},"access_http_only_cookie_attribute":{"default":true,"description":"Enables the HttpOnly cookie attribute, which increases security against XSS attacks.","example":true,"type":"boolean"},"access_id":{"description":"The ID of the CA.","example":"7eddae4619b50ab1361ba8ae9bd72269a432fea041529ed9","maxLength":48,"readOnly":true,"type":"string"},"access_id_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/access_uuid"}},"type":"object"}}}]},"access_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"access_identity":{"properties":{"account_id":{"example":"1234567890","type":"string"},"auth_status":{"example":"NONE","type":"string"},"common_name":{"example":"","type":"string"},"devicePosture":{"additionalProperties":{"$ref":"#/components/schemas/access_schemas-device_posture_rule"},"type":"object"},"device_id":{"example":"","type":"string"},"device_sessions":{"$ref":"#/components/schemas/access_string_key_map_device_session"},"email":{"example":"test@cloudflare.com","type":"string"},"geo":{"$ref":"#/components/schemas/access_geo"},"iat":{"example":1694791905,"type":"number"},"idp":{"properties":{"id":{"type":"string"},"type":{"type":"string"}},"type":"object"},"ip":{"example":"127.0.0.0","type":"string"},"is_gateway":{"example":false,"type":"boolean"},"is_warp":{"example":false,"type":"boolean"},"mtls_auth":{"properties":{"auth_status":{"type":"string"},"cert_issuer_dn":{"type":"string"},"cert_issuer_ski":{"type":"string"},"cert_presented":{"type":"boolean"},"cert_serial":{"type":"string"}},"type":"object"},"service_token_id":{"example":"","type":"string"},"service_token_status":{"example":false,"type":"boolean"},"user_uuid":{"example":"57cf8cf2-f55a-4588-9ac9-f5e41e9f09b4","type":"string"},"version":{"example":2,"type":"number"}},"type":"object"},"access_identity-provider":{"properties":{"config":{"description":"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/).","type":"object"},"id":{"$ref":"#/components/schemas/access_uuid"},"name":{"$ref":"#/components/schemas/access_components-schemas-name"},"scim_config":{"description":"The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider.","properties":{"enabled":{"description":"A flag to enable or disable SCIM for the identity provider.","type":"boolean"},"group_member_deprovision":{"description":"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.","type":"boolean"},"seat_deprovision":{"description":"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.","type":"boolean"},"secret":{"description":"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.","type":"string"},"user_deprovision":{"description":"A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider.","type":"boolean"}},"type":"object"},"type":{"description":"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/).","enum":["onetimepin","azureAD","saml","centrify","facebook","github","google-apps","google","linkedin","oidc","okta","onelogin","pingone","yandex"],"example":"onetimepin","type":"string"}},"required":["name","type","config"],"type":"object"},"access_identity-providers":{"anyOf":[{"$ref":"#/components/schemas/access_azureAD"},{"$ref":"#/components/schemas/access_centrify"},{"$ref":"#/components/schemas/access_facebook"},{"$ref":"#/components/schemas/access_github"},{"$ref":"#/components/schemas/access_google"},{"$ref":"#/components/schemas/access_google-apps"},{"$ref":"#/components/schemas/access_linkedin"},{"$ref":"#/components/schemas/access_oidc"},{"$ref":"#/components/schemas/access_okta"},{"$ref":"#/components/schemas/access_onelogin"},{"$ref":"#/components/schemas/access_pingone"},{"$ref":"#/components/schemas/access_saml"},{"$ref":"#/components/schemas/access_yandex"},{"$ref":"#/components/schemas/access_onetimepin"}]},"access_identity-providers_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"anyOf":[{"$ref":"#/components/schemas/access_schemas-azureAD"},{"$ref":"#/components/schemas/access_schemas-centrify"},{"$ref":"#/components/schemas/access_schemas-facebook"},{"$ref":"#/components/schemas/access_schemas-github"},{"$ref":"#/components/schemas/access_schemas-google"},{"$ref":"#/components/schemas/access_schemas-google-apps"},{"$ref":"#/components/schemas/access_schemas-linkedin"},{"$ref":"#/components/schemas/access_schemas-oidc"},{"$ref":"#/components/schemas/access_schemas-okta"},{"$ref":"#/components/schemas/access_schemas-onelogin"},{"$ref":"#/components/schemas/access_schemas-pingone"},{"$ref":"#/components/schemas/access_schemas-saml"},{"$ref":"#/components/schemas/access_schemas-yandex"},{"$ref":"#/components/schemas/access_schemas-onetimepin"}]},"type":"array"}},"type":"object"}],"type":"object"},"access_identity-providers_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/access_schemas-identity-providers"}}}]},"access_image_url":{"description":"The URL of the image shown on the landing page.","example":"https://www.cloudflare.com/img/logo-web-badges/cf-logo-on-white-bg.svg","type":"string"},"access_include":{"description":"Rules evaluated with an OR logical operator. A user needs to meet only one of the Include rules.","items":{"$ref":"#/components/schemas/access_rule"},"type":"array"},"access_infra_props":{"allOf":[{"properties":{"name":{"$ref":"#/components/schemas/access_apps_components-schemas-name"},"type":{"allOf":[{"$ref":"#/components/schemas/access_type"},{"example":"infrastructure"}]}}},{"$ref":"#/components/schemas/access_app_resp_embedded_target_criteria"}],"required":["type","target_criteria"],"title":"Infrastructure Application","type":"object"},"access_ip":{"description":"The IP address of the authenticating user.","example":"198.41.129.166","type":"string"},"access_ip_list_rule":{"description":"Matches an IP address from a list.","properties":{"ip_list":{"properties":{"id":{"description":"The ID of a previously created IP list.","example":"aa0a4aab-672b-4bdb-bc33-a59f1130a11f","type":"string"}},"required":["id"],"type":"object"}},"required":["ip_list"],"title":"IP list","type":"object"},"access_ip_rule":{"description":"Matches an IP address block.","properties":{"ip":{"properties":{"ip":{"description":"An IPv4 or IPv6 CIDR block.","example":"2400:cb00:21:10a::/64","type":"string"}},"required":["ip"],"type":"object"}},"required":["ip"],"title":"IP ranges","type":"object"},"access_is_default":{"description":"Whether this is the default group","type":"boolean"},"access_is_ui_read_only":{"description":"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","type":"boolean"},"access_isolation_required":{"default":false,"description":"Require this application to be served in an isolated browser for users matching this policy. 'Client Web Isolation' must be on for the account in order to use this feature.","example":false,"type":"boolean"},"access_key_config":{"properties":{"days_until_next_rotation":{"$ref":"#/components/schemas/access_days_until_next_rotation"},"key_rotation_interval_days":{"$ref":"#/components/schemas/access_key_rotation_interval_days"},"last_key_rotation_at":{"$ref":"#/components/schemas/access_last_key_rotation_at"}},"type":"object"},"access_key_rotation_interval_days":{"description":"The number of days between key rotations.","example":30,"maximum":365,"minimum":21,"type":"number"},"access_keys_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/access_key_config"}}}]},"access_landing_page_design":{"description":"The design of the App Launcher landing page shown to users when they log in.","properties":{"button_color":{"$ref":"#/components/schemas/access_button_color"},"button_text_color":{"$ref":"#/components/schemas/access_button_text_color"},"image_url":{"$ref":"#/components/schemas/access_image_url"},"message":{"$ref":"#/components/schemas/access_message"},"title":{"$ref":"#/components/schemas/access_title"}},"type":"object"},"access_last_key_rotation_at":{"description":"The timestamp of the previous key rotation.","example":"2014-01-01T05:20:00.12345Z","format":"date-time","type":"string"},"access_last_seen_identity_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/access_identity"}],"type":"object"}}}]},"access_last_successful_login":{"description":"The time at which the user last successfully logged in.","example":"2020-07-01T05:20:00Z","format":"date-time","type":"string"},"access_linkedin":{"allOf":[{"$ref":"#/components/schemas/access_identity-provider"},{"properties":{"config":{"$ref":"#/components/schemas/access_generic-oauth-config"}},"type":"object"}],"title":"LinkedIn","type":"object"},"access_login_design":{"properties":{"background_color":{"description":"The background color on your login page.","example":"#c5ed1b","type":"string"},"footer_text":{"description":"The text at the bottom of your login page.","example":"This is an example description.","type":"string"},"header_text":{"description":"The text at the top of your login page.","example":"This is an example description.","type":"string"},"logo_path":{"description":"The URL of the logo on your login page.","example":"https://example.com/logo.png","type":"string"},"text_color":{"description":"The text color on your login page.","example":"#c5ed1b","type":"string"}}},"access_logo_url":{"description":"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","type":"string"},"access_max_age":{"description":"The maximum number of seconds the results of a preflight request can be cached.","example":-1,"maximum":86400,"minimum":-1,"type":"number"},"access_message":{"description":"The message shown on the landing page.","example":"Log in below to reach your applications behind Access.","type":"string"},"access_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"access_name":{"description":"The name of your Zero Trust organization.","example":"Widget Corps Internal Applications","type":"string"},"access_name_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"properties":{"name":{"$ref":"#/components/schemas/access_tags_components-schemas-name"}},"type":"object"}},"type":"object"}]},"access_nonce":{"example":"X1aXj1lFVcqqyoXF","type":"string"},"access_oidc":{"allOf":[{"$ref":"#/components/schemas/access_identity-provider"},{"properties":{"config":{"allOf":[{"$ref":"#/components/schemas/access_generic-oauth-config"},{"$ref":"#/components/schemas/access_custom-claims-support"},{"properties":{"auth_url":{"description":"The authorization_endpoint URL of your IdP","example":"https://accounts.google.com/o/oauth2/auth","type":"string"},"certs_url":{"description":"The jwks_uri endpoint of your IdP to allow the IdP keys to sign the tokens","example":"https://www.googleapis.com/oauth2/v3/certs","type":"string"},"scopes":{"description":"OAuth scopes","example":["openid","email","profile"],"items":{"type":"string"},"type":"array"},"token_url":{"description":"The token_endpoint URL of your IdP","example":"https://accounts.google.com/o/oauth2/token","type":"string"}},"type":"object"}]}},"type":"object"}],"title":"Generic OAuth","type":"object"},"access_oidc_saas_app":{"properties":{"access_token_lifetime":{"description":"The lifetime of the OIDC Access Token after creation. Valid units are m,h. Must be greater than or equal to 1m and less than or equal to 24h.","example":"5m","type":"string"},"allow_pkce_without_client_secret":{"description":"If client secret should be required on the token endpoint when authorization_code_with_pkce grant is used.","example":true,"type":"boolean"},"app_launcher_url":{"description":"The URL where this applications tile redirects users","example":"https://example.com/login","type":"string"},"auth_type":{"description":"Identifier of the authentication protocol used for the saas app. Required for OIDC.","enum":["saml","oidc"],"example":"oidc","type":"string"},"client_id":{"description":"The application client id","example":"oidc client id","type":"string"},"client_secret":{"description":"The application client secret, only returned on POST request.","example":"oidc client secret","type":"string"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"custom_claims":{"properties":{"name":{"description":"The name of the claim.","example":"family_name","type":"string"},"required":{"description":"If the claim is required when building an OIDC token.","example":true,"type":"boolean"},"scope":{"description":"The scope of the claim.","enum":["groups","profile","email","openid"],"example":"profile","type":"string"},"source":{"properties":{"name":{"description":"The name of the IdP claim.","example":"last_name","type":"string"},"name_by_idp":{"additionalProperties":{"type":"string"},"description":"A mapping from IdP ID to claim name.","example":{"exampleIdPID1":"ClaimName1","exampleIdPID2":"ClaimName2"},"type":"object"}},"type":"object"}},"type":"object"},"grant_types":{"description":"The OIDC flows supported by this application","example":["authorization_code"],"items":{"enum":["authorization_code","authorization_code_with_pkce","refresh_tokens","hybrid","implicit"],"type":"string"},"type":"array"},"group_filter_regex":{"description":"A regex to filter Cloudflare groups returned in ID token and userinfo endpoint","example":"^GROUP_FILTER-*$","type":"string"},"hybrid_and_implicit_options":{"properties":{"return_access_token_from_authorization_endpoint":{"description":"If an Access Token should be returned from the OIDC Authorization endpoint","type":"boolean"},"return_id_token_from_authorization_endpoint":{"description":"If an ID Token should be returned from the OIDC Authorization endpoint","type":"boolean"}},"type":"object"},"public_key":{"description":"The Access public certificate that will be used to verify your identity.","example":"example unique name","type":"string"},"redirect_uris":{"description":"The permitted URL's for Cloudflare to return Authorization codes and Access/ID tokens","example":["https://example.com"],"items":{"type":"string"},"type":"array"},"refresh_token_options":{"properties":{"lifetime":{"description":"How long a refresh token will be valid for after creation. Valid units are m,h,d. Must be longer than 1m.","example":"30d","type":"string"}},"type":"object"},"scopes":{"description":"Define the user information shared with access, \"offline_access\" scope will be automatically enabled if refresh tokens are enabled","example":["openid","groups","email","profile"],"items":{"enum":["openid","groups","email","profile"],"type":"string"},"type":"array"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"title":"OIDC SaaS App","type":"object"},"access_okta":{"allOf":[{"$ref":"#/components/schemas/access_identity-provider"},{"properties":{"config":{"allOf":[{"$ref":"#/components/schemas/access_generic-oauth-config"},{"$ref":"#/components/schemas/access_custom-claims-support"},{"properties":{"authorization_server_id":{"description":"Your okta authorization server id","example":"aus9o8wzkhckw9TLa0h7z","type":"string"},"okta_account":{"description":"Your okta account url","example":"https://dev-abc123.oktapreview.com","type":"string"}},"type":"object"}]}},"type":"object"}],"title":"Okta","type":"object"},"access_okta_group_rule":{"description":"Matches an Okta group.\nRequires an Okta identity provider.","properties":{"okta":{"properties":{"identity_provider_id":{"description":"The ID of your Okta identity provider.","example":"ea85612a-29c8-46c2-bacb-669d65136971","type":"string"},"name":{"description":"The name of the Okta group.","example":"devs","type":"string"}},"required":["name","identity_provider_id"],"type":"object"}},"required":["okta"],"title":"Okta group","type":"object"},"access_onelogin":{"allOf":[{"$ref":"#/components/schemas/access_identity-provider"},{"properties":{"config":{"allOf":[{"$ref":"#/components/schemas/access_generic-oauth-config"},{"$ref":"#/components/schemas/access_custom-claims-support"},{"properties":{"onelogin_account":{"description":"Your OneLogin account url","example":"https://mycompany.onelogin.com","type":"string"}},"type":"object"}]}},"type":"object"}],"title":"OneLogin","type":"object"},"access_onetimepin":{"allOf":[{"$ref":"#/components/schemas/access_identity-provider"},{"properties":{"config":{"type":"object"},"type":{"enum":["onetimepin"]}}}],"title":"One Time Pin","type":"object"},"access_options_preflight_bypass":{"description":"Allows options preflight requests to bypass Access authentication and go directly to the origin. Cannot turn on if cors_headers is set.","example":true,"type":"boolean"},"access_organizations":{"properties":{"allow_authenticate_via_warp":{"$ref":"#/components/schemas/access_allow_authenticate_via_warp"},"auth_domain":{"$ref":"#/components/schemas/access_auth_domain"},"auto_redirect_to_identity":{"$ref":"#/components/schemas/access_auto_redirect_to_identity"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"custom_pages":{"$ref":"#/components/schemas/access_custom_pages"},"is_ui_read_only":{"$ref":"#/components/schemas/access_is_ui_read_only"},"login_design":{"$ref":"#/components/schemas/access_login_design"},"name":{"$ref":"#/components/schemas/access_name"},"session_duration":{"$ref":"#/components/schemas/access_session_duration"},"ui_read_only_toggle_reason":{"$ref":"#/components/schemas/access_ui_read_only_toggle_reason"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"},"user_seat_expiration_inactive_time":{"$ref":"#/components/schemas/access_user_seat_expiration_inactive_time"},"warp_auth_session_duration":{"$ref":"#/components/schemas/access_warp_auth_session_duration"}},"type":"object"},"access_organizations_components-schemas-identifier":{"example":"699d98642c564d2e855e9661899b7252"},"access_organizations_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/access_schemas-organizations"}}}]},"access_pages_processed":{"description":"The number of pages of (processed) users.","example":2,"type":"integer"},"access_path_cookie_attribute":{"default":false,"description":"Enables cookie paths to scope an application's JWT to the application path. If disabled, the JWT will scope to the hostname by default","example":true,"type":"boolean"},"access_percent_approved":{"description":"The percentage of (processed) users approved based on policy evaluation results.","example":25,"type":"integer"},"access_percent_blocked":{"description":"The percentage of (processed) users blocked based on policy evaluation results.","example":25,"type":"integer"},"access_percent_users_processed":{"description":"The percentage of users processed so far (of the entire user base).","example":50,"type":"integer"},"access_pingone":{"allOf":[{"$ref":"#/components/schemas/access_identity-provider"},{"properties":{"config":{"allOf":[{"$ref":"#/components/schemas/access_generic-oauth-config"},{"$ref":"#/components/schemas/access_custom-claims-support"},{"properties":{"ping_env_id":{"description":"Your PingOne environment identifier","example":"342b5660-0c32-4936-a5a4-ce21fae57b0a","type":"string"}},"type":"object"}]}},"type":"object"}],"title":"PingOne","type":"object"},"access_policies":{"properties":{"approval_groups":{"$ref":"#/components/schemas/access_schemas-approval_groups"},"approval_required":{"$ref":"#/components/schemas/access_approval_required"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"decision":{"$ref":"#/components/schemas/access_decision"},"exclude":{"$ref":"#/components/schemas/access_schemas-exclude"},"id":{"$ref":"#/components/schemas/access_uuid"},"include":{"$ref":"#/components/schemas/access_include"},"isolation_required":{"$ref":"#/components/schemas/access_schemas-isolation_required"},"name":{"$ref":"#/components/schemas/access_policies_components-schemas-name"},"precedence":{"$ref":"#/components/schemas/access_schemas-precedence"},"purpose_justification_prompt":{"$ref":"#/components/schemas/access_purpose_justification_prompt"},"purpose_justification_required":{"$ref":"#/components/schemas/access_purpose_justification_required"},"require":{"$ref":"#/components/schemas/access_schemas-require"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"type":"object"},"access_policies_components-schemas-name":{"description":"The name of the Access policy.","example":"Allow devs","type":"string"},"access_policies_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/access_policies"},"type":"array"}}}]},"access_policies_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/access_policies"}}}]},"access_policy_check_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"properties":{"app_state":{"properties":{"app_uid":{"$ref":"#/components/schemas/access_uuid"},"aud":{"example":"737646a56ab1df6ec9bddc7e5ca84eaf3b0768850f3ffb5d74f1534911fe389","type":"string"},"hostname":{"example":"test.com","type":"string"},"name":{"example":"Test App","type":"string"},"policies":{"example":[{"decision":"allow","exclude":[],"include":[{"_type":"email","email":"testuser@gmail.com"}],"precedence":0,"require":[],"status":"Success"}],"items":{"type":"object"},"type":"array"},"status":{"example":"Success","type":"string"}},"type":"object"},"user_identity":{"properties":{"account_id":{"example":"41ecfbb341f033e52b46742756aabb8b","type":"string"},"device_sessions":{"example":{},"type":"object"},"email":{"example":"testuser@gmail.com","type":"string"},"geo":{"properties":{"country":{"example":"US","type":"string"}},"type":"object"},"iat":{"type":"integer"},"id":{"example":"1164449231815010287495","type":"string"},"is_gateway":{"example":false,"type":"boolean"},"is_warp":{"example":false,"type":"boolean"},"name":{"example":"Test User","type":"string"},"user_uuid":{"$ref":"#/components/schemas/access_uuid"},"version":{"type":"integer"}},"type":"object"}},"type":"object"}}}]},"access_policy_components-schemas-name":{"description":"The name of the Access policy.","example":"Allow devs","type":"string"},"access_policy_init_resp":{"properties":{"id":{"$ref":"#/components/schemas/access_policy_test_id"},"status":{"$ref":"#/components/schemas/access_status"}},"type":"object"},"access_policy_req":{"properties":{"approval_groups":{"$ref":"#/components/schemas/access_approval_groups"},"approval_required":{"$ref":"#/components/schemas/access_approval_required"},"connection_rules":{"$ref":"#/components/schemas/access_connection_rules"},"decision":{"$ref":"#/components/schemas/access_decision"},"exclude":{"$ref":"#/components/schemas/access_schemas-exclude"},"include":{"$ref":"#/components/schemas/access_include"},"isolation_required":{"$ref":"#/components/schemas/access_isolation_required"},"name":{"$ref":"#/components/schemas/access_policy_components-schemas-name"},"purpose_justification_prompt":{"$ref":"#/components/schemas/access_purpose_justification_prompt"},"purpose_justification_required":{"$ref":"#/components/schemas/access_purpose_justification_required"},"require":{"$ref":"#/components/schemas/access_schemas-require"},"session_duration":{"$ref":"#/components/schemas/access_components-schemas-session_duration"}},"required":["name","decision","include"],"type":"object"},"access_policy_resp":{"properties":{"approval_groups":{"$ref":"#/components/schemas/access_approval_groups"},"approval_required":{"$ref":"#/components/schemas/access_approval_required"},"connection_rules":{"$ref":"#/components/schemas/access_connection_rules"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"decision":{"$ref":"#/components/schemas/access_decision"},"exclude":{"$ref":"#/components/schemas/access_schemas-exclude"},"id":{"$ref":"#/components/schemas/access_schemas-uuid"},"include":{"$ref":"#/components/schemas/access_include"},"isolation_required":{"$ref":"#/components/schemas/access_isolation_required"},"name":{"$ref":"#/components/schemas/access_policy_components-schemas-name"},"purpose_justification_prompt":{"$ref":"#/components/schemas/access_purpose_justification_prompt"},"purpose_justification_required":{"$ref":"#/components/schemas/access_purpose_justification_required"},"require":{"$ref":"#/components/schemas/access_schemas-require"},"session_duration":{"$ref":"#/components/schemas/access_components-schemas-session_duration"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"type":"object"},"access_policy_test_id":{"description":"The UUID of the policy test.","example":"f1a8b3c9d4e5f6789a0b1c2d3e4f5678a9b0c1d2e3f4a5b67890c1d2e3f4b5a6","maxLength":64,"type":"string"},"access_policy_update_resp":{"properties":{"id":{"$ref":"#/components/schemas/access_policy_test_id"},"pages_processed":{"$ref":"#/components/schemas/access_pages_processed"},"percent_approved":{"$ref":"#/components/schemas/access_percent_approved"},"percent_blocked":{"$ref":"#/components/schemas/access_percent_blocked"},"percent_users_processed":{"$ref":"#/components/schemas/access_percent_users_processed"},"status":{"$ref":"#/components/schemas/access_update_status"},"total_users":{"$ref":"#/components/schemas/access_total_users"},"users_approved":{"$ref":"#/components/schemas/access_users_approved"},"users_blocked":{"$ref":"#/components/schemas/access_users_blocked"}},"type":"object"},"access_policy_users":{"properties":{"email":{"$ref":"#/components/schemas/access_email"},"id":{"$ref":"#/components/schemas/access_uuid"},"name":{"$ref":"#/components/schemas/access_users_components-schemas-name"},"status":{"$ref":"#/components/schemas/access_user_result"}},"type":"object"},"access_policy_users_resp":{"description":"Page of processed users.","items":{"$ref":"#/components/schemas/access_policy_users"},"type":"array"},"access_port":{"description":"The port that the targets use for the chosen communication protocol. A port cannot be assigned to multiple protocols.","example":22,"type":"integer"},"access_precedence":{"description":"The order of execution for this policy. Must be unique for each policy within an app.","type":"integer"},"access_protocol":{"description":"The communication protocol your application secures.","enum":["ssh"],"example":"ssh","type":"string"},"access_public_key":{"description":"The public key to add to your SSH server configuration.","example":"ecdsa-sha2-nistp256 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= open-ssh-ca@cloudflareaccess.org","readOnly":true,"type":"string"},"access_purpose_justification_prompt":{"description":"A custom message that will appear on the purpose justification screen.","example":"Please enter a justification for entering this protected domain.","type":"string"},"access_purpose_justification_required":{"default":false,"description":"Require users to enter a justification when they log in to the application.","example":true,"type":"boolean"},"access_ray_id":{"description":"The unique identifier for the request to Cloudflare.","example":"187d944c61940c77","maxLength":16,"type":"string"},"access_require":{"description":"Rules evaluated with an AND logical operator. To match a policy, a user must meet all of the Require rules.","items":{"$ref":"#/components/schemas/access_rule"},"type":"array"},"access_response_collection":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"anyOf":[{"$ref":"#/components/schemas/access_azureAD"},{"$ref":"#/components/schemas/access_centrify"},{"$ref":"#/components/schemas/access_facebook"},{"$ref":"#/components/schemas/access_github"},{"$ref":"#/components/schemas/access_google"},{"$ref":"#/components/schemas/access_google-apps"},{"$ref":"#/components/schemas/access_linkedin"},{"$ref":"#/components/schemas/access_oidc"},{"$ref":"#/components/schemas/access_okta"},{"$ref":"#/components/schemas/access_onelogin"},{"$ref":"#/components/schemas/access_pingone"},{"$ref":"#/components/schemas/access_saml"},{"$ref":"#/components/schemas/access_yandex"}]},"type":"array"}},"type":"object"}],"type":"object"},"access_response_collection_hostnames":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/access_settings"},"type":"array"}}}]},"access_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"access_reusable-policies_components-schemas-id_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/access_schemas-uuid"}},"type":"object"}}}]},"access_reusable-policies_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/access_reusable_policy_resp"},"type":"array"}}}]},"access_reusable-policies_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/access_reusable_policy_resp"}}}]},"access_reusable_policy_resp":{"allOf":[{"$ref":"#/components/schemas/access_policy_resp"},{"properties":{"app_count":{"$ref":"#/components/schemas/access_app_count"},"reusable":{"enum":[true],"type":"boolean"}}}]},"access_rule":{"oneOf":[{"$ref":"#/components/schemas/access_email_rule"},{"$ref":"#/components/schemas/access_email_list_rule"},{"$ref":"#/components/schemas/access_domain_rule"},{"$ref":"#/components/schemas/access_everyone_rule"},{"$ref":"#/components/schemas/access_ip_rule"},{"$ref":"#/components/schemas/access_ip_list_rule"},{"$ref":"#/components/schemas/access_certificate_rule"},{"$ref":"#/components/schemas/access_access_group_rule"},{"$ref":"#/components/schemas/access_azure_group_rule"},{"$ref":"#/components/schemas/access_github_organization_rule"},{"$ref":"#/components/schemas/access_gsuite_group_rule"},{"$ref":"#/components/schemas/access_okta_group_rule"},{"$ref":"#/components/schemas/access_saml_group_rule"},{"$ref":"#/components/schemas/access_service_token_rule"},{"$ref":"#/components/schemas/access_any_valid_service_token_rule"},{"$ref":"#/components/schemas/access_external_evaluation_rule"},{"$ref":"#/components/schemas/access_country_rule"},{"$ref":"#/components/schemas/access_authentication_method_rule"},{"$ref":"#/components/schemas/access_device_posture_rule"}],"type":"object"},"access_saas_props":{"properties":{"allowed_idps":{"$ref":"#/components/schemas/access_allowed_idps"},"app_launcher_visible":{"$ref":"#/components/schemas/access_app_launcher_visible"},"auto_redirect_to_identity":{"$ref":"#/components/schemas/access_schemas-auto_redirect_to_identity"},"custom_pages":{"$ref":"#/components/schemas/access_schemas-custom_pages"},"logo_url":{"$ref":"#/components/schemas/access_logo_url"},"name":{"$ref":"#/components/schemas/access_apps_components-schemas-name"},"saas_app":{"oneOf":[{"$ref":"#/components/schemas/access_saml_saas_app"},{"$ref":"#/components/schemas/access_oidc_saas_app"}],"type":"object"},"tags":{"$ref":"#/components/schemas/access_tags"},"type":{"description":"The application type.","example":"saas","type":"string"}},"title":"SaaS Application","type":"object"},"access_same_site_cookie_attribute":{"description":"Sets the SameSite cookie setting, which provides increased security against CSRF attacks.","example":"strict","type":"string"},"access_saml":{"allOf":[{"$ref":"#/components/schemas/access_identity-provider"},{"properties":{"config":{"properties":{"attributes":{"description":"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","department_code","divison"],"items":{"type":"string"},"type":"array"},"email_attribute_name":{"description":"The attribute name for email in the SAML response.","example":"Email","type":"string"},"header_attributes":{"description":"Add a list of attribute names that will be returned in the response header from the Access callback.","items":{"properties":{"attribute_name":{"description":"attribute name from the IDP","type":"string"},"header_name":{"description":"header that will be added on the request to the origin","type":"string"}},"type":"object"},"type":"array"},"idp_public_certs":{"description":"X509 certificate to verify the signature in the SAML authentication response","items":{"type":"string"},"type":"array"},"issuer_url":{"description":"IdP Entity ID or Issuer URL","example":"https://whoami.com","type":"string"},"sign_request":{"description":"Sign the SAML authentication request with Access credentials. To verify the signature, use the public key from the Access certs endpoints.","type":"boolean"},"sso_target_url":{"description":"URL to send the SAML authentication requests to","example":"https://edgeaccess.org/idp/saml/login","type":"string"}},"type":"object"}},"type":"object"}],"title":"Generic SAML","type":"object"},"access_saml_group_rule":{"description":"Matches a SAML group.\nRequires a SAML identity provider.","properties":{"saml":{"properties":{"attribute_name":{"description":"The name of the SAML attribute.","example":"group","type":"string"},"attribute_value":{"description":"The SAML attribute value to look for.","example":"devs@cloudflare.com","type":"string"},"identity_provider_id":{"description":"The ID of your SAML identity provider.","example":"ea85612a-29c8-46c2-bacb-669d65136971","type":"string"}},"required":["attribute_name","attribute_value","identity_provider_id"],"type":"object"}},"required":["saml"],"title":"SAML group","type":"object"},"access_saml_saas_app":{"properties":{"auth_type":{"description":"Optional identifier indicating the authentication protocol used for the saas app. Required for OIDC. Default if unset is \"saml\"","enum":["saml","oidc"],"example":"saml","type":"string"},"consumer_service_url":{"description":"The service provider's endpoint that is responsible for receiving and parsing a SAML assertion.","example":"https://example.com","type":"string"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"custom_attributes":{"properties":{"friendly_name":{"description":"The SAML FriendlyName of the attribute.","example":"Last Name","type":"string"},"name":{"description":"The name of the attribute.","example":"family_name","type":"string"},"name_format":{"description":"A globally unique name for an identity or service provider.","enum":["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"],"example":"urn:oasis:names:tc:SAML:2.0:attrname-format:basic","type":"string"},"required":{"description":"If the attribute is required when building a SAML assertion.","example":true,"type":"boolean"},"source":{"properties":{"name":{"description":"The name of the IdP attribute.","example":"last_name","type":"string"},"name_by_idp":{"additionalProperties":{"type":"string"},"description":"A mapping from IdP ID to attribute name.","example":{"exampleIdPID1":"AttributeName1","exampleIdPID2":"AttributeName2"},"type":"object"}},"type":"object"}},"type":"object"},"default_relay_state":{"description":"The URL that the user will be redirected to after a successful login for IDP initiated logins.","example":"https://example.com","type":"string"},"idp_entity_id":{"description":"The unique identifier for your SaaS application.","example":"https://example.cloudflareaccess.com","type":"string"},"name_id_format":{"description":"The format of the name identifier sent to the SaaS application.","enum":["id","email"],"example":"id","type":"string"},"name_id_transform_jsonata":{"description":"A [JSONata](https://jsonata.org/) expression that transforms an application's user identities into a NameID value for its SAML assertion. This expression should evaluate to a singular string. The output of this expression can override the `name_id_format` setting.\n","example":"$substringBefore(email, '@') \u0026 '+sandbox@' \u0026 $substringAfter(email, '@')","type":"string"},"public_key":{"description":"The Access public certificate that will be used to verify your identity.","example":"example unique name","type":"string"},"saml_attribute_transform_jsonata":{"description":"A [JSONata] (https://jsonata.org/) expression that transforms an application's user identities into attribute assertions in the SAML response. The expression can transform id, email, name, and groups values. It can also transform fields listed in the saml_attributes or oidc_fields of the identity provider used to authenticate. The output of this expression must be a JSON object.\n","example":"$ ~\u003e| groups | {'group_name': name} |","type":"string"},"sp_entity_id":{"description":"A globally unique name for an identity or service provider.","example":"example unique name","type":"string"},"sso_endpoint":{"description":"The endpoint where your SaaS application will send login requests.","example":"https://example.cloudflareaccess.com/cdn-cgi/access/sso/saml/b3f58a2b414e0b51d45c8c2af26fccca0e27c63763c426fa52f98dcf0b3b3bfd","type":"string"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"title":"SAML SaaS App","type":"object"},"access_schemas-access_seat":{"description":"True if the user has authenticated with Cloudflare Access.","example":false,"type":"boolean"},"access_schemas-allow_authenticate_via_warp":{"description":"When set to true, users can authenticate to this application using their WARP session. When set to false this application will always require direct IdP authentication. This setting always overrides the organization setting for WARP authentication.","example":true,"type":"boolean"},"access_schemas-allowed_headers":{"description":"Allowed HTTP request headers.","items":{},"type":"array"},"access_schemas-allowed_origins":{"description":"Allowed origins.","example":["https://example.com"],"items":{},"type":"array"},"access_schemas-app_count":{"description":"Number of apps the custom page is assigned to.","type":"integer"},"access_schemas-app_launcher_props":{"allOf":[{"$ref":"#/components/schemas/access_schemas-feature_app_props"},{"properties":{"domain":{"example":"authdomain.cloudflareaccess.com","readOnly":true},"name":{"default":"App Launcher","example":"App Launcher","readOnly":true},"type":{"description":"The application type.","example":"app_launcher","type":"string"}}}]},"access_schemas-app_launcher_visible":{"description":"Displays the application in the App Launcher.","example":true,"type":"boolean"},"access_schemas-approval_group":{"description":"A group of email addresses that can approve a temporary authentication request.","properties":{"approvals_needed":{"description":"The number of approvals needed to obtain access.","example":1,"minimum":0,"type":"number"},"email_addresses":{"description":"A list of emails that can approve the access request.","example":["test@cloudflare.com","test2@cloudflare.com"],"items":{},"type":"array"},"email_list_uuid":{"description":"The UUID of an re-usable email list.","type":"string"}},"required":["approvals_needed"],"type":"object"},"access_schemas-approval_groups":{"description":"Administrators who can approve a temporary authentication request.","example":[{"approvals_needed":1,"email_addresses":["test1@cloudflare.com","test2@cloudflare.com"]},{"approvals_needed":3,"email_list_uuid":"597147a1-976b-4ef2-9af0-81d5d007fc34"}],"items":{"$ref":"#/components/schemas/access_schemas-approval_group"},"type":"array"},"access_schemas-aud":{"description":"Audience tag.","example":"737646a56ab1df6ec9bddc7e5ca84eaf3b0768850f3ffb5d74f1534911fe3893","maxLength":64,"readOnly":true,"type":"string"},"access_schemas-auto_redirect_to_identity":{"default":false,"description":"When set to `true`, users skip the identity provider selection step during login. You must specify only one identity provider in allowed_idps.","type":"boolean"},"access_schemas-azureAD":{"allOf":[{"$ref":"#/components/schemas/access_schemas-identity-provider"},{"properties":{"config":{"allOf":[{"$ref":"#/components/schemas/access_generic-oauth-config"},{"properties":{"conditional_access_enabled":{"description":"Should Cloudflare try to load authentication contexts from your account","type":"boolean"},"directory_id":{"description":"Your Azure directory uuid","example":"\u003cyour azure directory uuid\u003e","type":"string"},"prompt":{"description":"Indicates the type of user interaction that is required. prompt=login forces the user to enter their credentials on that request, negating single-sign on. prompt=none is the opposite. It ensures that the user isn't presented with any interactive prompt. If the request can't be completed silently by using single-sign on, the Microsoft identity platform returns an interaction_required error. prompt=select_account interrupts single sign-on providing account selection experience listing all the accounts either in session or any remembered account or an option to choose to use a different account altogether.","enum":["login","select_account","none"],"type":"string"},"support_groups":{"description":"Should Cloudflare try to load groups from your account","type":"boolean"}},"type":"object"}]}},"type":"object"}],"title":"Azure AD","type":"object"},"access_schemas-basic_app_response_props":{"properties":{"aud":{"$ref":"#/components/schemas/access_schemas-aud"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"id":{"$ref":"#/components/schemas/access_uuid"},"scim_config":{"$ref":"#/components/schemas/access_schemas-scim_config"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"type":"object"},"access_schemas-biso_props":{"allOf":[{"$ref":"#/components/schemas/access_schemas-feature_app_props"},{"properties":{"domain":{"example":"authdomain.cloudflareaccess.com/browser","readOnly":true},"name":{"default":"Clientless Web Isolation","example":"Clientless Web Isolation","readOnly":true},"type":{"description":"The application type.","example":"biso","type":"string"}}}]},"access_schemas-bookmark_props":{"properties":{"app_launcher_visible":{"default":true},"domain":{"description":"The URL or domain of the bookmark.","example":"https://mybookmark.com"},"logo_url":{"$ref":"#/components/schemas/access_logo_url"},"name":{"$ref":"#/components/schemas/access_apps_components-schemas-name"},"type":{"description":"The application type.","example":"bookmark","type":"string"}},"required":["type","domain"],"title":"Bookmark Application","type":"object"},"access_schemas-centrify":{"allOf":[{"$ref":"#/components/schemas/access_schemas-identity-provider"},{"properties":{"config":{"allOf":[{"$ref":"#/components/schemas/access_generic-oauth-config"},{"properties":{"centrify_account":{"description":"Your centrify account url","example":"https://abc123.my.centrify.com/","type":"string"},"centrify_app_id":{"description":"Your centrify app id","example":"exampleapp","type":"string"}},"type":"object"}]}},"type":"object"}],"title":"Centrify","type":"object"},"access_schemas-certificates":{"properties":{"associated_hostnames":{"$ref":"#/components/schemas/access_associated_hostnames"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"expires_on":{"$ref":"#/components/schemas/access_timestamp"},"fingerprint":{"$ref":"#/components/schemas/access_fingerprint"},"id":{"description":"The ID of the application that will use this certificate."},"name":{"$ref":"#/components/schemas/access_certificates_components-schemas-name"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"type":"object"},"access_schemas-cors_headers":{"properties":{"allow_all_headers":{"$ref":"#/components/schemas/access_allow_all_headers"},"allow_all_methods":{"$ref":"#/components/schemas/access_allow_all_methods"},"allow_all_origins":{"$ref":"#/components/schemas/access_allow_all_origins"},"allow_credentials":{"$ref":"#/components/schemas/access_allow_credentials"},"allowed_headers":{"$ref":"#/components/schemas/access_schemas-allowed_headers"},"allowed_methods":{"$ref":"#/components/schemas/access_allowed_methods"},"allowed_origins":{"$ref":"#/components/schemas/access_schemas-allowed_origins"},"max_age":{"$ref":"#/components/schemas/access_max_age"}},"type":"object"},"access_schemas-custom_deny_url":{"description":"The custom URL a user is redirected to when they are denied access to the application.","type":"string"},"access_schemas-custom_pages":{"description":"The custom pages that will be displayed when applicable for this application","items":{"description":"The custom pages selected for application.","example":"699d98642c564d2e855e9661899b7252","type":"string"},"type":"array"},"access_schemas-device_posture_rule":{"properties":{"check":{"$ref":"#/components/schemas/access_device_posture_check"},"data":{"type":"object"},"description":{"type":"string"},"error":{"type":"string"},"id":{"type":"string"},"rule_name":{"type":"string"},"success":{"type":"boolean"},"timestamp":{"type":"string"},"type":{"type":"string"}},"type":"object"},"access_schemas-domain":{"description":"The domain of the Bookmark application.","example":"example.com","type":"string"},"access_schemas-email":{"description":"The email address of the authenticating user.","example":"user@example.com","format":"email","type":"string"},"access_schemas-empty_response":{"allOf":[{"properties":{"result":{"nullable":true,"type":"object"},"success":{"enum":[true,false],"example":true,"type":"boolean"}}}]},"access_schemas-exclude":{"description":"Rules evaluated with a NOT logical operator. To match the policy, a user cannot meet any of the Exclude rules.","items":{"$ref":"#/components/schemas/access_rule"},"type":"array"},"access_schemas-facebook":{"allOf":[{"$ref":"#/components/schemas/access_schemas-identity-provider"},{"properties":{"config":{"$ref":"#/components/schemas/access_generic-oauth-config"}},"type":"object"}],"title":"Facebook","type":"object"},"access_schemas-feature_app_props":{"properties":{"allowed_idps":{"$ref":"#/components/schemas/access_allowed_idps"},"auto_redirect_to_identity":{"$ref":"#/components/schemas/access_schemas-auto_redirect_to_identity"},"domain":{"$ref":"#/components/schemas/access_components-schemas-domain"},"name":{"$ref":"#/components/schemas/access_apps_components-schemas-name"},"session_duration":{"$ref":"#/components/schemas/access_schemas-session_duration"},"type":{"$ref":"#/components/schemas/access_components-schemas-type"}},"required":["type"],"type":"object"},"access_schemas-gateway_seat":{"description":"True if the user has logged into the WARP client.","example":false,"type":"boolean"},"access_schemas-github":{"allOf":[{"$ref":"#/components/schemas/access_schemas-identity-provider"},{"properties":{"config":{"$ref":"#/components/schemas/access_generic-oauth-config"}},"type":"object"}],"title":"GitHub","type":"object"},"access_schemas-google":{"allOf":[{"$ref":"#/components/schemas/access_schemas-identity-provider"},{"properties":{"config":{"$ref":"#/components/schemas/access_generic-oauth-config"}},"type":"object"}],"title":"Google","type":"object"},"access_schemas-google-apps":{"allOf":[{"$ref":"#/components/schemas/access_schemas-identity-provider"},{"properties":{"config":{"allOf":[{"$ref":"#/components/schemas/access_generic-oauth-config"},{"properties":{"apps_domain":{"description":"Your companies TLD","example":"mycompany.com","type":"string"}},"type":"object"}]}},"type":"object"}],"title":"Google Workspace","type":"object"},"access_schemas-groups":{"properties":{"created_at":{"$ref":"#/components/schemas/access_timestamp"},"exclude":{"$ref":"#/components/schemas/access_exclude"},"id":{"$ref":"#/components/schemas/access_uuid"},"include":{"$ref":"#/components/schemas/access_include"},"name":{"$ref":"#/components/schemas/access_groups_components-schemas-name"},"require":{"$ref":"#/components/schemas/access_require"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"type":"object"},"access_schemas-id_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/access_id"}},"type":"object"}}}]},"access_schemas-identifier":{"allOf":[{"$ref":"#/components/schemas/access_identifier"},{"example":"699d98642c564d2e855e9661899b7252"}]},"access_schemas-identity-provider":{"properties":{"config":{"description":"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/).","type":"object"},"id":{"$ref":"#/components/schemas/access_uuid"},"name":{"$ref":"#/components/schemas/access_components-schemas-name"},"scim_config":{"description":"The configuration settings for enabling a System for Cross-Domain Identity Management (SCIM) with the identity provider.","properties":{"enabled":{"description":"A flag to enable or disable SCIM for the identity provider.","type":"boolean"},"group_member_deprovision":{"description":"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.","type":"boolean"},"seat_deprovision":{"description":"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.","type":"boolean"},"secret":{"description":"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.","type":"string"},"user_deprovision":{"description":"A flag to enable revoking a user's session in Access and Gateway when they have been deprovisioned in the Identity Provider.","type":"boolean"}},"type":"object"},"type":{"description":"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/).","enum":["onetimepin","azureAD","saml","centrify","facebook","github","google-apps","google","linkedin","oidc","okta","onelogin","pingone","yandex"],"example":"onetimepin","type":"string"}},"required":["name","type","config"],"type":"object"},"access_schemas-identity-providers":{"anyOf":[{"$ref":"#/components/schemas/access_schemas-azureAD"},{"$ref":"#/components/schemas/access_schemas-centrify"},{"$ref":"#/components/schemas/access_schemas-facebook"},{"$ref":"#/components/schemas/access_schemas-github"},{"$ref":"#/components/schemas/access_schemas-google"},{"$ref":"#/components/schemas/access_schemas-google-apps"},{"$ref":"#/components/schemas/access_schemas-linkedin"},{"$ref":"#/components/schemas/access_schemas-oidc"},{"$ref":"#/components/schemas/access_schemas-okta"},{"$ref":"#/components/schemas/access_schemas-onelogin"},{"$ref":"#/components/schemas/access_schemas-pingone"},{"$ref":"#/components/schemas/access_schemas-saml"},{"$ref":"#/components/schemas/access_schemas-yandex"}]},"access_schemas-isolation_required":{"default":false,"description":"Require this application to be served in an isolated browser for users matching this policy.","example":false,"type":"boolean"},"access_schemas-linkedin":{"allOf":[{"$ref":"#/components/schemas/access_schemas-identity-provider"},{"properties":{"config":{"$ref":"#/components/schemas/access_generic-oauth-config"}},"type":"object"}],"title":"LinkedIn","type":"object"},"access_schemas-name":{"description":"The name of the service token.","example":"CI/CD token","type":"string"},"access_schemas-oidc":{"allOf":[{"$ref":"#/components/schemas/access_schemas-identity-provider"},{"properties":{"config":{"allOf":[{"$ref":"#/components/schemas/access_generic-oauth-config"},{"properties":{"auth_url":{"description":"The authorization_endpoint URL of your IdP","example":"https://accounts.google.com/o/oauth2/auth","type":"string"},"certs_url":{"description":"The jwks_uri endpoint of your IdP to allow the IdP keys to sign the tokens","example":"https://www.googleapis.com/oauth2/v3/certs","type":"string"},"claims":{"description":"List of custom claims that will be pulled from your id_token and added to your signed Access JWT token.","example":["given_name","locale"],"items":{"type":"string"},"type":"array"},"scopes":{"description":"OAuth scopes","example":["openid","email","profile"],"items":{"type":"string"},"type":"array"},"token_url":{"description":"The token_endpoint URL of your IdP","example":"https://accounts.google.com/o/oauth2/token","type":"string"}},"type":"object"}]}},"type":"object"}],"title":"Generic OAuth","type":"object"},"access_schemas-oidc_saas_app":{"properties":{"access_token_lifetime":{"description":"The lifetime of the OIDC Access Token after creation. Valid units are m,h. Must be greater than or equal to 1m and less than or equal to 24h.","example":"5m","type":"string"},"allow_pkce_without_client_secret":{"description":"If client secret should be required on the token endpoint when authorization_code_with_pkce grant is used.","example":true,"type":"boolean"},"app_launcher_url":{"description":"The URL where this applications tile redirects users","example":"https://example.com/login","type":"string"},"auth_type":{"description":"Identifier of the authentication protocol used for the saas app. Required for OIDC.","enum":["saml","oidc"],"example":"oidc","type":"string"},"client_id":{"description":"The application client id","example":"oidc client id","type":"string"},"client_secret":{"description":"The application client secret, only returned on POST request.","example":"oidc client secret","type":"string"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"custom_claims":{"properties":{"name":{"description":"The name of the claim.","example":"family_name","type":"string"},"required":{"description":"If the claim is required when building an OIDC token.","example":true,"type":"boolean"},"scope":{"description":"The scope of the claim.","enum":["groups","profile","email","openid"],"example":"profile","type":"string"},"source":{"properties":{"name":{"description":"The name of the IdP claim.","example":"last_name","type":"string"},"name_by_idp":{"additionalProperties":{"type":"string"},"description":"A mapping from IdP ID to claim name.","example":{"exampleIdPID1":"ClaimName1","exampleIdPID2":"ClaimName2"},"type":"object"}},"type":"object"}},"type":"object"},"grant_types":{"description":"The OIDC flows supported by this application","example":["authorization_code"],"items":{"enum":["authorization_code","authorization_code_with_pkce","refresh_tokens","hybrid","implicit"],"type":"string"},"type":"array"},"group_filter_regex":{"description":"A regex to filter Cloudflare groups returned in ID token and userinfo endpoint.","example":"^GROUP_FILTER-*$","type":"string"},"hybrid_and_implicit_options":{"properties":{"return_access_token_from_authorization_endpoint":{"description":"If an Access Token should be returned from the OIDC Authorization endpoint","type":"boolean"},"return_id_token_from_authorization_endpoint":{"description":"If an ID Token should be returned from the OIDC Authorization endpoint","type":"boolean"}},"type":"object"},"public_key":{"description":"The Access public certificate that will be used to verify your identity.","example":"example unique name","type":"string"},"redirect_uris":{"description":"The permitted URL's for Cloudflare to return Authorization codes and Access/ID tokens","example":["https://example.com"],"items":{"type":"string"},"type":"array"},"refresh_token_options":{"properties":{"lifetime":{"description":"How long a refresh token will be valid for after creation. Valid units are m,h,d. Must be longer than 1m.","example":"30d","type":"string"}},"type":"object"},"scopes":{"description":"Define the user information shared with access, \"offline_access\" scope will be automatically enabled if refresh tokens are enabled","example":["openid","groups","email","profile"],"items":{"enum":["openid","groups","email","profile"],"type":"string"},"type":"array"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"title":"OIDC SaaS App","type":"object"},"access_schemas-okta":{"allOf":[{"$ref":"#/components/schemas/access_schemas-identity-provider"},{"properties":{"config":{"allOf":[{"$ref":"#/components/schemas/access_generic-oauth-config"},{"properties":{"okta_account":{"description":"Your okta account url","example":"https://dev-abc123.oktapreview.com","type":"string"}},"type":"object"}]}},"type":"object"}],"title":"Okta","type":"object"},"access_schemas-onelogin":{"allOf":[{"$ref":"#/components/schemas/access_schemas-identity-provider"},{"properties":{"config":{"allOf":[{"$ref":"#/components/schemas/access_generic-oauth-config"},{"properties":{"onelogin_account":{"description":"Your OneLogin account url","example":"https://mycompany.onelogin.com","type":"string"}},"type":"object"}]}},"type":"object"}],"title":"OneLogin","type":"object"},"access_schemas-onetimepin":{"allOf":[{"$ref":"#/components/schemas/access_schemas-identity-provider"},{"properties":{"config":{"type":"object"},"type":{"enum":["onetimepin"]}}}],"title":"One Time Pin","type":"object"},"access_schemas-organizations":{"properties":{"auth_domain":{"$ref":"#/components/schemas/access_auth_domain"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"is_ui_read_only":{"$ref":"#/components/schemas/access_is_ui_read_only"},"login_design":{"$ref":"#/components/schemas/access_login_design"},"name":{"$ref":"#/components/schemas/access_name"},"ui_read_only_toggle_reason":{"$ref":"#/components/schemas/access_ui_read_only_toggle_reason"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"},"user_seat_expiration_inactive_time":{"$ref":"#/components/schemas/access_schemas-user_seat_expiration_inactive_time"}},"type":"object"},"access_schemas-pingone":{"allOf":[{"$ref":"#/components/schemas/access_schemas-identity-provider"},{"properties":{"config":{"allOf":[{"$ref":"#/components/schemas/access_generic-oauth-config"},{"properties":{"ping_env_id":{"description":"Your PingOne environment identifier","example":"342b5660-0c32-4936-a5a4-ce21fae57b0a","type":"string"}},"type":"object"}]}},"type":"object"}],"title":"PingOne","type":"object"},"access_schemas-policy_check_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"properties":{"app_state":{"properties":{"app_uid":{"$ref":"#/components/schemas/access_uuid"},"aud":{"example":"737646a56ab1df6ec9bddc7e5ca84eaf3b0768850f3ffb5d74f1534911fe389","type":"string"},"hostname":{"example":"test.com","type":"string"},"name":{"example":"Test App","type":"string"},"policies":{"example":[{"decision":"allow","exclude":[],"include":[{"_type":"email","email":"testuser@gmail.com"}],"precedence":0,"require":[],"status":"Success"}],"items":{},"type":"array"},"status":{"example":"Success","type":"string"}},"type":"object"},"user_identity":{"properties":{"account_id":{"example":"41ecfbb341f033e52b46742756aabb8b","type":"string"},"device_sessions":{"example":{},"type":"object"},"email":{"example":"testuser@gmail.com","type":"string"},"geo":{"properties":{"country":{"example":"US","type":"string"}},"type":"object"},"iat":{"type":"integer"},"id":{"example":"1164449231815010287495","type":"string"},"is_gateway":{"example":false,"type":"boolean"},"is_warp":{"example":false,"type":"boolean"},"name":{"example":"Test User","type":"string"},"user_uuid":{"$ref":"#/components/schemas/access_uuid"},"version":{"type":"integer"}},"type":"object"}},"type":"object"}}}]},"access_schemas-precedence":{"description":"The order of execution for this policy. Must be unique for each policy.","type":"integer"},"access_schemas-require":{"description":"Rules evaluated with an AND logical operator. To match the policy, a user must meet all of the Require rules.","items":{"$ref":"#/components/schemas/access_rule"},"type":"array"},"access_schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/access_groups"},"type":"array"}}}]},"access_schemas-saas_props":{"properties":{"allowed_idps":{"$ref":"#/components/schemas/access_allowed_idps"},"app_launcher_visible":{"$ref":"#/components/schemas/access_app_launcher_visible"},"auto_redirect_to_identity":{"$ref":"#/components/schemas/access_schemas-auto_redirect_to_identity"},"logo_url":{"$ref":"#/components/schemas/access_logo_url"},"name":{"$ref":"#/components/schemas/access_apps_components-schemas-name"},"saas_app":{"oneOf":[{"$ref":"#/components/schemas/access_schemas-saml_saas_app"},{"$ref":"#/components/schemas/access_schemas-oidc_saas_app"}],"type":"object"},"type":{"description":"The application type.","example":"saas","type":"string"}},"title":"SaaS Application","type":"object"},"access_schemas-saml":{"allOf":[{"$ref":"#/components/schemas/access_schemas-identity-provider"},{"properties":{"config":{"properties":{"attributes":{"description":"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","department_code","divison"],"items":{"type":"string"},"type":"array"},"email_attribute_name":{"description":"The attribute name for email in the SAML response.","example":"Email","type":"string"},"header_attributes":{"description":"Add a list of attribute names that will be returned in the response header from the Access callback.","items":{"properties":{"attribute_name":{"description":"attribute name from the IDP","type":"string"},"header_name":{"description":"header that will be added on the request to the origin","type":"string"}},"type":"object"},"type":"array"},"idp_public_certs":{"description":"X509 certificate to verify the signature in the SAML authentication response","items":{"type":"string"},"type":"array"},"issuer_url":{"description":"IdP Entity ID or Issuer URL","example":"https://whoami.com","type":"string"},"sign_request":{"description":"Sign the SAML authentication request with Access credentials. To verify the signature, use the public key from the Access certs endpoints.","type":"boolean"},"sso_target_url":{"description":"URL to send the SAML authentication requests to","example":"https://edgeaccess.org/idp/saml/login","type":"string"}},"type":"object"}},"type":"object"}],"title":"Generic SAML","type":"object"},"access_schemas-saml_saas_app":{"properties":{"auth_type":{"description":"Optional identifier indicating the authentication protocol used for the saas app. Required for OIDC. Default if unset is \"saml\"","enum":["saml","oidc"],"example":"saml","type":"string"},"consumer_service_url":{"description":"The service provider's endpoint that is responsible for receiving and parsing a SAML assertion.","example":"https://example.com","type":"string"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"custom_attributes":{"properties":{"friendly_name":{"description":"The SAML FriendlyName of the attribute.","example":"Last Name","type":"string"},"name":{"description":"The name of the attribute.","example":"family_name","type":"string"},"name_format":{"description":"A globally unique name for an identity or service provider.","enum":["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"],"example":"urn:oasis:names:tc:SAML:2.0:attrname-format:basic","type":"string"},"required":{"description":"If the attribute is required when building a SAML assertion.","example":true,"type":"boolean"},"source":{"properties":{"name":{"description":"The name of the IdP attribute.","example":"last_name","type":"string"},"name_by_idp":{"additionalProperties":{"type":"string"},"description":"A mapping from IdP ID to attribute name.","example":{"exampleIdPID1":"AttributeName1","exampleIdPID2":"AttributeName2"},"type":"object"}},"type":"object"}},"type":"object"},"idp_entity_id":{"description":"The unique identifier for your SaaS application.","example":"https://example.cloudflareaccess.com","type":"string"},"name_id_format":{"description":"The format of the name identifier sent to the SaaS application.","enum":["id","email"],"example":"id","type":"string"},"name_id_transform_jsonata":{"description":"A [JSONata](https://jsonata.org/) expression that transforms an application's user identities into a NameID value for its SAML assertion. This expression should evaluate to a singular string. The output of this expression can override the `name_id_format` setting.\n","example":"$substringBefore(email, '@') \u0026 '+sandbox@' \u0026 $substringAfter(email, '@')","type":"string"},"public_key":{"description":"The Access public certificate that will be used to verify your identity.","example":"example unique name","type":"string"},"sp_entity_id":{"description":"A globally unique name for an identity or service provider.","example":"example unique name","type":"string"},"sso_endpoint":{"description":"The endpoint where your SaaS application will send login requests.","example":"https://example.cloudflareaccess.com/cdn-cgi/access/sso/saml/b3f58a2b414e0b51d45c8c2af26fccca0e27c63763c426fa52f98dcf0b3b3bfd","type":"string"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"title":"SAML SaaS App","type":"object"},"access_schemas-scim_config":{"description":"Configuration for provisioning to this application via SCIM. This is currently in closed beta.","properties":{"authentication":{"oneOf":[{"$ref":"#/components/schemas/access_scim_config_authentication_http_basic"},{"$ref":"#/components/schemas/access_scim_config_authentication_oauth_bearer_token"},{"$ref":"#/components/schemas/access_scim_config_authentication_oauth2"}]},"deactivate_on_delete":{"description":"If false, we propagate DELETE requests to the target application for SCIM resources. If true, we only set `active` to false on the SCIM resource. This is useful because some targets do not support DELETE operations.","type":"boolean"},"enabled":{"description":"Whether SCIM provisioning is turned on for this application.","type":"boolean"},"idp_uid":{"description":"The UID of the IdP to use as the source for SCIM resources to provision to this application.","type":"string"},"mappings":{"description":"A list of mappings to apply to SCIM resources before provisioning them in this application. These can transform or filter the resources to be provisioned.","items":{"$ref":"#/components/schemas/access_scim_config_mapping"},"type":"array"},"remote_uri":{"description":"The base URI for the application's SCIM-compatible API.","type":"string"}},"required":["remote_uri","idp_uid"],"type":"object"},"access_schemas-seat_uid":{"description":"The unique API identifier for the Zero Trust seat.","type":"string"},"access_schemas-self_hosted_props":{"properties":{"allowed_idps":{"$ref":"#/components/schemas/access_allowed_idps"},"app_launcher_visible":{"$ref":"#/components/schemas/access_app_launcher_visible"},"auto_redirect_to_identity":{"$ref":"#/components/schemas/access_schemas-auto_redirect_to_identity"},"cors_headers":{"$ref":"#/components/schemas/access_schemas-cors_headers"},"custom_deny_message":{"$ref":"#/components/schemas/access_custom_deny_message"},"custom_deny_url":{"$ref":"#/components/schemas/access_schemas-custom_deny_url"},"domain":{"$ref":"#/components/schemas/access_components-schemas-domain"},"enable_binding_cookie":{"$ref":"#/components/schemas/access_enable_binding_cookie"},"http_only_cookie_attribute":{"$ref":"#/components/schemas/access_http_only_cookie_attribute"},"logo_url":{"$ref":"#/components/schemas/access_logo_url"},"name":{"$ref":"#/components/schemas/access_apps_components-schemas-name"},"options_preflight_bypass":{"$ref":"#/components/schemas/access_options_preflight_bypass"},"same_site_cookie_attribute":{"$ref":"#/components/schemas/access_same_site_cookie_attribute"},"service_auth_401_redirect":{"$ref":"#/components/schemas/access_service_auth_401_redirect"},"session_duration":{"$ref":"#/components/schemas/access_schemas-session_duration"},"skip_interstitial":{"$ref":"#/components/schemas/access_skip_interstitial"},"type":{"description":"The application type.","example":"self_hosted","type":"string"}},"required":["type","domain"],"title":"Self Hosted Application","type":"object"},"access_schemas-session_duration":{"default":"24h","description":"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.","example":"24h","type":"string"},"access_schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/access_service-tokens"}}}]},"access_schemas-ssh_props":{"allOf":[{"$ref":"#/components/schemas/access_schemas-self_hosted_props"},{"properties":{"type":{"description":"The application type.","example":"ssh","type":"string"}}}]},"access_schemas-type":{"description":"Custom page type.","enum":["identity_denied","forbidden"],"type":"string"},"access_schemas-user_seat_expiration_inactive_time":{"description":"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","type":"string"},"access_schemas-uuid":{"description":"The UUID of the policy","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","maxLength":36,"type":"string"},"access_schemas-vnc_props":{"allOf":[{"$ref":"#/components/schemas/access_schemas-self_hosted_props"},{"properties":{"type":{"description":"The application type.","example":"vnc","type":"string"}}}]},"access_schemas-warp_props":{"allOf":[{"$ref":"#/components/schemas/access_schemas-feature_app_props"},{"properties":{"domain":{"example":"authdomain.cloudflareaccess.com/warp","readOnly":true},"name":{"default":"Warp Login App","example":"Warp Login App","readOnly":true},"type":{"description":"The application type.","example":"warp","type":"string"}}}]},"access_schemas-yandex":{"allOf":[{"$ref":"#/components/schemas/access_schemas-identity-provider"},{"properties":{"config":{"$ref":"#/components/schemas/access_generic-oauth-config"}},"type":"object"}],"title":"Yandex","type":"object"},"access_scim_config":{"description":"Configuration for provisioning to this application via SCIM. This is currently in closed beta.","properties":{"authentication":{"oneOf":[{"$ref":"#/components/schemas/access_scim_config_authentication_http_basic"},{"$ref":"#/components/schemas/access_scim_config_authentication_oauth_bearer_token"},{"$ref":"#/components/schemas/access_scim_config_authentication_oauth2"}]},"deactivate_on_delete":{"description":"If false, propagates DELETE requests to the target application for SCIM resources. If true, sets 'active' to false on the SCIM resource. Note: Some targets do not support DELETE operations.","type":"boolean"},"enabled":{"description":"Whether SCIM provisioning is turned on for this application.","type":"boolean"},"idp_uid":{"description":"The UID of the IdP to use as the source for SCIM resources to provision to this application.","type":"string"},"mappings":{"description":"A list of mappings to apply to SCIM resources before provisioning them in this application. These can transform or filter the resources to be provisioned.","items":{"$ref":"#/components/schemas/access_scim_config_mapping"},"type":"array"},"remote_uri":{"description":"The base URI for the application's SCIM-compatible API.","type":"string"}},"required":["remote_uri","idp_uid"],"type":"object"},"access_scim_config_authentication_http_basic":{"description":"Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.","properties":{"password":{"description":"Password used to authenticate with the remote SCIM service.","type":"string"},"scheme":{"description":"The authentication scheme to use when making SCIM requests to this application.","enum":["httpbasic"],"type":"string"},"user":{"description":"User name used to authenticate with the remote SCIM service.","type":"string"}},"required":["scheme","user","password"],"title":"HTTP Basic","type":"object"},"access_scim_config_authentication_oauth2":{"description":"Attributes for configuring OAuth 2 authentication scheme for SCIM provisioning to an application.","properties":{"authorization_url":{"description":"URL used to generate the auth code used during token generation.","type":"string"},"client_id":{"description":"Client ID used to authenticate when generating a token for authenticating with the remote SCIM service.","type":"string"},"client_secret":{"description":"Secret used to authenticate when generating a token for authenticating with the remove SCIM service.","type":"string"},"scheme":{"description":"The authentication scheme to use when making SCIM requests to this application.","enum":["oauth2"],"type":"string"},"scopes":{"description":"The authorization scopes to request when generating the token used to authenticate with the remove SCIM service.","items":{"type":"string"},"type":"array"},"token_url":{"description":"URL used to generate the token used to authenticate with the remote SCIM service.","type":"string"}},"required":["scheme","client_id","client_secret","authorization_url","token_url"],"title":"OAuth 2","type":"object"},"access_scim_config_authentication_oauth_bearer_token":{"description":"Attributes for configuring OAuth Bearer Token authentication scheme for SCIM provisioning to an application.","properties":{"scheme":{"description":"The authentication scheme to use when making SCIM requests to this application.","enum":["oauthbearertoken"],"type":"string"},"token":{"description":"Token used to authenticate with the remote SCIM service.","type":"string"}},"required":["scheme","token"],"title":"OAuth Bearer Token","type":"object"},"access_scim_config_mapping":{"description":"Transformations and filters applied to resources before they are provisioned in the remote SCIM service.","properties":{"enabled":{"description":"Whether or not this mapping is enabled.","type":"boolean"},"filter":{"description":"A [SCIM filter expression](https://datatracker.ietf.org/doc/html/rfc7644#section-3.4.2.2) that matches resources that should be provisioned to this application.","example":"title pr or userType eq \"Intern\"","type":"string"},"operations":{"description":"Whether or not this mapping applies to creates, updates, or deletes.","properties":{"create":{"description":"Whether or not this mapping applies to create (POST) operations.","type":"boolean"},"delete":{"description":"Whether or not this mapping applies to DELETE operations.","type":"boolean"},"update":{"description":"Whether or not this mapping applies to update (PATCH/PUT) operations.","type":"boolean"}},"type":"object"},"schema":{"description":"Which SCIM resource type this mapping applies to.","example":"urn:ietf:params:scim:schemas:core:2.0:User","type":"string"},"transform_jsonata":{"description":"A [JSONata](https://jsonata.org/) expression that transforms the resource before provisioning it in the application.","example":"$merge([$, {'userName': $substringBefore($.userName, '@') \u0026 '+test@' \u0026 $substringAfter($.userName, '@')}])","type":"string"}},"required":["schema"],"type":"object"},"access_seat":{"properties":{"access_seat":{"$ref":"#/components/schemas/access_access_seat"},"gateway_seat":{"$ref":"#/components/schemas/access_gateway_seat"},"seat_uid":{"$ref":"#/components/schemas/access_seat_uid"}},"required":["seat_uid","gateway_seat","access_seat"],"type":"object"},"access_seat_uid":{"description":"The unique API identifier for the Zero Trust seat.","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","maxLength":36,"type":"string"},"access_seats":{"properties":{"access_seat":{"$ref":"#/components/schemas/access_access_seat"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"gateway_seat":{"$ref":"#/components/schemas/access_gateway_seat"},"seat_uid":{"$ref":"#/components/schemas/access_seat_uid"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"type":"object"},"access_seats_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/access_seats"},"type":"array"}}}]},"access_seats_definition":{"items":{"$ref":"#/components/schemas/access_seat"},"required":["seat_uid","gateway_seat","access_seat"],"type":"array"},"access_self_hosted_domains":{"description":"List of domains that Access will secure.","example":["test.example.com/admin","test.anotherexample.com/staff"],"items":{"description":"A domain that Access will secure.","type":"string"},"type":"array"},"access_self_hosted_props":{"properties":{"allow_authenticate_via_warp":{"$ref":"#/components/schemas/access_schemas-allow_authenticate_via_warp"},"allowed_idps":{"$ref":"#/components/schemas/access_allowed_idps"},"app_launcher_visible":{"$ref":"#/components/schemas/access_app_launcher_visible"},"auto_redirect_to_identity":{"$ref":"#/components/schemas/access_schemas-auto_redirect_to_identity"},"cors_headers":{"$ref":"#/components/schemas/access_cors_headers"},"custom_deny_message":{"$ref":"#/components/schemas/access_custom_deny_message"},"custom_deny_url":{"$ref":"#/components/schemas/access_custom_deny_url"},"custom_non_identity_deny_url":{"$ref":"#/components/schemas/access_custom_non_identity_deny_url"},"custom_pages":{"$ref":"#/components/schemas/access_schemas-custom_pages"},"domain":{"$ref":"#/components/schemas/access_domain"},"enable_binding_cookie":{"$ref":"#/components/schemas/access_enable_binding_cookie"},"http_only_cookie_attribute":{"$ref":"#/components/schemas/access_http_only_cookie_attribute"},"logo_url":{"$ref":"#/components/schemas/access_logo_url"},"name":{"$ref":"#/components/schemas/access_apps_components-schemas-name"},"options_preflight_bypass":{"$ref":"#/components/schemas/access_options_preflight_bypass"},"path_cookie_attribute":{"$ref":"#/components/schemas/access_path_cookie_attribute"},"same_site_cookie_attribute":{"$ref":"#/components/schemas/access_same_site_cookie_attribute"},"self_hosted_domains":{"$ref":"#/components/schemas/access_self_hosted_domains"},"service_auth_401_redirect":{"$ref":"#/components/schemas/access_service_auth_401_redirect"},"session_duration":{"$ref":"#/components/schemas/access_schemas-session_duration"},"skip_interstitial":{"$ref":"#/components/schemas/access_skip_interstitial"},"tags":{"$ref":"#/components/schemas/access_tags"},"type":{"description":"The application type.","example":"self_hosted","type":"string"}},"required":["type","domain"],"title":"Self Hosted Application","type":"object"},"access_service-tokens":{"properties":{"client_id":{"$ref":"#/components/schemas/access_client_id"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"duration":{"$ref":"#/components/schemas/access_duration"},"expires_at":{"$ref":"#/components/schemas/access_timestamp"},"id":{"allOf":[{"description":"The ID of the service token."},{"$ref":"#/components/schemas/access_uuid"}]},"name":{"$ref":"#/components/schemas/access_schemas-name"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"type":"object"},"access_service_auth_401_redirect":{"description":"Returns a 401 status code when the request is blocked by a Service Auth policy.","example":true,"type":"boolean"},"access_service_token_rule":{"description":"Matches a specific Access Service Token","properties":{"service_token":{"properties":{"token_id":{"description":"The ID of a Service Token.","example":"aa0a4aab-672b-4bdb-bc33-a59f1130a11f","type":"string"}},"required":["token_id"],"type":"object"}},"required":["service_token"],"title":"Service Token","type":"object"},"access_session_duration":{"description":"The amount of time that tokens issued for applications will be valid. Must be in the format `300ms` or `2h45m`. Valid time units are: ns, us (or µs), ms, s, m, h.","example":"24h","type":"string"},"access_settings":{"additionalProperties":false,"properties":{"china_network":{"description":"Request client certificates for this hostname in China. Can only be set to true if this zone is china network enabled.","example":false,"type":"boolean"},"client_certificate_forwarding":{"description":"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,"type":"boolean"},"hostname":{"description":"The hostname that these settings apply to.","example":"admin.example.com","type":"string"}},"required":["hostname","china_network","client_certificate_forwarding"],"title":"Hostname Settings","type":"object"},"access_single_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/access_organizations"}}}]},"access_single_response_without_html":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/access_custom_page_without_html"}}}]},"access_skip_app_launcher_login_page":{"default":false,"description":"Determines when to skip the App Launcher landing page.","example":true,"type":"boolean"},"access_skip_interstitial":{"description":"Enables automatic authentication through cloudflared.","example":true,"type":"boolean"},"access_ssh_props":{"allOf":[{"$ref":"#/components/schemas/access_self_hosted_props"},{"properties":{"type":{"description":"The application type.","example":"ssh","type":"string"}}}]},"access_status":{"description":"The status of the policy test request.","enum":["success"],"example":"success","type":"string"},"access_string_key_map_device_session":{"additionalProperties":{"$ref":"#/components/schemas/access_device_session"},"type":"object"},"access_tag":{"description":"A tag","properties":{"app_count":{"description":"The number of applications that have this tag","example":1,"type":"integer"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"name":{"$ref":"#/components/schemas/access_tags_components-schemas-name"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"required":["name"],"type":"object"},"access_tag_without_app_count":{"description":"A tag","properties":{"created_at":{"$ref":"#/components/schemas/access_timestamp"},"name":{"$ref":"#/components/schemas/access_tags_components-schemas-name"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"required":["name"],"type":"object"},"access_tags":{"description":"The tags you want assigned to an application. Tags are used to filter applications in the App Launcher dashboard.","items":{"description":"The tag associated with an application.","example":"engineers","type":"string"},"type":"array"},"access_tags_components-schemas-name":{"description":"The name of the tag","example":"engineers","type":"string"},"access_tags_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/access_tag"},"type":"array"}},"type":"object"}]},"access_tags_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/access_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/access_tag"}},"type":"object"}]},"access_target_attributes":{"additionalProperties":{"example":["test-server","production-server"],"items":{"type":"string"},"type":"array"},"description":"Contains a map of target attribute keys to target attribute values.","example":{"hostname":["test-server","production-server"]},"type":"object"},"access_target_criteria":{"properties":{"port":{"$ref":"#/components/schemas/access_port"},"protocol":{"$ref":"#/components/schemas/access_protocol"},"target_attributes":{"$ref":"#/components/schemas/access_target_attributes"}},"required":["target_attributes","port","protocol"],"title":"Target Criteria","type":"object"},"access_timestamp":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","type":"string"},"access_title":{"default":"Welcome!","description":"The title shown on the landing page.","example":"Welcome back!","type":"string"},"access_total_users":{"description":"The total number of users in the user base.","example":20,"type":"integer"},"access_type":{"description":"The application type.","enum":["self_hosted","saas","ssh","vnc","app_launcher","warp","biso","bookmark","dash_sso","infrastructure"],"example":"self_hosted","type":"string"},"access_ui_read_only_toggle_reason":{"description":"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","type":"string"},"access_uid":{"description":"The unique API identifier for the user.","type":"string"},"access_update_status":{"description":"The status of the policy test.","enum":["blocked","processing","complete"],"example":"complete","type":"string"},"access_user_result":{"description":"Policy evaluation result for an individual user.","enum":["approved","blocked"],"example":"approved","type":"string"},"access_user_seat_expiration_inactive_time":{"description":"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. Minimum value for this setting is 1 month (730h). Must be in the format `300ms` or `2h45m`. Valid time units are: `ns`, `us` (or `µs`), `ms`, `s`, `m`, `h`.","example":"730h","type":"string"},"access_usernames":{"description":"Contains the Unix usernames that may be used when connecting over SSH.","example":["root","ubuntu"],"items":{"type":"string"},"type":"array"},"access_users":{"properties":{"access_seat":{"$ref":"#/components/schemas/access_schemas-access_seat"},"active_device_count":{"$ref":"#/components/schemas/access_active_device_count"},"created_at":{"$ref":"#/components/schemas/access_timestamp"},"email":{"$ref":"#/components/schemas/access_email"},"gateway_seat":{"$ref":"#/components/schemas/access_schemas-gateway_seat"},"id":{"$ref":"#/components/schemas/access_uuid"},"last_successful_login":{"$ref":"#/components/schemas/access_last_successful_login"},"name":{"$ref":"#/components/schemas/access_users_components-schemas-name"},"seat_uid":{"$ref":"#/components/schemas/access_schemas-seat_uid"},"uid":{"$ref":"#/components/schemas/access_uid"},"updated_at":{"$ref":"#/components/schemas/access_timestamp"}},"type":"object"},"access_users_approved":{"description":"The number of (processed) users approved based on policy evaluation results.","example":5,"type":"integer"},"access_users_blocked":{"description":"The number of (processed) users blocked based on policy evaluation results.","example":5,"type":"integer"},"access_users_components-schemas-name":{"description":"The name of the user.","example":"Jane Doe","type":"string"},"access_users_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/access_api-response-collection"},{"properties":{"result_info":{"properties":{"count":{"example":1},"page":{"example":1},"per_page":{"example":100},"total_count":{"example":1}},"type":"object"}}},{"properties":{"result":{"items":{"$ref":"#/components/schemas/access_users"},"type":"array"}}}]},"access_uuid":{"description":"UUID","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","maxLength":36,"type":"string"},"access_vnc_props":{"allOf":[{"$ref":"#/components/schemas/access_self_hosted_props"},{"properties":{"type":{"description":"The application type.","example":"vnc","type":"string"}}}]},"access_warp_auth_session_duration":{"description":"The amount of time that tokens issued for applications will be valid. Must be in the format `30m` or `2h45m`. Valid time units are: m, h.","example":"24h","type":"string"},"access_warp_props":{"allOf":[{"$ref":"#/components/schemas/access_feature_app_props"},{"properties":{"domain":{"example":"authdomain.cloudflareaccess.com/warp","readOnly":true},"name":{"default":"Warp Login App","example":"Warp Login App","readOnly":true},"type":{"description":"The application type.","example":"warp","type":"string"}}}]},"access_yandex":{"allOf":[{"$ref":"#/components/schemas/access_identity-provider"},{"properties":{"config":{"$ref":"#/components/schemas/access_generic-oauth-config"}},"type":"object"}],"title":"Yandex","type":"object"},"addressing_address-maps":{"properties":{"can_delete":{"$ref":"#/components/schemas/addressing_can_delete"},"can_modify_ips":{"$ref":"#/components/schemas/addressing_can_modify_ips"},"created_at":{"$ref":"#/components/schemas/addressing_timestamp"},"default_sni":{"$ref":"#/components/schemas/addressing_default_sni"},"description":{"$ref":"#/components/schemas/addressing_schemas-description"},"enabled":{"$ref":"#/components/schemas/addressing_enabled"},"id":{"$ref":"#/components/schemas/addressing_identifier"},"modified_at":{"$ref":"#/components/schemas/addressing_timestamp"}},"type":"object"},"addressing_address-maps-ip":{"properties":{"created_at":{"$ref":"#/components/schemas/addressing_timestamp"},"ip":{"$ref":"#/components/schemas/addressing_ip"}},"type":"object"},"addressing_address-maps-membership":{"properties":{"can_delete":{"$ref":"#/components/schemas/addressing_schemas-can_delete"},"created_at":{"$ref":"#/components/schemas/addressing_timestamp"},"identifier":{"$ref":"#/components/schemas/addressing_schemas-identifier"},"kind":{"$ref":"#/components/schemas/addressing_kind"}},"type":"object"},"addressing_advertised":{"description":"Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled.","example":true,"nullable":true,"type":"boolean"},"addressing_advertised_response":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-single"},{"properties":{"result":{"properties":{"advertised":{"$ref":"#/components/schemas/addressing_schemas-advertised"},"advertised_modified_at":{"$ref":"#/components/schemas/addressing_modified_at_nullable"}},"type":"object"}}}]},"addressing_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/addressing_result_info"}}}],"type":"object"},"addressing_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/addressing_messages"},"messages":{"$ref":"#/components/schemas/addressing_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"addressing_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/addressing_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/addressing_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"addressing_api-response-single":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-common"}],"type":"object"},"addressing_approved":{"description":"Approval state of the prefix (P = pending, V = active).","example":"P","type":"string"},"addressing_asn":{"description":"Autonomous System Number (ASN) the prefix will be advertised under.","example":209242,"nullable":true,"type":"integer"},"addressing_bgp_on_demand":{"properties":{"advertised":{"$ref":"#/components/schemas/addressing_advertised"},"advertised_modified_at":{"$ref":"#/components/schemas/addressing_modified_at_nullable"},"on_demand_enabled":{"$ref":"#/components/schemas/addressing_on_demand_enabled"},"on_demand_locked":{"$ref":"#/components/schemas/addressing_on_demand_locked"}},"type":"object"},"addressing_bgp_prefix_update_advertisement":{"properties":{"on_demand":{"properties":{"advertised":{"type":"boolean"}},"type":"object"}},"type":"object"},"addressing_bgp_signal_opts":{"properties":{"enabled":{"$ref":"#/components/schemas/addressing_bgp_signaling_enabled"},"modified_at":{"$ref":"#/components/schemas/addressing_bgp_signaling_modified_at"}},"type":"object"},"addressing_bgp_signaling_enabled":{"description":"Whether control of advertisement of the prefix to the Internet is enabled to be performed via BGP signal","example":false,"type":"boolean"},"addressing_bgp_signaling_modified_at":{"description":"Last time BGP signaling control was toggled. This field is null if BGP signaling has never been enabled.","example":"2014-01-01T05:20:00.12345Z","format":"date-time","nullable":true,"type":"string"},"addressing_can_delete":{"description":"If set to false, then the Address Map cannot be deleted via API. This is true for Cloudflare-managed maps.","example":true,"readOnly":true,"type":"boolean"},"addressing_can_modify_ips":{"description":"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,"readOnly":true,"type":"boolean"},"addressing_cidr":{"description":"IP Prefix in Classless Inter-Domain Routing format.","example":"192.0.2.0/24","type":"string"},"addressing_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/addressing_address-maps"},"type":"array"}}}]},"addressing_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/addressing_address-maps"}}}]},"addressing_create_binding_request":{"properties":{"cidr":{"$ref":"#/components/schemas/addressing_cidr"},"service_id":{"$ref":"#/components/schemas/addressing_service_identifier"}},"type":"object"},"addressing_default_sni":{"description":"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","nullable":true,"type":"string"},"addressing_delegated_account_identifier":{"description":"Account identifier for the account to which prefix is being delegated.","example":"b1946ac92492d2347c6235b4d2611184","maxLength":32,"type":"string"},"addressing_delegation_identifier":{"description":"Delegation identifier tag.","example":"d933b1530bc56c9953cf8ce166da8004","maxLength":32,"readOnly":true,"type":"string"},"addressing_description":{"description":"Description of the prefix.","example":"Internal test prefix","maxLength":1000,"type":"string"},"addressing_enabled":{"default":false,"description":"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.","example":true,"nullable":true,"type":"boolean"},"addressing_etag":{"description":"A digest of the IP data. Useful for determining if the data has changed.","example":"a8e453d9d129a3769407127936edfdb0","type":"string"},"addressing_full_response":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-single"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/addressing_address-maps"},{"properties":{"ips":{"$ref":"#/components/schemas/addressing_schemas-ips"},"memberships":{"$ref":"#/components/schemas/addressing_memberships"}},"type":"object"}]}},"type":"object"}]},"addressing_id_response":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/addressing_delegation_identifier"}},"type":"object"}}}]},"addressing_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"addressing_ip":{"description":"An IPv4 or IPv6 address.","example":"192.0.2.1","type":"string"},"addressing_ip_address":{"description":"An IPv4 or IPv6 address.","example":"192.0.2.1","type":"string"},"addressing_ipam-bgp-prefixes":{"properties":{"asn":{"$ref":"#/components/schemas/addressing_asn"},"bgp_signal_opts":{"$ref":"#/components/schemas/addressing_bgp_signal_opts"},"cidr":{"$ref":"#/components/schemas/addressing_cidr"},"created_at":{"$ref":"#/components/schemas/addressing_timestamp"},"id":{"$ref":"#/components/schemas/addressing_identifier"},"modified_at":{"$ref":"#/components/schemas/addressing_timestamp"},"on_demand":{"$ref":"#/components/schemas/addressing_bgp_on_demand"}},"type":"object"},"addressing_ipam-delegations":{"properties":{"cidr":{"$ref":"#/components/schemas/addressing_cidr"},"created_at":{"$ref":"#/components/schemas/addressing_timestamp"},"delegated_account_id":{"$ref":"#/components/schemas/addressing_delegated_account_identifier"},"id":{"$ref":"#/components/schemas/addressing_delegation_identifier"},"modified_at":{"$ref":"#/components/schemas/addressing_timestamp"},"parent_prefix_id":{"$ref":"#/components/schemas/addressing_identifier"}},"type":"object"},"addressing_ipam-prefixes":{"properties":{"account_id":{"$ref":"#/components/schemas/addressing_identifier"},"advertised":{"$ref":"#/components/schemas/addressing_advertised"},"advertised_modified_at":{"$ref":"#/components/schemas/addressing_modified_at_nullable"},"approved":{"$ref":"#/components/schemas/addressing_approved"},"asn":{"$ref":"#/components/schemas/addressing_asn"},"cidr":{"$ref":"#/components/schemas/addressing_cidr"},"created_at":{"$ref":"#/components/schemas/addressing_timestamp"},"description":{"$ref":"#/components/schemas/addressing_description"},"id":{"$ref":"#/components/schemas/addressing_identifier"},"loa_document_id":{"$ref":"#/components/schemas/addressing_loa_document_identifier"},"modified_at":{"$ref":"#/components/schemas/addressing_timestamp"},"on_demand_enabled":{"$ref":"#/components/schemas/addressing_on_demand_enabled"},"on_demand_locked":{"$ref":"#/components/schemas/addressing_on_demand_locked"}},"type":"object"},"addressing_ips":{"properties":{"etag":{"$ref":"#/components/schemas/addressing_etag"},"ipv4_cidrs":{"$ref":"#/components/schemas/addressing_ipv4_cidrs"},"ipv6_cidrs":{"$ref":"#/components/schemas/addressing_ipv6_cidrs"}},"type":"object"},"addressing_ips_jdcloud":{"properties":{"etag":{"$ref":"#/components/schemas/addressing_etag"},"ipv4_cidrs":{"$ref":"#/components/schemas/addressing_ipv4_cidrs"},"ipv6_cidrs":{"$ref":"#/components/schemas/addressing_ipv6_cidrs"},"jdcloud_cidrs":{"$ref":"#/components/schemas/addressing_jdcloud_cidrs"}},"type":"object"},"addressing_ipv4_cidrs":{"description":"List of Cloudflare IPv4 CIDR addresses.","items":{"description":"IPv4 CIDR.","example":"199.27.128.0/21","type":"string"},"type":"array"},"addressing_ipv6_cidrs":{"description":"List of Cloudflare IPv6 CIDR addresses.","items":{"description":"IPv6 CIDR.","example":"2400:cb00::/32","type":"string"},"type":"array"},"addressing_jdcloud_cidrs":{"description":"List IPv4 and IPv6 CIDRs, only populated if `?networks=jdcloud` is used.","items":{"description":"IPv4 or IPv6 CIDR.","example":"199.27.128.0/21","type":"string"},"type":"array"},"addressing_kind":{"description":"The type of the membership.","enum":["zone","account"],"example":"zone","type":"string"},"addressing_loa_document_identifier":{"description":"Identifier for the uploaded LOA document.","example":"d933b1530bc56c9953cf8ce166da8004","maxLength":32,"nullable":true,"type":"string"},"addressing_loa_upload_response":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-single"},{"properties":{"result":{"properties":{"filename":{"description":"Name of LOA document.","example":"document.pdf","type":"string"}},"type":"object"}}}]},"addressing_memberships":{"description":"Zones and Accounts which will be assigned IPs on this Address Map. A zone membership will take priority over an account membership.","items":{"$ref":"#/components/schemas/addressing_address-maps-membership"},"type":"array"},"addressing_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"addressing_modified_at_nullable":{"description":"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","nullable":true,"type":"string"},"addressing_on_demand_enabled":{"description":"Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled.","example":true,"type":"boolean"},"addressing_on_demand_locked":{"description":"Whether advertisement status of the prefix is locked, meaning it cannot be changed.","example":false,"type":"boolean"},"addressing_provisioning":{"description":"Status of a Service Binding's deployment to the Cloudflare network","properties":{"state":{"description":"When a binding has been deployed to a majority of Cloudflare datacenters, the binding will become active and can be used with its associated service.\n","enum":["provisioning","active"],"example":"provisioning","type":"string"}},"type":"object"},"addressing_response_collection":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/addressing_ipam-prefixes"},"type":"array"}}}]},"addressing_response_collection_bgp":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/addressing_ipam-bgp-prefixes"},"type":"array"}}}]},"addressing_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"addressing_schemas-advertised":{"description":"Enablement of prefix advertisement to the Internet.","example":true,"type":"boolean"},"addressing_schemas-can_delete":{"description":"Controls whether the membership can be deleted via the API or not.","example":true,"readOnly":true,"type":"boolean"},"addressing_schemas-description":{"description":"An optional description field which may be used to describe the types of IPs or zones on the map.","example":"My Ecommerce zones","nullable":true,"type":"string"},"addressing_schemas-identifier":{"description":"The identifier for the membership (eg. a zone or account tag).","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"addressing_schemas-ips":{"description":"The set of IPs on the Address Map.","items":{"$ref":"#/components/schemas/addressing_address-maps-ip"},"type":"array"},"addressing_schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/addressing_ipam-delegations"},"type":"array"}}}]},"addressing_schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/addressing_ipam-delegations"}}}]},"addressing_service_binding":{"properties":{"cidr":{"$ref":"#/components/schemas/addressing_cidr"},"id":{"$ref":"#/components/schemas/addressing_identifier"},"provisioning":{"$ref":"#/components/schemas/addressing_provisioning"},"service_id":{"$ref":"#/components/schemas/addressing_service_identifier"},"service_name":{"$ref":"#/components/schemas/addressing_service_name"}},"type":"object"},"addressing_service_identifier":{"description":"Identifier","example":"2db684ee7ca04e159946fd05b99e1bcd","maxLength":32,"type":"string"},"addressing_service_name":{"description":"Name of a service running on the Cloudflare network","example":"Magic Transit","type":"string"},"addressing_single_response":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/addressing_ipam-prefixes"}}}]},"addressing_single_response_bgp":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/addressing_ipam-bgp-prefixes"}}}]},"addressing_timestamp":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","type":"string"},"api-shield_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/api-shield_result_info"}}}],"type":"object"},"api-shield_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/api-shield_messages"},"messages":{"$ref":"#/components/schemas/api-shield_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"api-shield_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/api-shield_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/api-shield_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"api-shield_api-response-single":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-common"}],"type":"object"},"api-shield_api_discovery_origin":{"description":"* `ML` - Discovered operation was sourced using ML API Discovery * `SessionIdentifier` - Discovered operation was sourced using Session Identifier API Discovery\n","enum":["ML","SessionIdentifier"],"type":"string"},"api-shield_api_discovery_patch_multiple_request":{"additionalProperties":{"$ref":"#/components/schemas/api-shield_api_discovery_patch_multiple_request_entry"},"example":{"3818d821-5901-4147-a474-f5f5aec1d54e":{"state":"ignored"},"b17c8043-99a0-4202-b7d9-8f7cdbee02cd":{"state":"review"}},"type":"object"},"api-shield_api_discovery_patch_multiple_request_entry":{"description":"Mappings of discovered operations (keys) to objects describing their state","properties":{"state":{"$ref":"#/components/schemas/api-shield_api_discovery_state_patch"}},"type":"object"},"api-shield_api_discovery_state":{"description":"State of operation in API Discovery\n * `review` - Operation is not saved into API Shield Endpoint Management\n * `saved` - Operation is saved into API Shield Endpoint Management\n * `ignored` - Operation is marked as ignored\n","enum":["review","saved","ignored"],"type":"string"},"api-shield_api_discovery_state_patch":{"description":"Mark state of operation in API Discovery\n * `review` - Mark operation as for review\n * `ignored` - Mark operation as ignored\n","enum":["review","ignored"],"type":"string"},"api-shield_auth_id_characteristic":{"description":"Auth ID Characteristic","properties":{"name":{"description":"The name of the characteristic field, i.e., the header or cookie name.","example":"authorization","maxLength":128,"type":"string"},"type":{"description":"The type of characteristic.","enum":["header","cookie"],"example":"header","type":"string"}},"required":["type","name"]},"api-shield_auth_id_characteristic_jwt_claim":{"description":"Auth ID Characteristic extracted from JWT Token Claims","properties":{"name":{"description":"Claim location expressed as `$(token_config_id):$(json_path)`, where `token_config_id` \nis the ID of the token configuration used in validating the JWT, and `json_path` is a RFC 9535 \nJSONPath (https://goessner.net/articles/JsonPath/, https://www.rfc-editor.org/rfc/rfc9535.html).\nThe JSONPath expression may be in dot or bracket notation, may only specify literal keys\nor array indexes, and must return a singleton value, which will be interpreted as a string.\n","example":"e0de1a3a-8c2c-4f90-98d8-cbdf0a3f2cb5:$.foo.bar[0].baz","maxLength":128,"pattern":"^(?\u003ctoken_config_id\u003e[a-z0-9\\-]{32,36}):\\$(?\u003cjson_path\u003e.*?)$","type":"string"},"type":{"description":"The type of characteristic.","enum":["jwt"],"example":"jwt","type":"string"}},"required":["type","name"],"type":"object"},"api-shield_auth_id_characteristics":{"items":{"anyOf":[{"$ref":"#/components/schemas/api-shield_auth_id_characteristic"},{"$ref":"#/components/schemas/api-shield_auth_id_characteristic_jwt_claim"}]},"maxItems":10,"type":"array","uniqueItems":true},"api-shield_auth_id_tokens":{"description":"The total number of auth-ids seen across this calculation.","readOnly":true,"type":"integer"},"api-shield_basic_operation":{"properties":{"endpoint":{"$ref":"#/components/schemas/api-shield_endpoint"},"host":{"$ref":"#/components/schemas/api-shield_host"},"method":{"$ref":"#/components/schemas/api-shield_method"}},"required":["method","host","endpoint"],"type":"object"},"api-shield_confidence_intervals_bounds":{"description":"Upper and lower bound for percentile estimate","properties":{"lower":{"description":"Lower bound for percentile estimate","example":20.5,"type":"number"},"upper":{"description":"Upper bound for percentile estimate","example":30.4,"type":"number"}},"readOnly":true,"type":"object"},"api-shield_configuration":{"properties":{"auth_id_characteristics":{"$ref":"#/components/schemas/api-shield_auth_id_characteristics"}},"required":["auth_id_characteristics"],"type":"object"},"api-shield_configuration-single-response":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/api-shield_configuration"}},"required":["result"],"type":"object"}]},"api-shield_data_points":{"description":"The number of data points used for the threshold suggestion calculation.","readOnly":true,"type":"integer"},"api-shield_discovery_operation":{"allOf":[{"properties":{"features":{"$ref":"#/components/schemas/api-shield_traffic_stats"},"id":{"$ref":"#/components/schemas/api-shield_schemas-uuid"},"last_updated":{"$ref":"#/components/schemas/api-shield_schemas-timestamp"},"origin":{"description":"API discovery engine(s) that discovered this operation","items":{"$ref":"#/components/schemas/api-shield_api_discovery_origin"},"type":"array"},"state":{"$ref":"#/components/schemas/api-shield_api_discovery_state"}},"required":["id","last_updated","state","origin"],"type":"object"},{"$ref":"#/components/schemas/api-shield_basic_operation"}]},"api-shield_endpoint":{"description":"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":"^/.*$","type":"string"},"api-shield_host":{"description":"RFC3986-compliant host.","example":"www.example.com","format":"hostname","maxLength":255,"type":"string"},"api-shield_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"api-shield_kind":{"description":"Kind of schema","enum":["openapi_v3"],"example":"openapi_v3","type":"string"},"api-shield_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"api-shield_method":{"description":"The HTTP method used to access the endpoint.","enum":["GET","POST","HEAD","OPTIONS","PUT","DELETE","CONNECT","PATCH","TRACE"],"example":"GET","type":"string"},"api-shield_multiple-operation-response":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/api-shield_operation"},"type":"array"}},"required":["result"],"type":"object"}]},"api-shield_multiple-operation-response-paginated":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-collection"},{"properties":{"result":{"items":{"allOf":[{"$ref":"#/components/schemas/api-shield_operation"},{"properties":{"features":{}},"type":"object"}]},"type":"array"}},"required":["result"],"type":"object"}]},"api-shield_object-with-operation-id":{"properties":{"operation_id":{"allOf":[{"description":"The ID of the operation","type":"string"},{"$ref":"#/components/schemas/api-shield_schemas-uuid"}]}},"required":["operation_id"],"type":"object"},"api-shield_openapi":{"description":"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"}]},"type":"object"},"api-shield_openapi-with-thresholds":{"description":"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"}]},"type":"object"},"api-shield_operation":{"allOf":[{"$ref":"#/components/schemas/api-shield_standard_operation"},{"properties":{"features":{"$ref":"#/components/schemas/api-shield_operation_features"}},"type":"object"}]},"api-shield_operation_feature_api_routing":{"example":{"api_routing":{"last_updated":"2014-01-01T05:20:00.12345Z","route":"https://api.example.com/api/service"}},"properties":{"api_routing":{"description":"API Routing settings on endpoint.","properties":{"last_updated":{"$ref":"#/components/schemas/api-shield_timestamp"},"route":{"description":"Target route.","example":"https://api.example.com/api/service","type":"string"}},"type":"object"}},"readOnly":true,"type":"object"},"api-shield_operation_feature_confidence_intervals":{"example":{"confidence_intervals":{"last_updated":"2014-01-01T05:20:00.12345Z","suggested_threshold":{"confidence_intervals":{"p90":{"lower":23.1,"upper":23.9},"p95":{"lower":22,"upper":24.1},"p99":{"lower":20.2,"upper":30}},"mean":23.5}}},"properties":{"confidence_intervals":{"properties":{"last_updated":{"$ref":"#/components/schemas/api-shield_timestamp"},"suggested_threshold":{"properties":{"confidence_intervals":{"properties":{"p90":{"$ref":"#/components/schemas/api-shield_confidence_intervals_bounds"},"p95":{"$ref":"#/components/schemas/api-shield_confidence_intervals_bounds"},"p99":{"$ref":"#/components/schemas/api-shield_confidence_intervals_bounds"}},"type":"object"},"mean":{"description":"Suggested threshold.","example":25.5,"type":"number"}},"type":"object"}},"type":"object"}},"readOnly":true,"type":"object"},"api-shield_operation_feature_parameter_schemas":{"properties":{"parameter_schemas":{"properties":{"last_updated":{"$ref":"#/components/schemas/api-shield_timestamp"},"parameter_schemas":{"$ref":"#/components/schemas/api-shield_parameter_schemas_definition"}},"type":"object"}},"readOnly":true,"required":["parameter_schemas","last_updated"],"type":"object"},"api-shield_operation_feature_schema_info":{"properties":{"schema_info":{"properties":{"active_schema":{"description":"Schema active on endpoint.","properties":{"created_at":{"$ref":"#/components/schemas/api-shield_timestamp"},"id":{"$ref":"#/components/schemas/api-shield_schemas-uuid"},"is_learned":{"description":"True if schema is Cloudflare-provided.","example":true,"type":"boolean"},"name":{"description":"Schema file name.","example":"api-endpoints-8694824bf5c04d019edcbf399c03c103-api-discovery.example.com-thresholds.json","type":"string"}},"type":"object"},"learned_available":{"description":"True if a Cloudflare-provided learned schema is available for this endpoint.","example":true,"type":"boolean"},"mitigation_action":{"description":"Action taken on requests failing validation.","enum":["none","log","block"],"example":"block","nullable":true,"type":"string"}},"type":"object"}},"readOnly":true,"type":"object"},"api-shield_operation_feature_thresholds":{"properties":{"thresholds":{"properties":{"auth_id_tokens":{"$ref":"#/components/schemas/api-shield_auth_id_tokens"},"data_points":{"$ref":"#/components/schemas/api-shield_data_points"},"last_updated":{"$ref":"#/components/schemas/api-shield_timestamp"},"p50":{"$ref":"#/components/schemas/api-shield_p50"},"p90":{"$ref":"#/components/schemas/api-shield_p90"},"p99":{"$ref":"#/components/schemas/api-shield_p99"},"period_seconds":{"$ref":"#/components/schemas/api-shield_period_seconds"},"requests":{"$ref":"#/components/schemas/api-shield_requests"},"suggested_threshold":{"$ref":"#/components/schemas/api-shield_suggested_threshold"}},"type":"object"}},"readOnly":true,"required":["period_seconds","suggested_threshold","p50","p90","p99","requests","auth_id_tokens","data_points","last_updated"],"type":"object"},"api-shield_operation_features":{"anyOf":[{"$ref":"#/components/schemas/api-shield_operation_feature_thresholds"},{"$ref":"#/components/schemas/api-shield_operation_feature_parameter_schemas"},{"$ref":"#/components/schemas/api-shield_operation_feature_api_routing"},{"$ref":"#/components/schemas/api-shield_operation_feature_confidence_intervals"},{"$ref":"#/components/schemas/api-shield_operation_feature_schema_info"}],"readOnly":true,"type":"object"},"api-shield_operation_mitigation_action":{"description":"When set, this applies a mitigation action to this operation\n\n - `log` log request when request does not conform to schema for this operation\n - `block` deny access to the site when request does not conform to schema for this operation\n - `none` will skip mitigation for this operation\n - `null` indicates that no operation level mitigation is in place, see Zone Level Schema Validation Settings for mitigation action that will be applied\n","enum":["log","block","none",null],"example":"block","nullable":true,"type":"string"},"api-shield_operation_schema_validation_settings":{"properties":{"mitigation_action":{"$ref":"#/components/schemas/api-shield_operation_mitigation_action"}},"type":"object"},"api-shield_operation_schema_validation_settings_multiple_request":{"additionalProperties":{"$ref":"#/components/schemas/api-shield_operation_schema_validation_settings_multiple_request_entry"},"example":{"3818d821-5901-4147-a474-f5f5aec1d54e":{"mitigation_action":"log"},"b17c8043-99a0-4202-b7d9-8f7cdbee02cd":{"mitigation_action":"block"}},"type":"object"},"api-shield_operation_schema_validation_settings_multiple_request_entry":{"description":"Operation ID to mitigation action mappings","properties":{"mitigation_action":{"$ref":"#/components/schemas/api-shield_operation_mitigation_action"}},"type":"object"},"api-shield_p50":{"description":"The p50 quantile of requests (in period_seconds).","readOnly":true,"type":"integer"},"api-shield_p90":{"description":"The p90 quantile of requests (in period_seconds).","readOnly":true,"type":"integer"},"api-shield_p99":{"description":"The p99 quantile of requests (in period_seconds).","readOnly":true,"type":"integer"},"api-shield_parameter_schemas_definition":{"description":"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},"properties":{"parameters":{"description":"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"}}],"items":{"type":"object"},"readOnly":true,"type":"array"},"responses":{"description":"An empty response object. This field is required to yield a valid operation schema.","nullable":true,"readOnly":true,"type":"object"}},"readOnly":true,"type":"object"},"api-shield_patch_discoveries_response":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/api-shield_api_discovery_patch_multiple_request"}},"required":["result"],"type":"object"}]},"api-shield_patch_discovery_response":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-common"},{"properties":{"result":{"properties":{"state":{"$ref":"#/components/schemas/api-shield_api_discovery_state"}},"type":"object"}},"required":["result"],"type":"object"}]},"api-shield_period_seconds":{"description":"The period over which this threshold is suggested.","readOnly":true,"type":"integer"},"api-shield_properties":{"description":"Requests information about certain properties.","example":["auth_id_characteristics"],"items":{"enum":["auth_id_characteristics"],"example":"auth_id_characteristics","type":"string"},"type":"array","uniqueItems":true},"api-shield_public_schema":{"properties":{"created_at":{"$ref":"#/components/schemas/api-shield_schemas-timestamp"},"kind":{"$ref":"#/components/schemas/api-shield_kind"},"name":{"description":"Name of the schema","example":"petstore schema","type":"string"},"schema_id":{"$ref":"#/components/schemas/api-shield_schemas-uuid"},"source":{"description":"Source of the schema","example":"\u003cschema file bytes\u003e","type":"string"},"validation_enabled":{"$ref":"#/components/schemas/api-shield_validation_enabled"}},"required":["schema_id","name","kind","created_at"],"type":"object"},"api-shield_request_expression_templates_fallthrough":{"additionalProperties":false,"properties":{"hosts":{"description":"List of hosts to be targeted in the expression","example":["{zone}.domain1.tld","domain2.tld"],"items":{"type":"string"},"type":"array"}},"required":["hosts"],"type":"object"},"api-shield_requests":{"description":"The estimated number of requests covered by these calculations.","readOnly":true,"type":"integer"},"api-shield_response_expression_templates_fallthrough":{"properties":{"expression":{"description":"WAF Expression for fallthrough","example":"(cf.api_gateway.fallthrough_detected)","type":"string"},"title":{"description":"Title for the expression","example":"Fallthrough Expression for [zone.domain.tld]","type":"string"}},"required":["title","expression"],"type":"object"},"api-shield_response_user_schemas_hosts":{"properties":{"created_at":{"$ref":"#/components/schemas/api-shield_schemas-timestamp"},"hosts":{"description":"Hosts serving the schema, e.g zone.host.com","items":{"type":"string"},"type":"array"},"name":{"description":"Name of the schema","example":"petstore schema","type":"string"},"schema_id":{"$ref":"#/components/schemas/api-shield_schemas-uuid"}},"required":["schema_id","name","hosts","created_at"],"type":"object"},"api-shield_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"api-shield_schema-response-with-thresholds":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-common"},{"properties":{"result":{"properties":{"schemas":{"items":{"$ref":"#/components/schemas/api-shield_openapi-with-thresholds"},"type":"array"},"timestamp":{"type":"string"}},"type":"object"}},"required":["result"],"type":"object"}]},"api-shield_schema_response_discovery":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-common"},{"properties":{"result":{"properties":{"schemas":{"items":{"$ref":"#/components/schemas/api-shield_openapi"},"type":"array"},"timestamp":{"$ref":"#/components/schemas/api-shield_schemas-timestamp"}},"required":["timestamp","schemas"],"type":"object"}},"required":["result"],"type":"object"}]},"api-shield_schema_upload_details_errors_critical":{"properties":{"critical":{"description":"Diagnostic critical error events that occurred during processing.","items":{"$ref":"#/components/schemas/api-shield_schema_upload_log_event"},"type":"array"},"errors":{"description":"Diagnostic error events that occurred during processing.","items":{"$ref":"#/components/schemas/api-shield_schema_upload_log_event"},"type":"array"}},"type":"object"},"api-shield_schema_upload_details_warnings_only":{"properties":{"warnings":{"description":"Diagnostic warning events that occurred during processing. These events are non-critical errors found within the schema.","items":{"$ref":"#/components/schemas/api-shield_schema_upload_log_event"},"type":"array"}},"type":"object"},"api-shield_schema_upload_failure":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-common-failure"},{"properties":{"upload_details":{"$ref":"#/components/schemas/api-shield_schema_upload_details_errors_critical"}},"type":"object"}]},"api-shield_schema_upload_log_event":{"properties":{"code":{"description":"Code that identifies the event that occurred.","example":28,"type":"integer"},"locations":{"description":"JSONPath location(s) in the schema where these events were encountered. See [https://goessner.net/articles/JsonPath/](https://goessner.net/articles/JsonPath/) for JSONPath specification.","items":{"description":"JSONPath location in the schema where these events were encountered. See [https://goessner.net/articles/JsonPath/](https://goessner.net/articles/JsonPath/) for JSONPath specification.","example":".paths[\"/user/{username}\"].put","type":"string"},"type":"array"},"message":{"description":"Diagnostic message that describes the event.","example":"unsupported media type: application/octet-stream","type":"string"}},"required":["code"],"type":"object"},"api-shield_schema_upload_response":{"properties":{"schema":{"$ref":"#/components/schemas/api-shield_public_schema"},"upload_details":{"$ref":"#/components/schemas/api-shield_schema_upload_details_warnings_only"}},"required":["schema"],"type":"object"},"api-shield_schemas-identifier":{"allOf":[{"$ref":"#/components/schemas/api-shield_identifier"},{"readOnly":true,"type":"string"}]},"api-shield_schemas-timestamp":{"allOf":[{"$ref":"#/components/schemas/api-shield_timestamp"},{"readOnly":true,"type":"string"}]},"api-shield_schemas-uuid":{"allOf":[{"minLength":36,"type":"string"},{"$ref":"#/components/schemas/api-shield_uuid"}]},"api-shield_single-operation-response":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-common"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/api-shield_operation"},{"properties":{"features":{}},"type":"object"}]}},"required":["result"],"type":"object"}]},"api-shield_standard_operation":{"allOf":[{"$ref":"#/components/schemas/api-shield_basic_operation"},{"properties":{"last_updated":{"$ref":"#/components/schemas/api-shield_schemas-timestamp"},"operation_id":{"$ref":"#/components/schemas/api-shield_schemas-uuid"}},"required":["operation_id","last_updated"],"type":"object"}]},"api-shield_suggested_threshold":{"description":"The suggested threshold in requests done by the same auth_id or period_seconds.","readOnly":true,"type":"integer"},"api-shield_timestamp":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","type":"string"},"api-shield_traffic_stats":{"properties":{"traffic_stats":{"properties":{"last_updated":{"$ref":"#/components/schemas/api-shield_schemas-timestamp"},"period_seconds":{"description":"The period in seconds these statistics were computed over","example":3600,"readOnly":true,"type":"integer"},"requests":{"description":"The average number of requests seen during this period","example":1987.06,"format":"float","readOnly":true,"type":"number"}},"required":["period_seconds","requests","last_updated"],"type":"object"}},"readOnly":true,"type":"object"},"api-shield_uuid":{"description":"UUID","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","maxLength":36,"type":"string"},"api-shield_validation_default_mitigation_action":{"description":"The default mitigation action used when there is no mitigation action defined on the operation\n\nMitigation actions are as follows:\n\n * `log` - log request when request does not conform to schema\n * `block` - deny access to the site when request does not conform to schema\n\nA special value of of `none` will skip running schema validation entirely for the request when there is no mitigation action defined on the operation\n","enum":["none","log","block"],"example":"block","type":"string"},"api-shield_validation_default_mitigation_action_patch":{"description":"The default mitigation action used when there is no mitigation action defined on the operation\nMitigation actions are as follows:\n\n * `log` - log request when request does not conform to schema\n * `block` - deny access to the site when request does not conform to schema\n\nA special value of of `none` will skip running schema validation entirely for the request when there is no mitigation action defined on the operation\n\n`null` will have no effect.\n","enum":["none","log","block",null],"example":"block","nullable":true,"type":"string"},"api-shield_validation_enabled":{"description":"Flag whether schema is enabled for validation.","type":"boolean"},"api-shield_validation_override_mitigation_action":{"description":"When set, this overrides both zone level and operation level mitigation actions.\n\n - `none` will skip running schema validation entirely for the request\n - `null` indicates that no override is in place\n","enum":["none",null],"example":"disable_override","nullable":true,"type":"string"},"api-shield_validation_override_mitigation_action_patch":{"description":"When set, this overrides both zone level and operation level mitigation actions.\n\n - `none` will skip running schema validation entirely for the request\n\nTo clear any override, use the special value `disable_override`\n\n`null` will have no effect.\n","enum":["none","disable_override",null],"example":"none","nullable":true,"type":"string"},"api-shield_validation_override_mitigation_action_write":{"description":"When set, this overrides both zone level and operation level mitigation actions.\n\n - `none` will skip running schema validation entirely for the request\n - `null` indicates that no override is in place\n\nTo clear any override, use the special value `disable_override` or `null`\n","enum":["none","disable_override",null],"example":"none","nullable":true,"type":"string"},"api-shield_zone_schema_validation_settings":{"properties":{"validation_default_mitigation_action":{"$ref":"#/components/schemas/api-shield_validation_default_mitigation_action"},"validation_override_mitigation_action":{"$ref":"#/components/schemas/api-shield_validation_override_mitigation_action"}},"type":"object"},"api-shield_zone_schema_validation_settings_patch":{"properties":{"validation_default_mitigation_action":{"$ref":"#/components/schemas/api-shield_validation_default_mitigation_action_patch"},"validation_override_mitigation_action":{"$ref":"#/components/schemas/api-shield_validation_override_mitigation_action_patch"}},"type":"object"},"api-shield_zone_schema_validation_settings_put":{"properties":{"validation_default_mitigation_action":{"$ref":"#/components/schemas/api-shield_validation_default_mitigation_action"},"validation_override_mitigation_action":{"$ref":"#/components/schemas/api-shield_validation_override_mitigation_action_write"}},"required":["validation_default_mitigation_action"],"type":"object"},"argo-analytics_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/argo-analytics_messages"},"messages":{"$ref":"#/components/schemas/argo-analytics_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"argo-analytics_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/argo-analytics_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/argo-analytics_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"argo-analytics_api-response-single":{"allOf":[{"$ref":"#/components/schemas/argo-analytics_api-response-common"},{"properties":{"result":{"anyOf":[{"nullable":true,"type":"object"},{"nullable":true,"type":"string"}]}}}],"type":"object"},"argo-analytics_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"argo-analytics_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"argo-analytics_response_single":{"allOf":[{"$ref":"#/components/schemas/argo-analytics_api-response-single"},{"properties":{"result":{"type":"object"}},"type":"object"}]},"argo-config_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/argo-config_messages"},"messages":{"$ref":"#/components/schemas/argo-config_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"argo-config_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/argo-config_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/argo-config_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"argo-config_api-response-single":{"allOf":[{"$ref":"#/components/schemas/argo-config_api-response-common"},{"properties":{"result":{"anyOf":[{"nullable":true,"type":"object"},{"nullable":true,"type":"string"}]}}}],"type":"object"},"argo-config_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"argo-config_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"argo-config_patch":{"description":"Update enablement of Argo Smart Routing","properties":{"value":{"$ref":"#/components/schemas/argo-config_value"}},"required":["value"],"type":"object"},"argo-config_response_single":{"allOf":[{"$ref":"#/components/schemas/argo-config_api-response-single"},{"properties":{"result":{"type":"object"}},"type":"object"}]},"argo-config_value":{"description":"Enables Argo Smart Routing.","enum":["on","off"],"example":"on","type":"string"},"bill-subs-api_account_subscription_response_collection":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/bill-subs-api_subscription"},"type":"array"}},"type":"object"}]},"bill-subs-api_account_subscription_response_single":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_api-response-single"},{"properties":{"result":{"type":"object"}},"type":"object"}]},"bill-subs-api_action":{"description":"The billing item action.","example":"subscription","maxLength":30,"readOnly":true,"type":"string"},"bill-subs-api_amount":{"description":"The amount associated with this billing item.","example":20.99,"readOnly":true,"type":"number"},"bill-subs-api_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"},"result_info":{"$ref":"#/components/schemas/bill-subs-api_result_info"}}}],"type":"object"},"bill-subs-api_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/bill-subs-api_messages"},"messages":{"$ref":"#/components/schemas/bill-subs-api_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"bill-subs-api_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"bill-subs-api_api-response-single":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_api-response-common"},{"properties":{"result":{"anyOf":[{"nullable":true,"type":"object"},{"nullable":true,"type":"string"}]}}}],"type":"object"},"bill-subs-api_available-rate-plan":{"properties":{"can_subscribe":{"$ref":"#/components/schemas/bill-subs-api_can_subscribe"},"currency":{"$ref":"#/components/schemas/bill-subs-api_currency"},"externally_managed":{"$ref":"#/components/schemas/bill-subs-api_externally_managed"},"frequency":{"$ref":"#/components/schemas/bill-subs-api_schemas-frequency"},"id":{"$ref":"#/components/schemas/bill-subs-api_identifier"},"is_subscribed":{"$ref":"#/components/schemas/bill-subs-api_is_subscribed"},"legacy_discount":{"$ref":"#/components/schemas/bill-subs-api_legacy_discount"},"legacy_id":{"$ref":"#/components/schemas/bill-subs-api_legacy_id"},"name":{"$ref":"#/components/schemas/bill-subs-api_schemas-name"},"price":{"$ref":"#/components/schemas/bill-subs-api_schemas-price"}},"type":"object"},"bill-subs-api_billing-history":{"properties":{"action":{"$ref":"#/components/schemas/bill-subs-api_action"},"amount":{"$ref":"#/components/schemas/bill-subs-api_amount"},"currency":{"$ref":"#/components/schemas/bill-subs-api_currency"},"description":{"$ref":"#/components/schemas/bill-subs-api_description"},"id":{"$ref":"#/components/schemas/bill-subs-api_components-schemas-identifier"},"occurred_at":{"$ref":"#/components/schemas/bill-subs-api_occurred_at"},"type":{"$ref":"#/components/schemas/bill-subs-api_type"},"zone":{"$ref":"#/components/schemas/bill-subs-api_schemas-zone"}},"required":["id","type","action","description","occurred_at","amount","currency","zone"],"type":"object"},"bill-subs-api_billing_history_collection":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/bill-subs-api_billing-history"},"type":"array"}}}]},"bill-subs-api_billing_response_single":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_api-response-single"},{"properties":{"result":{"properties":{"account_type":{"example":"type","type":"string"},"address":{"example":"123 Main Street","type":"string"},"address2":{"example":"Apt 1","type":"string"},"balance":{"example":0,"type":"string"},"card_expiry_month":{"example":12,"type":"integer"},"card_expiry_year":{"example":2099,"type":"integer"},"card_number":{"example":4242424242424242,"type":"string"},"city":{"example":"Anytown","type":"string"},"company":{"example":"Company","type":"string"},"country":{"example":"Anycountry","type":"string"},"created_on":{"example":"2014-03-01T12:21:59.3456Z","format":"date-time","type":"string"},"device_data":{"example":"sample_data","type":"string"},"edited_on":{"example":"2014-03-01T12:21:59.3456Z","format":"date-time","type":"string"},"enterprise_billing_email":{"example":"johndoe@gmail.com","type":"string"},"enterprise_primary_email":{"example":"johndoe@gmail.com","type":"string"},"first_name":{"example":"John","type":"string"},"id":{"$ref":"#/components/schemas/bill-subs-api_components-schemas-identifier"},"is_partner":{"example":false,"type":"boolean"},"last_name":{"example":"Doe","type":"string"},"next_bill_date":{"example":"2014-03-01T12:21:59.3456Z","format":"date-time","type":"string"},"payment_address":{"example":"123 Main Street","type":"string"},"payment_address2":{"example":"Apt 1","type":"string"},"payment_city":{"example":"Anytown","type":"string"},"payment_country":{"example":"Anycountry","type":"string"},"payment_email":{"example":"johndoe@gmail.com","type":"string"},"payment_first_name":{"example":"John","type":"string"},"payment_gateway":{"example":"gateway","type":"string"},"payment_last_name":{"example":"Doe","type":"string"},"payment_nonce":{"example":"abc123","type":"string"},"payment_state":{"example":"state","type":"string"},"payment_zipcode":{"example":12345,"type":"string"},"primary_email":{"example":"johndoe@gmail.com","type":"string"},"state":{"example":"AnyState","type":"string"},"tax_id_type":{"example":"type","type":"string"},"telephone":{"example":1234567899,"type":"string"},"use_legacy":{"example":false,"type":"boolean"},"validation_code":{"example":1111,"type":"string"},"vat":{"example":"GB123456789","type":"string"},"zipcode":{"example":12345,"type":"string"}},"type":"object"}},"type":"object"}]},"bill-subs-api_can_subscribe":{"default":false,"description":"Indicates whether you can subscribe to this plan.","example":true,"type":"boolean"},"bill-subs-api_component-value":{"properties":{"default":{"$ref":"#/components/schemas/bill-subs-api_default"},"name":{"$ref":"#/components/schemas/bill-subs-api_components-schemas-name"},"unit_price":{"$ref":"#/components/schemas/bill-subs-api_unit_price"}},"type":"object"},"bill-subs-api_component_value":{"description":"A component value for a subscription.","properties":{"default":{"description":"The default amount assigned.","example":5,"type":"number"},"name":{"description":"The name of the component value.","example":"page_rules","type":"string"},"price":{"description":"The unit price for the component value.","example":5,"type":"number"},"value":{"description":"The amount of the component value assigned.","example":20,"type":"number"}},"type":"object"},"bill-subs-api_component_values":{"description":"The list of add-ons subscribed to.","items":{"$ref":"#/components/schemas/bill-subs-api_component_value"},"type":"array"},"bill-subs-api_components-schemas-identifier":{"description":"Billing item identifier tag.","example":"b69a9f3492637782896352daae219e7d","maxLength":32,"readOnly":true,"type":"string"},"bill-subs-api_components-schemas-name":{"description":"The unique component.","enum":["zones","page_rules","dedicated_certificates","dedicated_certificates_custom"],"example":"page_rules"},"bill-subs-api_currency":{"description":"The monetary unit in which pricing information is displayed.","example":"USD","readOnly":true,"type":"string"},"bill-subs-api_current_period_end":{"description":"The end of the current period and also when the next billing is due.","example":"2014-03-31T12:20:00Z","format":"date-time","readOnly":true,"type":"string"},"bill-subs-api_current_period_start":{"description":"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","readOnly":true,"type":"string"},"bill-subs-api_default":{"description":"The default amount allocated.","example":5,"type":"number"},"bill-subs-api_description":{"description":"The billing item description.","example":"The billing item description","maxLength":255,"readOnly":true,"type":"string"},"bill-subs-api_duration":{"description":"The duration of the plan subscription.","example":1,"type":"number"},"bill-subs-api_externally_managed":{"default":false,"description":"Indicates whether this plan is managed externally.","example":false,"type":"boolean"},"bill-subs-api_frequency":{"description":"How often the subscription is renewed automatically.","enum":["weekly","monthly","quarterly","yearly"],"example":"monthly","type":"string"},"bill-subs-api_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"bill-subs-api_install_id":{"description":"app install id.","type":"string"},"bill-subs-api_is_subscribed":{"default":false,"description":"Indicates whether you are currently subscribed to this plan.","example":false,"type":"boolean"},"bill-subs-api_legacy_discount":{"default":false,"description":"Indicates whether this plan has a legacy discount applied.","example":false,"type":"boolean"},"bill-subs-api_legacy_id":{"description":"The legacy identifier for this rate plan, if any.","example":"free","readOnly":true,"type":"string"},"bill-subs-api_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"bill-subs-api_name":{"description":"The domain name","example":"example.com","maxLength":253,"pattern":"^([a-zA-Z0-9][\\-a-zA-Z0-9]*\\.)+[\\-a-zA-Z0-9]{2,20}$","readOnly":true,"type":"string"},"bill-subs-api_occurred_at":{"description":"When the billing item was created.","example":"2014-03-01T12:21:59.3456Z","format":"date-time","readOnly":true,"type":"string"},"bill-subs-api_plan_response_collection":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/bill-subs-api_schemas-rate-plan"},"type":"array"}},"type":"object"}]},"bill-subs-api_price":{"description":"The price of the subscription that will be billed, in US dollars.","example":20,"readOnly":true,"type":"number"},"bill-subs-api_rate-plan":{"properties":{"components":{"$ref":"#/components/schemas/bill-subs-api_schemas-component_values"},"currency":{"$ref":"#/components/schemas/bill-subs-api_currency"},"duration":{"$ref":"#/components/schemas/bill-subs-api_duration"},"frequency":{"$ref":"#/components/schemas/bill-subs-api_schemas-frequency"},"id":{"$ref":"#/components/schemas/bill-subs-api_rate-plan_components-schemas-identifier"},"name":{"$ref":"#/components/schemas/bill-subs-api_schemas-name"}},"type":"object"},"bill-subs-api_rate-plan_components-schemas-identifier":{"description":"Plan identifier tag.","example":"free","readOnly":true,"type":"string"},"bill-subs-api_rate_plan":{"description":"The rate plan applied to the subscription.","properties":{"currency":{"description":"The currency applied to the rate plan subscription.","example":"USD","type":"string"},"externally_managed":{"description":"Whether this rate plan is managed externally from Cloudflare.","example":false,"type":"boolean"},"id":{"description":"The ID of the rate plan.","example":"free","type":"string"},"is_contract":{"description":"Whether a rate plan is enterprise-based (or newly adopted term contract).","example":false,"type":"boolean"},"public_name":{"description":"The full name of the rate plan.","example":"Business Plan","type":"string"},"scope":{"description":"The scope that this rate plan applies to.","example":"zone","type":"string"},"sets":{"description":"The list of sets this rate plan applies to.","items":{"type":"string"},"type":"array"}},"type":"object"},"bill-subs-api_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"bill-subs-api_schemas-component_values":{"description":"Array of available components values for the plan.","items":{"$ref":"#/components/schemas/bill-subs-api_component-value"},"type":"array"},"bill-subs-api_schemas-frequency":{"description":"The frequency at which you will be billed for this plan.","enum":["weekly","monthly","quarterly","yearly"],"example":"monthly","readOnly":true,"type":"string"},"bill-subs-api_schemas-identifier":{"description":"Subscription identifier tag.","example":"506e3185e9c882d175a2d0cb0093d9f2","maxLength":32,"readOnly":true,"type":"string"},"bill-subs-api_schemas-name":{"description":"The plan name.","example":"Free Plan","maxLength":80,"readOnly":true,"type":"string"},"bill-subs-api_schemas-price":{"description":"The amount you will be billed for this plan.","example":0,"type":"number"},"bill-subs-api_schemas-rate-plan":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_rate-plan"}],"type":"object"},"bill-subs-api_schemas-zone":{"properties":{"name":{"readOnly":true,"type":"string"}},"type":"object"},"bill-subs-api_state":{"description":"The state that the subscription is in.","enum":["Trial","Provisioned","Paid","AwaitingPayment","Cancelled","Failed","Expired"],"example":"Paid","readOnly":true,"type":"string"},"bill-subs-api_subscription":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_subscription-v2"}],"type":"object"},"bill-subs-api_subscription-v2":{"properties":{"app":{"properties":{"install_id":{"$ref":"#/components/schemas/bill-subs-api_install_id"}}},"component_values":{"$ref":"#/components/schemas/bill-subs-api_component_values"},"currency":{"$ref":"#/components/schemas/bill-subs-api_currency"},"current_period_end":{"$ref":"#/components/schemas/bill-subs-api_current_period_end"},"current_period_start":{"$ref":"#/components/schemas/bill-subs-api_current_period_start"},"frequency":{"$ref":"#/components/schemas/bill-subs-api_frequency"},"id":{"$ref":"#/components/schemas/bill-subs-api_schemas-identifier"},"price":{"$ref":"#/components/schemas/bill-subs-api_price"},"rate_plan":{"$ref":"#/components/schemas/bill-subs-api_rate_plan"},"state":{"$ref":"#/components/schemas/bill-subs-api_state"},"zone":{"$ref":"#/components/schemas/bill-subs-api_zone"}},"type":"object"},"bill-subs-api_type":{"description":"The billing item type.","example":"charge","maxLength":30,"readOnly":true,"type":"string"},"bill-subs-api_unit_price":{"description":"The unit price of the addon.","example":1,"readOnly":true,"type":"number"},"bill-subs-api_user_subscription_response_collection":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/bill-subs-api_subscription"},"type":"array"}},"type":"object"}]},"bill-subs-api_user_subscription_response_single":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_api-response-single"},{"properties":{"result":{"type":"object"}},"type":"object"}]},"bill-subs-api_zone":{"description":"A simple zone object. May have null properties if not a zone subscription.","properties":{"id":{"$ref":"#/components/schemas/bill-subs-api_identifier"},"name":{"$ref":"#/components/schemas/bill-subs-api_name"}},"type":"object"},"bill-subs-api_zone_subscription_response_single":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_api-response-single"},{"properties":{"result":{"type":"object"}},"type":"object"}]},"bot-management_ai_bots_protection":{"description":"Enable rule to block AI Scrapers and Crawlers.","enum":["block","disabled"],"example":"block","type":"string"},"bot-management_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/bot-management_messages"},"messages":{"$ref":"#/components/schemas/bot-management_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"bot-management_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/bot-management_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/bot-management_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"bot-management_api-response-single":{"allOf":[{"$ref":"#/components/schemas/bot-management_api-response-common"}],"type":"object"},"bot-management_auto_update_model":{"description":"Automatically update to the newest bot detection models created by Cloudflare as they are released. [Learn more.](https://developers.cloudflare.com/bots/reference/machine-learning-models#model-versions-and-release-notes)","example":true,"type":"boolean"},"bot-management_base_config":{"allOf":[{"properties":{"ai_bots_protection":{"$ref":"#/components/schemas/bot-management_ai_bots_protection"},"enable_js":{"$ref":"#/components/schemas/bot-management_enable_js"},"using_latest_model":{"$ref":"#/components/schemas/bot-management_using_latest_model"}}}],"title":"Shared Config"},"bot-management_bm_subscription_config":{"allOf":[{"$ref":"#/components/schemas/bot-management_base_config"},{"properties":{"auto_update_model":{"$ref":"#/components/schemas/bot-management_auto_update_model"},"suppress_session_score":{"$ref":"#/components/schemas/bot-management_suppress_session_score"}}}],"title":"BM Enterprise Subscription"},"bot-management_bot_fight_mode_config":{"allOf":[{"$ref":"#/components/schemas/bot-management_base_config"},{"properties":{"fight_mode":{"$ref":"#/components/schemas/bot-management_fight_mode"}}}],"title":"Bot Fight Mode"},"bot-management_bot_management_response_body":{"allOf":[{"$ref":"#/components/schemas/bot-management_api-response-single"},{"properties":{"result":{"oneOf":[{"$ref":"#/components/schemas/bot-management_bot_fight_mode_config"},{"$ref":"#/components/schemas/bot-management_sbfm_definitely_config"},{"$ref":"#/components/schemas/bot-management_sbfm_likely_config"},{"$ref":"#/components/schemas/bot-management_bm_subscription_config"}]}},"type":"object"}]},"bot-management_config_single":{"oneOf":[{"$ref":"#/components/schemas/bot-management_bot_fight_mode_config"},{"$ref":"#/components/schemas/bot-management_sbfm_definitely_config"},{"$ref":"#/components/schemas/bot-management_sbfm_likely_config"},{"$ref":"#/components/schemas/bot-management_bm_subscription_config"}],"type":"object"},"bot-management_enable_js":{"description":"Use lightweight, invisible JavaScript detections to improve Bot Management. [Learn more about JavaScript Detections](https://developers.cloudflare.com/bots/reference/javascript-detections/).","example":true,"type":"boolean"},"bot-management_fight_mode":{"description":"Whether to enable Bot Fight Mode.","example":true,"type":"boolean"},"bot-management_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"bot-management_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"bot-management_optimize_wordpress":{"description":"Whether to optimize Super Bot Fight Mode protections for Wordpress.","example":true,"type":"boolean"},"bot-management_sbfm_definitely_automated":{"description":"Super Bot Fight Mode (SBFM) action to take on definitely automated requests.","enum":["allow","block","managed_challenge"],"example":"allow","type":"string"},"bot-management_sbfm_definitely_config":{"allOf":[{"$ref":"#/components/schemas/bot-management_base_config"},{"properties":{"optimize_wordpress":{"$ref":"#/components/schemas/bot-management_optimize_wordpress"},"sbfm_definitely_automated":{"$ref":"#/components/schemas/bot-management_sbfm_definitely_automated"},"sbfm_static_resource_protection":{"$ref":"#/components/schemas/bot-management_sbfm_static_resource_protection"},"sbfm_verified_bots":{"$ref":"#/components/schemas/bot-management_sbfm_verified_bots"}}}],"title":"SBFM Pro Plan"},"bot-management_sbfm_likely_automated":{"description":"Super Bot Fight Mode (SBFM) action to take on likely automated requests.","enum":["allow","block","managed_challenge"],"example":"allow","type":"string"},"bot-management_sbfm_likely_config":{"allOf":[{"$ref":"#/components/schemas/bot-management_sbfm_definitely_config"},{"properties":{"sbfm_likely_automated":{"$ref":"#/components/schemas/bot-management_sbfm_likely_automated"}}}],"title":"SBFM Biz Plan"},"bot-management_sbfm_static_resource_protection":{"description":"Super Bot Fight Mode (SBFM) to enable static resource protection.\nEnable if static resources on your application need bot protection.\nNote: Static resource protection can also result in legitimate traffic being blocked.\n","example":true,"type":"boolean"},"bot-management_sbfm_verified_bots":{"description":"Super Bot Fight Mode (SBFM) action to take on verified bots requests.","enum":["allow","block"],"example":"allow","type":"string"},"bot-management_suppress_session_score":{"default":false,"description":"Whether to disable tracking the highest bot score for a session in the Bot Management cookie.","example":false,"type":"boolean"},"bot-management_using_latest_model":{"description":"A read-only field that indicates whether the zone currently is running the latest ML model.\n","example":true,"readOnly":true,"type":"boolean"},"cache-purge_Everything":{"properties":{"purge_everything":{"description":"For more information, please refer to [purge everything documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-everything/).","example":true,"type":"boolean"}},"title":"Purge everything","type":"object"},"cache-purge_FlexPurgeByHostnames":{"properties":{"hosts":{"description":"For more information purging by hostnames, please refer to [purge by hostname documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-hostname/).","example":["www.example.com","images.example.com"],"items":{"type":"string"},"type":"array"}},"title":"Purge by hostnames","type":"object"},"cache-purge_FlexPurgeByPrefixes":{"properties":{"prefixes":{"description":"For more information on purging by prefixes, please refer to [purge by prefix documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge_by_prefix/).","example":["www.example.com/foo","images.example.com/bar/baz"],"items":{"type":"string"},"type":"array"}},"title":"Purge by prefixes","type":"object"},"cache-purge_FlexPurgeByTags":{"properties":{"tags":{"description":"For more information on cache tags and purging by tags, please refer to [purge by cache-tags documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-tags/#purge-cache-by-cache-tags-enterprise-only).","example":["a-cache-tag","another-cache-tag"],"items":{"type":"string"},"type":"array"}},"title":"Purge by tags","type":"object"},"cache-purge_SingleFile":{"properties":{"files":{"description":"For more information on purging files, please refer to [purge by single-file documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-single-file/).","example":["http://www.example.com/css/styles.css","http://www.example.com/js/index.js"],"items":{"type":"string"},"type":"array"}},"title":"Purge files","type":"object"},"cache-purge_SingleFileWithUrlAndHeaders":{"properties":{"files":{"description":"For more information on purging files with URL and headers, please refer to [purge by single-file documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-single-file/).","example":[{"headers":{"Accept-Language":"zh-CN","CF-Device-Type":"desktop","CF-IPCountry":"US"},"url":"http://www.example.com/cat_picture.jpg"},{"headers":{"Accept-Language":"en-US","CF-Device-Type":"mobile","CF-IPCountry":"EU"},"url":"http://www.example.com/dog_picture.jpg"}],"items":{"properties":{"headers":{"example":"\u003cHTTP header object\u003e","type":"object"},"url":{"example":"http://www.example.com/cat_picture.jpg","type":"string"}},"type":"object"},"type":"array"}},"title":"Purge files with URL and headers","type":"object"},"cache-purge_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/cache-purge_messages"},"messages":{"$ref":"#/components/schemas/cache-purge_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"cache-purge_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/cache-purge_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/cache-purge_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"cache-purge_api-response-single-id":{"allOf":[{"$ref":"#/components/schemas/cache-purge_api-response-common"},{"properties":{"result":{"nullable":true,"properties":{"id":{"$ref":"#/components/schemas/cache-purge_schemas-identifier"}},"required":["id"],"type":"object"}}}],"type":"object"},"cache-purge_identifier":{"type":"string"},"cache-purge_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"cache-purge_schemas-identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"cache_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/cache_messages"},"messages":{"$ref":"#/components/schemas/cache_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"cache_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/cache_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/cache_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"cache_api-response-single":{"allOf":[{"$ref":"#/components/schemas/cache_api-response-common"},{"properties":{"result":{"anyOf":[{"nullable":true,"type":"object"},{"nullable":true,"type":"string"}]}}}],"type":"object"},"cache_automatic_upgrader_response":{"allOf":[{"$ref":"#/components/schemas/cache_api-response-single"},{"properties":{"result":{"oneOf":[{"$ref":"#/components/schemas/cache_response_base"}]}}}]},"cache_base":{"properties":{"id":{"description":"Identifier of the zone setting.","type":"string"},"modified_on":{"description":"last time this setting was modified.","example":"2014-01-01T05:20:00.12345Z","format":"date-time","nullable":true,"readOnly":true,"type":"string"}},"required":["id","modified_on"]},"cache_cache_reserve":{"allOf":[{"$ref":"#/components/schemas/cache_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["cache_reserve"],"example":"cache_reserve"}}}],"description":"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.","title":"Cache Reserve"},"cache_cache_reserve_clear":{"allOf":[{"$ref":"#/components/schemas/cache_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["cache_reserve_clear"],"example":"cache_reserve_clear"}}}],"description":"You can use Cache Reserve Clear to clear your Cache Reserve, but you must first disable Cache Reserve. In most cases, this will be accomplished within 24 hours. You cannot re-enable Cache Reserve while this process is ongoing. Keep in mind that you cannot undo or cancel this operation.","title":"Cache Reserve Clear"},"cache_cache_reserve_clear_end_ts":{"description":"The time that the latest Cache Reserve Clear operation completed.","example":"2023-10-02T12:00:00.12345Z","format":"date-time","type":"string"},"cache_cache_reserve_clear_post_request_body":{"description":"The POST request body does not carry any information.","example":"{}","type":"string"},"cache_cache_reserve_clear_response_value":{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/cache_cache_reserve_clear"},{"properties":{"end_ts":{"$ref":"#/components/schemas/cache_cache_reserve_clear_end_ts"},"start_ts":{"$ref":"#/components/schemas/cache_cache_reserve_clear_start_ts"},"state":{"$ref":"#/components/schemas/cache_cache_reserve_clear_state"}},"required":["state","start_ts"]}]}}},"cache_cache_reserve_clear_start_ts":{"description":"The time that the latest Cache Reserve Clear operation started.","example":"2023-10-02T10:00:00.12345Z","format":"date-time","type":"string"},"cache_cache_reserve_clear_state":{"description":"The current state of the Cache Reserve Clear operation.","enum":["In-progress","Completed"],"example":"In-progress","type":"string"},"cache_cache_reserve_response_value":{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/cache_cache_reserve"},{"properties":{"value":{"$ref":"#/components/schemas/cache_cache_reserve_value"}},"required":["value"]}]}}},"cache_cache_reserve_value":{"default":"off","description":"Value of the Cache Reserve zone setting.","enum":["on","off"],"type":"string"},"cache_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"cache_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"cache_origin_max_http_version":{"allOf":[{"$ref":"#/components/schemas/cache_base"},{"properties":{"id":{"description":"Value of the zone setting.","enum":["origin_max_http_version"],"example":"origin_max_http_version"}}}],"description":"Origin Max HTTP Setting Version sets 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.). The default value is \"2\" for all plan types except ENT where it is \"1\"","title":"Origin Max HTTP Version"},"cache_origin_max_http_version_response_value":{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/cache_origin_max_http_version"},{"properties":{"value":{"$ref":"#/components/schemas/cache_origin_max_http_version_value"}},"required":["value"]}]}}},"cache_origin_max_http_version_value":{"description":"Value of the Origin Max HTTP Version Setting.","enum":["2","1"],"type":"string"},"cache_origin_post_quantum_encryption":{"allOf":[{"$ref":"#/components/schemas/cache_base"},{"properties":{"id":{"description":"Value of the zone setting.","enum":["origin_pqe"],"example":"origin_pqe"}}}],"description":"Instructs Cloudflare to use Post-Quantum (PQ) key agreement algorithms when connecting to your origin. Preferred instructs Cloudflare to opportunistically send a Post-Quantum keyshare in the first message to the origin (for fastest connections when the origin supports and prefers PQ), supported means that PQ algorithms are advertised but only used when requested by the origin, and off means that PQ algorithms are not advertised","title":"Origin Post-Quantum Encryption"},"cache_origin_post_quantum_encryption_response_value":{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/cache_origin_post_quantum_encryption"},{"properties":{"value":{"$ref":"#/components/schemas/cache_origin_post_quantum_encryption"}},"required":["value"]}]}}},"cache_origin_post_quantum_encryption_value":{"default":"supported","description":"Value of the Origin Post Quantum Encryption Setting.","enum":["preferred","supported","off"],"type":"string"},"cache_patch":{"description":"Update enablement of Tiered Caching","properties":{"value":{"$ref":"#/components/schemas/cache_value"}},"required":["value"],"type":"object"},"cache_regional_tiered_cache":{"allOf":[{"$ref":"#/components/schemas/cache_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["tc_regional"],"example":"tc_regional"}}}],"description":"Instructs Cloudflare to check a regional hub data center on the way to your upper tier. This can help improve performance for smart and custom tiered cache topologies.","title":"Regional Tiered Cache"},"cache_regional_tiered_cache_response_value":{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/cache_regional_tiered_cache"},{"properties":{"value":{"$ref":"#/components/schemas/cache_regional_tiered_cache"}},"required":["value"]}]}}},"cache_regional_tiered_cache_value":{"default":"off","description":"Value of the Regional Tiered Cache zone setting.","enum":["on","off"],"type":"string"},"cache_response_base":{"properties":{"editable":{"description":"Whether this setting can be updated or not.","readOnly":true,"type":"boolean"},"id":{"example":"ssl_tls_configuration_mode","readOnly":true,"type":"string"},"modified_on":{"description":"Last time this setting was modified.","example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"next_scheduled_scan":{"description":"next time this zone will be scanned by the Automatic SSL/TLS.","example":"2014-01-01T05:20:00.12345Z","format":"date-time","nullable":true,"readOnly":true,"type":"string"},"value":{"description":"Current setting of the automatic SSL/TLS.","enum":["auto","custom"],"example":"auto","readOnly":true,"type":"string"}},"required":["id","modified_on","value","editable"],"type":"object"},"cache_response_single":{"allOf":[{"$ref":"#/components/schemas/cache_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/cache_result-object"}},"type":"object"}]},"cache_result-object":{"properties":{"editable":{"description":"Whether the setting is editable","type":"boolean"},"id":{"description":"The identifier of the caching setting","type":"string"},"modified_on":{"description":"The time when the setting was last modified","format":"date-time","type":"string"},"value":{"description":"The status of the feature being on / off","enum":["on","off"],"type":"string"}},"required":["id","value","modified_on","editable"],"type":"object"},"cache_schemas_patch":{"description":"Update enablement of Automatic SSL/TLS.","properties":{"value":{"$ref":"#/components/schemas/cache_schemas_value"}},"required":["value"],"type":"object"},"cache_schemas_value":{"description":"Controls enablement of Automatic SSL/TLS.","enum":["auto","custom"],"example":"auto","type":"string"},"cache_smart_tiered_cache_patch":{"description":"Update enablement of Smart Tiered Cache","properties":{"value":{"description":"Enable or disable the Smart Tiered Cache","enum":["on","off"],"example":"on","type":"string"}},"required":["value"],"type":"object"},"cache_value":{"description":"Enables Tiered Caching.","enum":["on","off"],"example":"on","type":"string"},"cache_variants":{"allOf":[{"$ref":"#/components/schemas/cache_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["variants"],"example":"variants"}}}],"description":"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.","title":"Variants Caching"},"cache_variants_response_value":{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/cache_variants"},{"properties":{"value":{"$ref":"#/components/schemas/cache_variants_value"}},"required":["value"]}]}}},"cache_variants_value":{"description":"Value of the zone setting.","properties":{"avif":{"description":"List of strings with the MIME types of all the variants that should be served for avif.","example":["image/webp","image/jpeg"],"items":{"type":"string"},"type":"array","uniqueItems":true},"bmp":{"description":"List of strings with the MIME types of all the variants that should be served for bmp.","example":["image/webp","image/jpeg"],"items":{"type":"string"},"type":"array","uniqueItems":true},"gif":{"description":"List of strings with the MIME types of all the variants that should be served for gif.","example":["image/webp","image/jpeg"],"items":{"type":"string"},"type":"array","uniqueItems":true},"jp2":{"description":"List of strings with the MIME types of all the variants that should be served for jp2.","example":["image/webp","image/avif"],"items":{"type":"string"},"type":"array","uniqueItems":true},"jpeg":{"description":"List of strings with the MIME types of all the variants that should be served for jpeg.","example":["image/webp","image/avif"],"items":{"type":"string"},"type":"array","uniqueItems":true},"jpg":{"description":"List of strings with the MIME types of all the variants that should be served for jpg.","example":["image/webp","image/avif"],"items":{"type":"string"},"type":"array","uniqueItems":true},"jpg2":{"description":"List of strings with the MIME types of all the variants that should be served for jpg2.","example":["image/webp","image/avif"],"items":{"type":"string"},"type":"array","uniqueItems":true},"png":{"description":"List of strings with the MIME types of all the variants that should be served for png.","example":["image/webp","image/avif"],"items":{"type":"string"},"type":"array","uniqueItems":true},"tif":{"description":"List of strings with the MIME types of all the variants that should be served for tif.","example":["image/webp","image/avif"],"items":{"type":"string"},"type":"array","uniqueItems":true},"tiff":{"description":"List of strings with the MIME types of all the variants that should be served for tiff.","example":["image/webp","image/avif"],"items":{"type":"string"},"type":"array","uniqueItems":true},"webp":{"description":"List of strings with the MIME types of all the variants that should be served for webp.","example":["image/jpeg","image/avif"],"items":{"type":"string"},"type":"array","uniqueItems":true}},"type":"object"},"cache_zone_cache_settings_response_single":{"allOf":[{"$ref":"#/components/schemas/cache_api-response-single"},{"properties":{"result":{"type":"object"}}}]},"cache_zone_identifier":{"allOf":[{"description":"Zone identifier."},{"readOnly":true},{"$ref":"#/components/schemas/cache_identifier"}]},"calls_account_identifier":{"description":"The account identifier tag.","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"calls_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/calls_messages"},"messages":{"$ref":"#/components/schemas/calls_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"calls_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/calls_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/calls_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"calls_api-response-single":{"allOf":[{"$ref":"#/components/schemas/calls_api-response-common"}],"type":"object"},"calls_app":{"properties":{"created":{"$ref":"#/components/schemas/calls_created"},"modified":{"$ref":"#/components/schemas/calls_modified"},"name":{"$ref":"#/components/schemas/calls_name"},"uid":{"$ref":"#/components/schemas/calls_identifier"}},"type":"object"},"calls_app_editable_fields":{"properties":{"name":{"$ref":"#/components/schemas/calls_name"}},"type":"object"},"calls_app_response_collection":{"allOf":[{"$ref":"#/components/schemas/calls_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/calls_turn_key"},"type":"array"}}}]},"calls_app_response_single":{"allOf":[{"$ref":"#/components/schemas/calls_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/calls_app"}}}]},"calls_app_response_single_with_secret":{"allOf":[{"$ref":"#/components/schemas/calls_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/calls_app_with_secret"}}}]},"calls_app_with_secret":{"properties":{"created":{"$ref":"#/components/schemas/calls_created"},"modified":{"$ref":"#/components/schemas/calls_modified"},"name":{"$ref":"#/components/schemas/calls_name"},"secret":{"$ref":"#/components/schemas/calls_secret"},"uid":{"$ref":"#/components/schemas/calls_identifier"}},"type":"object"},"calls_created":{"description":"The date and time the item was created.","example":"2014-01-02T02:20:00Z","format":"date-time","type":"string"},"calls_identifier":{"description":"A Cloudflare-generated unique identifier for a item.","example":"2a95132c15732412d22c1476fa83f27a","maxLength":32,"minLength":32,"type":"string"},"calls_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"calls_modified":{"description":"The date and time the item was last modified.","example":"2014-01-02T02:20:00Z","format":"date-time","type":"string"},"calls_name":{"default":"","description":"A short description of Calls app, not shown to end users.","example":"production-realtime-app","type":"string"},"calls_secret":{"description":"Bearer token","example":"66bcf64aa8907b9f9d90ac17746a77ce394c393b92b3916633dc02846e608ad4","maxLength":64,"minLength":64,"type":"string"},"calls_turn_key":{"description":"Bearer token","example":"66bcf64aa8907b9f9d90ac17746a77ce394c393b92b3916633dc02846e608ad4","maxLength":64,"minLength":64,"type":"string"},"calls_turn_key_collection":{"allOf":[{"$ref":"#/components/schemas/calls_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/calls_turn_key"},"type":"array"}}}]},"calls_turn_key_editable_fields":{"properties":{"name":{"$ref":"#/components/schemas/calls_turn_key_name"}},"type":"object"},"calls_turn_key_name":{"default":"","description":"A short description of a TURN key, not shown to end users.","example":"my-turn-key","type":"string"},"calls_turn_key_response_collection":{"allOf":[{"$ref":"#/components/schemas/calls_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/calls_turn_key"},"type":"array"}}}]},"calls_turn_key_response_single":{"allOf":[{"$ref":"#/components/schemas/calls_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/calls_turn_key"}}}]},"calls_turn_key_single_with_secret":{"allOf":[{"$ref":"#/components/schemas/calls_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/calls_turn_key_with_key"}}}]},"calls_turn_key_with_key":{"properties":{"created":{"$ref":"#/components/schemas/calls_created"},"key":{"$ref":"#/components/schemas/calls_turn_key"},"modified":{"$ref":"#/components/schemas/calls_modified"},"name":{"$ref":"#/components/schemas/calls_turn_key_name"},"uid":{"$ref":"#/components/schemas/calls_identifier"}},"type":"object"},"calls_turn_token":{"properties":{"created":{"$ref":"#/components/schemas/calls_created"},"modified":{"$ref":"#/components/schemas/calls_modified"},"name":{"$ref":"#/components/schemas/calls_name"},"uid":{"$ref":"#/components/schemas/calls_identifier"}},"type":"object"},"cloud-connector_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/cloud-connector_messages"},"messages":{"$ref":"#/components/schemas/cloud-connector_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"cloud-connector_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/cloud-connector_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/cloud-connector_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"cloud-connector_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"cloud-connector_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"cloud-connector_provider":{"description":"Cloud Provider type","enum":["aws_s3","r2","gcp_storage","azure_storage"],"example":"aws_s3","type":"string"},"cloud-connector_rules":{"description":"List of Cloud Connector rules","items":{"properties":{"description":{"example":"Rule description","type":"string"},"enabled":{"example":true,"type":"boolean"},"expression":{"example":"http.cookie eq \"a=b\"","type":"string"},"id":{"example":"95c365e17e1b46599cd99e5b231fac4e","type":"string"},"parameters":{"description":"Parameters of Cloud Connector Rule","properties":{"host":{"description":"Host to perform Cloud Connection to","example":"examplebucket.s3.eu-north-1.amazonaws.com","type":"string"}},"type":"object"},"provider":{"$ref":"#/components/schemas/cloud-connector_provider"}},"type":"object"},"type":"array"},"cloud-connector_zone_identifier":{"$ref":"#/components/schemas/cloud-connector_identifier"},"cloudforce-one_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/cloudforce-one_messages"},"messages":{"$ref":"#/components/schemas/cloudforce-one_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"cloudforce-one_api-response-common-failure":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"errors":{"example":{"code":10433,"message":"request error"}},"success":{"example":false}}}]},"cloudforce-one_api-response-single":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"}],"type":"object"},"cloudforce-one_asset-content":{"description":"Asset file to upload","example":"@/Users/me/test.doc","type":"string"},"cloudforce-one_domain_name":{"example":"cloudflare.com","type":"string"},"cloudforce-one_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"cloudforce-one_labels":{"description":"List of labels","example":["DoS","CVE"],"items":{"type":"string"},"title":"Labels","type":"array"},"cloudforce-one_message-content":{"description":"Content of message","example":"Can you elaborate on the type of DoS that occurred?","type":"string"},"cloudforce-one_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"cloudforce-one_priority":{"enum":["routine","high","urgent"],"title":"Request Priority","type":"string"},"cloudforce-one_priority-edit":{"properties":{"labels":{"$ref":"#/components/schemas/cloudforce-one_labels"},"priority":{"description":"Priority","example":1,"type":"integer"},"requirement":{"description":"Requirement","example":"DoS attacks carried out by CVEs","type":"string"},"tlp":{"$ref":"#/components/schemas/cloudforce-one_tlp"}},"required":["labels","priority","requirement","tlp"],"title":"Priority Editable Attributes","type":"object"},"cloudforce-one_priority-item":{"properties":{"created":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_time"},{"description":"Priority creation time"}]},"id":{"$ref":"#/components/schemas/cloudforce-one_uuid"},"labels":{"$ref":"#/components/schemas/cloudforce-one_labels"},"priority":{"description":"Priority","example":1,"type":"integer"},"requirement":{"description":"Requirement","example":"DoS attacks carried out by CVEs","type":"string"},"tlp":{"$ref":"#/components/schemas/cloudforce-one_tlp"},"updated":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_time"},{"description":"Priority last updated time"}]}},"required":["id","created","updated","labels","priority","requirement","tlp"],"title":"Priority Item","type":"object"},"cloudforce-one_priority-list":{"properties":{"page":{"description":"Page number of results","type":"integer"},"per_page":{"description":"Number of results per page","example":10,"type":"integer"}},"required":["page","per_page"],"title":"Priority List Parameters","type":"object"},"cloudforce-one_quota":{"properties":{"anniversary_date":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_time"},{"description":"Anniversary date is when annual quota limit is refresh"},{"example":"2022-01-01T00:00:00Z"}]},"quarter_anniversary_date":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_time"},{"description":"Quater anniversary date is when quota limit is refreshed each quarter"},{"example":"2022-04-01T00:00:00Z"}]},"quota":{"description":"Tokens for the quarter","example":120,"type":"integer"},"remaining":{"description":"Tokens remaining for the quarter","example":64,"type":"integer"}},"title":"Quota","type":"object"},"cloudforce-one_request-asset-edit":{"properties":{"source":{"$ref":"#/components/schemas/cloudforce-one_asset-content"}},"title":"Request Asset Editable Attributes","type":"object"},"cloudforce-one_request-asset-item":{"properties":{"created":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_time"},{"description":"Asset creation time"},{"example":"2022-01-01T00:00:00Z"}]},"description":{"description":"Asset description","example":"example description","type":"string"},"file_type":{"description":"Asset file type","example":"png","type":"string"},"id":{"description":"Asset ID","type":"integer"},"name":{"description":"Asset name","example":"example.png","type":"string"}},"required":["id","name"],"title":"Request Asset Item","type":"object"},"cloudforce-one_request-asset-list":{"properties":{"page":{"description":"Page number of results","type":"integer"},"per_page":{"description":"Number of results per page","example":10,"type":"integer"}},"required":["page","per_page"],"title":"Request Asset List Parameters","type":"object"},"cloudforce-one_request-constants":{"properties":{"priority":{"example":["routine","high","urgent"],"items":{"$ref":"#/components/schemas/cloudforce-one_priority"},"type":"array"},"status":{"example":["open","accepted","reported","approved","completed","declined"],"items":{"$ref":"#/components/schemas/cloudforce-one_request-status"},"type":"array"},"tlp":{"example":["clear","green","amber","amber-strict","red"],"items":{"$ref":"#/components/schemas/cloudforce-one_tlp"},"type":"array"}},"title":"Request Constants","type":"object"},"cloudforce-one_request-content":{"description":"Request content","example":"What regions were most effected by the recent DoS?","type":"string"},"cloudforce-one_request-edit":{"properties":{"content":{"$ref":"#/components/schemas/cloudforce-one_request-content"},"priority":{"description":"Priority for analyzing the request","example":"routine","type":"string"},"request_type":{"$ref":"#/components/schemas/cloudforce-one_request-type"},"summary":{"$ref":"#/components/schemas/cloudforce-one_request-summary"},"tlp":{"$ref":"#/components/schemas/cloudforce-one_tlp"}},"title":"Request Editable Parameters","type":"object"},"cloudforce-one_request-item":{"properties":{"completed":{"$ref":"#/components/schemas/cloudforce-one_time"},"content":{"$ref":"#/components/schemas/cloudforce-one_request-content"},"created":{"$ref":"#/components/schemas/cloudforce-one_time"},"id":{"$ref":"#/components/schemas/cloudforce-one_uuid"},"message_tokens":{"description":"Tokens for the request messages","example":1,"type":"integer"},"priority":{"$ref":"#/components/schemas/cloudforce-one_time"},"readable_id":{"$ref":"#/components/schemas/cloudforce-one_request-readable-id"},"request":{"$ref":"#/components/schemas/cloudforce-one_request-type"},"status":{"$ref":"#/components/schemas/cloudforce-one_request-status"},"summary":{"$ref":"#/components/schemas/cloudforce-one_request-summary"},"tlp":{"$ref":"#/components/schemas/cloudforce-one_tlp"},"tokens":{"description":"Tokens for the request","example":16,"type":"integer"},"updated":{"$ref":"#/components/schemas/cloudforce-one_time"}},"required":["id","created","updated","content","priority","request","summary","tlp"],"title":"Request Item","type":"object"},"cloudforce-one_request-list":{"properties":{"completed_after":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_time"},{"description":"Retrieve requests completed after this time"},{"example":"2022-01-01T00:00:00Z"}]},"completed_before":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_time"},{"description":"Retrieve requests completed before this time"},{"example":"2024-01-01T00:00:00Z"}]},"created_after":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_time"},{"description":"Retrieve requests created after this time"},{"example":"2022-01-01T00:00:00Z"}]},"created_before":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_time"},{"description":"Retrieve requests created before this time"},{"example":"2024-01-01T00:00:00Z"}]},"page":{"description":"Page number of results","type":"integer"},"per_page":{"description":"Number of results per page","example":10,"type":"integer"},"request_type":{"$ref":"#/components/schemas/cloudforce-one_request-type"},"sort_by":{"description":"Field to sort results by","example":"created","type":"string"},"sort_order":{"description":"Sort order (asc or desc)","enum":["asc","desc"],"type":"string"},"status":{"$ref":"#/components/schemas/cloudforce-one_request-status"}},"required":["page","per_page"],"title":"Request List Parameters","type":"object"},"cloudforce-one_request-list-item":{"properties":{"completed":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_time"},{"description":"Request completion time"},{"example":"2024-01-01T00:00:00Z"}]},"created":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_time"},{"description":"Request creation time"},{"example":"2022-04-01T00:00:00Z"}]},"id":{"$ref":"#/components/schemas/cloudforce-one_uuid"},"message_tokens":{"description":"Tokens for the request messages","example":16,"type":"integer"},"priority":{"$ref":"#/components/schemas/cloudforce-one_priority"},"readable_id":{"$ref":"#/components/schemas/cloudforce-one_request-readable-id"},"request":{"$ref":"#/components/schemas/cloudforce-one_request-type"},"status":{"$ref":"#/components/schemas/cloudforce-one_request-status"},"summary":{"$ref":"#/components/schemas/cloudforce-one_request-summary"},"tlp":{"$ref":"#/components/schemas/cloudforce-one_tlp"},"tokens":{"description":"Tokens for the request","type":"integer"},"updated":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_time"},{"description":"Request last updated time"},{"example":"2022-04-01T00:00:00Z"}]}},"required":["id","created","updated","priority","request","summary","tlp"],"title":"Request List Item","type":"object"},"cloudforce-one_request-message-edit":{"properties":{"content":{"$ref":"#/components/schemas/cloudforce-one_message-content"}},"title":"Request Message Editable Attributes","type":"object"},"cloudforce-one_request-message-item":{"properties":{"author":{"description":"Author of message","example":"user@domain.com","type":"string"},"content":{"$ref":"#/components/schemas/cloudforce-one_message-content"},"created":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_time"},{"description":"Message creation time"},{"example":"2022-01-01T00:00:00Z"}]},"id":{"description":"Message ID","type":"integer"},"is_follow_on_request":{"description":"Whether the message is a follow-on request","type":"boolean"},"updated":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_time"},{"description":"Message last updated time"},{"example":"2022-01-01T00:00:00Z"}]}},"required":["id","updated","content","author","is_follow_on_request"],"title":"Request Message Item","type":"object"},"cloudforce-one_request-message-list":{"properties":{"after":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_time"},{"description":"Retrieve messages created after this time"},{"example":"2022-01-01T00:00:00Z"}]},"before":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_time"},{"description":"Retrieve messages created before this time"},{"example":"2024-01-01T00:00:00Z"}]},"page":{"description":"Page number of results","type":"integer"},"per_page":{"description":"Number of results per page","example":10,"type":"integer"},"sort_by":{"description":"Field to sort results by","example":"created","type":"string"},"sort_order":{"description":"Sort order (asc or desc)","enum":["asc","desc"],"type":"string"}},"required":["page","per_page"],"title":"Request Message List Parameters","type":"object"},"cloudforce-one_request-readable-id":{"description":"Readable Request ID","example":"RFI-2022-000001","title":"Request Readable ID","type":"string"},"cloudforce-one_request-status":{"description":"Request Status","enum":["open","accepted","reported","approved","completed","declined"],"title":"Request Status","type":"string"},"cloudforce-one_request-summary":{"description":"Brief description of the request","example":"DoS attack","type":"string"},"cloudforce-one_request-type":{"description":"Requested information from request","example":"Victomology","type":"string"},"cloudforce-one_request-types":{"example":["Indicators of Compromise","Victomology"],"items":{"description":"Request Types","type":"string"},"title":"Request Types","type":"array"},"cloudforce-one_schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/cloudforce-one_whois"}}}]},"cloudforce-one_time":{"example":"2022-04-01T05:20:00Z","format":"date-time","type":"string"},"cloudforce-one_tlp":{"description":"The CISA defined Traffic Light Protocol (TLP)","enum":["clear","amber","amber-strict","green","red"],"title":"TLP","type":"string"},"cloudforce-one_uuid":{"description":"UUID","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","maxLength":36,"type":"string"},"cloudforce-one_whois":{"properties":{"administrative_city":{"type":"string"},"administrative_country":{"type":"string"},"administrative_email":{"type":"string"},"administrative_fax":{"type":"string"},"administrative_fax_ext":{"type":"string"},"administrative_id":{"type":"string"},"administrative_name":{"type":"string"},"administrative_org":{"type":"string"},"administrative_phone":{"type":"string"},"administrative_phone_ext":{"type":"string"},"administrative_postal_code":{"type":"string"},"administrative_province":{"type":"string"},"administrative_referral_url":{"type":"string"},"administrative_street":{"type":"string"},"billing_city":{"type":"string"},"billing_country":{"type":"string"},"billing_email":{"type":"string"},"billing_fax":{"type":"string"},"billing_fax_ext":{"type":"string"},"billing_id":{"type":"string"},"billing_name":{"type":"string"},"billing_org":{"type":"string"},"billing_phone":{"type":"string"},"billing_phone_ext":{"type":"string"},"billing_postal_code":{"type":"string"},"billing_province":{"type":"string"},"billing_referral_url":{"type":"string"},"billing_street":{"type":"string"},"created_date":{"example":"2009-02-17T22:07:54.000Z","format":"date-time","type":"string"},"created_date_raw":{"example":"2009-02-17T22:07:54Z","type":"string"},"dnssec":{"example":true,"type":"boolean"},"domain":{"$ref":"#/components/schemas/cloudforce-one_domain_name"},"expiration_date":{"example":"2033-02-17T22:07:54.000Z","format":"date-time","type":"string"},"expiration_date_raw":{"example":"2033-02-17T22:07:54Z","type":"string"},"extension":{"example":"com","type":"string"},"found":{"example":true,"type":"boolean"},"id":{"example":"1542998887_DOMAIN_COM-VRSN","type":"string"},"nameservers":{"example":["ns3.cloudflare.com","ns4.cloudflare.com","ns5.cloudflare.com","ns6.cloudflare.com","ns7.cloudflare.com"],"items":{"type":"string"},"type":"array"},"punycode":{"example":"cloudflare.com","type":"string"},"registrant":{"type":"string"},"registrant_city":{"type":"string"},"registrant_country":{"type":"string"},"registrant_email":{"type":"string"},"registrant_fax":{"type":"string"},"registrant_fax_ext":{"type":"string"},"registrant_id":{"type":"string"},"registrant_name":{"type":"string"},"registrant_org":{"type":"string"},"registrant_phone":{"type":"string"},"registrant_phone_ext":{"type":"string"},"registrant_postal_code":{"type":"string"},"registrant_province":{"type":"string"},"registrant_referral_url":{"type":"string"},"registrant_street":{"type":"string"},"registrar":{"example":"Cloudflare, Inc.","type":"string"},"registrar_city":{"type":"string"},"registrar_country":{"type":"string"},"registrar_email":{"type":"string"},"registrar_fax":{"type":"string"},"registrar_fax_ext":{"type":"string"},"registrar_id":{"type":"string"},"registrar_name":{"type":"string"},"registrar_org":{"type":"string"},"registrar_phone":{"type":"string"},"registrar_phone_ext":{"type":"string"},"registrar_postal_code":{"type":"string"},"registrar_province":{"type":"string"},"registrar_referral_url":{"type":"string"},"registrar_street":{"type":"string"},"status":{"example":["clientdeleteprohibited","clienttransferprohibited","clientupdateprohibited","serverdeleteprohibited","servertransferprohibited","serverupdateprohibited"],"items":{"type":"string"},"type":"array"},"technical_city":{"type":"string"},"technical_country":{"type":"string"},"technical_email":{"type":"string"},"technical_fax":{"type":"string"},"technical_fax_ext":{"type":"string"},"technical_id":{"type":"string"},"technical_name":{"type":"string"},"technical_org":{"type":"string"},"technical_phone":{"type":"string"},"technical_phone_ext":{"type":"string"},"technical_postal_code":{"type":"string"},"technical_province":{"type":"string"},"technical_referral_url":{"type":"string"},"technical_street":{"type":"string"},"updated_date":{"example":"2024-01-09T16:45:28.000Z","format":"date-time","type":"string"},"updated_date_raw":{"example":"2024-01-09T16:45:28Z","type":"string"},"whois_server":{"example":"whois.cloudflare.com","type":"string"}},"required":["found","domain","dnnsec","extension","nameservers","punycode","registrar","registrant"]},"custom-indicator-feeds_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/custom-indicator-feeds_messages"},"messages":{"$ref":"#/components/schemas/custom-indicator-feeds_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"custom-indicator-feeds_api-response-single":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_api-response-common"}],"type":"object"},"custom-indicator-feeds_api_response_common_failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"custom-indicator-feeds_create_feed":{"example":{"description":"example feed description","name":"example_feed_1"},"properties":{"description":{"$ref":"#/components/schemas/custom-indicator-feeds_description"},"name":{"$ref":"#/components/schemas/custom-indicator-feeds_name"}}},"custom-indicator-feeds_create_feed_response":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/custom-indicator-feeds_indicator_feed_item"}}}]},"custom-indicator-feeds_description":{"description":"The description of the example test","type":"string"},"custom-indicator-feeds_feed_id":{"description":"Indicator feed ID","example":12,"type":"integer"},"custom-indicator-feeds_id":{"description":"The unique identifier for the indicator feed","type":"integer"},"custom-indicator-feeds_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"custom-indicator-feeds_indicator_feed_item":{"example":{"created_on":"2023-05-12T12:21:56.777653Z","description":"example feed description","id":1,"is_attributable":false,"is_downloadable":false,"is_public":false,"modified_on":"2023-06-18T03:13:34.123321Z","name":"example_feed_1"},"properties":{"created_on":{"description":"The date and time when the data entry was created","format":"date-time","type":"string"},"description":{"$ref":"#/components/schemas/custom-indicator-feeds_description"},"id":{"$ref":"#/components/schemas/custom-indicator-feeds_id"},"is_attributable":{"$ref":"#/components/schemas/custom-indicator-feeds_is_attributable"},"is_downloadable":{"$ref":"#/components/schemas/custom-indicator-feeds_is_downloadable"},"is_public":{"$ref":"#/components/schemas/custom-indicator-feeds_is_public"},"modified_on":{"description":"The date and time when the data entry was last modified","format":"date-time","type":"string"},"name":{"$ref":"#/components/schemas/custom-indicator-feeds_name"}}},"custom-indicator-feeds_indicator_feed_metadata":{"example":{"created_on":"2023-05-12T12:21:56.777653Z","description":"example feed description","id":1,"is_attributable":false,"is_downloadable":false,"is_public":false,"latest_upload_status":"Complete","modified_on":"2023-06-18T03:13:34.123321Z","name":"example_feed_1"},"properties":{"created_on":{"description":"The date and time when the data entry was created","format":"date-time","type":"string"},"description":{"$ref":"#/components/schemas/custom-indicator-feeds_description"},"id":{"$ref":"#/components/schemas/custom-indicator-feeds_id"},"is_attributable":{"$ref":"#/components/schemas/custom-indicator-feeds_is_attributable"},"is_downloadable":{"$ref":"#/components/schemas/custom-indicator-feeds_is_downloadable"},"is_public":{"$ref":"#/components/schemas/custom-indicator-feeds_is_public"},"latest_upload_status":{"description":"Status of the latest snapshot uploaded","enum":["Mirroring","Unifying","Loading","Provisioning","Complete","Error"],"type":"string"},"modified_on":{"description":"The date and time when the data entry was last modified","format":"date-time","type":"string"},"name":{"$ref":"#/components/schemas/custom-indicator-feeds_name"},"provider_id":{"$ref":"#/components/schemas/custom-indicator-feeds_provider_id"},"provider_name":{"$ref":"#/components/schemas/custom-indicator-feeds_provider_name"}}},"custom-indicator-feeds_indicator_feed_metadata_response":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/custom-indicator-feeds_indicator_feed_metadata"}}}]},"custom-indicator-feeds_indicator_feed_response":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_api-response-common"},{"properties":{"result":{"example":[{"created_on":"2023-05-12T12:21:56.777653Z","description":"user specified description 1","id":1,"modified_on":"2023-06-18T03:13:34.123321Z","name":"user_specified_name_1"},{"created_on":"2023-05-21T21:43:52.867525Z","description":"User specified description 2","id":2,"modified_on":"2023-06-28T18:46:18.764425Z","name":"user_specified_name_2"}],"items":{"$ref":"#/components/schemas/custom-indicator-feeds_indicator_feed_item"},"type":"array"}}}]},"custom-indicator-feeds_indicator_feed_response_single":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/custom-indicator-feeds_indicator_feed_item"}}}]},"custom-indicator-feeds_is_attributable":{"description":"Whether the indicator feed can be attributed to a provider","type":"boolean"},"custom-indicator-feeds_is_downloadable":{"description":"Whether the indicator feed can be downloaded","type":"boolean"},"custom-indicator-feeds_is_public":{"description":"Whether the indicator feed is exposed to customers","type":"boolean"},"custom-indicator-feeds_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"custom-indicator-feeds_name":{"description":"The name of the indicator feed","type":"string"},"custom-indicator-feeds_permission_list_item":{"properties":{"description":{"$ref":"#/components/schemas/custom-indicator-feeds_description"},"id":{"$ref":"#/components/schemas/custom-indicator-feeds_id"},"is_attributable":{"$ref":"#/components/schemas/custom-indicator-feeds_is_attributable"},"is_downloadable":{"$ref":"#/components/schemas/custom-indicator-feeds_is_downloadable"},"is_public":{"$ref":"#/components/schemas/custom-indicator-feeds_is_public"},"name":{"$ref":"#/components/schemas/custom-indicator-feeds_name"}}},"custom-indicator-feeds_permission_list_item_response":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_api-response-common"},{"properties":{"result":{"example":[{"description":"An important indicator list","id":1,"is_attributable":false,"is_downloadable":false,"is_public":false,"name":"indicator_list_1"},{"description":"An even more important indicator list","id":2,"is_attributable":true,"is_downloadable":false,"is_public":true,"name":"indicator_list_2"}],"items":{"$ref":"#/components/schemas/custom-indicator-feeds_permission_list_item"},"type":"array"}}}]},"custom-indicator-feeds_permissions_request":{"properties":{"account_tag":{"description":"The Cloudflare account tag of the account to change permissions on","example":"823f45f16fd2f7e21e1e054aga4d2859","type":"string"},"feed_id":{"description":"The ID of the feed to add/remove permissions on","example":1,"type":"integer"}}},"custom-indicator-feeds_permissions_response":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/custom-indicator-feeds_permissions_update"}}}]},"custom-indicator-feeds_permissions_update":{"properties":{"success":{"description":"Whether the update succeeded or not","type":"boolean"}}},"custom-indicator-feeds_provider_id":{"description":"The unique identifier for the provider","type":"string"},"custom-indicator-feeds_provider_name":{"description":"The provider of the indicator feed","type":"string"},"custom-indicator-feeds_update_feed":{"properties":{"file_id":{"description":"Feed id","example":1,"type":"integer"},"filename":{"description":"Name of the file unified in our system","example":"snapshot_file.unified","type":"string"},"status":{"description":"Current status of upload, should be unified","example":"unified","type":"string"}}},"custom-indicator-feeds_update_feed_response":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/custom-indicator-feeds_update_feed"}}}]},"custom-indicator-feeds_update_public_field_request":{"properties":{"description":{"description":"The new description of the feed","example":"This is an example description","type":"string"},"is_attributable":{"description":"The new is_attributable value of the feed","example":true,"type":"boolean"},"is_downloadable":{"description":"The new is_downloadable value of the feed","example":true,"type":"boolean"},"is_public":{"description":"The new is_public value of the feed","example":true,"type":"boolean"},"name":{"description":"The new name of the feed","example":"indicator_list","type":"string"}}},"custom-indicator-feeds_update_public_field_response":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/custom-indicator-feeds_indicator_feed_item"}}}]},"custom-pages_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/custom-pages_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"},"result_info":{"$ref":"#/components/schemas/custom-pages_result_info"}}}],"type":"object"},"custom-pages_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/custom-pages_messages"},"messages":{"$ref":"#/components/schemas/custom-pages_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"custom-pages_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/custom-pages_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/custom-pages_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"custom-pages_api-response-single":{"allOf":[{"$ref":"#/components/schemas/custom-pages_api-response-common"},{"properties":{"result":{"anyOf":[{"type":"object"},{"type":"string"}],"nullable":true}}}],"type":"object"},"custom-pages_custom_pages_response_collection":{"allOf":[{"$ref":"#/components/schemas/custom-pages_api-response-collection"},{"properties":{"result":{"items":{"type":"object"},"type":"array"}}}]},"custom-pages_custom_pages_response_single":{"allOf":[{"$ref":"#/components/schemas/custom-pages_api-response-single"},{"properties":{"result":{"type":"object"}}}]},"custom-pages_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"custom-pages_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"custom-pages_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"custom-pages_state":{"description":"The custom page state.","enum":["default","customized"],"example":"default","type":"string"},"custom-pages_url":{"default":"","description":"The URL associated with the custom page.","example":"http://www.example.com","format":"uri","type":"string"},"d1_account-identifier":{"description":"Account identifier tag.","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"d1_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/d1_messages"},"messages":{"$ref":"#/components/schemas/d1_messages"},"result":{"type":"object"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"d1_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/d1_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/d1_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"d1_created-at":{"description":"Specifies the timestamp the resource was created as an ISO8601 string.","example":"2022-11-15T18:25:44.442097Z","format":"date-time","readOnly":true,"type":"string"},"d1_database-details-response":{"properties":{"created_at":{"$ref":"#/components/schemas/d1_created-at"},"file_size":{"$ref":"#/components/schemas/d1_file-size"},"name":{"$ref":"#/components/schemas/d1_database-name"},"num_tables":{"$ref":"#/components/schemas/d1_table-count"},"uuid":{"$ref":"#/components/schemas/d1_database-identifier"},"version":{"$ref":"#/components/schemas/d1_database-version"}},"type":"object"},"d1_database-identifier":{"example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","readOnly":true,"type":"string"},"d1_database-name":{"example":"my-database","pattern":"^[a-z0-9][a-z0-9-_]*$","type":"string"},"d1_database-response":{"properties":{"created_at":{"$ref":"#/components/schemas/d1_created-at"},"name":{"$ref":"#/components/schemas/d1_database-name"},"uuid":{"$ref":"#/components/schemas/d1_database-identifier"},"version":{"$ref":"#/components/schemas/d1_database-version"}},"type":"object"},"d1_database-version":{"example":"production","pattern":"^(alpha|beta|production)$","type":"string"},"d1_file-size":{"description":"The D1 database's size, in bytes.","example":12,"type":"number"},"d1_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"d1_params":{"example":["firstParam","secondParam"],"items":{"type":"string"},"type":"array"},"d1_primary-location-hint":{"description":"Specify the region to create the D1 primary, if available. If this option is omitted, the D1 will be created as close as possible to the current user.","enum":["wnam","enam","weur","eeur","apac","oc"],"example":"wnam","type":"string"},"d1_query-meta":{"properties":{"changed_db":{"type":"boolean"},"changes":{"type":"number"},"duration":{"type":"number"},"last_row_id":{"type":"number"},"rows_read":{"type":"number"},"rows_written":{"type":"number"},"size_after":{"type":"number"}},"type":"object"},"d1_query-result-response":{"properties":{"meta":{"$ref":"#/components/schemas/d1_query-meta"},"results":{"items":{"type":"object"},"type":"array"},"success":{"type":"boolean"}},"type":"object"},"d1_raw-result-response":{"properties":{"meta":{"$ref":"#/components/schemas/d1_query-meta"},"results":{"properties":{"columns":{"items":{"type":"string"},"type":"array"},"rows":{"items":{"items":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"object"}]},"type":"array"},"type":"array"}},"type":"object"},"success":{"type":"boolean"}},"type":"object"},"d1_sql":{"description":"Your SQL query. Supports multiple statements, joined by semicolons, which will be executed as a batch.","example":"SELECT * FROM myTable WHERE field = ? OR field = ?;","type":"string"},"d1_table-count":{"example":12,"type":"number"},"digital-experience-monitoring_account_identifier":{"example":"01a7362d577a6c3019a474fd6f485823","maxLength":32,"readOnly":true,"type":"string"},"digital-experience-monitoring_aggregate_stat":{"properties":{"avgMs":{"nullable":true,"type":"integer"},"deltaPct":{"format":"float","nullable":true,"type":"number"},"timePeriod":{"$ref":"#/components/schemas/digital-experience-monitoring_aggregate_time_period"}},"required":["timePeriod"],"type":"object"},"digital-experience-monitoring_aggregate_time_period":{"properties":{"units":{"enum":["hours","days","testRuns"],"type":"string"},"value":{"type":"integer"}},"required":["value","units"],"type":"object"},"digital-experience-monitoring_aggregate_time_slot":{"properties":{"avgMs":{"type":"integer"},"timestamp":{"type":"string"}},"required":["timestamp","avgMs"],"type":"object"},"digital-experience-monitoring_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/digital-experience-monitoring_result_info"}}}],"type":"object"},"digital-experience-monitoring_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/digital-experience-monitoring_messages"},"messages":{"$ref":"#/components/schemas/digital-experience-monitoring_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"digital-experience-monitoring_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/digital-experience-monitoring_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/digital-experience-monitoring_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"digital-experience-monitoring_api-response-single":{"allOf":[{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-common"}],"type":"object"},"digital-experience-monitoring_colo":{"description":"Cloudflare colo","example":"SJC","type":"string"},"digital-experience-monitoring_colos_response":{"description":"array of colos.","items":{"required":["airportCode","countryCode","city"],"type":"object"},"properties":{"airportCode":{"description":"Airport code","example":"SFO","type":"string"},"city":{"description":"City","example":"San Francisco","type":"string"},"countryCode":{"description":"Country code","example":"US","type":"string"}},"type":"array"},"digital-experience-monitoring_device":{"properties":{"colo":{"$ref":"#/components/schemas/digital-experience-monitoring_colo"},"deviceId":{"description":"Device identifier (UUID v4)","type":"string"},"deviceName":{"description":"Device identifier (human readable)","type":"string"},"personEmail":{"$ref":"#/components/schemas/digital-experience-monitoring_personEmail"},"platform":{"$ref":"#/components/schemas/digital-experience-monitoring_platform"},"status":{"$ref":"#/components/schemas/digital-experience-monitoring_status"},"version":{"$ref":"#/components/schemas/digital-experience-monitoring_version"}},"required":["colo","deviceId","mode","platform","status","timestamp","version"],"type":"object"},"digital-experience-monitoring_device_id":{"description":"Device-specific ID, given as UUID v4","example":"cb49c27f-7f97-49c5-b6f3-f7c01ead0fd7","type":"string"},"digital-experience-monitoring_fleet_status_devices_response":{"allOf":[{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/digital-experience-monitoring_device"},"type":"array"}},"type":"object"}]},"digital-experience-monitoring_fleet_status_live_response":{"allOf":[{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-single"},{"properties":{"result":{"properties":{"deviceStats":{"properties":{"byColo":{"items":{"$ref":"#/components/schemas/digital-experience-monitoring_live_stat"},"nullable":true,"type":"array"},"byMode":{"items":{"$ref":"#/components/schemas/digital-experience-monitoring_live_stat"},"nullable":true,"type":"array"},"byPlatform":{"items":{"$ref":"#/components/schemas/digital-experience-monitoring_live_stat"},"nullable":true,"type":"array"},"byStatus":{"items":{"$ref":"#/components/schemas/digital-experience-monitoring_live_stat"},"nullable":true,"type":"array"},"byVersion":{"items":{"$ref":"#/components/schemas/digital-experience-monitoring_live_stat"},"nullable":true,"type":"array"},"uniqueDevicesTotal":{"$ref":"#/components/schemas/digital-experience-monitoring_uniqueDevicesTotal"}},"type":"object"}},"type":"object"}},"type":"object"}]},"digital-experience-monitoring_http_details_percentiles_response":{"properties":{"dnsResponseTimeMs":{"$ref":"#/components/schemas/digital-experience-monitoring_percentiles"},"resourceFetchTimeMs":{"$ref":"#/components/schemas/digital-experience-monitoring_percentiles"},"serverResponseTimeMs":{"$ref":"#/components/schemas/digital-experience-monitoring_percentiles"}},"type":"object"},"digital-experience-monitoring_http_details_response":{"properties":{"host":{"description":"The url of the HTTP synthetic application test","example":"http://example.com","type":"string"},"httpStats":{"nullable":true,"properties":{"availabilityPct":{"$ref":"#/components/schemas/digital-experience-monitoring_test_stat_pct_over_time"},"dnsResponseTimeMs":{"$ref":"#/components/schemas/digital-experience-monitoring_test_stat_over_time"},"httpStatusCode":{"items":{"properties":{"status200":{"type":"integer"},"status300":{"type":"integer"},"status400":{"type":"integer"},"status500":{"type":"integer"},"timestamp":{"example":"2023-07-16 15:00:00+00","type":"string"}},"required":["timestamp","status200","status300","status400","status500"],"type":"object"},"type":"array"},"resourceFetchTimeMs":{"$ref":"#/components/schemas/digital-experience-monitoring_test_stat_over_time"},"serverResponseTimeMs":{"$ref":"#/components/schemas/digital-experience-monitoring_test_stat_over_time"},"uniqueDevicesTotal":{"description":"Count of unique devices that have run this test in the given time period","example":57,"type":"integer"}},"required":["uniqueDevicesTotal","resourceFetchTimeMs","serverResponseTimeMs","dnsResponseTimeMs","httpStatusCode","availabilityPct"],"type":"object"},"httpStatsByColo":{"items":{"properties":{"availabilityPct":{"$ref":"#/components/schemas/digital-experience-monitoring_test_stat_pct_over_time"},"colo":{"example":"DFW","type":"string"},"dnsResponseTimeMs":{"$ref":"#/components/schemas/digital-experience-monitoring_test_stat_over_time"},"httpStatusCode":{"items":{"properties":{"status200":{"type":"integer"},"status300":{"type":"integer"},"status400":{"type":"integer"},"status500":{"type":"integer"},"timestamp":{"example":"2023-07-16 15:00:00+00","type":"string"}},"required":["timestamp","status200","status300","status400","status500"],"type":"object"},"type":"array"},"resourceFetchTimeMs":{"$ref":"#/components/schemas/digital-experience-monitoring_test_stat_over_time"},"serverResponseTimeMs":{"$ref":"#/components/schemas/digital-experience-monitoring_test_stat_over_time"},"uniqueDevicesTotal":{"description":"Count of unique devices that have run this test in the given time period","example":57,"type":"integer"}},"required":["colo","uniqueDevicesTotal","resourceFetchTimeMs","serverResponseTimeMs","dnsResponseTimeMs","httpStatusCode","availabilityPct"],"type":"object"},"type":"array"},"interval":{"description":"The interval at which the HTTP synthetic application test is set to run.","example":"0h5m0s","type":"string"},"kind":{"enum":["http"]},"method":{"description":"The HTTP method to use when running the test","example":"GET","type":"string"},"name":{"description":"The name of the HTTP synthetic application test","example":"Atlassian Sign In Page","type":"string"},"target_policies":{"items":{"properties":{"default":{"description":"Whether the policy is the default for the account","type":"boolean"},"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name","default"],"type":"object"},"nullable":true,"type":"array"},"targeted":{"type":"boolean"}},"type":"object"},"digital-experience-monitoring_live_stat":{"properties":{"uniqueDevicesTotal":{"$ref":"#/components/schemas/digital-experience-monitoring_uniqueDevicesTotal"},"value":{"type":"string"}},"type":"object"},"digital-experience-monitoring_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"digital-experience-monitoring_mode":{"description":"The mode under which the WARP client is run","example":"proxy","type":"string"},"digital-experience-monitoring_page":{"default":1,"description":"Page number of paginated results","example":1,"minimum":1,"type":"number"},"digital-experience-monitoring_per_page":{"description":"Number of items per page","example":10,"maximum":50,"minimum":1,"type":"number"},"digital-experience-monitoring_percentiles":{"properties":{"p50":{"description":"p50 observed in the time period","nullable":true,"type":"number"},"p90":{"description":"p90 observed in the time period","nullable":true,"type":"number"},"p95":{"description":"p95 observed in the time period","nullable":true,"type":"number"},"p99":{"description":"p99 observed in the time period","nullable":true,"type":"number"}},"type":"object"},"digital-experience-monitoring_personEmail":{"description":"User contact email address","type":"string"},"digital-experience-monitoring_platform":{"description":"Operating system","example":"windows","type":"string"},"digital-experience-monitoring_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"digital-experience-monitoring_since_minutes":{"default":10,"description":"Number of minutes before current time","example":10,"maximum":60,"minimum":1,"type":"number"},"digital-experience-monitoring_sort_by":{"default":"timestamp","description":"Dimension to sort results by","enum":["colo","device_id","mode","platform","status","timestamp","version"],"type":"string"},"digital-experience-monitoring_source":{"default":"last_seen","description":"Specifies fleet status details source","enum":["last_seen","hourly","raw"],"example":"last_seen","type":"string"},"digital-experience-monitoring_status":{"description":"Network status","example":"connected","type":"string"},"digital-experience-monitoring_test_stat_over_time":{"properties":{"avg":{"description":"average observed in the time period","nullable":true,"type":"integer"},"max":{"description":"highest observed in the time period","nullable":true,"type":"integer"},"min":{"description":"lowest observed in the time period","nullable":true,"type":"integer"},"slots":{"items":{"properties":{"timestamp":{"example":"2023-07-16 15:00:00+00","type":"string"},"value":{"type":"integer"}},"required":["timestamp","value"],"type":"object"},"type":"array"}},"required":["slots"],"type":"object"},"digital-experience-monitoring_test_stat_pct_over_time":{"properties":{"avg":{"description":"average observed in the time period","format":"float","nullable":true,"type":"number"},"max":{"description":"highest observed in the time period","format":"float","nullable":true,"type":"number"},"min":{"description":"lowest observed in the time period","format":"float","nullable":true,"type":"number"},"slots":{"items":{"properties":{"timestamp":{"example":"2023-07-16 15:00:00+00","type":"string"},"value":{"format":"float","type":"number"}},"required":["timestamp","value"],"type":"object"},"type":"array"}},"required":["slots"],"type":"object"},"digital-experience-monitoring_tests_response":{"properties":{"overviewMetrics":{"properties":{"avgHttpAvailabilityPct":{"description":"percentage availability for all HTTP test results in response","format":"float","nullable":true,"type":"number"},"avgTracerouteAvailabilityPct":{"description":"percentage availability for all traceroutes results in response","format":"float","nullable":true,"type":"number"},"testsTotal":{"description":"number of tests.","type":"integer"}},"required":["testsTotal"],"type":"object"},"tests":{"description":"array of test results objects.","items":{"properties":{"created":{"description":"date the test was created.","type":"string"},"description":{"description":"the test description defined during configuration","type":"string"},"enabled":{"description":"if true, then the test will run on targeted devices. Else, the test will not run.","type":"boolean"},"host":{"type":"string"},"httpResults":{"nullable":true,"properties":{"resourceFetchTime":{"$ref":"#/components/schemas/digital-experience-monitoring_timing_aggregates"}},"required":["resourceFetchTime"],"type":"object"},"httpResultsByColo":{"items":{"properties":{"colo":{"description":"Cloudflare colo","example":"SJC","type":"string"},"resourceFetchTime":{"$ref":"#/components/schemas/digital-experience-monitoring_timing_aggregates"}},"required":["colo","resourceFetchTime"],"type":"object"},"type":"array"},"id":{"$ref":"#/components/schemas/digital-experience-monitoring_uuid"},"interval":{"description":"The interval at which the synthetic application test is set to run.","type":"string"},"kind":{"description":"test type, http or traceroute","enum":["http","traceroute"],"type":"string"},"method":{"description":"for HTTP, the method to use when running the test","type":"string"},"name":{"description":"name given to this test","type":"string"},"target_policies":{"items":{"properties":{"default":{"description":"Whether the policy is the default for the account","type":"boolean"},"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name","default"],"type":"object"},"nullable":true,"type":"array"},"targeted":{"type":"boolean"},"tracerouteResults":{"nullable":true,"properties":{"roundTripTime":{"$ref":"#/components/schemas/digital-experience-monitoring_timing_aggregates"}},"required":["roundTripTime"],"type":"object"},"tracerouteResultsByColo":{"items":{"properties":{"colo":{"description":"Cloudflare colo","example":"SJC","type":"string"},"roundTripTime":{"$ref":"#/components/schemas/digital-experience-monitoring_timing_aggregates"}},"required":["colo","roundTripTime"],"type":"object"},"type":"array"},"updated":{"type":"string"}},"required":["id","name","kind","interval","enabled","description","updated","created","host"],"type":"object"},"type":"array"}},"required":["overviewMetrics","tests"],"type":"object"},"digital-experience-monitoring_timestamp":{"description":"Timestamp in ISO format","example":"2023-10-11T00:00:00Z","type":"string"},"digital-experience-monitoring_timing_aggregates":{"properties":{"avgMs":{"nullable":true,"type":"integer"},"history":{"items":{"$ref":"#/components/schemas/digital-experience-monitoring_aggregate_stat"},"type":"array"},"overTime":{"nullable":true,"properties":{"timePeriod":{"$ref":"#/components/schemas/digital-experience-monitoring_aggregate_time_period"},"values":{"items":{"$ref":"#/components/schemas/digital-experience-monitoring_aggregate_time_slot"},"type":"array"}},"required":["values","timePeriod"],"type":"object"}},"required":["history"],"type":"object"},"digital-experience-monitoring_traceroute_details_percentiles_response":{"properties":{"hopsCount":{"$ref":"#/components/schemas/digital-experience-monitoring_percentiles"},"packetLossPct":{"$ref":"#/components/schemas/digital-experience-monitoring_percentiles"},"roundTripTimeMs":{"$ref":"#/components/schemas/digital-experience-monitoring_percentiles"}},"type":"object"},"digital-experience-monitoring_traceroute_details_response":{"properties":{"host":{"description":"The host of the Traceroute synthetic application test","example":"1.1.1.1","type":"string"},"interval":{"description":"The interval at which the Traceroute synthetic application test is set to run.","example":"0h5m0s","type":"string"},"kind":{"enum":["traceroute"]},"name":{"description":"The name of the Traceroute synthetic application test","example":"Atlassian Sign In Page","type":"string"},"target_policies":{"items":{"properties":{"default":{"description":"Whether the policy is the default for the account","type":"boolean"},"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name","default"],"type":"object"},"nullable":true,"type":"array"},"targeted":{"type":"boolean"},"tracerouteStats":{"nullable":true,"properties":{"availabilityPct":{"$ref":"#/components/schemas/digital-experience-monitoring_test_stat_pct_over_time"},"hopsCount":{"$ref":"#/components/schemas/digital-experience-monitoring_test_stat_over_time"},"packetLossPct":{"$ref":"#/components/schemas/digital-experience-monitoring_test_stat_pct_over_time"},"roundTripTimeMs":{"$ref":"#/components/schemas/digital-experience-monitoring_test_stat_over_time"},"uniqueDevicesTotal":{"description":"Count of unique devices that have run this test in the given time period","example":57,"type":"integer"}},"required":["uniqueDevicesTotal","roundTripTimeMs","hopsCount","packetLossPct","availabilityPct"],"type":"object"},"tracerouteStatsByColo":{"items":{"properties":{"availabilityPct":{"$ref":"#/components/schemas/digital-experience-monitoring_test_stat_pct_over_time"},"colo":{"example":"DFW","type":"string"},"hopsCount":{"$ref":"#/components/schemas/digital-experience-monitoring_test_stat_over_time"},"packetLossPct":{"$ref":"#/components/schemas/digital-experience-monitoring_test_stat_pct_over_time"},"roundTripTimeMs":{"$ref":"#/components/schemas/digital-experience-monitoring_test_stat_over_time"},"uniqueDevicesTotal":{"description":"Count of unique devices that have run this test in the given time period","example":57,"type":"integer"}},"required":["colo","uniqueDevicesTotal","roundTripTimeMs","hopsCount","packetLossPct","availabilityPct"],"type":"object"},"type":"array"}},"required":["kind","name","host","interval"],"type":"object"},"digital-experience-monitoring_traceroute_test_network_path_response":{"properties":{"deviceName":{"type":"string"},"id":{"$ref":"#/components/schemas/digital-experience-monitoring_uuid"},"interval":{"description":"The interval at which the Traceroute synthetic application test is set to run.","example":"0h5m0s","type":"string"},"kind":{"enum":["traceroute"]},"name":{"type":"string"},"networkPath":{"nullable":true,"properties":{"sampling":{"description":"Specifies the sampling applied, if any, to the slots response. When sampled, results shown represent the first test run to the start of each sampling interval.","nullable":true,"properties":{"unit":{"enum":["hours"]},"value":{"type":"integer"}},"required":["value","unit"],"type":"object"},"slots":{"items":{"properties":{"clientToAppRttMs":{"description":"Round trip time in ms of the client to app mile","nullable":true,"type":"integer"},"clientToCfEgressRttMs":{"description":"Round trip time in ms of the client to Cloudflare egress mile","nullable":true,"type":"integer"},"clientToCfIngressRttMs":{"description":"Round trip time in ms of the client to Cloudflare ingress mile","nullable":true,"type":"integer"},"clientToIspRttMs":{"description":"Round trip time in ms of the client to ISP mile","nullable":true,"type":"integer"},"id":{"$ref":"#/components/schemas/digital-experience-monitoring_uuid"},"timestamp":{"example":"2023-07-16 15:00:00+00","type":"string"}},"required":["id","timestamp","clientToAppRttMs","clientToCfIngressRttMs","clientToCfEgressRttMs"],"type":"object"},"type":"array"}},"required":["slots"],"type":"object"},"url":{"description":"The host of the Traceroute synthetic application test","example":"1.1.1.1","type":"string"}},"required":["id"],"type":"object"},"digital-experience-monitoring_traceroute_test_result_network_path_response":{"properties":{"deviceName":{"description":"name of the device associated with this network path response","type":"string"},"hops":{"description":"an array of the hops taken by the device to reach the end destination","items":{"properties":{"asn":{"nullable":true,"type":"integer"},"aso":{"nullable":true,"type":"string"},"ipAddress":{"nullable":true,"type":"string"},"location":{"nullable":true,"properties":{"city":{"nullable":true,"type":"string"},"state":{"nullable":true,"type":"string"},"zip":{"nullable":true,"type":"string"}},"type":"object"},"mile":{"enum":["client-to-app","client-to-cf-egress","client-to-cf-ingress","client-to-isp"],"nullable":true,"type":"string"},"name":{"nullable":true,"type":"string"},"packetLossPct":{"format":"float","nullable":true,"type":"number"},"rttMs":{"nullable":true,"type":"integer"},"ttl":{"type":"integer"}},"required":["ttl"],"type":"object"},"type":"array"},"resultId":{"$ref":"#/components/schemas/digital-experience-monitoring_uuid"},"testId":{"$ref":"#/components/schemas/digital-experience-monitoring_uuid"},"testName":{"description":"name of the tracroute test","type":"string"}},"required":["resultId","hops"],"type":"object"},"digital-experience-monitoring_uniqueDevicesTotal":{"description":"Number of unique devices","type":"number"},"digital-experience-monitoring_unique_devices_response":{"properties":{"uniqueDevicesTotal":{"description":"total number of unique devices","type":"integer"}},"required":["uniqueDevicesTotal"],"type":"object"},"digital-experience-monitoring_uuid":{"description":"API Resource UUID tag.","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","maxLength":36,"type":"string"},"digital-experience-monitoring_version":{"description":"WARP client version","example":"1.0.0","type":"string"},"dlp_Behavior":{"properties":{"description":{"type":"string"},"enabled":{"type":"boolean"},"name":{"type":"string"},"risk_level":{"$ref":"#/components/schemas/dlp_RiskLevel"}},"required":["name","description","risk_level","enabled"],"type":"object"},"dlp_Behaviors":{"properties":{"behaviors":{"additionalProperties":{"$ref":"#/components/schemas/dlp_Behavior"},"type":"object"}},"required":["behaviors"],"type":"object"},"dlp_Confidence":{"enum":["low","medium","high","very_high"],"type":"string"},"dlp_ContextAwareness":{"description":"Scan the context of predefined entries to only return matches surrounded by keywords.","properties":{"enabled":{"description":"If true, scan the context of predefined entries to only return matches surrounded by keywords.","type":"boolean"},"skip":{"$ref":"#/components/schemas/dlp_SkipConfig"}},"required":["enabled","skip"],"type":"object"},"dlp_CreateIntegrationBody":{"properties":{"integration_type":{"$ref":"#/components/schemas/dlp_RiskScoreIntegrationType"},"reference_id":{"description":"A reference id that can be supplied by the client. Currently this should be set to the Access-Okta IDP ID (a UUIDv4).\nhttps://developers.cloudflare.com/api/operations/access-identity-providers-get-an-access-identity-provider","nullable":true,"type":"string"},"tenant_url":{"description":"The base url of the tenant, e.g. \"https://tenant.okta.com\"","format":"uri","type":"string"}},"required":["integration_type","tenant_url"],"type":"object"},"dlp_CustomEntry":{"properties":{"created_at":{"format":"date-time","type":"string"},"enabled":{"type":"boolean"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"pattern":{"$ref":"#/components/schemas/dlp_Pattern"},"profile_id":{"format":"uuid","nullable":true,"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","created_at","updated_at","pattern","enabled"],"type":"object"},"dlp_CustomProfile":{"properties":{"allowed_match_count":{"default":0,"description":"Related DLP policies will trigger when the match count exceeds the number set.","example":5,"format":"int32","maximum":1000,"minimum":0,"type":"integer"},"confidence_threshold":{"allOf":[{"$ref":"#/components/schemas/dlp_Confidence"}]},"context_awareness":{"$ref":"#/components/schemas/dlp_ContextAwareness"},"created_at":{"description":"When the profile was created","format":"date-time","type":"string"},"description":{"description":"The description of the profile","nullable":true,"type":"string"},"entries":{"items":{"$ref":"#/components/schemas/dlp_Entry"},"type":"array"},"id":{"description":"The id of the profile (uuid)","format":"uuid","type":"string"},"name":{"description":"The name of the profile","type":"string"},"ocr_enabled":{"type":"boolean"},"updated_at":{"description":"When the profile was lasted updated","format":"date-time","type":"string"}},"required":["id","name","entries","created_at","updated_at","allowed_match_count","context_awareness","ocr_enabled"],"type":"object"},"dlp_CustomProfileUpdate":{"properties":{"allowed_match_count":{"format":"int32","nullable":true,"type":"integer"},"confidence_threshold":{"nullable":true,"type":"string"},"context_awareness":{"$ref":"#/components/schemas/dlp_ContextAwareness"},"description":{"description":"The description of the profile","nullable":true,"type":"string"},"entries":{"description":"Custom entries from this profile","items":{"$ref":"#/components/schemas/dlp_EntryUpdate"},"type":"array"},"name":{"type":"string"},"ocr_enabled":{"type":"boolean"},"shared_entries":{"description":"Other entries, e.g. predefined or integration.","items":{"$ref":"#/components/schemas/dlp_SharedEntryUpdate"},"type":"array"}},"required":["name","entries"],"type":"object"},"dlp_Dataset":{"properties":{"columns":{"items":{"$ref":"#/components/schemas/dlp_DatasetColumn"},"type":"array"},"created_at":{"format":"date-time","type":"string"},"description":{"description":"The description of the dataset","nullable":true,"type":"string"},"encoding_version":{"format":"int32","minimum":0,"type":"integer"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"num_cells":{"format":"int64","type":"integer"},"secret":{"type":"boolean"},"status":{"$ref":"#/components/schemas/dlp_DatasetUploadStatus"},"updated_at":{"format":"date-time","type":"string"},"uploads":{"items":{"$ref":"#/components/schemas/dlp_DatasetUpload"},"type":"array"}},"required":["name","id","status","num_cells","created_at","updated_at","uploads","secret","encoding_version","columns"],"type":"object"},"dlp_DatasetArray":{"items":{"$ref":"#/components/schemas/dlp_Dataset"},"type":"array"},"dlp_DatasetColumn":{"properties":{"entry_id":{"format":"uuid","type":"string"},"header_name":{"type":"string"},"num_cells":{"format":"int64","type":"integer"},"upload_status":{"$ref":"#/components/schemas/dlp_DatasetUploadStatus"}},"required":["entry_id","upload_status","header_name","num_cells"],"type":"object"},"dlp_DatasetColumnArray":{"items":{"$ref":"#/components/schemas/dlp_DatasetColumn"},"type":"array"},"dlp_DatasetCreation":{"properties":{"dataset":{"$ref":"#/components/schemas/dlp_Dataset"},"encoding_version":{"description":"Encoding version to use for dataset","format":"int32","minimum":0,"type":"integer"},"max_cells":{"format":"int64","minimum":0,"type":"integer"},"secret":{"description":"The secret to use for Exact Data Match datasets. This is not present in\nCustom Wordlists.","format":"password","type":"string"},"version":{"description":"The version to use when uploading the dataset.","format":"int64","type":"integer"}},"required":["version","max_cells","dataset","encoding_version"],"type":"object"},"dlp_DatasetNewVersion":{"properties":{"columns":{"items":{"$ref":"#/components/schemas/dlp_DatasetColumn"},"type":"array"},"encoding_version":{"format":"int32","minimum":0,"type":"integer"},"max_cells":{"format":"int64","minimum":0,"type":"integer"},"secret":{"format":"password","type":"string"},"version":{"format":"int64","type":"integer"}},"required":["version","max_cells","encoding_version"],"type":"object"},"dlp_DatasetUpdate":{"properties":{"description":{"description":"The description of the dataset","nullable":true,"type":"string"},"name":{"description":"The name of the dataset, must be unique","nullable":true,"type":"string"}},"type":"object"},"dlp_DatasetUpload":{"properties":{"num_cells":{"format":"int64","type":"integer"},"status":{"$ref":"#/components/schemas/dlp_DatasetUploadStatus"},"version":{"format":"int64","type":"integer"}},"required":["version","status","num_cells"],"type":"object"},"dlp_DatasetUploadStatus":{"enum":["empty","uploading","processing","failed","complete"],"type":"string"},"dlp_Empty":{"nullable":true,"type":"object"},"dlp_Entry":{"discriminator":{"propertyName":"type"},"oneOf":[{"allOf":[{"$ref":"#/components/schemas/dlp_CustomEntry"},{"properties":{"type":{"enum":["custom"],"type":"string"}},"required":["type"],"type":"object"}],"title":"Custom Entry"},{"allOf":[{"$ref":"#/components/schemas/dlp_PredefinedEntry"},{"properties":{"type":{"enum":["predefined"],"type":"string"}},"required":["type"],"type":"object"}],"title":"Predefined Entry"},{"allOf":[{"$ref":"#/components/schemas/dlp_IntegrationEntry"},{"properties":{"type":{"enum":["integration"],"type":"string"}},"required":["type"],"type":"object"}],"title":"Integration Entry"},{"allOf":[{"$ref":"#/components/schemas/dlp_ExactDataEntry"},{"properties":{"type":{"enum":["exact_data"],"type":"string"}},"required":["type"],"type":"object"}],"title":"Exact Data Entry"},{"allOf":[{"$ref":"#/components/schemas/dlp_WordListEntry"},{"properties":{"type":{"enum":["word_list"],"type":"string"}},"required":["type"],"type":"object"}],"title":"Word List Entry"}]},"dlp_EntryConfidence":{"properties":{"available":{"description":"Indicates whether this entry can be made more or less sensitive by setting a confidence threshold.\nProfiles that use an entry with `available` set to true can use confidence thresholds","type":"boolean"}},"required":["available"],"type":"object"},"dlp_EntryOfNewProfile":{"oneOf":[{"$ref":"#/components/schemas/dlp_NewCustomEntry"},{"$ref":"#/components/schemas/dlp_NewWordListEntry"}]},"dlp_EntryUpdate":{"oneOf":[{"$ref":"#/components/schemas/dlp_NewCustomEntryWithId"},{"$ref":"#/components/schemas/dlp_NewCustomEntry"}]},"dlp_ExactDataEntry":{"properties":{"created_at":{"format":"date-time","type":"string"},"enabled":{"type":"boolean"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"secret":{"type":"boolean"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","created_at","updated_at","enabled","secret"],"type":"object"},"dlp_IntegrationEntry":{"properties":{"created_at":{"format":"date-time","type":"string"},"enabled":{"type":"boolean"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"profile_id":{"format":"uuid","nullable":true,"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","created_at","updated_at","enabled"],"type":"object"},"dlp_IntegrationProfile":{"properties":{"created_at":{"format":"date-time","type":"string"},"description":{"description":"The description of the profile","nullable":true,"type":"string"},"entries":{"items":{"$ref":"#/components/schemas/dlp_Entry"},"type":"array"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","entries","created_at","updated_at"],"type":"object"},"dlp_Limits":{"properties":{"max_dataset_cells":{"format":"int64","minimum":0,"type":"integer"}},"required":["max_dataset_cells"],"type":"object"},"dlp_NewCustomEntry":{"properties":{"enabled":{"type":"boolean"},"name":{"type":"string"},"pattern":{"$ref":"#/components/schemas/dlp_Pattern"}},"required":["name","pattern","enabled"],"type":"object"},"dlp_NewCustomEntryWithId":{"allOf":[{"$ref":"#/components/schemas/dlp_NewCustomEntry"},{"properties":{"entry_id":{"format":"uuid","type":"string"}},"required":["entry_id"],"type":"object"}]},"dlp_NewCustomProfile":{"properties":{"allowed_match_count":{"default":0,"description":"Related DLP policies will trigger when the match count exceeds the number set.","example":5,"format":"int32","maximum":1000,"minimum":0,"type":"integer"},"confidence_threshold":{"nullable":true,"type":"string"},"context_awareness":{"$ref":"#/components/schemas/dlp_ContextAwareness"},"description":{"description":"The description of the profile","nullable":true,"type":"string"},"entries":{"items":{"$ref":"#/components/schemas/dlp_EntryOfNewProfile"},"type":"array"},"name":{"type":"string"},"ocr_enabled":{"type":"boolean"},"shared_entries":{"description":"Entries from other profiles (e.g. pre-defined Cloudflare profiles, or your Microsoft Information Protection profiles).","items":{"$ref":"#/components/schemas/dlp_NewSharedEntry"},"type":"array"}},"required":["name","entries"],"type":"object"},"dlp_NewCustomProfiles":{"properties":{"profiles":{"items":{"$ref":"#/components/schemas/dlp_NewCustomProfile"},"type":"array"}},"required":["profiles"],"type":"object"},"dlp_NewDataset":{"properties":{"description":{"description":"The description of the dataset","nullable":true,"type":"string"},"encoding_version":{"description":"Dataset encoding version\n\nNon-secret custom word lists with no header are always version 1.\nSecret EDM lists with no header are version 1.\nMulticolumn CSV with headers are version 2.\nOmitting this field provides the default value 0, which is interpreted\nthe same as 1.","format":"int32","minimum":0,"type":"integer"},"name":{"type":"string"},"secret":{"description":"Generate a secret dataset.\n\nIf true, the response will include a secret to use with the EDM encoder.\nIf false, the response has no secret and the dataset is uploaded in plaintext.","type":"boolean"}},"required":["name"],"type":"object"},"dlp_NewDatasetColumn":{"allOf":[{"oneOf":[{"properties":{"entry_id":{"format":"uuid","type":"string"}},"required":["entry_id"],"title":"Existing Column","type":"object"},{"properties":{"entry_name":{"type":"string"}},"required":["entry_name"],"title":"New Column","type":"object"}]},{"properties":{"header_name":{"type":"string"},"num_cells":{"format":"int64","type":"integer"}},"required":["header_name","num_cells"],"type":"object"}]},"dlp_NewSharedEntry":{"discriminator":{"propertyName":"entry_type"},"oneOf":[{"properties":{"enabled":{"type":"boolean"},"entry_id":{"format":"uuid","type":"string"},"entry_type":{"enum":["custom"],"type":"string"}},"required":["entry_id","enabled","entry_type"],"type":"object"},{"properties":{"enabled":{"type":"boolean"},"entry_id":{"format":"uuid","type":"string"},"entry_type":{"enum":["predefined"],"type":"string"}},"required":["entry_id","enabled","entry_type"],"type":"object"},{"properties":{"enabled":{"type":"boolean"},"entry_id":{"format":"uuid","type":"string"},"entry_type":{"enum":["integration"],"type":"string"}},"required":["entry_id","enabled","entry_type"],"type":"object"},{"properties":{"enabled":{"type":"boolean"},"entry_id":{"format":"uuid","type":"string"},"entry_type":{"enum":["exact_data"],"type":"string"}},"required":["entry_id","enabled","entry_type"],"type":"object"}]},"dlp_NewWordListEntry":{"properties":{"enabled":{"type":"boolean"},"name":{"type":"string"},"words":{"items":{"type":"string"},"type":"array"}},"required":["name","words","enabled"],"type":"object"},"dlp_Pattern":{"properties":{"regex":{"type":"string"},"validation":{"allOf":[{"$ref":"#/components/schemas/dlp_Validation"}]}},"required":["regex"],"type":"object"},"dlp_PayloadLogSetting":{"properties":{"public_key":{"nullable":true,"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["updated_at"],"type":"object"},"dlp_PayloadLogSettingUpdate":{"properties":{"public_key":{"nullable":true,"type":"string"}},"type":"object"},"dlp_PredefinedEntry":{"properties":{"confidence":{"$ref":"#/components/schemas/dlp_EntryConfidence"},"enabled":{"type":"boolean"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"profile_id":{"format":"uuid","nullable":true,"type":"string"}},"required":["id","name","enabled","confidence"],"type":"object"},"dlp_PredefinedEntryUpdate":{"properties":{"enabled":{"type":"boolean"},"id":{"format":"uuid","type":"string"}},"required":["id","enabled"],"type":"object"},"dlp_PredefinedProfile":{"properties":{"allowed_match_count":{"format":"int32","type":"integer"},"confidence_threshold":{"allOf":[{"$ref":"#/components/schemas/dlp_Confidence"}]},"context_awareness":{"$ref":"#/components/schemas/dlp_ContextAwareness"},"entries":{"items":{"$ref":"#/components/schemas/dlp_Entry"},"type":"array"},"id":{"description":"The id of the predefined profile (uuid)","format":"uuid","type":"string"},"name":{"description":"The name of the predefined profile","type":"string"},"ocr_enabled":{"type":"boolean"},"open_access":{"description":"Whether this profile can be accessed by anyone","type":"boolean"}},"required":["id","name","entries","allowed_match_count"],"type":"object"},"dlp_PredefinedProfileUpdate":{"properties":{"allowed_match_count":{"format":"int32","nullable":true,"type":"integer"},"confidence_threshold":{"nullable":true,"type":"string"},"context_awareness":{"$ref":"#/components/schemas/dlp_ContextAwareness"},"entries":{"items":{"$ref":"#/components/schemas/dlp_PredefinedEntryUpdate"},"type":"array"},"ocr_enabled":{"type":"boolean"}},"required":["entries"],"type":"object"},"dlp_Profile":{"discriminator":{"propertyName":"type"},"oneOf":[{"allOf":[{"$ref":"#/components/schemas/dlp_CustomProfile"},{"properties":{"type":{"enum":["custom"],"type":"string"}},"required":["type"],"type":"object"}],"title":"Custom Profile"},{"allOf":[{"$ref":"#/components/schemas/dlp_PredefinedProfile"},{"properties":{"type":{"enum":["predefined"],"type":"string"}},"required":["type"],"type":"object"}],"title":"Predefined Profile"},{"allOf":[{"$ref":"#/components/schemas/dlp_IntegrationProfile"},{"properties":{"type":{"enum":["integration"],"type":"string"}},"required":["type"],"type":"object"}],"title":"Integration Profile"}]},"dlp_ProfileArray":{"items":{"$ref":"#/components/schemas/dlp_Profile"},"type":"array"},"dlp_RegexValidationQuery":{"properties":{"max_match_bytes":{"description":"Maximum number of bytes that the regular expression can match.\n\nIf this is `null` then there is no limit on the length. Patterns can use\n`*` and `+`. Otherwise repeats should use a range `{m,n}` to restrict\npatterns to the length. If this field is missing, then a default length\nlimit is used.\n\nNote that the length is specified in bytes. Since regular expressions\nuse UTF-8 the pattern `.` can match up to 4 bytes. Hence `.{1,256}`\nhas a maximum length of 1024 bytes.","format":"int32","minimum":0,"nullable":true,"type":"integer"},"regex":{"type":"string"}},"required":["regex"],"type":"object"},"dlp_RegexValidationResult":{"properties":{"valid":{"type":"boolean"}},"required":["valid"],"type":"object"},"dlp_RiskEvent":{"properties":{"event_details":{},"id":{"type":"string"},"name":{"type":"string"},"risk_level":{"$ref":"#/components/schemas/dlp_RiskLevel"},"timestamp":{"format":"date-time","type":"string"}},"required":["id","risk_level","name","timestamp"],"type":"object"},"dlp_RiskEvents":{"properties":{"email":{"type":"string"},"events":{"items":{"$ref":"#/components/schemas/dlp_RiskEvent"},"type":"array"},"last_reset_time":{"format":"date-time","nullable":true,"type":"string"},"name":{"type":"string"},"risk_level":{"allOf":[{"$ref":"#/components/schemas/dlp_RiskLevel"}]}},"required":["name","email","events"],"type":"object"},"dlp_RiskLevel":{"enum":["low","medium","high"],"type":"string"},"dlp_RiskScoreIntegration":{"properties":{"account_tag":{"description":"The Cloudflare account tag.","type":"string"},"active":{"description":"Whether this integration is enabled and should export changes in risk score.","type":"boolean"},"created_at":{"description":"When the integration was created in RFC3339 format.","format":"date-time","type":"string"},"id":{"description":"The id of the integration, a UUIDv4.","format":"uuid","type":"string"},"integration_type":{"$ref":"#/components/schemas/dlp_RiskScoreIntegrationType"},"reference_id":{"description":"A reference ID defined by the client.\nShould be set to the Access-Okta IDP integration ID.\nUseful when the risk-score integration needs to be associated with a secondary asset and recalled using that ID.","type":"string"},"tenant_url":{"description":"The base URL for the tenant. E.g. \"https://tenant.okta.com\"","type":"string"},"well_known_url":{"description":"The URL for the Shared Signals Framework configuration, e.g. \"/.well-known/sse-configuration/{integration_uuid}/\". https://openid.net/specs/openid-sse-framework-1_0.html#rfc.section.6.2.1","type":"string"}},"required":["id","account_tag","integration_type","reference_id","tenant_url","well_known_url","active","created_at"],"type":"object"},"dlp_RiskScoreIntegrationArray":{"items":{"$ref":"#/components/schemas/dlp_RiskScoreIntegration"},"type":"array"},"dlp_RiskScoreIntegrationType":{"enum":["Okta"],"type":"string"},"dlp_RiskSummary":{"properties":{"users":{"items":{"$ref":"#/components/schemas/dlp_UserRiskInfo"},"type":"array"}},"required":["users"],"type":"object"},"dlp_SharedEntryUpdate":{"discriminator":{"propertyName":"entry_type"},"oneOf":[{"properties":{"enabled":{"type":"boolean"},"entry_id":{"format":"uuid","type":"string"},"entry_type":{"enum":["predefined"],"type":"string"}},"required":["entry_id","enabled","entry_type"],"type":"object"},{"properties":{"enabled":{"type":"boolean"},"entry_id":{"format":"uuid","type":"string"},"entry_type":{"enum":["integration"],"type":"string"}},"required":["entry_id","enabled","entry_type"],"type":"object"},{"properties":{"enabled":{"type":"boolean"},"entry_id":{"format":"uuid","type":"string"},"entry_type":{"enum":["exact_data"],"type":"string"}},"required":["entry_id","enabled","entry_type"],"type":"object"}]},"dlp_SkipConfig":{"description":"Content types to exclude from context analysis and return all matches.","properties":{"files":{"description":"If the content type is a file, skip context analysis and return all matches.","type":"boolean"}},"required":["files"],"type":"object"},"dlp_UpdateBehavior":{"properties":{"enabled":{"type":"boolean"},"risk_level":{"$ref":"#/components/schemas/dlp_RiskLevel"}},"required":["risk_level","enabled"],"type":"object"},"dlp_UpdateBehaviors":{"properties":{"behaviors":{"additionalProperties":{"$ref":"#/components/schemas/dlp_UpdateBehavior"},"type":"object"}},"required":["behaviors"],"type":"object"},"dlp_UpdateIntegrationBody":{"properties":{"active":{"description":"Whether this integration is enabled. If disabled, no risk changes will be exported to the third-party.","type":"boolean"},"reference_id":{"description":"A reference id that can be supplied by the client. Currently this should be set to the Access-Okta IDP ID (a UUIDv4).\nhttps://developers.cloudflare.com/api/operations/access-identity-providers-get-an-access-identity-provider","nullable":true,"type":"string"},"tenant_url":{"description":"The base url of the tenant, e.g. \"https://tenant.okta.com\"","format":"uri","type":"string"}},"required":["tenant_url","active"],"type":"object"},"dlp_UserRiskInfo":{"properties":{"email":{"type":"string"},"event_count":{"minimum":0,"type":"integer"},"last_event":{"format":"date-time","type":"string"},"max_risk_level":{"$ref":"#/components/schemas/dlp_RiskLevel"},"name":{"type":"string"},"user_id":{"format":"uuid","type":"string"}},"required":["user_id","name","email","max_risk_level","event_count","last_event"],"type":"object"},"dlp_Validation":{"enum":["luhn"],"type":"string"},"dlp_WordListEntry":{"properties":{"created_at":{"format":"date-time","type":"string"},"enabled":{"type":"boolean"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"profile_id":{"format":"uuid","nullable":true,"type":"string"},"updated_at":{"format":"date-time","type":"string"},"word_list":{}},"required":["id","name","created_at","updated_at","word_list","enabled"],"type":"object"},"dlp_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/dlp_result_info"}}}],"type":"object"},"dlp_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/dlp_messages"},"messages":{"$ref":"#/components/schemas/dlp_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"dlp_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/dlp_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/dlp_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"dlp_api-response-single":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-common"}],"type":"object"},"dlp_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"dlp_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"dls_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/dls_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"},"result_info":{"$ref":"#/components/schemas/dls_result_info"}}}],"type":"object"},"dls_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/dls_messages"},"messages":{"$ref":"#/components/schemas/dls_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"dls_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/dls_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/dls_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"dls_hostname":{"description":"DNS hostname to be regionalized, must be a subdomain of the zone. Wildcards are supported for one level, e.g `*.example.com`","example":"foo.example.com","type":"string"},"dls_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"dls_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"dls_region_key":{"description":"Identifying key for the region","example":"ca","type":"string"},"dls_regional_hostname_response":{"properties":{"created_on":{"allOf":[{"$ref":"#/components/schemas/dls_timestamp"},{"description":"When the regional hostname was created"},{"example":"2014-01-01T05:20:00.12345Z"}]},"hostname":{"$ref":"#/components/schemas/dls_hostname"},"region_key":{"$ref":"#/components/schemas/dls_region_key"}},"required":["hostname","region_key","created_on"],"type":"object"},"dls_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"dls_timestamp":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"dns-analytics_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/dns-analytics_messages"},"messages":{"$ref":"#/components/schemas/dns-analytics_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"dns-analytics_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/dns-analytics_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/dns-analytics_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"dns-analytics_api-response-single":{"allOf":[{"$ref":"#/components/schemas/dns-analytics_api-response-common"}],"type":"object"},"dns-analytics_data":{"description":"Array with one row per combination of dimension values.","items":{"properties":{"dimensions":{"description":"Array of dimension values, representing the combination of dimension values corresponding to this row.","items":{"description":"Dimension value.","example":"NODATA","type":"string"},"type":"array"}},"required":["dimensions"],"type":"object"},"type":"array"},"dns-analytics_dimensions":{"description":"A comma-separated list of dimensions to group results by.","example":"queryType","type":"string"},"dns-analytics_filters":{"description":"Segmentation filter in 'attribute operator value' format.","example":"responseCode==NOERROR,queryType==A","type":"string"},"dns-analytics_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"dns-analytics_limit":{"default":100000,"description":"Limit number of returned metrics.","example":100,"type":"integer"},"dns-analytics_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"dns-analytics_metrics":{"description":"A comma-separated list of metrics to query.","example":"queryCount,uncachedCount","type":"string"},"dns-analytics_query":{"properties":{"dimensions":{"description":"Array of dimension names.","example":["responseCode","queryName"],"items":{"description":"Dimension name.","example":"responseCode","type":"string"},"type":"array"},"filters":{"$ref":"#/components/schemas/dns-analytics_filters"},"limit":{"$ref":"#/components/schemas/dns-analytics_limit"},"metrics":{"description":"Array of metric names.","example":["queryCount","responseTimeAvg"],"items":{"description":"Metric name.","example":"queries","type":"string"},"type":"array"},"since":{"$ref":"#/components/schemas/dns-analytics_since"},"sort":{"description":"Array of dimensions to sort by, where each dimension may be prefixed by - (descending) or + (ascending).","example":["+responseCode","-queryName"],"items":{"description":"Dimension name (may be prefixed by - (descending) or + (ascending).","example":"+responseCode","type":"string"},"type":"array"},"until":{"$ref":"#/components/schemas/dns-analytics_until"}},"required":["dimensions","metrics","since","until","limit"],"type":"object"},"dns-analytics_report":{"allOf":[{"$ref":"#/components/schemas/dns-analytics_result"},{"properties":{"data":{"items":{"properties":{"metrics":{"description":"Array with one item per requested metric. Each item is a single value.","items":{"description":"Nominal metric value.","type":"number"},"type":"array"}},"required":["metrics"]}}},"required":["data"]}]},"dns-analytics_report_bytime":{"allOf":[{"$ref":"#/components/schemas/dns-analytics_result"},{"properties":{"data":{"items":{"properties":{"metrics":{"description":"Array with one item per requested metric. Each item is an array of values, broken down by time interval.","items":{"description":"Nominal metric values, broken down by time interval.","items":{},"properties":{"items":{"description":"Nominal metric value.","type":"number"}},"type":"array"},"type":"array"}},"required":["metrics"]}},"query":{"properties":{"time_delta":{"$ref":"#/components/schemas/dns-analytics_time_delta"}},"required":["time_delta"],"type":"object"},"time_intervals":{"description":"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.\n","items":{"description":"Array with exactly two items, representing the start and end time (respectively) of this time interval.","items":{"description":"Time value.","example":"2023-11-11T12:00:00Z","format":"date-time","type":"string"},"type":"array"},"type":"array"}},"required":["time_intervals","query","data"]}]},"dns-analytics_result":{"properties":{"data":{"$ref":"#/components/schemas/dns-analytics_data"},"data_lag":{"description":"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,"type":"number"},"max":{"description":"Maximum results for each metric (object mapping metric names to values). Currently always an empty object.","type":"object"},"min":{"description":"Minimum results for each metric (object mapping metric names to values). Currently always an empty object.","type":"object"},"query":{"$ref":"#/components/schemas/dns-analytics_query"},"rows":{"description":"Total number of rows in the result.","example":100,"minimum":0,"type":"number"},"totals":{"description":"Total results for metrics across all data (object mapping metric names to values).","type":"object"}},"required":["rows","totals","min","max","data_lag","query","data"],"type":"object"},"dns-analytics_since":{"description":"Start date and time of requesting data period in ISO 8601 format.","example":"2023-11-11T12:00:00Z","format":"date-time","type":"string"},"dns-analytics_sort":{"description":"A comma-separated list of dimensions to sort by, where each dimension may be prefixed by - (descending) or + (ascending).","example":"+responseCode,-queryName","type":"string"},"dns-analytics_time_delta":{"description":"Unit of time to group data by.","enum":["all","auto","year","quarter","month","week","day","hour","dekaminute","minute"],"example":"hour","type":"string"},"dns-analytics_until":{"description":"End date and time of requesting data period in ISO 8601 format.","example":"2023-11-11T13:00:00Z","format":"date-time","type":"string"},"dns-custom-nameservers_CustomNS":{"description":"A single account custom nameserver.","properties":{"dns_records":{"description":"A and AAAA records associated with the nameserver.","items":{"properties":{"type":{"description":"DNS record type.","enum":["A","AAAA"],"example":"A","type":"string"},"value":{"description":"DNS record contents (an IPv4 or IPv6 address).","example":"1.1.1.1","type":"string"}}},"type":"array"},"ns_name":{"$ref":"#/components/schemas/dns-custom-nameservers_ns_name"},"ns_set":{"$ref":"#/components/schemas/dns-custom-nameservers_ns_set"},"status":{"deprecated":true,"description":"Verification status of the nameserver.","enum":["moved","pending","verified"],"example":"verified","type":"string"},"zone_tag":{"$ref":"#/components/schemas/dns-custom-nameservers_schemas-identifier"}},"required":["dns_records","ns_name","status","zone_tag"],"title":"Custom NS","type":"object"},"dns-custom-nameservers_CustomNSInput":{"properties":{"ns_name":{"$ref":"#/components/schemas/dns-custom-nameservers_ns_name"},"ns_set":{"$ref":"#/components/schemas/dns-custom-nameservers_ns_set"}},"required":["ns_name"],"title":"Custom NS Input"},"dns-custom-nameservers_acns_response_collection":{"allOf":[{"$ref":"#/components/schemas/dns-custom-nameservers_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/dns-custom-nameservers_CustomNS"},"type":"array"}},"type":"object"}]},"dns-custom-nameservers_acns_response_single":{"allOf":[{"$ref":"#/components/schemas/dns-custom-nameservers_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dns-custom-nameservers_CustomNS"}},"type":"object"}]},"dns-custom-nameservers_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/dns-custom-nameservers_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/dns-custom-nameservers_result_info"}}}],"type":"object"},"dns-custom-nameservers_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/dns-custom-nameservers_messages"},"messages":{"$ref":"#/components/schemas/dns-custom-nameservers_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"dns-custom-nameservers_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/dns-custom-nameservers_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/dns-custom-nameservers_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"dns-custom-nameservers_api-response-single":{"allOf":[{"$ref":"#/components/schemas/dns-custom-nameservers_api-response-common"}],"type":"object"},"dns-custom-nameservers_availability_response":{"allOf":[{"$ref":"#/components/schemas/dns-custom-nameservers_api-response-collection"},{"properties":{"result":{"items":{"description":"Name of zone based on which account custom nameservers can be created. For example, if example.com is returned, then ns1.example.com can be used as an account custom nameserver.","example":"example.com","format":"hostname","readOnly":true,"type":"string"},"type":"array"}},"type":"object"}]},"dns-custom-nameservers_empty_response":{"allOf":[{"$ref":"#/components/schemas/dns-custom-nameservers_api-response-collection"},{"properties":{"result":{"items":{"description":"Unused","type":"string"},"maxItems":0,"type":"array"}},"type":"object"}]},"dns-custom-nameservers_get_response":{"allOf":[{"$ref":"#/components/schemas/dns-custom-nameservers_api-response-collection"},{"$ref":"#/components/schemas/dns-custom-nameservers_zone_metadata"}]},"dns-custom-nameservers_identifier":{"description":"Account identifier tag.","example":"372e67954025e0ba6aaa6d586b9e0b59","maxLength":32,"readOnly":true,"type":"string"},"dns-custom-nameservers_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"dns-custom-nameservers_ns_name":{"description":"The FQDN of the name server.","example":"ns1.example.com","format":"hostname","type":"string"},"dns-custom-nameservers_ns_set":{"default":1,"description":"The number of the set that this name server belongs to.","example":1,"maximum":5,"minimum":1,"type":"number"},"dns-custom-nameservers_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"dns-custom-nameservers_schemas-empty_response":{"allOf":[{"$ref":"#/components/schemas/dns-custom-nameservers_api-response-collection"},{"properties":{"result":{"items":{"description":"Unused","type":"string"},"maxItems":0,"type":"array"}},"type":"object"}]},"dns-custom-nameservers_schemas-identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"dns-custom-nameservers_zone_metadata":{"properties":{"enabled":{"description":"Whether zone uses account-level custom nameservers.","example":true,"type":"boolean"},"ns_set":{"default":1,"description":"The number of the name server set to assign to the zone.","example":1,"maximum":5,"minimum":1,"type":"number"}},"type":"object"},"dns-firewall_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/dns-firewall_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/dns-firewall_result_info"}}}],"type":"object"},"dns-firewall_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/dns-firewall_messages"},"messages":{"$ref":"#/components/schemas/dns-firewall_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"dns-firewall_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/dns-firewall_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/dns-firewall_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"dns-firewall_api-response-single":{"allOf":[{"$ref":"#/components/schemas/dns-firewall_api-response-common"}],"type":"object"},"dns-firewall_attack_mitigation":{"description":"Attack mitigation settings","nullable":true,"properties":{"enabled":{"description":"When enabled, automatically mitigate random-prefix attacks to protect upstream DNS servers","example":true,"type":"boolean"},"only_when_upstream_unhealthy":{"default":true,"description":"Only mitigate attacks when upstream servers seem unhealthy","example":false,"type":"boolean"}},"type":"object"},"dns-firewall_deprecate_any_requests":{"description":"Whether to refuse to answer queries for the ANY type","example":true,"type":"boolean"},"dns-firewall_dns-firewall-cluster":{"properties":{"attack_mitigation":{"$ref":"#/components/schemas/dns-firewall_attack_mitigation"},"deprecate_any_requests":{"$ref":"#/components/schemas/dns-firewall_deprecate_any_requests"},"ecs_fallback":{"$ref":"#/components/schemas/dns-firewall_ecs_fallback"},"maximum_cache_ttl":{"$ref":"#/components/schemas/dns-firewall_maximum_cache_ttl"},"minimum_cache_ttl":{"$ref":"#/components/schemas/dns-firewall_minimum_cache_ttl"},"name":{"$ref":"#/components/schemas/dns-firewall_name"},"negative_cache_ttl":{"$ref":"#/components/schemas/dns-firewall_negative_cache_ttl"},"ratelimit":{"$ref":"#/components/schemas/dns-firewall_ratelimit"},"retries":{"$ref":"#/components/schemas/dns-firewall_retries"},"upstream_ips":{"$ref":"#/components/schemas/dns-firewall_upstream_ips"}},"type":"object"},"dns-firewall_dns-firewall-cluster-patch":{"allOf":[{"$ref":"#/components/schemas/dns-firewall_dns-firewall-cluster"}],"type":"object"},"dns-firewall_dns-firewall-cluster-post":{"allOf":[{"$ref":"#/components/schemas/dns-firewall_dns-firewall-cluster"}],"required":["name","upstream_ips"],"type":"object"},"dns-firewall_dns-firewall-cluster-response":{"allOf":[{"$ref":"#/components/schemas/dns-firewall_dns-firewall-cluster"},{"properties":{"dns_firewall_ips":{"$ref":"#/components/schemas/dns-firewall_dns_firewall_ips"},"id":{"$ref":"#/components/schemas/dns-firewall_identifier"},"modified_on":{"$ref":"#/components/schemas/dns-firewall_modified_on"}},"required":["id","dns_firewall_ips","modified_on"],"type":"object"}],"required":["name","upstream_ips","minimum_cache_ttl","maximum_cache_ttl","negative_cache_ttl","deprecate_any_requests","ecs_fallback","ratelimit","retries"],"type":"object"},"dns-firewall_dns-firewall-reverse-dns":{"properties":{"ptr":{"additionalProperties":{"description":"PTR record content","type":"string"},"description":"Map of cluster IP addresses to PTR record contents","type":"object"}},"type":"object"},"dns-firewall_dns-firewall-reverse-dns-patch":{"allOf":[{"$ref":"#/components/schemas/dns-firewall_dns-firewall-reverse-dns"}],"type":"object"},"dns-firewall_dns-firewall-reverse-dns-response":{"allOf":[{"$ref":"#/components/schemas/dns-firewall_dns-firewall-reverse-dns"}],"required":["ptr"],"type":"object"},"dns-firewall_dns_firewall_ips":{"example":["203.0.113.1","203.0.113.254","2001:DB8:AB::CF","2001:DB8:CD::CF"],"items":{"anyOf":[{"description":"Cloudflare-assigned DNS IPv4 address","example":"203.0.113.1","format":"ipv4","type":"string"},{"description":"Cloudflare-assigned DNS IPv6 address","example":"2001:DB8:ab::CF","format":"ipv6","type":"string"}]},"type":"array"},"dns-firewall_dns_firewall_response_collection":{"allOf":[{"$ref":"#/components/schemas/dns-firewall_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/dns-firewall_dns-firewall-cluster-response"},"type":"array"}}}]},"dns-firewall_dns_firewall_reverse_dns_response":{"allOf":[{"$ref":"#/components/schemas/dns-firewall_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dns-firewall_dns-firewall-reverse-dns-response"}}}]},"dns-firewall_dns_firewall_single_response":{"allOf":[{"$ref":"#/components/schemas/dns-firewall_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dns-firewall_dns-firewall-cluster-response"}}}]},"dns-firewall_ecs_fallback":{"description":"Whether to forward client IP (resolver) subnet if no EDNS Client Subnet is sent","example":false,"type":"boolean"},"dns-firewall_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"dns-firewall_maximum_cache_ttl":{"default":900,"description":"Maximum DNS cache TTL This setting sets an upper bound on DNS TTLs for purposes of caching between DNS Firewall and the upstream servers. Higher TTLs will be decreased to the maximum defined here for caching purposes.","example":900,"maximum":36000,"minimum":30,"type":"number"},"dns-firewall_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"dns-firewall_minimum_cache_ttl":{"default":60,"description":"Minimum DNS cache TTL This setting sets a lower bound on DNS TTLs for purposes of caching between DNS Firewall and the upstream servers. Lower TTLs will be increased to the minimum defined here for caching purposes.","example":60,"maximum":36000,"minimum":30,"type":"number"},"dns-firewall_modified_on":{"description":"Last modification of DNS Firewall cluster","example":"2014-01-01T05:20:00.12345Z","format":"date-time","type":"string"},"dns-firewall_name":{"description":"DNS Firewall cluster name","example":"My Awesome DNS Firewall cluster","maxLength":160,"minLength":1,"type":"string"},"dns-firewall_negative_cache_ttl":{"description":"Negative DNS cache TTL This setting controls how long DNS Firewall should cache negative responses (e.g., NXDOMAIN) from the upstream servers.","example":900,"maximum":36000,"minimum":30,"nullable":true,"type":"number"},"dns-firewall_ratelimit":{"description":"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,"nullable":true,"type":"number"},"dns-firewall_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"dns-firewall_retries":{"default":2,"description":"Number of retries for fetching DNS responses from upstream nameservers (not counting the initial attempt)","example":2,"maximum":2,"minimum":0,"type":"number"},"dns-firewall_upstream_ips":{"example":["192.0.2.1","198.51.100.1","2001:DB8:100::CF"],"items":{"anyOf":[{"description":"Upstream DNS Server IPv4 address","example":"192.0.2.1","format":"ipv4","type":"string"},{"description":"Upstream DNS Server IPv6 address","example":"2001:DB8:100::CF","format":"ipv6","type":"string"}]},"minLength":1,"type":"array"},"dns-records_AAAARecord":{"properties":{"content":{"description":"A valid IPv6 address.","example":"2400:cb00:2049::1","format":"ipv6","type":"string"},"type":{"description":"Record type.","enum":["AAAA"],"example":"AAAA","type":"string"}},"title":"AAAA Record","type":"object"},"dns-records_ARecord":{"properties":{"content":{"description":"A valid IPv4 address.","example":"198.51.100.4","format":"ipv4","type":"string"},"type":{"description":"Record type.","enum":["A"],"example":"A","type":"string"}},"title":"A Record","type":"object"},"dns-records_CAARecord":{"properties":{"content":{"description":"Formatted CAA content. See 'data' to set CAA properties.","readOnly":true,"type":"string"},"data":{"description":"Components of a CAA record.","properties":{"flags":{"description":"Flags for the CAA record.","example":1,"maximum":255,"minimum":0,"type":"number"},"tag":{"description":"Name of the property controlled by this record (e.g.: issue, issuewild, iodef).","example":"issue","type":"string"},"value":{"description":"Value of the record. This field's semantics depend on the chosen tag.","type":"string"}},"type":"object"},"type":{"description":"Record type.","enum":["CAA"],"example":"CAA","type":"string"}},"title":"CAA Record","type":"object"},"dns-records_CERTRecord":{"properties":{"content":{"description":"Formatted CERT content. See 'data' to set CERT properties.","readOnly":true,"type":"string"},"data":{"description":"Components of a CERT record.","properties":{"algorithm":{"description":"Algorithm.","example":8,"maximum":255,"minimum":0,"type":"number"},"certificate":{"description":"Certificate.","type":"string"},"key_tag":{"description":"Key Tag.","example":1,"maximum":65535,"minimum":0,"type":"number"},"type":{"description":"Type.","example":9,"maximum":65535,"minimum":0,"type":"number"}},"type":"object"},"type":{"description":"Record type.","enum":["CERT"],"example":"CERT","type":"string"}},"title":"CERT Record","type":"object"},"dns-records_CNAMERecord":{"properties":{"content":{"description":"A valid hostname. Must not match the record's name.","type":"string"},"settings":{"properties":{"flatten_cname":{"default":false,"description":"If enabled, causes the CNAME record to be resolved externally and the resulting address records (e.g., A and AAAA) to be returned instead of the CNAME record itself. This setting has no effect on proxied records, which are always flattened.","example":true,"type":"boolean"}}},"type":{"description":"Record type.","enum":["CNAME"],"example":"CNAME","type":"string"}},"title":"CNAME Record","type":"object"},"dns-records_DNSKEYRecord":{"properties":{"content":{"description":"Formatted DNSKEY content. See 'data' to set DNSKEY properties.","readOnly":true,"type":"string"},"data":{"description":"Components of a DNSKEY record.","properties":{"algorithm":{"description":"Algorithm.","example":5,"maximum":255,"minimum":0,"type":"number"},"flags":{"description":"Flags.","example":1,"maximum":65535,"minimum":0,"type":"number"},"protocol":{"description":"Protocol.","example":3,"maximum":255,"minimum":0,"type":"number"},"public_key":{"description":"Public Key.","type":"string"}},"type":"object"},"type":{"description":"Record type.","enum":["DNSKEY"],"example":"DNSKEY","type":"string"}},"title":"DNSKEY Record","type":"object"},"dns-records_DSRecord":{"properties":{"content":{"description":"Formatted DS content. See 'data' to set DS properties.","readOnly":true,"type":"string"},"data":{"description":"Components of a DS record.","properties":{"algorithm":{"description":"Algorithm.","example":3,"maximum":255,"minimum":0,"type":"number"},"digest":{"description":"Digest.","type":"string"},"digest_type":{"description":"Digest Type.","example":1,"maximum":255,"minimum":0,"type":"number"},"key_tag":{"description":"Key Tag.","example":1,"maximum":65535,"minimum":0,"type":"number"}},"type":"object"},"type":{"description":"Record type.","enum":["DS"],"example":"DS","type":"string"}},"title":"DS Record","type":"object"},"dns-records_HTTPSRecord":{"properties":{"content":{"description":"Formatted HTTPS content. See 'data' to set HTTPS properties.","readOnly":true,"type":"string"},"data":{"description":"Components of a HTTPS record.","properties":{"priority":{"description":"priority.","example":1,"maximum":65535,"minimum":0,"type":"number"},"target":{"description":"target.","example":".","type":"string"},"value":{"description":"value.","example":"alpn=\"h3,h2\" ipv4hint=\"127.0.0.1\" ipv6hint=\"::1\"","type":"string"}},"type":"object"},"type":{"description":"Record type.","enum":["HTTPS"],"example":"HTTPS","type":"string"}},"title":"HTTPS Record","type":"object"},"dns-records_LOCRecord":{"properties":{"content":{"description":"Formatted LOC content. See 'data' to set LOC properties.","example":"IN LOC 37 46 46 N 122 23 35 W 0m 100m 0m 0m","readOnly":true,"type":"string"},"data":{"description":"Components of a LOC record.","properties":{"altitude":{"description":"Altitude of location in meters.","example":0,"maximum":42849672.95,"minimum":-100000,"type":"number"},"lat_degrees":{"description":"Degrees of latitude.","example":37,"maximum":90,"minimum":0,"type":"number"},"lat_direction":{"description":"Latitude direction.","enum":["N","S"],"example":"N"},"lat_minutes":{"default":0,"description":"Minutes of latitude.","example":46,"maximum":59,"minimum":0,"type":"number"},"lat_seconds":{"default":0,"description":"Seconds of latitude.","example":46,"maximum":59.999,"minimum":0,"type":"number"},"long_degrees":{"description":"Degrees of longitude.","example":122,"maximum":180,"minimum":0,"type":"number"},"long_direction":{"description":"Longitude direction.","enum":["E","W"],"example":"W"},"long_minutes":{"default":0,"description":"Minutes of longitude.","example":23,"maximum":59,"minimum":0,"type":"number"},"long_seconds":{"default":0,"description":"Seconds of longitude.","example":35,"maximum":59.999,"minimum":0,"type":"number"},"precision_horz":{"default":0,"description":"Horizontal precision of location.","example":0,"maximum":90000000,"minimum":0,"type":"number"},"precision_vert":{"default":0,"description":"Vertical precision of location.","example":0,"maximum":90000000,"minimum":0,"type":"number"},"size":{"default":0,"description":"Size of location in meters.","example":100,"maximum":90000000,"minimum":0,"type":"number"}},"type":"object"},"type":{"description":"Record type.","enum":["LOC"],"example":"LOC","type":"string"}},"title":"LOC Record","type":"object"},"dns-records_MXRecord":{"properties":{"content":{"description":"A valid mail server hostname.","example":"mx.example.com","format":"hostname","type":"string"},"priority":{"$ref":"#/components/schemas/dns-records_priority"},"type":{"description":"Record type.","enum":["MX"],"example":"MX","type":"string"}},"title":"MX Record","type":"object"},"dns-records_NAPTRRecord":{"properties":{"content":{"description":"Formatted NAPTR content. See 'data' to set NAPTR properties.","readOnly":true,"type":"string"},"data":{"description":"Components of a NAPTR record.","properties":{"flags":{"description":"Flags.","type":"string"},"order":{"description":"Order.","example":100,"maximum":65535,"minimum":0,"type":"number"},"preference":{"description":"Preference.","example":10,"maximum":65535,"minimum":0,"type":"number"},"regex":{"description":"Regex.","type":"string"},"replacement":{"description":"Replacement.","type":"string"},"service":{"description":"Service.","type":"string"}},"type":"object"},"type":{"description":"Record type.","enum":["NAPTR"],"example":"NAPTR","type":"string"}},"title":"NAPTR Record","type":"object"},"dns-records_NSRecord":{"properties":{"content":{"description":"A valid name server host name.","example":"ns1.example.com","type":"string"},"type":{"description":"Record type.","enum":["NS"],"example":"NS","type":"string"}},"title":"NS Record","type":"object"},"dns-records_OPENPGPKEYRecord":{"properties":{"content":{"description":"A single Base64-encoded OpenPGP Transferable Public Key (RFC 4880 Section 11.1)","type":"string"},"type":{"description":"Record type.","enum":["OPENPGPKEY"],"example":"OPENPGPKEY","type":"string"}},"title":"OPENPGPKEY Record","type":"object"},"dns-records_PTRRecord":{"properties":{"content":{"description":"Domain name pointing to the address.","example":"example.com","type":"string"},"type":{"description":"Record type.","enum":["PTR"],"example":"PTR","type":"string"}},"title":"PTR Record","type":"object"},"dns-records_SMIMEARecord":{"properties":{"content":{"description":"Formatted SMIMEA content. See 'data' to set SMIMEA properties.","readOnly":true,"type":"string"},"data":{"description":"Components of a SMIMEA record.","properties":{"certificate":{"description":"Certificate.","type":"string"},"matching_type":{"description":"Matching Type.","example":0,"maximum":255,"minimum":0,"type":"number"},"selector":{"description":"Selector.","example":0,"maximum":255,"minimum":0,"type":"number"},"usage":{"description":"Usage.","example":3,"maximum":255,"minimum":0,"type":"number"}},"type":"object"},"type":{"description":"Record type.","enum":["SMIMEA"],"example":"SMIMEA","type":"string"}},"title":"SMIMEA Record","type":"object"},"dns-records_SRVRecord":{"properties":{"content":{"description":"Priority, weight, port, and SRV target. See 'data' for setting the individual component values.","example":"10 IN SRV 5 8806 example.com.","readOnly":true,"type":"string"},"data":{"description":"Components of a SRV record.","properties":{"port":{"description":"The port of the service.","example":8806,"maximum":65535,"minimum":0,"type":"number"},"priority":{"$ref":"#/components/schemas/dns-records_priority"},"target":{"description":"A valid hostname.","example":"example.com","format":"hostname","type":"string"},"weight":{"description":"The record weight.","example":5,"maximum":65535,"minimum":0,"type":"number"}},"type":"object"},"type":{"description":"Record type.","enum":["SRV"],"example":"SRV","type":"string"}},"title":"SRV Record","type":"object"},"dns-records_SSHFPRecord":{"properties":{"content":{"description":"Formatted SSHFP content. See 'data' to set SSHFP properties.","readOnly":true,"type":"string"},"data":{"description":"Components of a SSHFP record.","properties":{"algorithm":{"description":"algorithm.","example":2,"maximum":255,"minimum":0,"type":"number"},"fingerprint":{"description":"fingerprint.","type":"string"},"type":{"description":"type.","example":1,"maximum":255,"minimum":0,"type":"number"}},"type":"object"},"type":{"description":"Record type.","enum":["SSHFP"],"example":"SSHFP","type":"string"}},"title":"SSHFP Record","type":"object"},"dns-records_SVCBRecord":{"properties":{"content":{"description":"Formatted SVCB content. See 'data' to set SVCB properties.","readOnly":true,"type":"string"},"data":{"description":"Components of a SVCB record.","properties":{"priority":{"description":"priority.","example":1,"maximum":65535,"minimum":0,"type":"number"},"target":{"description":"target.","example":".","type":"string"},"value":{"description":"value.","example":"alpn=\"h3,h2\" ipv4hint=\"127.0.0.1\" ipv6hint=\"::1\"","type":"string"}},"type":"object"},"type":{"description":"Record type.","enum":["SVCB"],"example":"SVCB","type":"string"}},"title":"SVCB Record","type":"object"},"dns-records_TLSARecord":{"properties":{"content":{"description":"Formatted TLSA content. See 'data' to set TLSA properties.","readOnly":true,"type":"string"},"data":{"description":"Components of a TLSA record.","properties":{"certificate":{"description":"certificate.","type":"string"},"matching_type":{"description":"Matching Type.","example":1,"maximum":255,"minimum":0,"type":"number"},"selector":{"description":"Selector.","example":0,"maximum":255,"minimum":0,"type":"number"},"usage":{"description":"Usage.","example":0,"maximum":255,"minimum":0,"type":"number"}},"type":"object"},"type":{"description":"Record type.","enum":["TLSA"],"example":"TLSA","type":"string"}},"title":"TLSA Record","type":"object"},"dns-records_TXTRecord":{"properties":{"content":{"description":"Text content for the record. The content must consist of quoted \"character strings\" (RFC 1035), each with a length of up to 255 bytes. Strings exceeding this allowed maximum length are automatically split.\n\nLearn more at \u003chttps://www.cloudflare.com/learning/dns/dns-records/dns-txt-record/\u003e.","example":"\"v=spf1 include:example.com -all\"","type":"string"},"type":{"description":"Record type.","enum":["TXT"],"example":"TXT","type":"string"}},"title":"TXT Record","type":"object"},"dns-records_URIRecord":{"properties":{"content":{"description":"Formatted URI content. See 'data' to set URI properties.","readOnly":true,"type":"string"},"data":{"description":"Components of a URI record.","properties":{"target":{"description":"The record content.","example":"http://example.com/example.html","type":"string"},"weight":{"description":"The record weight.","example":20,"maximum":65535,"minimum":0,"type":"number"}},"type":"object"},"priority":{"$ref":"#/components/schemas/dns-records_priority"},"type":{"description":"Record type.","enum":["URI"],"example":"URI","type":"string"}},"title":"URI Record","type":"object"},"dns-records_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/dns-records_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/dns-records_result_info"}}}],"type":"object"},"dns-records_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/dns-records_messages"},"messages":{"$ref":"#/components/schemas/dns-records_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"dns-records_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/dns-records_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/dns-records_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"dns-records_api-response-single":{"allOf":[{"$ref":"#/components/schemas/dns-records_api-response-common"}],"type":"object"},"dns-records_comment":{"description":"Comments or notes about the DNS record. This field has no effect on DNS responses.","example":"Domain verification record","type":"string"},"dns-records_direction":{"default":"asc","description":"Direction to order DNS records in.","enum":["asc","desc"],"type":"string"},"dns-records_dns-record":{"allOf":[{"properties":{"comment":{"$ref":"#/components/schemas/dns-records_comment"},"name":{"$ref":"#/components/schemas/dns-records_name"},"proxied":{"$ref":"#/components/schemas/dns-records_proxied"},"settings":{"$ref":"#/components/schemas/dns-records_settings"},"tags":{"$ref":"#/components/schemas/dns-records_tags"},"ttl":{"$ref":"#/components/schemas/dns-records_ttl"}},"type":"object"},{"oneOf":[{"$ref":"#/components/schemas/dns-records_ARecord"},{"$ref":"#/components/schemas/dns-records_AAAARecord"},{"$ref":"#/components/schemas/dns-records_CAARecord"},{"$ref":"#/components/schemas/dns-records_CERTRecord"},{"$ref":"#/components/schemas/dns-records_CNAMERecord"},{"$ref":"#/components/schemas/dns-records_DNSKEYRecord"},{"$ref":"#/components/schemas/dns-records_DSRecord"},{"$ref":"#/components/schemas/dns-records_HTTPSRecord"},{"$ref":"#/components/schemas/dns-records_LOCRecord"},{"$ref":"#/components/schemas/dns-records_MXRecord"},{"$ref":"#/components/schemas/dns-records_NAPTRRecord"},{"$ref":"#/components/schemas/dns-records_NSRecord"},{"$ref":"#/components/schemas/dns-records_OPENPGPKEYRecord"},{"$ref":"#/components/schemas/dns-records_PTRRecord"},{"$ref":"#/components/schemas/dns-records_SMIMEARecord"},{"$ref":"#/components/schemas/dns-records_SRVRecord"},{"$ref":"#/components/schemas/dns-records_SSHFPRecord"},{"$ref":"#/components/schemas/dns-records_SVCBRecord"},{"$ref":"#/components/schemas/dns-records_TLSARecord"},{"$ref":"#/components/schemas/dns-records_TXTRecord"},{"$ref":"#/components/schemas/dns-records_URIRecord"}],"type":"object"}],"type":"object"},"dns-records_dns-record-batch-delete":{"allOf":[{"properties":{"id":{"$ref":"#/components/schemas/dns-records_identifier"}},"type":"object"}],"required":["id"],"type":"object"},"dns-records_dns-record-batch-patch":{"allOf":[{"$ref":"#/components/schemas/dns-records_dns-record-patch"}],"properties":{"id":{"$ref":"#/components/schemas/dns-records_identifier"}},"required":["id"],"type":"object"},"dns-records_dns-record-batch-post":{"allOf":[{"$ref":"#/components/schemas/dns-records_dns-record-post"}]},"dns-records_dns-record-batch-put":{"allOf":[{"$ref":"#/components/schemas/dns-records_dns-record-post"}],"properties":{"id":{"$ref":"#/components/schemas/dns-records_identifier"}},"required":["id"],"type":"object"},"dns-records_dns-record-patch":{"allOf":[{"$ref":"#/components/schemas/dns-records_dns-record"}],"type":"object"},"dns-records_dns-record-post":{"allOf":[{"$ref":"#/components/schemas/dns-records_dns-record"}],"required":["name","type","content","data"],"type":"object"},"dns-records_dns-record-response":{"allOf":[{"$ref":"#/components/schemas/dns-records_dns-record"},{"properties":{"comment_modified_on":{"description":"When the record comment was last modified. Omitted if there is no comment.","example":"2024-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"created_on":{"description":"When the record was created.","example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"id":{"$ref":"#/components/schemas/dns-records_identifier"},"meta":{"description":"Extra Cloudflare-specific information about the record.","readOnly":true,"type":"object"},"modified_on":{"description":"When the record was last modified.","example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"proxiable":{"description":"Whether the record can be proxied by Cloudflare or not.","example":true,"type":"boolean"},"tags_modified_on":{"description":"When the record tags were last modified. Omitted if there are no tags.","example":"2025-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"}},"required":["id","proxiable","created_on","modified_on","meta"],"type":"object"}],"required":["name","type","content","data","proxied","ttl","settings","comment","tags"],"type":"object"},"dns-records_dns-request-batch-object":{"properties":{"deletes":{"items":{"$ref":"#/components/schemas/dns-records_dns-record-batch-delete"},"type":"array"},"patches":{"items":{"$ref":"#/components/schemas/dns-records_dns-record-batch-patch"},"type":"array"},"posts":{"items":{"$ref":"#/components/schemas/dns-records_dns-record-batch-post"},"type":"array"},"puts":{"items":{"$ref":"#/components/schemas/dns-records_dns-record-batch-put"},"type":"array"}},"type":"object"},"dns-records_dns-response-batch-object":{"properties":{"deletes":{"items":{"$ref":"#/components/schemas/dns-records_dns-record-response"},"type":"array"},"patches":{"items":{"$ref":"#/components/schemas/dns-records_dns-record-response"},"type":"array"},"posts":{"items":{"$ref":"#/components/schemas/dns-records_dns-record-response"},"type":"array"},"puts":{"items":{"$ref":"#/components/schemas/dns-records_dns-record-response"},"type":"array"}},"type":"object"},"dns-records_dns_response_batch":{"allOf":[{"$ref":"#/components/schemas/dns-records_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dns-records_dns-response-batch-object"}},"type":"object"}]},"dns-records_dns_response_collection":{"allOf":[{"$ref":"#/components/schemas/dns-records_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/dns-records_dns-record-response"},"type":"array"}},"type":"object"}]},"dns-records_dns_response_import_scan":{"allOf":[{"$ref":"#/components/schemas/dns-records_api-response-single"},{"properties":{"result":{"properties":{"recs_added":{"description":"Number of DNS records added.","example":5,"type":"number"},"total_records_parsed":{"description":"Total number of DNS records parsed.","example":5,"type":"number"}},"type":"object"},"timing":{"properties":{"end_time":{"description":"When the file parsing ended.","example":"2014-03-01T12:20:01Z","format":"date-time","type":"string"},"process_time":{"description":"Processing time of the file in seconds.","example":1,"type":"number"},"start_time":{"description":"When the file parsing started.","example":"2014-03-01T12:20:00Z","format":"date-time","type":"string"}},"type":"object"}},"type":"object"}]},"dns-records_dns_response_single":{"allOf":[{"$ref":"#/components/schemas/dns-records_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dns-records_dns-record-response"}},"type":"object"}]},"dns-records_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"dns-records_match":{"default":"all","description":"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.\n","enum":["any","all"],"example":"any","type":"string"},"dns-records_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"dns-records_name":{"description":"DNS record name (or @ for the zone apex) in Punycode.","example":"example.com","maxLength":255,"minLength":1,"type":"string"},"dns-records_order":{"default":"type","description":"Field to order DNS records by.","enum":["type","name","content","ttl","proxied"],"type":"string"},"dns-records_page":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"},"dns-records_per_page":{"default":100,"description":"Number of DNS records per page.","example":5,"maximum":5000000,"minimum":1,"type":"number"},"dns-records_priority":{"description":"Required for MX, SRV and URI records; unused by other record types. Records with lower priorities are preferred.","example":10,"maximum":65535,"minimum":0,"type":"number"},"dns-records_proxied":{"default":false,"description":"Whether the record is receiving the performance and security benefits of Cloudflare.","example":true,"type":"boolean"},"dns-records_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"dns-records_search":{"description":"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.\n","example":"www.cloudflare.com","type":"string"},"dns-records_settings":{"description":"Settings for the DNS record.","type":"object"},"dns-records_tag_match":{"default":"all","description":"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.\n","enum":["any","all"],"example":"any","type":"string"},"dns-records_tags":{"default":[],"description":"Custom tags for the DNS record. This field has no effect on DNS responses.","items":{"description":"Individual tag of the form name:value (the name must consist of only letters, numbers, underscores and hyphens)","example":"owner:dns-team","type":"string"},"type":"array"},"dns-records_ttl":{"anyOf":[{"example":3600,"maximum":86400,"minimum":30,"type":"number"},{"enum":[1],"type":"number"}],"default":1,"description":"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.","example":3600,"type":"number"},"dns-records_type":{"description":"Record type.","enum":["A","AAAA","CAA","CERT","CNAME","DNSKEY","DS","HTTPS","LOC","MX","NAPTR","NS","OPENPGPKEY","PTR","SMIMEA","SRV","SSHFP","SVCB","TLSA","TXT","URI"],"example":"A","type":"string"},"dns-settings_account_settings":{"properties":{"zone_defaults":{"$ref":"#/components/schemas/dns-settings_dns-settings"}},"type":"object"},"dns-settings_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/dns-settings_messages"},"messages":{"$ref":"#/components/schemas/dns-settings_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"dns-settings_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/dns-settings_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/dns-settings_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"dns-settings_api-response-single":{"allOf":[{"$ref":"#/components/schemas/dns-settings_api-response-common"}],"type":"object"},"dns-settings_dns-settings":{"properties":{"flatten_all_cnames":{"$ref":"#/components/schemas/dns-settings_flatten_all_cnames"},"foundation_dns":{"$ref":"#/components/schemas/dns-settings_foundation_dns"},"multi_provider":{"$ref":"#/components/schemas/dns-settings_multi_provider"},"nameservers":{"$ref":"#/components/schemas/dns-settings_nameservers"},"ns_ttl":{"$ref":"#/components/schemas/dns-settings_ns_ttl"},"secondary_overrides":{"$ref":"#/components/schemas/dns-settings_secondary_overrides"},"soa":{"$ref":"#/components/schemas/dns-settings_soa"},"zone_mode":{"$ref":"#/components/schemas/dns-settings_zone_mode"}},"type":"object"},"dns-settings_dns_response_single":{"allOf":[{"$ref":"#/components/schemas/dns-settings_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dns-settings_account_settings"}},"type":"object"}]},"dns-settings_flatten_all_cnames":{"description":"Whether to flatten all CNAME records in the zone. Note that, due to DNS limitations, a CNAME record at the zone apex will always be flattened.","example":false,"type":"boolean"},"dns-settings_foundation_dns":{"description":"Whether to enable Foundation DNS Advanced Nameservers on the zone.","example":false,"type":"boolean"},"dns-settings_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"dns-settings_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"dns-settings_multi_provider":{"description":"Whether to enable multi-provider DNS, which causes Cloudflare to activate the zone even when non-Cloudflare NS records exist, and to respect NS records at the zone apex during outbound zone transfers.","example":false,"type":"boolean"},"dns-settings_nameservers":{"description":"Settings determining the nameservers through which the zone should be available.","properties":{"type":{"description":"Nameserver type","enum":["cloudflare.standard","cloudflare.standard.random","custom.account","custom.tenant","custom.zone"],"example":"cloudflare.standard","type":"string"}},"required":["type"],"type":"object"},"dns-settings_ns_ttl":{"description":"The time to live (TTL) of the zone's nameserver (NS) records.","example":86400,"maximum":86400,"minimum":30,"type":"number"},"dns-settings_schemas-dns_response_single":{"allOf":[{"$ref":"#/components/schemas/dns-settings_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dns-settings_dns-settings"}},"type":"object"}]},"dns-settings_secondary_overrides":{"description":"Allows a Secondary DNS zone to use (proxied) override records and CNAME flattening at the zone apex.","example":false,"type":"boolean"},"dns-settings_soa":{"description":"Components of the zone's SOA record.","properties":{"expire":{"description":"Time in seconds of being unable to query the primary server after which secondary servers should stop serving the zone.","example":604800,"maximum":2419200,"minimum":86400,"type":"number"},"min_ttl":{"description":"The time to live (TTL) for negative caching of records within the zone.","example":1800,"maximum":86400,"minimum":60,"type":"number"},"mname":{"description":"The primary nameserver, which may be used for outbound zone transfers.","example":"kristina.ns.cloudflare.com","type":"string"},"refresh":{"description":"Time in seconds after which secondary servers should re-check the SOA record to see if the zone has been updated.","example":10000,"maximum":86400,"minimum":600,"type":"number"},"retry":{"description":"Time in seconds after which secondary servers should retry queries after the primary server was unresponsive.","example":2400,"maximum":86400,"minimum":600,"type":"number"},"rname":{"description":"The email address of the zone administrator, with the first label representing the local part of the email address.","example":"admin.example.com","type":"string"},"ttl":{"description":"The time to live (TTL) of the SOA record itself.","example":3600,"maximum":86400,"minimum":300,"type":"number"}},"required":["mname","rname","refresh","retry","expire","min_ttl","ttl"],"type":"object"},"dns-settings_zone_mode":{"description":"Whether the zone mode is a regular or CDN/DNS only zone.","enum":["standard","cdn_only","dns_only"],"example":"dns_only","type":"string"},"dnssec_algorithm":{"description":"Algorithm key code.","example":"13","nullable":true,"readOnly":true,"type":"string"},"dnssec_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/dnssec_messages"},"messages":{"$ref":"#/components/schemas/dnssec_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"dnssec_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/dnssec_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/dnssec_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"dnssec_api-response-single":{"allOf":[{"$ref":"#/components/schemas/dnssec_api-response-common"},{"properties":{"result":{"anyOf":[{"type":"object"},{"type":"string"}]}}}],"type":"object"},"dnssec_delete_dnssec_response_single":{"allOf":[{"$ref":"#/components/schemas/dnssec_api-response-single"},{"properties":{"result":{"example":"","type":"string"}}}]},"dnssec_digest":{"description":"Digest hash.","example":"48E939042E82C22542CB377B580DFDC52A361CEFDC72E7F9107E2B6BD9306A45","nullable":true,"readOnly":true,"type":"string"},"dnssec_digest_algorithm":{"description":"Type of digest algorithm.","example":"SHA256","nullable":true,"readOnly":true,"type":"string"},"dnssec_digest_type":{"description":"Coded type for digest algorithm.","example":"2","nullable":true,"readOnly":true,"type":"string"},"dnssec_dnssec":{"properties":{"algorithm":{"$ref":"#/components/schemas/dnssec_algorithm"},"digest":{"$ref":"#/components/schemas/dnssec_digest"},"digest_algorithm":{"$ref":"#/components/schemas/dnssec_digest_algorithm"},"digest_type":{"$ref":"#/components/schemas/dnssec_digest_type"},"dnssec_multi_signer":{"$ref":"#/components/schemas/dnssec_dnssec_multi_signer"},"dnssec_presigned":{"$ref":"#/components/schemas/dnssec_dnssec_presigned"},"ds":{"$ref":"#/components/schemas/dnssec_ds"},"flags":{"$ref":"#/components/schemas/dnssec_flags"},"key_tag":{"$ref":"#/components/schemas/dnssec_key_tag"},"key_type":{"$ref":"#/components/schemas/dnssec_key_type"},"modified_on":{"$ref":"#/components/schemas/dnssec_modified_on"},"public_key":{"$ref":"#/components/schemas/dnssec_public_key"},"status":{"$ref":"#/components/schemas/dnssec_status"}},"type":"object"},"dnssec_dnssec_multi_signer":{"description":"If true, multi-signer DNSSEC is enabled on the zone, allowing multiple\nproviders to serve a DNSSEC-signed zone at the same time.\nThis is required for DNSKEY records (except those automatically\ngenerated by Cloudflare) to be added to the zone.\n\nSee [Multi-signer DNSSEC](https://developers.cloudflare.com/dns/dnssec/multi-signer-dnssec/) for details.","example":false,"type":"boolean"},"dnssec_dnssec_presigned":{"description":"If true, allows Cloudflare to transfer in a DNSSEC-signed zone\nincluding signatures from an external provider, without requiring\nCloudflare to sign any records on the fly.\n\nNote that this feature has some limitations.\nSee [Cloudflare as Secondary](https://developers.cloudflare.com/dns/zone-setups/zone-transfers/cloudflare-as-secondary/setup/#dnssec) for details.","example":true,"type":"boolean"},"dnssec_dnssec_response_single":{"allOf":[{"$ref":"#/components/schemas/dnssec_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dnssec_dnssec"}}}]},"dnssec_ds":{"description":"Full DS record.","example":"example.com. 3600 IN DS 16953 13 2 48E939042E82C22542CB377B580DFDC52A361CEFDC72E7F9107E2B6BD9306A45","nullable":true,"readOnly":true,"type":"string"},"dnssec_flags":{"description":"Flag for DNSSEC record.","example":257,"nullable":true,"readOnly":true,"type":"number"},"dnssec_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"dnssec_key_tag":{"description":"Code for key tag.","example":42,"nullable":true,"readOnly":true,"type":"number"},"dnssec_key_type":{"description":"Algorithm key type.","example":"ECDSAP256SHA256","nullable":true,"readOnly":true,"type":"string"},"dnssec_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"dnssec_modified_on":{"description":"When DNSSEC was last modified.","example":"2014-01-01T05:20:00Z","format":"date-time","nullable":true,"readOnly":true,"type":"string"},"dnssec_public_key":{"description":"Public key for DS record.","example":"oXiGYrSTO+LSCJ3mohc8EP+CzF9KxBj8/ydXJ22pKuZP3VAC3/Md/k7xZfz470CoRyZJ6gV6vml07IC3d8xqhA==","nullable":true,"readOnly":true,"type":"string"},"dnssec_status":{"description":"Status of DNSSEC, based on user-desired state and presence of necessary records.","enum":["active","pending","disabled","pending-disabled","error"],"example":"active"},"dos_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/dos_messages"},"messages":{"$ref":"#/components/schemas/dos_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"dos_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/dos_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/dos_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"dos_asn":{"type":"integer"},"dos_asn_country":{"example":"US","type":"string"},"dos_asn_description":{"example":"CLOUDFLARENET","type":"string"},"dos_asn_type":{"description":"Infrastructure type of this ASN.","enum":["hosting_provider","isp","organization"],"example":"hosting_provider","type":"string"},"dos_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"dos_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"dos_timestamp":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","type":"string"},"email-security_AccountId":{"description":"Account Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"minLength":32,"readOnly":true,"title":"account_id","type":"string"},"email-security_AllowPattern":{"allOf":[{"additionalProperties":false,"example":{"comments":"Trust all messages send from test@example.com","is_recipient":false,"is_regex":false,"is_sender":true,"is_spoof":false,"pattern":"test@example.com","pattern_type":"EMAIL","verify_sender":true},"properties":{"comments":{"nullable":true,"type":"string"},"is_recipient":{"type":"boolean"},"is_regex":{"type":"boolean"},"is_sender":{"type":"boolean"},"is_spoof":{"type":"boolean"},"pattern":{"minLength":1,"type":"string"},"pattern_type":{"$ref":"#/components/schemas/email-security_PatternType"},"verify_sender":{"type":"boolean"}},"required":["is_recipient","is_sender","is_spoof","pattern","is_regex","verify_sender","pattern_type"],"type":"object"},{"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"example":2401,"format":"int32","title":"identifier","type":"integer"},"last_modified":{"format":"date-time","type":"string"}},"required":["id","created_at","last_modified"],"type":"object"}],"example":{"comments":"Trust all messages send from test@example.com","created_at":"2023-11-14T22:13:20Z","id":2401,"is_recipient":false,"is_regex":false,"is_sender":true,"is_spoof":false,"last_modified":"2023-11-14T22:13:20Z","pattern":"test@example.com","pattern_type":"EMAIL","verify_sender":true}},"email-security_ApiResponseCommon":{"properties":{"errors":{"example":[],"items":{"$ref":"#/components/schemas/email-security_Message"},"type":"array"},"messages":{"example":[],"items":{"$ref":"#/components/schemas/email-security_Message"},"type":"array"},"success":{"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"email-security_Attachment":{"properties":{"content_type":{"nullable":true,"type":"string"},"detection":{"allOf":[{"$ref":"#/components/schemas/email-security_DispositionLabel"},{"nullable":true,"type":"string"}]},"encrypted":{"nullable":true,"type":"boolean"},"name":{"nullable":true,"type":"string"},"size":{"minimum":0,"type":"integer"}},"required":["size"],"type":"object"},"email-security_BlockedSender":{"allOf":[{"additionalProperties":false,"example":{"comments":"block sender with email test@example.com","is_regex":false,"pattern":"test@example.com","pattern_type":"EMAIL"},"properties":{"comments":{"nullable":true,"type":"string"},"is_regex":{"type":"boolean"},"pattern":{"minLength":1,"type":"string"},"pattern_type":{"$ref":"#/components/schemas/email-security_PatternType"}},"required":["pattern","is_regex","pattern_type"],"type":"object"},{"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"example":2402,"format":"int32","title":"identifier","type":"integer"},"last_modified":{"format":"date-time","type":"string"}},"required":["id","created_at","last_modified"],"type":"object"}],"example":{"comments":"block sender with email test@example.com","created_at":"2023-11-14T22:13:20Z","id":2402,"is_regex":false,"last_modified":"2023-11-14T22:13:20Z","pattern":"test@example.com","pattern_type":"EMAIL"}},"email-security_CreateAllowPattern":{"additionalProperties":false,"example":{"comments":"Trust all messages send from test@example.com","is_recipient":false,"is_regex":false,"is_sender":true,"is_spoof":false,"pattern":"test@example.com","pattern_type":"EMAIL","verify_sender":true},"properties":{"comments":{"nullable":true,"type":"string"},"is_recipient":{"type":"boolean"},"is_regex":{"type":"boolean"},"is_sender":{"type":"boolean"},"is_spoof":{"type":"boolean"},"pattern":{"minLength":1,"type":"string"},"pattern_type":{"$ref":"#/components/schemas/email-security_PatternType"},"verify_sender":{"type":"boolean"}},"required":["is_recipient","is_sender","is_spoof","pattern","is_regex","verify_sender","pattern_type"],"type":"object"},"email-security_CreateBlockedSender":{"additionalProperties":false,"example":{"comments":"block sender with email test@example.com","is_regex":false,"pattern":"test@example.com","pattern_type":"EMAIL"},"properties":{"comments":{"nullable":true,"type":"string"},"is_regex":{"type":"boolean"},"pattern":{"minLength":1,"type":"string"},"pattern_type":{"$ref":"#/components/schemas/email-security_PatternType"}},"required":["pattern","is_regex","pattern_type"],"type":"object"},"email-security_CreateDisplayName":{"properties":{"email":{"type":"string"},"is_email_regex":{"type":"boolean"},"name":{"type":"string"}},"required":["name","email","is_email_regex"],"type":"object"},"email-security_CreateTrustedDomain":{"additionalProperties":false,"example":{"comments":null,"is_recent":true,"is_regex":false,"is_similarity":false,"pattern":"example.com"},"properties":{"comments":{"nullable":true,"type":"string"},"is_recent":{"type":"boolean"},"is_regex":{"type":"boolean"},"is_similarity":{"type":"boolean"},"pattern":{"minLength":1,"type":"string"}},"required":["is_recent","is_similarity","is_regex","pattern"],"type":"object"},"email-security_DeliveryMode":{"enum":["DIRECT","BCC","JOURNAL","API","RETRO_SCAN"],"type":"string"},"email-security_DisplayName":{"properties":{"comments":{"nullable":true,"type":"string"},"created_at":{"format":"date-time","type":"string"},"directory_id":{"allOf":[{"format":"int64","type":"integer"},{"nullable":true,"type":"integer"}]},"directory_node_id":{"allOf":[{"format":"int32","type":"integer"},{"nullable":true,"type":"integer"}]},"email":{"nullable":true,"type":"string"},"external_directory_node_id":{"deprecated":true,"nullable":true,"type":"string"},"id":{"example":2403,"format":"int32","title":"identifier","type":"integer"},"is_email_regex":{"type":"boolean"},"last_modified":{"format":"date-time","type":"string"},"name":{"type":"string"},"provenance":{"nullable":true,"type":"string"}},"required":["id","created_at","last_modified","name","is_email_regex"],"type":"object"},"email-security_DispositionLabel":{"enum":["MALICIOUS","MALICIOUS-BEC","SUSPICIOUS","SPOOF","SPAM","BULK","ENCRYPTED","EXTERNAL","UNKNOWN","NONE"],"type":"string"},"email-security_Domain":{"example":{"allowed_delivery_modes":["API"],"created_at":"2023-11-14T22:13:20Z","domain":"example.com","folder":"Inbox","id":2400,"integration_id":"a5dbb180-60ea-4578-84bb-d01a5d4e50c3","last_modified":"2023-11-14T22:13:20Z","lookback_hops":2,"o365_tenant_id":"c3c3239d-8858-47df-9618-0e2d9bdf6aa8"},"properties":{"allowed_delivery_modes":{"items":{"$ref":"#/components/schemas/email-security_DeliveryMode"},"type":"array"},"created_at":{"format":"date-time","type":"string"},"domain":{"type":"string"},"folder":{"allOf":[{"$ref":"#/components/schemas/email-security_ScannableFolder"},{"nullable":true,"type":"string"}]},"id":{"description":"Unique domain identifier","example":2400,"format":"int32","type":"integer"},"integration_id":{"format":"uuid","nullable":true,"type":"string"},"last_modified":{"format":"date-time","type":"string"},"lookback_hops":{"format":"int32","type":"integer"},"o365_tenant_id":{"nullable":true,"type":"string"}},"required":["id","created_at","last_modified","domain","allowed_delivery_modes","lookback_hops"],"type":"object"},"email-security_Link":{"properties":{"href":{"type":"string"},"text":{"nullable":true,"type":"string"}},"required":["href"],"type":"object"},"email-security_MailsearchMessage":{"allOf":[{"properties":{"action_log":{},"alert_id":{"nullable":true,"type":"string"},"client_recipients":{"items":{"type":"string"},"type":"array"},"delivery_mode":{"allOf":[{"$ref":"#/components/schemas/email-security_MessageDeliveryMode"},{"nullable":true,"type":"string"}]},"detection_reasons":{"items":{"type":"string"},"type":"array"},"edf_hash":{"nullable":true,"type":"string"},"final_disposition":{"allOf":[{"$ref":"#/components/schemas/email-security_DispositionLabel"},{"nullable":true,"type":"string"}]},"from":{"nullable":true,"type":"string"},"from_name":{"nullable":true,"type":"string"},"is_phish_submission":{"type":"boolean"},"is_quarantined":{"type":"boolean"},"message_id":{"type":"string"},"postfix_id":{"$ref":"#/components/schemas/email-security_PostfixId"},"sent_date":{"nullable":true,"type":"string"},"subject":{"nullable":true,"type":"string"},"threat_categories":{"items":{"type":"string"},"nullable":true,"type":"array"},"to":{"items":{"type":"string"},"nullable":true,"type":"array"},"to_name":{"items":{"type":"string"},"nullable":true,"type":"array"},"ts":{"type":"string"},"validation":{"allOf":[{"properties":{"comment":{"nullable":true,"type":"string"},"dkim":{"allOf":[{"$ref":"#/components/schemas/email-security_ValidationStatus"},{"nullable":true,"type":"string"}]},"dmarc":{"allOf":[{"$ref":"#/components/schemas/email-security_ValidationStatus"},{"nullable":true,"type":"string"}]},"spf":{"allOf":[{"$ref":"#/components/schemas/email-security_ValidationStatus"},{"nullable":true,"type":"string"}]}},"type":"object"},{"nullable":true,"type":"object"}]}},"required":["ts","message_id","client_recipients","postfix_id","detection_reasons","action_log","is_quarantined","is_phish_submission"],"type":"object"},{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}],"example":{"action_log":[],"alert_id":"4Njp3P0STMz2c02Q-2022-12-30T02:44:49","client_recipients":["email@example.com"],"delivery_mode":"DIRECT","detection_reasons":["Selector is a source of spam/uce : Smtp-Helo-Server-Ip=\u003cb\u003e127.0.0[dot]186\u003c/b\u003e"],"edf_hash":null,"final_disposition":"MALICIOUS","from":"d1994@example.com","from_name":"Sender Name","id":"47JJcT1w6GztQV7-email@example.com","is_phish_submission":false,"is_quarantined":false,"message_id":"\u003c4VAZPrAdg7IGNxdt1DWRNu0gvOeL_iZiwP4BQfo4DaE.Yw-woXuugQbeFhBpzwFQtqq_v2v1HOKznoMBqbciQpE@example.com\u003e","postfix_id":"47JJcT1w6GztQV7","sent_date":"2019-11-21T00:22:01","subject":"listen, I highly recommend u to read that email, just to ensure not a thing will take place","threat_categories":["IPReputation","ASNReputation"],"to":["email@example.com"],"to_name":["Recipient Name"],"ts":"2019-11-20T23:22:01","validation":{"comment":null,"dkim":"pass","dmarc":"none","spf":"fail"}}},"email-security_Message":{"properties":{"code":{"format":"int32","minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"email-security_MessageDeliveryMode":{"enum":["DIRECT","BCC","JOURNAL","REVIEW_SUBMISSION","DMARC_UNVERIFIED","DMARC_FAILURE_REPORT","DMARC_AGGREGATE_REPORT","THREAT_INTEL_SUBMISSION","SIMULATION_SUBMISSION","API","RETRO_SCAN"],"type":"string"},"email-security_MessageHeader":{"properties":{"name":{"type":"string"},"value":{"type":"string"}},"required":["name","value"],"type":"object"},"email-security_PatternType":{"enum":["EMAIL","DOMAIN","IP","UNKNOWN"],"type":"string"},"email-security_PhishGuardReport":{"properties":{"content":{"type":"string"},"disposition":{"$ref":"#/components/schemas/email-security_DispositionLabel"},"fields":{"properties":{"from":{"nullable":true,"type":"string"},"postfix_id":{"type":"string"},"to":{"items":{"type":"string"},"type":"array"},"ts":{"format":"date-time","type":"string"}},"required":["to","ts","postfix_id"],"type":"object"},"id":{"format":"int32","type":"integer"},"priority":{"type":"string"},"tags":{"items":{"$ref":"#/components/schemas/email-security_PhishGuardReportTag"},"nullable":true,"type":"array"},"title":{"type":"string"},"ts":{"format":"date-time","type":"string"}},"required":["id","ts","title","content","fields","priority","disposition"],"type":"object"},"email-security_PhishGuardReportTag":{"properties":{"category":{"type":"string"},"value":{"type":"string"}},"required":["category","value"],"type":"object"},"email-security_PostfixId":{"description":"Message identifier","example":"4Njp3P0STMz2c02Q","title":"postfix_id","type":"string"},"email-security_ReleaseResponse":{"allOf":[{"properties":{"delivered":{"items":{"type":"string"},"nullable":true,"type":"array"},"failed":{"items":{"type":"string"},"nullable":true,"type":"array"},"undelivered":{"items":{"type":"string"},"nullable":true,"type":"array"}},"type":"object"},{"properties":{"postfix_id":{"$ref":"#/components/schemas/email-security_PostfixId"}},"required":["postfix_id"],"type":"object"}]},"email-security_ResultInfo":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"format":"int32","type":"integer"},"page":{"description":"Current page within paginated list of results","example":1,"format":"int32","type":"integer"},"per_page":{"description":"Number of results per page of results","example":20,"format":"int32","type":"integer"},"total_count":{"description":"Total results available without any search parameters","example":2000,"format":"int32","type":"integer"}},"required":["count","page","per_page","total_count"],"type":"object"},"email-security_ScannableFolder":{"enum":["AllItems","Inbox"],"type":"string"},"email-security_SortingDirection":{"enum":["asc","desc"],"type":"string"},"email-security_ThreatCategory":{"properties":{"description":{"nullable":true,"type":"string"},"id":{"format":"int64","type":"integer"},"name":{"nullable":true,"type":"string"}},"required":["id"],"type":"object"},"email-security_TraceLine":{"properties":{"lineno":{"format":"int64","type":"integer"},"message":{"type":"string"},"ts":{"format":"date-time","type":"string"}},"required":["ts","lineno","message"],"type":"object"},"email-security_TrustedDomain":{"allOf":[{"additionalProperties":false,"example":{"comments":null,"is_recent":true,"is_regex":false,"is_similarity":false,"pattern":"example.com"},"properties":{"comments":{"nullable":true,"type":"string"},"is_recent":{"type":"boolean"},"is_regex":{"type":"boolean"},"is_similarity":{"type":"boolean"},"pattern":{"minLength":1,"type":"string"}},"required":["is_recent","is_similarity","is_regex","pattern"],"type":"object"},{"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"example":2401,"format":"int32","title":"identifier","type":"integer"},"last_modified":{"format":"date-time","type":"string"}},"required":["id","created_at","last_modified"],"type":"object"}],"example":{"comments":null,"created_at":"2023-11-14T22:13:20Z","id":2401,"is_recent":true,"is_regex":false,"is_similarity":false,"last_modified":"2023-11-14T22:13:20Z","pattern":"example.com"}},"email-security_ValidationStatus":{"enum":["pass","neutral","fail","error","none"],"type":"string"},"email_account_id":{"$ref":"#/components/schemas/email_identifier"},"email_addresses":{"allOf":[{"$ref":"#/components/schemas/email_destination_address_properties"}],"type":"object"},"email_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/email_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/email_result_info"}}}],"type":"object"},"email_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/email_messages"},"messages":{"$ref":"#/components/schemas/email_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"email_api-response-single":{"allOf":[{"$ref":"#/components/schemas/email_api-response-common"}],"type":"object"},"email_catch_all_rule":{"properties":{"actions":{"$ref":"#/components/schemas/email_rule_catchall-actions"},"enabled":{"$ref":"#/components/schemas/email_rule_enabled"},"id":{"$ref":"#/components/schemas/email_rule_identifier"},"matchers":{"$ref":"#/components/schemas/email_rule_catchall-matchers"},"name":{"$ref":"#/components/schemas/email_rule_name"},"tag":{"$ref":"#/components/schemas/email_rule_tag"}},"type":"object"},"email_catch_all_rule_response_single":{"allOf":[{"$ref":"#/components/schemas/email_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/email_catch_all_rule"}}}]},"email_create_destination_address_properties":{"properties":{"email":{"$ref":"#/components/schemas/email_email"}},"required":["email"],"type":"object"},"email_create_rule_properties":{"properties":{"actions":{"$ref":"#/components/schemas/email_rule_actions"},"enabled":{"$ref":"#/components/schemas/email_rule_enabled"},"matchers":{"$ref":"#/components/schemas/email_rule_matchers"},"name":{"$ref":"#/components/schemas/email_rule_name"},"priority":{"$ref":"#/components/schemas/email_rule_priority"}},"required":["actions","matchers"],"type":"object"},"email_created":{"description":"The date and time the destination address has been created.","example":"2014-01-02T02:20:00Z","format":"date-time","readOnly":true,"type":"string"},"email_destination_address_identifier":{"description":"Destination address identifier.","example":"ea95132c15732412d22c1476fa83f27a","maxLength":32,"readOnly":true,"type":"string"},"email_destination_address_properties":{"properties":{"created":{"$ref":"#/components/schemas/email_created"},"email":{"$ref":"#/components/schemas/email_email"},"id":{"$ref":"#/components/schemas/email_destination_address_identifier"},"modified":{"$ref":"#/components/schemas/email_modified"},"tag":{"$ref":"#/components/schemas/email_destination_address_tag"},"verified":{"$ref":"#/components/schemas/email_verified"}},"type":"object"},"email_destination_address_response_single":{"allOf":[{"$ref":"#/components/schemas/email_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/email_addresses"}}}]},"email_destination_address_tag":{"deprecated":true,"description":"Destination address tag. (Deprecated, replaced by destination address identifier)","example":"ea95132c15732412d22c1476fa83f27a","maxLength":32,"readOnly":true,"type":"string"},"email_destination_addresses_response_collection":{"allOf":[{"$ref":"#/components/schemas/email_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/email_addresses"},"type":"array"},"result_info":{"properties":{"count":{"example":1},"page":{"example":1},"per_page":{"example":20},"total_count":{"example":1}},"type":"object"}}}]},"email_dns_record":{"description":"List of records needed to enable an Email Routing zone.","properties":{"content":{"description":"DNS record content.","example":"route1.mx.cloudflare.net","type":"string"},"name":{"description":"DNS record name (or @ for the zone apex).","example":"example.com","maxLength":255,"type":"string"},"priority":{"description":"Required for MX, SRV and URI records. Unused by other record types. Records with lower priorities are preferred.","example":12,"maximum":65535,"minimum":0,"type":"number"},"ttl":{"anyOf":[{"example":3600,"maximum":86400,"minimum":1,"type":"number"},{"enum":[1],"type":"number"}],"description":"Time to live, in seconds, of the DNS record. Must be between 60 and 86400, or 1 for 'automatic'.","example":1,"type":"number"},"type":{"description":"DNS record type.","enum":["A","AAAA","CNAME","HTTPS","TXT","SRV","LOC","MX","NS","CERT","DNSKEY","DS","NAPTR","SMIMEA","SSHFP","SVCB","TLSA","URI"],"example":"NS","readOnly":true,"type":"string"}},"type":"object"},"email_dns_settings_response_collection":{"allOf":[{"$ref":"#/components/schemas/email_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/email_dns_record"},"type":"array"}}}]},"email_email":{"description":"The contact email address of the user.","example":"user@example.com","maxLength":90,"type":"string"},"email_email_setting_created":{"description":"The date and time the settings have been created.","example":"2014-01-02T02:20:00Z","format":"date-time","readOnly":true,"type":"string"},"email_email_setting_enabled":{"default":true,"description":"State of the zone settings for Email Routing.","enum":[true,false],"example":true,"type":"boolean"},"email_email_setting_identifier":{"description":"Email Routing settings identifier.","example":"75610dab9e69410a82cf7e400a09ecec","maxLength":32,"readOnly":true,"type":"string"},"email_email_setting_modified":{"description":"The date and time the settings have been modified.","example":"2014-01-02T02:20:00Z","format":"date-time","readOnly":true,"type":"string"},"email_email_setting_name":{"description":"Domain of your zone.","example":"example.net","readOnly":true,"type":"string"},"email_email_setting_skip-wizard":{"default":true,"description":"Flag to check if the user skipped the configuration wizard.","enum":[true,false],"example":true,"type":"boolean"},"email_email_setting_status":{"description":"Show the state of your account, and the type or configuration error.","enum":["ready","unconfigured","misconfigured","misconfigured/locked","unlocked"],"example":"ready","readOnly":true,"type":"string"},"email_email_setting_tag":{"deprecated":true,"description":"Email Routing settings tag. (Deprecated, replaced by Email Routing settings identifier)","example":"75610dab9e69410a82cf7e400a09ecec","maxLength":32,"readOnly":true,"type":"string"},"email_email_settings_properties":{"properties":{"created":{"$ref":"#/components/schemas/email_email_setting_created"},"enabled":{"$ref":"#/components/schemas/email_email_setting_enabled"},"id":{"$ref":"#/components/schemas/email_email_setting_identifier"},"modified":{"$ref":"#/components/schemas/email_email_setting_modified"},"name":{"$ref":"#/components/schemas/email_email_setting_name"},"skip_wizard":{"$ref":"#/components/schemas/email_email_setting_skip-wizard"},"status":{"$ref":"#/components/schemas/email_email_setting_status"},"tag":{"$ref":"#/components/schemas/email_email_setting_tag"}},"type":"object"},"email_email_settings_response_single":{"allOf":[{"$ref":"#/components/schemas/email_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/email_settings"}}}]},"email_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"email_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"email_modified":{"description":"The date and time the destination address was last modified.","example":"2014-01-02T02:20:00Z","format":"date-time","readOnly":true,"type":"string"},"email_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"email_rule_action":{"description":"Actions pattern.","properties":{"type":{"description":"Type of supported action.","enum":["drop","forward","worker"],"example":"forward","type":"string"},"value":{"items":{"description":"Value for action.","example":"destinationaddress@example.net","maxLength":90,"type":"string"},"type":"array"}},"required":["type","value"],"type":"object"},"email_rule_actions":{"description":"List actions patterns.","items":{"$ref":"#/components/schemas/email_rule_action"},"type":"array"},"email_rule_catchall-action":{"description":"Action for the catch-all routing rule.","properties":{"type":{"description":"Type of action for catch-all rule.","enum":["drop","forward","worker"],"example":"forward","type":"string"},"value":{"items":{"description":"Input value for action.","example":"destinationaddress@example.net","maxLength":90,"type":"string"},"type":"array"}},"required":["type"],"type":"object"},"email_rule_catchall-actions":{"description":"List actions for the catch-all routing rule.","items":{"$ref":"#/components/schemas/email_rule_catchall-action"},"type":"array"},"email_rule_catchall-matcher":{"description":"Matcher for catch-all routing rule.","properties":{"type":{"description":"Type of matcher. Default is 'all'.","enum":["all"],"example":"all","type":"string"}},"required":["type"],"type":"object"},"email_rule_catchall-matchers":{"description":"List of matchers for the catch-all routing rule.","items":{"$ref":"#/components/schemas/email_rule_catchall-matcher"},"type":"array"},"email_rule_enabled":{"default":true,"description":"Routing rule status.","enum":[true,false],"example":true,"type":"boolean"},"email_rule_identifier":{"description":"Routing rule identifier.","example":"a7e6fb77503c41d8a7f3113c6918f10c","maxLength":32,"readOnly":true,"type":"string"},"email_rule_matcher":{"description":"Matching pattern to forward your actions.","properties":{"field":{"description":"Field for type matcher.","enum":["to"],"example":"to","type":"string"},"type":{"description":"Type of matcher.","enum":["literal"],"example":"literal","type":"string"},"value":{"description":"Value for matcher.","example":"test@example.com","maxLength":90,"type":"string"}},"required":["type","field","value"],"type":"object"},"email_rule_matchers":{"description":"Matching patterns to forward to your actions.","items":{"$ref":"#/components/schemas/email_rule_matcher"},"type":"array"},"email_rule_name":{"description":"Routing rule name.","example":"Send to user@example.net rule.","maxLength":256,"type":"string"},"email_rule_priority":{"default":0,"description":"Priority of the routing rule.","minimum":0,"type":"number"},"email_rule_properties":{"properties":{"actions":{"$ref":"#/components/schemas/email_rule_actions"},"enabled":{"$ref":"#/components/schemas/email_rule_enabled"},"id":{"$ref":"#/components/schemas/email_rule_identifier"},"matchers":{"$ref":"#/components/schemas/email_rule_matchers"},"name":{"$ref":"#/components/schemas/email_rule_name"},"priority":{"$ref":"#/components/schemas/email_rule_priority"},"tag":{"$ref":"#/components/schemas/email_rule_tag"}},"type":"object"},"email_rule_response_single":{"allOf":[{"$ref":"#/components/schemas/email_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/email_rules"}}}]},"email_rule_tag":{"deprecated":true,"description":"Routing rule tag. (Deprecated, replaced by routing rule identifier)","example":"a7e6fb77503c41d8a7f3113c6918f10c","maxLength":32,"readOnly":true,"type":"string"},"email_rules":{"allOf":[{"$ref":"#/components/schemas/email_rule_properties"}],"type":"object"},"email_rules_response_collection":{"allOf":[{"$ref":"#/components/schemas/email_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/email_rules"},"type":"array"},"result_info":{"properties":{"count":{"example":1},"page":{"example":1},"per_page":{"example":20},"total_count":{"example":1}},"type":"object"}}}]},"email_settings":{"allOf":[{"$ref":"#/components/schemas/email_email_settings_properties"}],"type":"object"},"email_update_catch_all_rule_properties":{"properties":{"actions":{"$ref":"#/components/schemas/email_rule_catchall-actions"},"enabled":{"$ref":"#/components/schemas/email_rule_enabled"},"matchers":{"$ref":"#/components/schemas/email_rule_catchall-matchers"},"name":{"$ref":"#/components/schemas/email_rule_name"}},"required":["actions","matchers"],"type":"object"},"email_update_rule_properties":{"properties":{"actions":{"$ref":"#/components/schemas/email_rule_actions"},"enabled":{"$ref":"#/components/schemas/email_rule_enabled"},"matchers":{"$ref":"#/components/schemas/email_rule_matchers"},"name":{"$ref":"#/components/schemas/email_rule_name"},"priority":{"$ref":"#/components/schemas/email_rule_priority"}},"required":["actions","matchers"],"type":"object"},"email_verified":{"description":"The date and time the destination address has been verified. Null means not verified yet.","example":"2014-01-02T02:20:00Z","format":"date-time","readOnly":true,"type":"string"},"email_zone_id":{"$ref":"#/components/schemas/email_identifier"},"firewall_account_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"firewall_action":{"anyOf":[{"properties":{"mode":{"$ref":"#/components/schemas/firewall_mode"},"response":{"$ref":"#/components/schemas/firewall_custom_response"},"timeout":{"$ref":"#/components/schemas/firewall_timeout"}},"type":"object"}],"description":"The action to perform when the threshold of matched traffic within the configured period is exceeded.","type":"object"},"firewall_action_mode":{"default":"challenge","description":"The default action performed by the rules in the WAF package.","enum":["simulate","block","challenge"],"type":"string"},"firewall_action_parameters":{"description":"The parameters configuring the action.","oneOf":[{"$ref":"#/components/schemas/firewall_action_parameters_route"}],"type":"object"},"firewall_action_parameters_redirect":{"description":"The configuration parameters for the redirect action.","properties":{"from_value":{"description":"The parameters that control the redirect.","properties":{"preserve_query_string":{"description":"Whether the query string for the request should be carried to the redirect's target url.","example":true,"type":"boolean"},"status_code":{"description":"The status code to use for the redirect.","type":"integer"},"target_url":{"oneOf":[{"properties":{"expression":{"description":"An expression defining a dynamic value for the target url of the redirect.","example":"concat(http.request.full_uri, \"/latest\")","type":"string"}},"type":"object"},{"properties":{"value":{"description":"The value defining the target url of the redirect.","example":"https://example.com/blog/latest","type":"string"}},"type":"object"}]}},"type":"object"}}},"firewall_action_parameters_rewrite":{"description":"The configuration parameters for the rewrite action.","properties":{"uri":{"description":"The URI rewrite configuration to rewrite the URI path, the query string, or both.","properties":{"path":{"description":"The new URI path sent to the origin."},"query":{"description":"The new query string sent to the origin."}},"type":"object"}}},"firewall_action_parameters_route":{"description":"The configuration parameters for the route action.","properties":{"host_header":{"description":"The value of the Host header.","example":"foo.example.com","type":"string"},"origin":{"description":"The parameters that control where the origin is.","properties":{"host":{"description":"The host to use for origin.","example":"foo.example.com","type":"string"},"port":{"description":"The port to use for origin.","type":"integer"}},"type":"object"},"sni":{"description":"The parameters that control the SNI.","properties":{"value":{"description":"The SNI used to connect to the origin.","example":"foo.example.com","type":"string"}},"type":"object"}}},"firewall_action_parameters_set_cache_settings":{"description":"The configuration parameters for the set_cache_settings action.","properties":{"browser_ttl":{"description":"Set the Browser TTL.","properties":{"default":{"type":"integer"},"mode":{"example":"override_origin","type":"string"}},"type":"object"},"cache_key":{"description":"Set the Cache TTL.","properties":{"cache_deception_armor":{"example":true,"type":"boolean"},"custom_key":{"properties":{"cookie":{"properties":{"check_presence":{"example":["cookie_1"],"items":{},"type":"array"},"include":{"example":["cookie1"],"items":{},"type":"array"}},"type":"object"},"header":{"properties":{"check_presence":{"example":["header_1"],"items":{},"type":"array"},"include":{"example":["header1"],"items":{},"type":"array"}},"type":"object"},"host":{"properties":{"resolved":{"example":false,"type":"boolean"}},"type":"object"},"query_string":{"properties":{"include":{"example":"*","type":"string"}},"type":"object"},"user":{"properties":{"device_type":{"example":true,"type":"boolean"},"geo":{"example":false,"type":"boolean"},"lang":{"example":false,"type":"boolean"}},"type":"object"}},"type":"object"},"ignore_query_strings_order":{"example":true,"type":"boolean"}},"type":"object"},"edge_ttl":{"description":"Set the Cache TTL.","properties":{"mode":{"example":"respect_origin","type":"string"},"status_code_ttl":{"properties":{"status_code":{"type":"integer"},"value":{"type":"integer"}},"type":"object"}},"type":"object"},"origin_error_page_passthru":{"example":true,"type":"boolean"},"respect_strong_etags":{"example":true,"type":"boolean"},"serve_stale":{"properties":{"disable_stale_while_updating":{"example":true,"type":"boolean"}},"type":"object"}}},"firewall_action_parameters_set_config":{"description":"The configuration parameters for the set_config action.","properties":{"automatic_https_rewrites":{"description":"Enable or disable Automatic HTTPS Rewrites for matching requests","example":true,"type":"boolean"},"autominify":{"description":"Select which file extensions to minify automatically.","properties":{"css":{"example":true,"type":"boolean"},"html":{"example":true,"type":"boolean"},"js":{"example":true,"type":"boolean"}},"type":"object"},"bic":{"description":"Enable or disable Browser Integrity Check","example":true,"type":"boolean"},"disable_apps":{"description":"Disable all active Cloudflare Apps","example":true,"type":"boolean"},"disable_railgun":{"description":"Disable Cloudflare Railgun","example":true,"type":"boolean"},"disable_zaraz":{"description":"Disable Cloudflare Railgun","example":true,"type":"boolean"},"email_obfuscation":{"description":"Enable or disable Email Obfuscation","example":false,"type":"boolean"},"hotlink_protection":{"description":"Enable or disable Hotlink Protection","example":false,"type":"boolean"},"mirage":{"description":"Enable or disable Mirage","example":false,"type":"boolean"},"opportunistic_encryption":{"description":"Enable or disableOpportunistic Encryption","example":false,"type":"boolean"},"polish":{"description":"Set Polish compression options","example":"lossless","type":"string"},"rocket_loader":{"description":"Enable or disable Rocket Loader","example":false,"type":"boolean"},"security_level":{"description":"Set the Security Level","example":"low","type":"string"},"server_side_excludes":{"description":"Enable or disable Server Side Excludes","example":false,"type":"boolean"},"ssl":{"description":"Select the SSL encryption mode","example":"flexible","type":"string"},"sxg":{"description":"Enable or disable Signed Exchangesn(SXG)","example":false,"type":"boolean"}}},"firewall_anomaly_description":{"description":"A summary of the purpose/function of the WAF package.","example":"Covers OWASP Top 10 vulnerabilities and more.","readOnly":true,"type":"string"},"firewall_anomaly_detection_mode":{"description":"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","readOnly":true,"type":"string"},"firewall_anomaly_name":{"description":"The name of the WAF package.","example":"OWASP ModSecurity Core Rule Set","readOnly":true,"type":"string"},"firewall_anomaly_package":{"allOf":[{"$ref":"#/components/schemas/firewall_package_definition"},{"properties":{"action_mode":{"$ref":"#/components/schemas/firewall_action_mode"},"description":{"$ref":"#/components/schemas/firewall_anomaly_description"},"detection_mode":{"$ref":"#/components/schemas/firewall_anomaly_detection_mode"},"name":{"$ref":"#/components/schemas/firewall_anomaly_name"},"sensitivity":{"$ref":"#/components/schemas/firewall_sensitivity"}}}],"required":["id","name","description","zone_id","detection_mode","sensitivity","action_mode"],"title":"Anomaly detection WAF package (OWASP)"},"firewall_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"},"result_info":{"$ref":"#/components/schemas/firewall_result_info"}}}],"type":"object"},"firewall_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/firewall_messages"},"messages":{"$ref":"#/components/schemas/firewall_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"firewall_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/firewall_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/firewall_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"firewall_api-response-single":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-common"},{"properties":{"result":{"anyOf":[{"nullable":true,"type":"object"},{"nullable":true,"type":"string"}]}}}],"type":"object"},"firewall_api-response-single-id":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-common"},{"properties":{"result":{"nullable":true,"properties":{"id":{"$ref":"#/components/schemas/firewall_identifier"}},"required":["id"],"type":"object"}}}],"type":"object"},"firewall_asn_configuration":{"properties":{"target":{"description":"The configuration target. You must set the target to `asn` when specifying an Autonomous System Number (ASN) in the rule.","enum":["asn"],"example":"asn"},"value":{"description":"The AS number to match.","example":"AS12345","type":"string"}},"title":"An ASN configuration."},"firewall_body":{"description":"The response body to return. The value must conform to the configured content type.","example":"\u003cerror\u003eThis request has been rate-limited.\u003c/error\u003e","maxLength":10240,"type":"string"},"firewall_bypass":{"description":"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.","items":{"properties":{"name":{"enum":["url"],"example":"url","type":"string"},"value":{"description":"The URL to bypass.","example":"api.example.com/*","type":"string"}},"type":"object"},"type":"array"},"firewall_cache-rules_components-schemas-action_parameters":{"description":"The parameters configuring the action.","oneOf":[{"$ref":"#/components/schemas/firewall_action_parameters_set_cache_settings"}],"type":"object"},"firewall_cache-rules_components-schemas-rule":{"properties":{"action":{"example":"set_cache_settings"},"action_parameters":{"$ref":"#/components/schemas/firewall_cache-rules_components-schemas-action_parameters"},"description":{"example":"use the cache settings"},"expression":{"example":"http.cookie contains \"something\""},"id":{"example":"3a03d665bac047339bb530ecb439a90d"},"version":{"example":"1"}}},"firewall_cache-rules_components-schemas-ruleset":{"properties":{"description":{"example":""},"id":{"example":"2f2feab2026849078ba485f918791bdc"},"kind":{"example":"zone"},"name":{"example":"default"},"phase":{"example":"http_request_cache_settings"},"rules":{"description":"The rules in the ruleset.","items":{"$ref":"#/components/schemas/firewall_cache-rules_components-schemas-rule"},"type":"array"}}},"firewall_cidr_configuration":{"properties":{"target":{"description":"The configuration target. You must set the target to `ip_range` when specifying an IP address range in the rule.","enum":["ip_range"],"example":"ip_range"},"value":{"description":"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","type":"string"}},"title":"An IP address range configuration."},"firewall_components-schemas-action":{"description":"The action to perform when the rule matches.","example":"execute","pattern":"^[a-z_]+$","type":"string"},"firewall_components-schemas-action_parameters":{"description":"The parameters configuring the action.","oneOf":[{"$ref":"#/components/schemas/firewall_action_parameters_redirect"}],"type":"object"},"firewall_components-schemas-description":{"description":"An informative summary of the current URI-based WAF override.","example":"Enable Cloudflare Magento ruleset for shop.example.com","maxLength":1024,"nullable":true,"type":"string"},"firewall_components-schemas-id":{"description":"The unique identifier of the User Agent Blocking rule.","example":"372e67954025e0ba6aaa6d586b9e0b59","maxLength":32,"readOnly":true,"type":"string"},"firewall_components-schemas-identifier":{"description":"The unique identifier of the resource.","example":"de677e5818985db1285d0e80225f06e5","maxLength":32,"readOnly":true,"type":"string"},"firewall_components-schemas-mode":{"description":"The action to apply to a matched request.","enum":["block","challenge","js_challenge","managed_challenge"],"example":"js_challenge","maxLength":12},"firewall_components-schemas-paused":{"description":"When true, indicates that the firewall rule is currently paused.","example":false,"type":"boolean"},"firewall_components-schemas-priority":{"description":"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,"type":"number"},"firewall_components-schemas-ref":{"description":"The reference of the rule (the rule ID by default).","example":"my_ref","type":"string"},"firewall_components-schemas-rule":{"properties":{"action":{"example":"route"},"action_parameters":{"$ref":"#/components/schemas/firewall_action_parameters"},"description":{"example":"change the host header, origin, and SNI"},"expression":{"example":"http.cookie contains \"something\""},"id":{"example":"3a03d665bac047339bb530ecb439a90d"},"version":{"example":"1"}}},"firewall_components-schemas-ruleset":{"properties":{"description":{"example":""},"id":{"example":"2f2feab2026849078ba485f918791bdc"},"kind":{"example":"zone"},"name":{"example":"default"},"phase":{"example":"http_config_settings"},"rules":{"description":"The rules in the ruleset.","items":{"$ref":"#/components/schemas/firewall_config-rules_components-schemas-rule"},"type":"array"}}},"firewall_config-rules_components-schemas-action_parameters":{"description":"The parameters configuring the action.","oneOf":[{"$ref":"#/components/schemas/firewall_action_parameters_set_config"}],"type":"object"},"firewall_config-rules_components-schemas-rule":{"properties":{"action":{"example":"set_config"},"action_parameters":{"$ref":"#/components/schemas/firewall_config-rules_components-schemas-action_parameters"},"description":{"example":"enable Email Obfuscation"},"expression":{"example":"http.cookie contains \"something\""},"id":{"example":"3a03d665bac047339bb530ecb439a90d"},"version":{"example":"1"}}},"firewall_configuration":{"description":"The rule configuration.","oneOf":[{"$ref":"#/components/schemas/firewall_ip_configuration"},{"$ref":"#/components/schemas/firewall_ipv6_configuration"},{"$ref":"#/components/schemas/firewall_cidr_configuration"},{"$ref":"#/components/schemas/firewall_asn_configuration"},{"$ref":"#/components/schemas/firewall_country_configuration"}],"type":"object"},"firewall_configurations":{"anyOf":[{"$ref":"#/components/schemas/firewall_schemas-ip_configuration"},{"$ref":"#/components/schemas/firewall_schemas-cidr_configuration"}],"description":"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.","items":{"anyOf":[{"$ref":"#/components/schemas/firewall_schemas-ip_configuration"},{"$ref":"#/components/schemas/firewall_schemas-cidr_configuration"}]},"type":"array"},"firewall_content_type":{"description":"The content type of the body. Must be one of the following: `text/plain`, `text/xml`, or `application/json`.","example":"text/xml","maxLength":50,"type":"string"},"firewall_country_configuration":{"properties":{"target":{"description":"The configuration target. You must set the target to `country` when specifying a country code in the rule.","enum":["country"],"example":"country"},"value":{"description":"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","type":"string"}},"title":"A country configuration."},"firewall_create_update_rule":{"description":"A rule object.","properties":{"action":{"$ref":"#/components/schemas/firewall_components-schemas-action"},"action_parameters":{"$ref":"#/components/schemas/firewall_schemas-action_parameters"},"description":{"$ref":"#/components/schemas/firewall_rules_components-schemas-description"},"enabled":{"$ref":"#/components/schemas/firewall_enabled"},"expression":{"$ref":"#/components/schemas/firewall_schemas-expression"},"logging":{"$ref":"#/components/schemas/firewall_logging"},"ref":{"$ref":"#/components/schemas/firewall_components-schemas-ref"}},"required":["expression","action"],"type":"object"},"firewall_create_update_rules":{"description":"The list of rules in the ruleset.","items":{"anyOf":[{"$ref":"#/components/schemas/firewall_create_update_rule"},{"description":"The unique ID of a rule."}]},"type":"array"},"firewall_created_on":{"description":"The timestamp of when the rule was created.","example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"firewall_custom_response":{"anyOf":[{"properties":{"body":{"$ref":"#/components/schemas/firewall_body"},"content_type":{"$ref":"#/components/schemas/firewall_content_type"}},"type":"object"}],"description":"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.\nNotes: 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.","type":"object"},"firewall_delete_filter_if_unused":{"description":"When true, indicates that Cloudflare should also delete the associated filter if there are no other firewall rules referencing the filter.","type":"boolean"},"firewall_deleted":{"description":"When true, indicates that the firewall rule was deleted.","example":true,"type":"boolean"},"firewall_deleted-filter":{"additionalProperties":false,"properties":{"deleted":{"$ref":"#/components/schemas/firewall_deleted"},"id":{"$ref":"#/components/schemas/firewall_filters_components-schemas-id"}},"required":["id","deleted"]},"firewall_description":{"description":"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,"type":"string"},"firewall_description_search":{"description":"A string to search for in the description of existing rules.","example":"abusive","type":"string"},"firewall_detection_mode":{"description":"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).","enum":["anomaly","traditional"],"example":"traditional","readOnly":true,"type":"string"},"firewall_disabled":{"description":"When true, indicates that the rate limit is currently disabled.","example":false,"type":"boolean"},"firewall_dynamic-redirect-rules_components-schemas-rule":{"properties":{"action":{"example":"redirect"},"action_parameters":{"$ref":"#/components/schemas/firewall_components-schemas-action_parameters"},"description":{"example":"Blog redirect"},"expression":{"example":"http.request.uri.path == \"/blog\""},"id":{"example":"3a03d665bac047339bb530ecb439a90d"},"version":{"example":"1"}}},"firewall_email":{"description":"The contact email address of the user.","example":"user@example.com","maxLength":90,"type":"string"},"firewall_enabled":{"default":"true","description":"Whether the rule should be executed.","example":true,"type":"boolean"},"firewall_expression":{"description":"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","type":"string"},"firewall_filter":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/firewall_filters_components-schemas-description"},"expression":{"$ref":"#/components/schemas/firewall_expression"},"id":{"$ref":"#/components/schemas/firewall_filters_components-schemas-id"},"paused":{"$ref":"#/components/schemas/firewall_filters_components-schemas-paused"},"ref":{"$ref":"#/components/schemas/firewall_schemas-ref"}},"type":"object"},"firewall_filter-delete-response-collection":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-collection"},{"properties":{"result":{"items":{"allOf":[{"$ref":"#/components/schemas/firewall_filter"},{"required":["id"],"type":"object"}]},"type":"array"}},"type":"object"}]},"firewall_filter-delete-response-single":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-single"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/firewall_filter"},{"required":["id"],"type":"object"}]}},"required":["result"],"type":"object"}]},"firewall_filter-response-collection":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-collection"},{"properties":{"result":{"items":{"allOf":[{"$ref":"#/components/schemas/firewall_filter"},{"required":["id","expression","paused"],"type":"object"}]},"type":"array"}},"type":"object"}]},"firewall_filter-response-single":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/firewall_filter"}},"required":["result"],"type":"object"}]},"firewall_filter-rule-base":{"properties":{"action":{"$ref":"#/components/schemas/firewall_schemas-action"},"description":{"$ref":"#/components/schemas/firewall_firewall-rules_components-schemas-description"},"id":{"$ref":"#/components/schemas/firewall_firewall-rules_components-schemas-id"},"paused":{"$ref":"#/components/schemas/firewall_components-schemas-paused"},"priority":{"$ref":"#/components/schemas/firewall_components-schemas-priority"},"products":{"$ref":"#/components/schemas/firewall_products"},"ref":{"$ref":"#/components/schemas/firewall_ref"}},"type":"object"},"firewall_filter-rule-response":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-rule-base"},{"properties":{"filter":{"oneOf":[{"$ref":"#/components/schemas/firewall_filter"},{"$ref":"#/components/schemas/firewall_deleted-filter"}]}}}],"type":"object"},"firewall_filter-rules-response-collection":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-collection"},{"properties":{"result":{"items":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-rule-response"},{"required":["id","filter","action","paused"],"type":"object"}]},"type":"array"}},"required":["result"],"type":"object"}]},"firewall_filter-rules-response-collection-delete":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-collection"},{"properties":{"result":{"items":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-rule-response"},{"required":["id"],"type":"object"}]},"type":"array"}},"required":["result"],"type":"object"}]},"firewall_filter-rules-single-response":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-single"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-rule-response"},{"required":["id","filter","action","paused"],"type":"object"}]}},"required":["result"],"type":"object"}]},"firewall_filter-rules-single-response-delete":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-single"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-rule-response"},{"required":["id"],"type":"object"}]}},"required":["result"],"type":"object"}]},"firewall_filters":{"properties":{"configuration.target":{"description":"The target to search in existing rules.","enum":["ip","ip_range","asn","country"],"example":"ip","type":"string"},"configuration.value":{"description":"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`.\nNotes: 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","type":"string"},"match":{"default":"all","description":"When set to `all`, all the search requirements must match. When set to `any`, only one of the search requirements has to match.","enum":["any","all"],"type":"string"},"mode":{"$ref":"#/components/schemas/firewall_schemas-mode"},"notes":{"description":"The string to search for in the notes of existing IP Access rules.\nNotes: 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","type":"string"}},"type":"object"},"firewall_filters_components-schemas-description":{"description":"An informative summary of the filter.","example":"Restrict access from these browsers on this address range.","maxLength":500,"type":"string"},"firewall_filters_components-schemas-id":{"description":"The unique identifier of the filter.","example":"372e67954025e0ba6aaa6d586b9e0b61","maxLength":32,"minLength":32,"readOnly":true,"type":"string"},"firewall_filters_components-schemas-paused":{"description":"When true, indicates that the filter is currently paused.","example":false,"type":"boolean"},"firewall_firewall-rules_components-schemas-description":{"description":"An informative summary of the firewall rule.","example":"Blocks traffic identified during investigation for MIR-31","maxLength":500,"type":"string"},"firewall_firewall-rules_components-schemas-id":{"description":"The unique identifier of the firewall rule.","example":"372e67954025e0ba6aaa6d586b9e0b60","maxLength":32,"readOnly":true,"type":"string"},"firewall_firewalluablock":{"properties":{"configuration":{"$ref":"#/components/schemas/firewall_schemas-configuration"},"description":{"$ref":"#/components/schemas/firewall_ua-rules_components-schemas-description"},"id":{"$ref":"#/components/schemas/firewall_components-schemas-id"},"mode":{"$ref":"#/components/schemas/firewall_components-schemas-mode"},"paused":{"$ref":"#/components/schemas/firewall_schemas-paused"}}},"firewall_firewalluablock_response_collection":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/firewall_ua-rules"},"type":"array"}},"type":"object"}]},"firewall_firewalluablock_response_single":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-single"},{"properties":{"result":{"type":"object"}},"type":"object"}]},"firewall_groups":{"additionalProperties":true,"description":"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"},"type":"object"},"firewall_header_name":{"description":"The name of the response header to match.","example":"Cf-Cache-Status","type":"string"},"firewall_header_op":{"description":"The operator used when matching: `eq` means \"equal\" and `ne` means \"not equal\".","enum":["eq","ne"],"example":"ne","type":"string"},"firewall_header_value":{"description":"The value of the response header, which must match exactly.","example":"HIT","type":"string"},"firewall_id":{"description":"The unique identifier of the rate limit.","example":"372e67954025e0ba6aaa6d586b9e0b59","maxLength":32,"readOnly":true,"type":"string"},"firewall_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"firewall_ip_configuration":{"properties":{"target":{"description":"The configuration target. You must set the target to `ip` when specifying an IP address in the rule.","enum":["ip"],"example":"ip"},"value":{"description":"The IP address to match. This address will be compared to the IP address of incoming requests.","example":"198.51.100.4","type":"string"}},"title":"An IP address configuration."},"firewall_ip_range_search":{"description":"A single IP address range to search for in existing rules.","example":"1.2.3.0/16","type":"string"},"firewall_ip_search":{"description":"A single IP address to search for in existing rules.","example":"1.2.3.4","type":"string"},"firewall_ipv6_configuration":{"properties":{"target":{"description":"The configuration target. You must set the target to `ip6` when specifying an IPv6 address in the rule.","enum":["ip6"],"example":"ip6"},"value":{"description":"The IPv6 address to match.","example":"2001:DB8:100::CF","type":"string"}},"title":"An IPv6 address configuration."},"firewall_lockdowns_components-schemas-description":{"description":"An informative summary of the rule.","example":"Restrict access to these endpoints to requests from a known IP address","maxLength":1024,"type":"string"},"firewall_lockdowns_components-schemas-id":{"description":"The unique identifier of the Zone Lockdown rule.","example":"372e67954025e0ba6aaa6d586b9e0b59","maxLength":32,"readOnly":true,"type":"string"},"firewall_logging":{"description":"An object configuring the rule's logging behavior.","example":{"enabled":true},"properties":{"enabled":{"description":"Whether to generate a log when the rule matches.","example":true,"type":"boolean"}},"type":"object"},"firewall_match":{"description":"Determines which traffic the rate limit counts towards the threshold.","oneOf":[{"properties":{"headers":{"items":{"properties":{"name":{"$ref":"#/components/schemas/firewall_header_name"},"op":{"$ref":"#/components/schemas/firewall_header_op"},"value":{"$ref":"#/components/schemas/firewall_header_value"}},"type":"object"},"type":"array"},"request":{"properties":{"methods":{"$ref":"#/components/schemas/firewall_methods"},"schemes":{"$ref":"#/components/schemas/firewall_schemes"},"url":{"$ref":"#/components/schemas/firewall_url"}},"type":"object"},"response":{"properties":{"origin_traffic":{"$ref":"#/components/schemas/firewall_origin_traffic"}},"type":"object"}},"type":"object"}],"type":"object"},"firewall_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"firewall_methods":{"description":"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","POST"],"items":{"description":"An HTTP method or `_ALL_` to indicate all methods.","enum":["GET","POST","PUT","DELETE","PATCH","HEAD","_ALL_"],"example":"GET","type":"string"},"type":"array"},"firewall_mode":{"description":"The action to perform.","enum":["simulate","ban","challenge","js_challenge","managed_challenge"],"example":"challenge","type":"string"},"firewall_modified_on":{"description":"The timestamp of when the rule was last modified.","example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"firewall_name":{"description":"The name of the WAF package.","example":"USER","readOnly":true,"type":"string"},"firewall_notes":{"description":"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.","type":"string"},"firewall_origin_traffic":{"description":"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.\nNotes: This field is deprecated. Instead, use response headers and set \"origin_traffic\" to \"false\" to avoid legacy behaviour interacting with the \"response_headers\" property.","type":"boolean"},"firewall_override":{"properties":{"description":{"$ref":"#/components/schemas/firewall_components-schemas-description"},"groups":{"$ref":"#/components/schemas/firewall_groups"},"id":{"$ref":"#/components/schemas/firewall_schemas-id"},"paused":{"$ref":"#/components/schemas/firewall_paused"},"priority":{"$ref":"#/components/schemas/firewall_priority"},"rewrite_action":{"$ref":"#/components/schemas/firewall_rewrite_action"},"rules":{"$ref":"#/components/schemas/firewall_rules"},"urls":{"$ref":"#/components/schemas/firewall_urls"}}},"firewall_override_response_collection":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-collection"},{"properties":{"result":{"items":{"allOf":[{"$ref":"#/components/schemas/firewall_override"},{"required":["id","paused","urls","priority"],"type":"object"}]},"type":"array"}},"required":["result"],"type":"object"}]},"firewall_override_response_single":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/firewall_override"}},"required":["result"],"type":"object"}]},"firewall_package":{"oneOf":[{"$ref":"#/components/schemas/firewall_package_definition"},{"$ref":"#/components/schemas/firewall_anomaly_package"}],"type":"object"},"firewall_package_definition":{"properties":{"description":{"$ref":"#/components/schemas/firewall_schemas-description"},"detection_mode":{"$ref":"#/components/schemas/firewall_detection_mode"},"id":{"$ref":"#/components/schemas/firewall_identifier"},"name":{"$ref":"#/components/schemas/firewall_name"},"status":{"$ref":"#/components/schemas/firewall_status"},"zone_id":{"$ref":"#/components/schemas/firewall_identifier"}},"required":["id","name","description","detection_mode","zone_id"],"title":"Traditional WAF package"},"firewall_package_response_collection":{"anyOf":[{"$ref":"#/components/schemas/firewall_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/firewall_package"},"type":"array"}}}]},"firewall_package_response_single":{"oneOf":[{"$ref":"#/components/schemas/firewall_api-response-single"},{"properties":{"result":{"type":"object"}}}]},"firewall_paused":{"description":"When true, indicates that the WAF package is currently paused.","type":"boolean"},"firewall_period":{"description":"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,"type":"number"},"firewall_phase":{"description":"The phase where the ruleset is executed.","enum":["http_request_transform","http_request_late_transform","http_response_headers_transform"],"type":"string"},"firewall_priority":{"description":"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,"type":"number"},"firewall_products":{"items":{"description":"A list of products to bypass for a request when using the `bypass` action.","enum":["zoneLockdown","uaBlock","bic","hot","securityLevel","rateLimit","waf"],"example":"waf","type":"string"},"type":"array"},"firewall_rate-limits":{"allOf":[{"$ref":"#/components/schemas/firewall_ratelimit"}],"type":"object"},"firewall_ratelimit":{"properties":{"action":{"$ref":"#/components/schemas/firewall_action"},"bypass":{"$ref":"#/components/schemas/firewall_bypass"},"description":{"$ref":"#/components/schemas/firewall_description"},"disabled":{"$ref":"#/components/schemas/firewall_disabled"},"id":{"$ref":"#/components/schemas/firewall_id"},"match":{"$ref":"#/components/schemas/firewall_match"},"period":{"$ref":"#/components/schemas/firewall_period"},"threshold":{"$ref":"#/components/schemas/firewall_threshold"}}},"firewall_ratelimit_response_collection":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/firewall_rate-limits"},"type":"array"}},"type":"object"}]},"firewall_ratelimit_response_single":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-single"},{"properties":{"result":{"type":"object"}},"type":"object"}]},"firewall_ref":{"description":"A short reference tag. Allows you to select related firewall rules.","example":"MIR-31","maxLength":50,"type":"string"},"firewall_response_collection":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-collection"},{"properties":{"result":{"items":{"type":"object"},"type":"array"}},"type":"object"}]},"firewall_response_single":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-single"},{"properties":{"result":{"type":"object"}},"type":"object"}]},"firewall_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"firewall_rewrite_action":{"description":"Specifies that, when a WAF rule matches, its configured action will be replaced by the action configured in this object.","properties":{"block":{"$ref":"#/components/schemas/firewall_waf_rewrite_action"},"challenge":{"$ref":"#/components/schemas/firewall_waf_rewrite_action"},"default":{"$ref":"#/components/schemas/firewall_waf_rewrite_action"},"disable":{"$ref":"#/components/schemas/firewall_waf_rewrite_action"},"simulate":{"$ref":"#/components/schemas/firewall_waf_rewrite_action"}},"type":"object"},"firewall_rule":{"properties":{"allowed_modes":{"description":"The available actions that a rule can apply to a matched request.","example":["whitelist","block","challenge","js_challenge","managed_challenge"],"items":{"$ref":"#/components/schemas/firewall_schemas-mode"},"readOnly":true,"type":"array"},"configuration":{"$ref":"#/components/schemas/firewall_configuration"},"created_on":{"description":"The timestamp of when the rule was created.","example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"id":{"$ref":"#/components/schemas/firewall_schemas-identifier"},"mode":{"$ref":"#/components/schemas/firewall_schemas-mode"},"modified_on":{"description":"The timestamp of when the rule was last modified.","example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"notes":{"$ref":"#/components/schemas/firewall_notes"}},"required":["id","mode","allowed_modes","configuration"],"type":"object"},"firewall_rule_collection_response":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/firewall_rule"},"type":"array"}}}]},"firewall_rule_single_id_response":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/firewall_schemas-identifier"}},"type":"object"}}}]},"firewall_rule_single_response":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/firewall_rule"}}}]},"firewall_rules":{"additionalProperties":{"allOf":[{"$ref":"#/components/schemas/firewall_waf_action"}],"example":"default"},"description":"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"},"type":"object"},"firewall_rules_components-schemas-description":{"default":"","description":"An informative description of the rule.","example":"Execute the OWASP ruleset when the IP address is not 1.1.1.1","type":"string"},"firewall_ruleset":{"properties":{"description":{"example":""},"id":{"example":"2f2feab2026849078ba485f918791bdc"},"kind":{"example":"zone"},"name":{"example":"default"},"phase":{"example":"http_request_origin"},"rules":{"description":"The rules in the ruleset.","items":{"$ref":"#/components/schemas/firewall_components-schemas-rule"},"type":"array"}}},"firewall_rulesets_components-schemas-description":{"default":"","description":"An informative description of the ruleset.","example":"My ruleset to execute managed rulesets","type":"string"},"firewall_schemas-action":{"description":"The action to apply to a matched request. The `log` action is only available on an Enterprise plan.","enum":["block","challenge","js_challenge","managed_challenge","allow","log","bypass"],"example":"block","type":"string"},"firewall_schemas-action_parameters":{"description":"The parameters configuring the rule action.","example":{"id":"4814384a9e5d4991b9815dcfc25d2f1f"},"type":"object"},"firewall_schemas-cidr_configuration":{"properties":{"target":{"description":"The configuration target. You must set the target to `ip_range` when specifying an IP address range in the Zone Lockdown rule.","enum":["ip_range"],"example":"ip_range"},"value":{"description":"The IP address range to match. You can only use prefix lengths `/16` and `/24`.","example":"198.51.100.4/16","type":"string"}},"title":"An IP address range configuration."},"firewall_schemas-configuration":{"description":"The configuration object for the current rule.","properties":{"target":{"description":"The configuration target for this rule. You must set the target to `ua` for User Agent Blocking rules.","example":"ua","type":"string"},"value":{"description":"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","type":"string"}},"type":"object"},"firewall_schemas-description":{"description":"A summary of the purpose/function of the WAF package.","example":"null","readOnly":true,"type":"string"},"firewall_schemas-description_search":{"description":"A string to search for in the description of existing rules.","example":"endpoints","type":"string"},"firewall_schemas-expression":{"description":"The expression defining which traffic will match the rule.","example":"ip.src ne 1.1.1.1","type":"string"},"firewall_schemas-id":{"description":"The unique identifier of the WAF override.","example":"de677e5818985db1285d0e80225f06e5","maxLength":32,"readOnly":true,"type":"string"},"firewall_schemas-identifier":{"description":"The unique identifier of the IP Access rule.","example":"92f17202ed8bd63d69a66b86a49a8f6b","maxLength":32,"readOnly":true,"type":"string"},"firewall_schemas-ip_configuration":{"properties":{"target":{"description":"The configuration target. You must set the target to `ip` when specifying an IP address in the Zone Lockdown rule.","enum":["ip"],"example":"ip"},"value":{"description":"The IP address to match. This address will be compared to the IP address of incoming requests.","example":"198.51.100.4","type":"string"}},"title":"An IP address configuration."},"firewall_schemas-mode":{"description":"The action to apply to a matched request.","enum":["block","challenge","whitelist","js_challenge","managed_challenge"],"example":"challenge","type":"string"},"firewall_schemas-paused":{"description":"When true, indicates that the rule is currently paused.","example":false,"type":"boolean"},"firewall_schemas-priority":{"description":"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,"type":"number"},"firewall_schemas-ref":{"description":"A short reference tag. Allows you to select related filters.","example":"FIL-100","maxLength":50,"type":"string"},"firewall_schemas-rule":{"allOf":[{"$ref":"#/components/schemas/firewall_rule"},{"properties":{"scope":{"description":"All zones owned by the user will have the rule applied.","properties":{"email":{"$ref":"#/components/schemas/firewall_email"},"id":{"$ref":"#/components/schemas/firewall_identifier"},"type":{"description":"The scope of the rule.","enum":["user","organization"],"example":"user","readOnly":true}},"readOnly":true,"type":"object"}}}],"required":["id","mode","allowed_modes","configuration","scope"],"type":"object"},"firewall_schemas-ruleset":{"properties":{"description":{"example":""},"id":{"example":"2f2feab2026849078ba485f918791bdc"},"kind":{"example":"zone"},"name":{"example":"default"},"phase":{"example":"http_request_dynamic_redirect"},"rules":{"description":"The rules in the ruleset.","items":{"$ref":"#/components/schemas/firewall_dynamic-redirect-rules_components-schemas-rule"},"type":"array"}}},"firewall_schemas-urls":{"description":"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.","items":{"example":"api.mysite.com/some/endpoint*","type":"string"},"type":"array"},"firewall_schemes":{"description":"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","HTTPS"],"items":{"description":"An HTTP scheme or `_ALL_` to indicate all schemes.","example":"HTTPS","type":"string"},"type":"array"},"firewall_sensitivity":{"default":"high","description":"The sensitivity of the WAF package.","enum":["high","medium","low","off"],"type":"string"},"firewall_status":{"default":"active","description":"When set to `active`, indicates that the WAF package will be applied to the zone.","enum":["active"],"readOnly":true,"type":"string"},"firewall_threshold":{"description":"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,"type":"number"},"firewall_timeout":{"description":"The time in seconds during which Cloudflare will perform the mitigation action. Must be an integer value greater than or equal to the period.\nNotes: 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,"type":"number"},"firewall_transform-rules_components-schemas-action_parameters":{"description":"The parameters configuring the action.","oneOf":[{"$ref":"#/components/schemas/firewall_action_parameters_rewrite"}],"type":"object"},"firewall_transform-rules_components-schemas-rule":{"properties":{"action":{"example":"rewrite"},"action_parameters":{"$ref":"#/components/schemas/firewall_transform-rules_components-schemas-action_parameters"},"description":{"example":"change request based on ip location"},"expression":{"example":"ip.geoip.country eq \"AL\""},"id":{"example":"3a03d665bac047339bb530ecb439a90d"},"version":{"example":"1"}}},"firewall_transform-rules_components-schemas-ruleset":{"properties":{"description":{"example":""},"id":{"example":"2f2feab2026849078ba485f918791bdc"},"kind":{"example":"zone"},"name":{"example":"default"},"phase":{"example":"http_request_transform"},"rules":{"description":"The rules in the ruleset.","items":{"$ref":"#/components/schemas/firewall_transform-rules_components-schemas-rule"},"type":"array"}}},"firewall_ua-rules":{"allOf":[{"$ref":"#/components/schemas/firewall_firewalluablock"}],"type":"object"},"firewall_ua-rules_components-schemas-description":{"description":"An informative summary of the rule.","example":"Prevent access from abusive clients identified by this User Agent to mitigate a DDoS attack","maxLength":1024,"type":"string"},"firewall_update_ruleset":{"description":"A ruleset object.","properties":{"description":{"$ref":"#/components/schemas/firewall_rulesets_components-schemas-description"},"rules":{"$ref":"#/components/schemas/firewall_create_update_rules"}},"required":["rules"],"type":"object"},"firewall_uri_search":{"description":"A single URI to search for in the list of URLs of existing rules.","example":"/some/path","type":"string"},"firewall_url":{"description":"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,"type":"string"},"firewall_urls":{"description":"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.","items":{"example":"shop.example.com/*","type":"string"},"type":"array"},"firewall_waf_action":{"description":"The WAF rule action to apply.","enum":["challenge","block","simulate","disable","default"]},"firewall_waf_rewrite_action":{"description":"The WAF rule action to apply.","enum":["challenge","block","simulate","disable","default"]},"firewall_zonelockdown":{"additionalProperties":false,"properties":{"configurations":{"$ref":"#/components/schemas/firewall_configurations"},"created_on":{"$ref":"#/components/schemas/firewall_created_on"},"description":{"$ref":"#/components/schemas/firewall_lockdowns_components-schemas-description"},"id":{"$ref":"#/components/schemas/firewall_lockdowns_components-schemas-id"},"modified_on":{"$ref":"#/components/schemas/firewall_modified_on"},"paused":{"$ref":"#/components/schemas/firewall_schemas-paused"},"urls":{"$ref":"#/components/schemas/firewall_schemas-urls"}},"required":["id","created_on","modified_on","paused","description","urls","configurations"]},"firewall_zonelockdown_response_collection":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/firewall_zonelockdown"},"type":"array"}},"required":["result"],"type":"object"}]},"firewall_zonelockdown_response_single":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/firewall_zonelockdown"}},"required":["result"],"type":"object"}]},"healthchecks_address":{"description":"The hostname or IP address of the origin server to run health checks on.","example":"www.example.com","type":"string"},"healthchecks_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/healthchecks_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"},"result_info":{"$ref":"#/components/schemas/healthchecks_result_info"}}}],"type":"object"},"healthchecks_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/healthchecks_messages"},"messages":{"$ref":"#/components/schemas/healthchecks_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"healthchecks_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/healthchecks_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/healthchecks_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"healthchecks_api-response-single":{"allOf":[{"$ref":"#/components/schemas/healthchecks_api-response-common"},{"properties":{"result":{"oneOf":[{"type":"object"},{"type":"string"}]}}}],"type":"object"},"healthchecks_check_regions":{"description":"A list of regions from which to run health checks. Null means Cloudflare will pick a default region.","example":["WEU","ENAM"],"items":{"description":"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, IN: India, SEAS: South East Asia, NEAS: North East Asia, ALL_REGIONS: all regions (BUSINESS and ENTERPRISE customers only).","enum":["WNAM","ENAM","WEU","EEU","NSAM","SSAM","OC","ME","NAF","SAF","IN","SEAS","NEAS","ALL_REGIONS"],"type":"string"},"nullable":true,"type":"array"},"healthchecks_consecutive_fails":{"default":1,"description":"The number of consecutive fails required from a health check before changing the health to unhealthy.","type":"integer"},"healthchecks_consecutive_successes":{"default":1,"description":"The number of consecutive successes required from a health check before changing the health to healthy.","type":"integer"},"healthchecks_description":{"description":"A human-readable description of the health check.","example":"Health check for www.example.com","type":"string"},"healthchecks_failure_reason":{"description":"The current failure reason if status is unhealthy.","example":"","readOnly":true,"type":"string"},"healthchecks_healthchecks":{"properties":{"address":{"$ref":"#/components/schemas/healthchecks_address"},"check_regions":{"$ref":"#/components/schemas/healthchecks_check_regions"},"consecutive_fails":{"$ref":"#/components/schemas/healthchecks_consecutive_fails"},"consecutive_successes":{"$ref":"#/components/schemas/healthchecks_consecutive_successes"},"created_on":{"$ref":"#/components/schemas/healthchecks_timestamp"},"description":{"$ref":"#/components/schemas/healthchecks_description"},"failure_reason":{"$ref":"#/components/schemas/healthchecks_failure_reason"},"http_config":{"$ref":"#/components/schemas/healthchecks_http_config"},"id":{"$ref":"#/components/schemas/healthchecks_identifier"},"interval":{"$ref":"#/components/schemas/healthchecks_interval"},"modified_on":{"$ref":"#/components/schemas/healthchecks_timestamp"},"name":{"$ref":"#/components/schemas/healthchecks_name"},"retries":{"$ref":"#/components/schemas/healthchecks_retries"},"status":{"$ref":"#/components/schemas/healthchecks_status"},"suspended":{"$ref":"#/components/schemas/healthchecks_suspended"},"tcp_config":{"$ref":"#/components/schemas/healthchecks_tcp_config"},"timeout":{"$ref":"#/components/schemas/healthchecks_timeout"},"type":{"$ref":"#/components/schemas/healthchecks_type"}},"type":"object"},"healthchecks_http_config":{"description":"Parameters specific to an HTTP or HTTPS health check.","nullable":true,"properties":{"allow_insecure":{"default":false,"description":"Do not validate the certificate when the health check uses HTTPS.","type":"boolean"},"expected_body":{"description":"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","type":"string"},"expected_codes":{"default":"200","description":"The expected HTTP response codes (e.g. \"200\") or code ranges (e.g. \"2xx\" for all codes starting with 2) of the health check.","example":["2xx","302"],"items":{"type":"string"},"nullable":true,"type":"array"},"follow_redirects":{"default":false,"description":"Follow redirects if the origin returns a 3xx status code.","type":"boolean"},"header":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"description":"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"]},"nullable":true,"type":"object"},"method":{"default":"GET","description":"The HTTP method to use for the health check.","enum":["GET","HEAD"],"type":"string"},"path":{"default":"/","description":"The endpoint path to health check against.","example":"/health","type":"string"},"port":{"default":80,"description":"Port number to connect to for the health check. Defaults to 80 if type is HTTP or 443 if type is HTTPS.","type":"integer"}},"type":"object"},"healthchecks_id_response":{"allOf":[{"$ref":"#/components/schemas/healthchecks_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/healthchecks_identifier"}},"type":"object"}}}]},"healthchecks_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"healthchecks_interval":{"default":60,"description":"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.","type":"integer"},"healthchecks_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"healthchecks_name":{"description":"A short name to identify the health check. Only alphanumeric characters, hyphens and underscores are allowed.","example":"server-1","type":"string"},"healthchecks_query_healthcheck":{"properties":{"address":{"$ref":"#/components/schemas/healthchecks_address"},"check_regions":{"$ref":"#/components/schemas/healthchecks_check_regions"},"consecutive_fails":{"$ref":"#/components/schemas/healthchecks_consecutive_fails"},"consecutive_successes":{"$ref":"#/components/schemas/healthchecks_consecutive_successes"},"description":{"$ref":"#/components/schemas/healthchecks_description"},"http_config":{"$ref":"#/components/schemas/healthchecks_http_config"},"interval":{"$ref":"#/components/schemas/healthchecks_interval"},"name":{"$ref":"#/components/schemas/healthchecks_name"},"retries":{"$ref":"#/components/schemas/healthchecks_retries"},"suspended":{"$ref":"#/components/schemas/healthchecks_suspended"},"tcp_config":{"$ref":"#/components/schemas/healthchecks_tcp_config"},"timeout":{"$ref":"#/components/schemas/healthchecks_timeout"},"type":{"$ref":"#/components/schemas/healthchecks_type"}},"required":["name","address"],"type":"object"},"healthchecks_response_collection":{"allOf":[{"$ref":"#/components/schemas/healthchecks_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/healthchecks_healthchecks"},"type":"array"}}}]},"healthchecks_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"healthchecks_retries":{"default":2,"description":"The number of retries to attempt in case of a timeout before marking the origin as unhealthy. Retries are attempted immediately.","type":"integer"},"healthchecks_single_response":{"allOf":[{"$ref":"#/components/schemas/healthchecks_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/healthchecks_healthchecks"}}}]},"healthchecks_status":{"description":"The current status of the origin server according to the health check.","enum":["unknown","healthy","unhealthy","suspended"],"example":"healthy","readOnly":true,"type":"string"},"healthchecks_suspended":{"default":false,"description":"If suspended, no health checks are sent to the origin.","type":"boolean"},"healthchecks_tcp_config":{"description":"Parameters specific to TCP health check.","nullable":true,"properties":{"method":{"default":"connection_established","description":"The TCP connection method to use for the health check.","enum":["connection_established"],"type":"string"},"port":{"default":80,"description":"Port number to connect to for the health check. Defaults to 80.","type":"integer"}},"type":"object"},"healthchecks_timeout":{"default":5,"description":"The timeout (in seconds) before marking the health check as failed.","type":"integer"},"healthchecks_timestamp":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"healthchecks_type":{"default":"HTTP","description":"The protocol to use for the health check. Currently supported protocols are 'HTTP', 'HTTPS' and 'TCP'.","example":"HTTPS","type":"string"},"hyperdrive_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/hyperdrive_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"},"result_info":{"$ref":"#/components/schemas/hyperdrive_result_info"}}}],"type":"object"},"hyperdrive_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/hyperdrive_messages"},"messages":{"$ref":"#/components/schemas/hyperdrive_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"hyperdrive_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/hyperdrive_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/hyperdrive_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"hyperdrive_api-response-single":{"allOf":[{"$ref":"#/components/schemas/hyperdrive_api-response-common"},{"properties":{"result":{"anyOf":[{"type":"object"},{"type":"string"}],"nullable":true,"type":"object"}}}],"type":"object"},"hyperdrive_create-update-hyperdrive-config":{"allOf":[{"$ref":"#/components/schemas/hyperdrive_hyperdrive"}],"properties":{"origin":{"$ref":"#/components/schemas/hyperdrive_hyperdrive-origin-with-secrets"}},"required":["name","origin"],"type":"object"},"hyperdrive_hyperdrive":{"properties":{"caching":{"$ref":"#/components/schemas/hyperdrive_hyperdrive-caching"},"name":{"$ref":"#/components/schemas/hyperdrive_hyperdrive-name"},"origin":{"$ref":"#/components/schemas/hyperdrive_hyperdrive-origin"}},"type":"object"},"hyperdrive_hyperdrive-caching":{"properties":{"disabled":{"description":"When set to true, disables the caching of SQL responses. (Default: false)","example":false,"type":"boolean"},"max_age":{"description":"When present, specifies max duration for which items should persist in the cache. (Default: 60)","example":60,"type":"integer"},"stale_while_revalidate":{"description":"When present, indicates the number of seconds cache may serve the response after it becomes stale. (Default: 15)","example":15,"type":"integer"}},"type":"object"},"hyperdrive_hyperdrive-name":{"example":"example-hyperdrive","type":"string"},"hyperdrive_hyperdrive-origin":{"properties":{"access_client_id":{"description":"The Client ID of the Access token to use when connecting to the origin database","example":"0123456789abcdef0123456789abcdef.access","type":"string"},"database":{"description":"The name of your origin database.","example":"postgres","type":"string"},"host":{"description":"The host (hostname or IP) of your origin database.","example":"database.example.com","type":"string"},"port":{"description":"The port (default: 5432 for Postgres) of your origin database.","example":"5432","type":"integer"},"scheme":{"$ref":"#/components/schemas/hyperdrive_hyperdrive-scheme"},"user":{"description":"The user of your origin database.","example":"postgres","type":"string"}},"required":["host","scheme","database","user"],"type":"object"},"hyperdrive_hyperdrive-origin-with-secrets":{"allOf":[{"$ref":"#/components/schemas/hyperdrive_hyperdrive-origin"}],"properties":{"access_client_secret":{"description":"The Client Secret of the Access token to use when connecting to the origin database","example":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef","type":"string"},"password":{"description":"The password required to access your origin database. This value is write-only and never returned by the API.","example":"password1234!","type":"string"}},"required":["password"],"type":"object"},"hyperdrive_hyperdrive-scheme":{"default":"postgres","description":"Specifies the URL scheme used to connect to your origin database.","enum":["postgres","postgresql","mysql"],"type":"string"},"hyperdrive_hyperdrive-with-identifier":{"allOf":[{"$ref":"#/components/schemas/hyperdrive_hyperdrive"}],"properties":{"id":{"$ref":"#/components/schemas/hyperdrive_identifier"}},"type":"object"},"hyperdrive_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"hyperdrive_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"hyperdrive_patch-hyperdrive-config":{"allOf":[{"$ref":"#/components/schemas/hyperdrive_hyperdrive"}],"properties":{"origin":{"$ref":"#/components/schemas/hyperdrive_hyperdrive-origin-with-secrets"}},"type":"object"},"hyperdrive_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"iam_access":{"description":"Allow or deny operations against the resources.","enum":["allow","deny"],"example":"allow","type":"string"},"iam_account":{"properties":{"created_on":{"description":"Timestamp for the creation of the account","example":"2014-03-01T12:21:02.0000Z","format":"date-time","readOnly":true,"type":"string"},"id":{"$ref":"#/components/schemas/iam_common_components-schemas-identifier"},"name":{"description":"Account name","example":"Demo Account","maxLength":100,"type":"string"},"settings":{"description":"Account settings","properties":{"abuse_contact_email":{"description":"Sets an abuse contact email to notify for abuse reports.","type":"string"},"default_nameservers":{"default":"cloudflare.standard","description":"Specifies the default nameservers to be used for new zones added to this account.\n\n- `cloudflare.standard` for Cloudflare-branded nameservers\n- `custom.account` for account custom nameservers\n- `custom.tenant` for tenant custom nameservers\n\nSee [Custom Nameservers](https://developers.cloudflare.com/dns/additional-options/custom-nameservers/)\nfor more information.","enum":["cloudflare.standard","custom.account","custom.tenant"],"type":"string"},"enforce_twofactor":{"default":false,"description":"Indicates whether membership in this account requires that\nTwo-Factor Authentication is enabled","type":"boolean"},"use_account_custom_ns_by_default":{"default":false,"deprecated":true,"description":"Indicates whether new zones should use the account-level custom\nnameservers by default.\n\nDeprecated in favor of `default_nameservers`.","type":"boolean"}},"type":"object"}},"required":["id","name"],"type":"object"},"iam_account_identifier":{"description":"Account identifier tag.","example":"eb78d65290b24279ba6f44721b3ea3c4","maxLength":32,"readOnly":true,"type":"string"},"iam_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"},"result_info":{"$ref":"#/components/schemas/iam_result_info"}}}],"type":"object"},"iam_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/iam_messages"},"messages":{"$ref":"#/components/schemas/iam_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"iam_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/iam_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/iam_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"iam_api-response-single":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-common"}],"type":"object"},"iam_api-response-single-id":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-common"},{"properties":{"result":{"nullable":true,"properties":{"id":{"$ref":"#/components/schemas/iam_common_components-schemas-identifier"}},"required":["id"],"type":"object"}}}],"type":"object"},"iam_api_access_enabled":{"description":"Enterprise only. Indicates whether or not API access is enabled specifically for this user on a given account.","example":true,"nullable":true,"type":"boolean"},"iam_base":{"properties":{"expires_on":{"$ref":"#/components/schemas/iam_schemas-expires_on"},"id":{"$ref":"#/components/schemas/iam_invite_components-schemas-identifier"},"invited_by":{"$ref":"#/components/schemas/iam_invited_by"},"invited_member_email":{"$ref":"#/components/schemas/iam_invited_member_email"},"invited_member_id":{"description":"ID of the user to add to the organization.","example":"5a7805061c76ada191ed06f989cc3dac","maxLength":32,"nullable":true,"readOnly":true,"type":"string"},"invited_on":{"$ref":"#/components/schemas/iam_invited_on"},"organization_id":{"description":"ID of the organization the user will be added to.","example":"5a7805061c76ada191ed06f989cc3dac","maxLength":32,"readOnly":true,"type":"string"},"organization_name":{"description":"Organization name.","example":"Cloudflare, Inc.","maxLength":100,"readOnly":true,"type":"string"},"roles":{"description":"Roles to be assigned to this user.","items":{"$ref":"#/components/schemas/iam_schemas-role"},"type":"array"}},"required":["invited_member_id","organization_id"],"type":"object"},"iam_cidr_list":{"description":"List of IPv4/IPv6 CIDR addresses.","example":["199.27.128.0/21","2400:cb00::/32"],"items":{"description":"IPv4/IPv6 CIDR.","example":"199.27.128.0/21","type":"string"},"type":"array"},"iam_code":{"description":"The unique activation code for the account membership.","example":"05dd05cce12bbed97c0d87cd78e89bc2fd41a6cee72f27f6fc84af2e45c0fac0","maxLength":64,"readOnly":true,"type":"string"},"iam_collection_invite_response":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/iam_invite"},"type":"array"}},"type":"object"}]},"iam_collection_member_response":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/iam_member"},"type":"array"}},"type":"object"}],"title":"members_with_roles"},"iam_collection_member_response_with_policies":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/iam_member_with_policies"},"type":"array"}},"type":"object"}],"title":"Members with Policies"},"iam_collection_membership_response":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/iam_membership"},"type":"array"}},"type":"object"}],"title":"memberships_with_roles"},"iam_collection_membership_response_with_policies":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/iam_membership-with-policies"},"type":"array"}},"type":"object"}],"title":"memberships_with_policies"},"iam_collection_organization_response":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/iam_organization"},"type":"array"}},"type":"object"}]},"iam_collection_permission_groups_response":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-collection"},{"properties":{"result":{"$ref":"#/components/schemas/iam_permission_groups"}},"type":"object"}],"title":"List of Resource groups"},"iam_collection_resource_groups_response":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-collection"},{"properties":{"result":{"$ref":"#/components/schemas/iam_resource_groups"}},"type":"object"}],"title":"List of Resource groups"},"iam_collection_role_response":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/iam_schemas-role"},"type":"array"}},"type":"object"}]},"iam_collection_tokens_response":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/iam_token_base"},"type":"array"}},"type":"object"}],"title":"Response with a list of tokens"},"iam_common_components-schemas-identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"iam_components-schemas-account":{"allOf":[{"$ref":"#/components/schemas/iam_account"}]},"iam_components-schemas-name":{"description":"Role Name.","example":"Organization Admin","maxLength":120,"readOnly":true,"type":"string"},"iam_components-schemas-status":{"description":"Whether the user is a member of the organization or has an invitation pending.","enum":["member","invited"],"example":"member","type":"string"},"iam_condition":{"properties":{"request.ip":{"$ref":"#/components/schemas/iam_request_ip"}},"type":"object"},"iam_country":{"description":"The country in which the user lives.","example":"US","maxLength":30,"nullable":true,"type":"string"},"iam_create-account":{"properties":{"name":{"description":"Account name","type":"string"},"type":{"description":"the type of account being created. For self-serve customers, use standard. for enterprise customers, use enterprise.","enum":["standard","enterprise"],"example":"standard"},"unit":{"description":"information related to the tenant unit, and optionally, an id of the unit to create the account on. see https://developers.cloudflare.com/tenant/how-to/manage-accounts/","properties":{"id":{"description":"Tenant unit ID","example":"f267e341f3dd4697bd3b9f71dd96247f","type":"string"}},"type":"object"}},"required":["name","type"],"title":"Create account","type":"object"},"iam_create-member-with-policies":{"properties":{"email":{"$ref":"#/components/schemas/iam_email"},"policies":{"description":"Array of policies associated with this member.","items":{"$ref":"#/components/schemas/iam_create_member_policy"},"type":"array"},"status":{"default":"pending","enum":["accepted","pending"]}},"required":["email","policies"],"title":"Add Member with Policies","type":"object"},"iam_create-member-with-roles":{"properties":{"email":{"$ref":"#/components/schemas/iam_email"},"roles":{"description":"Array of roles associated with this member.","items":{"$ref":"#/components/schemas/iam_role_components-schemas-identifier"},"type":"array"},"status":{"default":"pending","enum":["accepted","pending"]}},"required":["email","roles"],"title":"Add Member with Account Roles","type":"object"},"iam_create-scope":{"description":"A scope is a combination of scope objects which provides additional context.","properties":{"key":{"$ref":"#/components/schemas/iam_create_resource_group_scope_scope_key"},"objects":{"description":"A list of scope objects for additional context. The number of Scope objects should not be zero.","items":{"$ref":"#/components/schemas/iam_create_resource_group_scope_scope_object"},"type":"array"}},"required":["key","objects"],"type":"object"},"iam_create_member_policy":{"properties":{"access":{"$ref":"#/components/schemas/iam_access"},"id":{"$ref":"#/components/schemas/iam_identifier"},"permission_groups":{"$ref":"#/components/schemas/iam_member_permission_groups"},"resource_groups":{"$ref":"#/components/schemas/iam_member_resource_groups"}},"required":["id","access","permission_groups","resource_groups"],"title":"create_member_policy"},"iam_create_payload":{"properties":{"condition":{"$ref":"#/components/schemas/iam_condition"},"expires_on":{"$ref":"#/components/schemas/iam_expires_on"},"name":{"$ref":"#/components/schemas/iam_name"},"not_before":{"$ref":"#/components/schemas/iam_not_before"},"policies":{"$ref":"#/components/schemas/iam_token_policies"}},"required":["name","policies"],"type":"object"},"iam_create_resource_group":{"properties":{"meta":{"description":"Attributes associated to the resource group.","example":{"editable":"false"},"type":"object"},"name":{"description":"Name of the resource group.","example":"NameOfTheResourceGroup","readOnly":true,"type":"string"},"scope":{"$ref":"#/components/schemas/iam_create-scope"}},"required":["scope"],"type":"object"},"iam_create_resource_group_scope_scope_key":{"description":"This is a combination of pre-defined resource name and identifier (like Account ID etc.)","example":"com.cloudflare.api.account.eb78d65290b24279ba6f44721b3ea3c4"},"iam_create_resource_group_scope_scope_object":{"description":"A scope object represents any resource that can have actions applied against invite.","properties":{"key":{"$ref":"#/components/schemas/iam_create_resource_group_scope_scope_object_key"}},"required":["key"],"type":"object"},"iam_create_resource_group_scope_scope_object_key":{"description":"This is a combination of pre-defined resource name and identifier (like Zone ID etc.)","example":"com.cloudflare.api.account.zone.23f8d65290b24279ba6f44721b3eaad5"},"iam_created_resource_group_response":{"description":"A group of scoped resources.","properties":{"id":{"description":"Identifier of the group.","example":"6d7f2f5f5b1d4a0e9081fdc98d432fd1","readOnly":true,"type":"string"},"meta":{"description":"Attributes associated to the resource group.","example":{"editable":"false"},"type":"object"},"scope":{"$ref":"#/components/schemas/iam_create-scope"}},"type":"object"},"iam_description":{"description":"Description of role's permissions.","example":"Administrative access to the entire Organization","readOnly":true,"type":"string"},"iam_effect":{"description":"Allow or deny operations against the resources.","enum":["allow","deny"],"example":"allow","type":"string"},"iam_email":{"description":"The contact email address of the user.","example":"user@example.com","maxLength":90,"type":"string"},"iam_expires_on":{"description":"The expiration time on or after which the JWT MUST NOT be accepted for processing.","example":"2020-01-01T00:00:00Z","format":"date-time","type":"string"},"iam_first_name":{"description":"User's first name","example":"John","maxLength":60,"nullable":true,"type":"string"},"iam_grants":{"example":{"read":true,"write":false},"properties":{"read":{"example":true,"type":"boolean"},"write":{"example":true,"type":"boolean"}},"type":"object"},"iam_identifier":{"description":"Policy identifier.","example":"f267e341f3dd4697bd3b9f71dd96247f","readOnly":true,"type":"string"},"iam_invite":{"allOf":[{"$ref":"#/components/schemas/iam_organization_invite"}],"type":"object"},"iam_invite_components-schemas-identifier":{"description":"Invite identifier tag.","example":"4f5f0c14a2a41d5063dd301b2f829f04","maxLength":32,"readOnly":true,"type":"string"},"iam_invited_by":{"description":"The email address of the user who created the invite.","example":"user@example.com","maxLength":90,"type":"string"},"iam_invited_member_email":{"description":"Email address of the user to add to the organization.","example":"user@example.com","maxLength":90,"type":"string"},"iam_invited_on":{"description":"When the invite was sent.","example":"2014-01-01T05:20:00Z","format":"date-time","readOnly":true,"type":"string"},"iam_issued_on":{"description":"The time on which the token was created.","example":"2018-07-01T05:20:00Z","format":"date-time","readOnly":true,"type":"string"},"iam_last_name":{"description":"User's last name","example":"Appleseed","maxLength":60,"nullable":true,"type":"string"},"iam_last_used_on":{"description":"Last time the token was used.","example":"2020-01-02T12:34:00Z","format":"date-time","readOnly":true,"type":"string"},"iam_list_member_policy":{"properties":{"access":{"$ref":"#/components/schemas/iam_access"},"id":{"$ref":"#/components/schemas/iam_identifier"},"permission_groups":{"$ref":"#/components/schemas/iam_permission_groups"},"resource_groups":{"$ref":"#/components/schemas/iam_resource_groups"}},"title":"list_member_policy"},"iam_member":{"properties":{"id":{"$ref":"#/components/schemas/iam_membership_components-schemas-identifier"},"roles":{"description":"Roles assigned to this member.","items":{"$ref":"#/components/schemas/iam_role"},"type":"array"},"status":{"description":"A member's status in the account.","enum":["accepted","pending"],"example":"accepted","readOnly":true},"user":{"description":"Details of the user associated to the membership.","properties":{"email":{"$ref":"#/components/schemas/iam_email"},"first_name":{"$ref":"#/components/schemas/iam_first_name"},"id":{"$ref":"#/components/schemas/iam_common_components-schemas-identifier"},"last_name":{"$ref":"#/components/schemas/iam_last_name"},"two_factor_authentication_enabled":{"$ref":"#/components/schemas/iam_two_factor_authentication_enabled"}},"readOnly":true,"required":["email"],"type":"object"}},"type":"object"},"iam_member_permission_group":{"description":"A group of permissions.","properties":{"id":{"description":"Identifier of the group.","example":"c8fed203ed3043cba015a93ad1616f1f","type":"string"}},"required":["id"],"type":"object"},"iam_member_permission_groups":{"description":"A set of permission groups that are specified to the policy.","example":[{"id":"c8fed203ed3043cba015a93ad1616f1f"},{"id":"82e64a83756745bbbb1c9c2701bf816b"}],"items":{"$ref":"#/components/schemas/iam_member_permission_group"},"type":"array"},"iam_member_resource_group":{"description":"A group of scoped resources.","properties":{"id":{"description":"Identifier of the group.","example":"6d7f2f5f5b1d4a0e9081fdc98d432fd1","type":"string"}},"required":["id"],"type":"object"},"iam_member_resource_groups":{"description":"A list of resource groups that the policy applies to.","items":{"$ref":"#/components/schemas/iam_member_resource_group"},"type":"array"},"iam_member_with_code":{"allOf":[{"$ref":"#/components/schemas/iam_member"},{"properties":{"code":{"$ref":"#/components/schemas/iam_code"}},"type":"object"}]},"iam_member_with_policies":{"properties":{"id":{"$ref":"#/components/schemas/iam_membership_components-schemas-identifier"},"policies":{"description":"Access policy for the membership","items":{"$ref":"#/components/schemas/iam_list_member_policy"},"type":"array"},"roles":{"description":"Roles assigned to this Member.","items":{"$ref":"#/components/schemas/iam_schemas-role"},"type":"array"},"status":{"description":"A member's status in the account.","enum":["accepted","pending"],"example":"accepted","readOnly":true},"user":{"description":"Details of the user associated to the membership.","properties":{"email":{"$ref":"#/components/schemas/iam_email"},"first_name":{"$ref":"#/components/schemas/iam_first_name"},"id":{"$ref":"#/components/schemas/iam_common_components-schemas-identifier"},"last_name":{"$ref":"#/components/schemas/iam_last_name"},"two_factor_authentication_enabled":{"$ref":"#/components/schemas/iam_two_factor_authentication_enabled"}},"readOnly":true,"required":["email"],"type":"object"}},"type":"object"},"iam_membership":{"properties":{"account":{"$ref":"#/components/schemas/iam_schemas-account"},"api_access_enabled":{"$ref":"#/components/schemas/iam_api_access_enabled"},"id":{"$ref":"#/components/schemas/iam_membership_components-schemas-identifier"},"permissions":{"allOf":[{"$ref":"#/components/schemas/iam_permissions"}],"description":"All access permissions for the user at the account.","readOnly":true},"roles":{"$ref":"#/components/schemas/iam_roles"},"status":{"$ref":"#/components/schemas/iam_schemas-status"}},"type":"object"},"iam_membership-with-policies":{"properties":{"account":{"$ref":"#/components/schemas/iam_schemas-account"},"api_access_enabled":{"$ref":"#/components/schemas/iam_api_access_enabled"},"id":{"$ref":"#/components/schemas/iam_membership_components-schemas-identifier"},"permissions":{"allOf":[{"$ref":"#/components/schemas/iam_permissions"}],"description":"All access permissions for the user at the account.","readOnly":true},"policies":{"description":"Access policy for the membership","items":{"$ref":"#/components/schemas/iam_list_member_policy"},"type":"array"},"roles":{"$ref":"#/components/schemas/iam_roles"},"status":{"$ref":"#/components/schemas/iam_schemas-status"}},"type":"object"},"iam_membership_components-schemas-identifier":{"description":"Membership identifier tag.","example":"4536bcfad5faccb111b47003c79917fa","maxLength":32,"readOnly":true,"type":"string"},"iam_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"iam_modified_on":{"description":"Last time the token was modified.","example":"2018-07-02T05:20:00Z","format":"date-time","readOnly":true,"type":"string"},"iam_name":{"description":"Token name.","example":"readonly token","maxLength":120,"type":"string"},"iam_not_before":{"description":"The time before which the token MUST NOT be accepted for processing.","example":"2018-07-01T05:20:00Z","format":"date-time","type":"string"},"iam_organization":{"properties":{"id":{"$ref":"#/components/schemas/iam_common_components-schemas-identifier"},"name":{"$ref":"#/components/schemas/iam_schemas-name"},"permissions":{"$ref":"#/components/schemas/iam_schemas-permissions"},"roles":{"description":"List of roles that a user has within an organization.","items":{"example":"All Privileges - Super Administrator","maxLength":120,"type":"string"},"readOnly":true,"type":"array"},"status":{"$ref":"#/components/schemas/iam_components-schemas-status"}},"type":"object"},"iam_organization_invite":{"allOf":[{"$ref":"#/components/schemas/iam_base"},{"properties":{"organization_is_enforcing_twofactor":{"default":false,"description":"Current status of two-factor enforcement on the organization.","example":true,"type":"boolean"},"status":{"description":"Current status of the invitation.","enum":["pending","accepted","rejected","canceled","left","expired"],"example":"accepted","type":"string"}}}]},"iam_permission_group":{"description":"A named group of permissions that map to a group of operations against resources.","properties":{"id":{"description":"Identifier of the group.","example":"6d7f2f5f5b1d4a0e9081fdc98d432fd1","readOnly":true,"type":"string"},"meta":{"description":"Attributes associated to the permission group.","example":{"label":"load_balancer_admin","scopes":"com.cloudflare.api.account"},"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"name":{"description":"Name of the group.","example":"Load Balancer","readOnly":true,"type":"string"}},"required":["id"],"type":"object"},"iam_permission_group_components-schemas-identifier":{"description":"Permission Group identifier tag.","example":"6d7f2f5f5b1d4a0e9081fdc98d432fd1","maxLength":32,"readOnly":true,"type":"string"},"iam_permission_groups":{"description":"A set of permission groups that are specified to the policy.","example":[{"id":"c8fed203ed3043cba015a93ad1616f1f","meta":{"label":"load_balancer_admin","scopes":"com.cloudflare.api.account"},"name":"Zone Read"},{"id":"82e64a83756745bbbb1c9c2701bf816b","meta":{"label":"fbm_user","scopes":"com.cloudflare.api.account"},"name":"Magic Network Monitoring"}],"items":{"$ref":"#/components/schemas/iam_permission_group"},"type":"array"},"iam_permissions":{"example":{"analytics":{"read":true,"write":false},"zones":{"read":true,"write":true}},"properties":{"analytics":{"$ref":"#/components/schemas/iam_grants"},"billing":{"$ref":"#/components/schemas/iam_grants"},"cache_purge":{"$ref":"#/components/schemas/iam_grants"},"dns":{"$ref":"#/components/schemas/iam_grants"},"dns_records":{"$ref":"#/components/schemas/iam_grants"},"lb":{"$ref":"#/components/schemas/iam_grants"},"logs":{"$ref":"#/components/schemas/iam_grants"},"organization":{"$ref":"#/components/schemas/iam_grants"},"ssl":{"$ref":"#/components/schemas/iam_grants"},"waf":{"$ref":"#/components/schemas/iam_grants"},"zone_settings":{"$ref":"#/components/schemas/iam_grants"},"zones":{"$ref":"#/components/schemas/iam_grants"}},"type":"object"},"iam_policy_with_permission_groups_and_resources":{"properties":{"effect":{"$ref":"#/components/schemas/iam_effect"},"id":{"$ref":"#/components/schemas/iam_identifier"},"permission_groups":{"$ref":"#/components/schemas/iam_permission_groups"},"resources":{"$ref":"#/components/schemas/iam_resources"}},"required":["id","effect","permission_groups","resources"],"title":"Policy with Permission Groups and Resources","type":"object"},"iam_properties-name":{"description":"Account name","example":"Demo Account","maxLength":100,"type":"string"},"iam_request_ip":{"description":"Client IP restrictions.","example":{"in":["123.123.123.0/24","2606:4700::/32"],"not_in":["123.123.123.100/24","2606:4700:4700::/48"]},"properties":{"in":{"$ref":"#/components/schemas/iam_cidr_list"},"not_in":{"$ref":"#/components/schemas/iam_cidr_list"}},"type":"object"},"iam_resource_group":{"description":"A group of scoped resources.","properties":{"id":{"description":"Identifier of the group.","example":"6d7f2f5f5b1d4a0e9081fdc98d432fd1","readOnly":true,"type":"string"},"meta":{"description":"Attributes associated to the resource group.","example":{"editable":"false"},"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"name":{"description":"Name of the resource group.","example":"com.cloudflare.api.account.eb78d65290b24279ba6f44721b3ea3c4","readOnly":true,"type":"string"},"scope":{"description":"The scope associated to the resource group","items":{"$ref":"#/components/schemas/iam_scope"},"type":"array"}},"required":["id","scope"],"type":"object"},"iam_resource_group_components-schemas-identifier":{"description":"Resource Group identifier tag.","example":"6d7f2f5f5b1d4a0e9081fdc98d432fd1","maxLength":32,"readOnly":true,"type":"string"},"iam_resource_groups":{"description":"A list of resource groups that the policy applies to.","items":{"$ref":"#/components/schemas/iam_resource_group"},"type":"array"},"iam_resources":{"description":"A list of resource names that the policy applies to.","example":{"com.cloudflare.api.account.zone.22b1de5f1c0e4b3ea97bb1e963b06a43":"*","com.cloudflare.api.account.zone.eb78d65290b24279ba6f44721b3ea3c4":"*"},"properties":{"resource":{"type":"string"},"scope":{"type":"string"}},"type":"object"},"iam_response_collection":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-collection"},{"properties":{"result":{"items":{"type":"object"},"type":"array"}},"type":"object"}]},"iam_response_collection_accounts":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/iam_account"},"type":"array"}},"type":"object"}],"title":"Response with a list of accounts"},"iam_response_create":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-single"},{"properties":{"result":{"allOf":[{"type":"object"},{"properties":{"value":{"$ref":"#/components/schemas/iam_value"}},"type":"object"}]}},"type":"object"}]},"iam_response_single":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-single"},{"properties":{"result":{"type":"object"}},"type":"object"}]},"iam_response_single_account":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/iam_account"}},"type":"object"}],"title":"Response with a single account"},"iam_response_single_segment":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-single"},{"properties":{"result":{"properties":{"expires_on":{"$ref":"#/components/schemas/iam_expires_on"},"id":{"$ref":"#/components/schemas/iam_token_identifier"},"not_before":{"$ref":"#/components/schemas/iam_not_before"},"status":{"$ref":"#/components/schemas/iam_status"}},"required":["id","status"]}},"type":"object"}]},"iam_response_single_value":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/iam_value"}},"type":"object"}]},"iam_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"iam_role":{"properties":{"description":{"description":"Description of role's permissions.","example":"Administrative access to the entire Account","readOnly":true,"type":"string"},"id":{"$ref":"#/components/schemas/iam_role_components-schemas-identifier"},"name":{"description":"Role name.","example":"Account Administrator","maxLength":120,"readOnly":true,"type":"string"},"permissions":{"allOf":[{"$ref":"#/components/schemas/iam_permissions"},{"readOnly":true}]}},"required":["id","name","description","permissions"],"type":"object"},"iam_role_components-schemas-identifier":{"description":"Role identifier tag.","example":"3536bcfad5faccb999b47003c79917fb","maxLength":32,"type":"string"},"iam_roles":{"description":"List of role names for the user at the account.","items":{"example":"Account Administrator","maxLength":120,"type":"string"},"readOnly":true,"type":"array"},"iam_schemas-account":{"allOf":[{"$ref":"#/components/schemas/iam_account"}],"readOnly":true},"iam_schemas-collection_invite_response":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/iam_schemas-invite"},"type":"array"}},"type":"object"}]},"iam_schemas-expires_on":{"description":"When the invite is no longer active.","example":"2014-01-01T05:20:00Z","format":"date-time","readOnly":true,"type":"string"},"iam_schemas-invite":{"allOf":[{"$ref":"#/components/schemas/iam_user_invite"}],"type":"object"},"iam_schemas-name":{"description":"Organization name.","example":"Cloudflare, Inc.","maxLength":100,"type":"string"},"iam_schemas-permissions":{"description":"Access permissions for this User.","items":{"example":"#zones:read","maxLength":160,"type":"string"},"readOnly":true,"type":"array"},"iam_schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-collection"},{"properties":{"result":{"example":[{"id":"7cf72faf220841aabcfdfab81c43c4f6","name":"Billing Read","scopes":["com.cloudflare.api.account"]},{"id":"9d24387c6e8544e2bc4024a03991339f","name":"Load Balancing: Monitors and Pools Read","scopes":["com.cloudflare.api.account"]},{"id":"d2a1802cc9a34e30852f8b33869b2f3c","name":"Load Balancing: Monitors and Pools Write","scopes":["com.cloudflare.api.account"]},{"id":"8b47d2786a534c08a1f94ee8f9f599ef","name":"Workers KV Storage Read","scopes":["com.cloudflare.api.account"]},{"id":"f7f0eda5697f475c90846e879bab8666","name":"Workers KV Storage Write","scopes":["com.cloudflare.api.account"]},{"id":"1a71c399035b4950a1bd1466bbe4f420","name":"Workers Scripts Read","scopes":["com.cloudflare.api.account"]},{"id":"e086da7e2179491d91ee5f35b3ca210a","name":"Workers Scripts Write","scopes":["com.cloudflare.api.account"]}],"items":{"type":"object"},"type":"array"}},"type":"object"}]},"iam_schemas-role":{"properties":{"description":{"$ref":"#/components/schemas/iam_description"},"id":{"$ref":"#/components/schemas/iam_role_components-schemas-identifier"},"name":{"$ref":"#/components/schemas/iam_components-schemas-name"},"permissions":{"$ref":"#/components/schemas/iam_schemas-permissions"}},"required":["id","name","description","permissions"],"type":"object"},"iam_schemas-status":{"description":"Status of this membership.","enum":["accepted","pending","rejected"],"example":"accepted","type":"string"},"iam_scope":{"description":"A scope is a combination of scope objects which provides additional context.","properties":{"key":{"$ref":"#/components/schemas/iam_scope_key"},"objects":{"description":"A list of scope objects for additional context.","items":{"$ref":"#/components/schemas/iam_scope_object"},"type":"array"}},"required":["key","objects"],"type":"object"},"iam_scope_key":{"description":"This is a combination of pre-defined resource name and identifier (like Account ID etc.)","example":"com.cloudflare.api.account.eb78d65290b24279ba6f44721b3ea3c4","readOnly":true},"iam_scope_object":{"description":"A scope object represents any resource that can have actions applied against invite.","properties":{"key":{"$ref":"#/components/schemas/iam_scope_object_key"}},"required":["key"],"type":"object"},"iam_scope_object_key":{"description":"This is a combination of pre-defined resource name and identifier (like Zone ID etc.)","example":"com.cloudflare.api.account.zone.23f8d65290b24279ba6f44721b3eaad5","readOnly":true},"iam_single_invite_response":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-single"},{"properties":{"result":{"type":"object"}},"type":"object"}]},"iam_single_member_response":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/iam_member"}},"type":"object"}],"title":"response_with_roles"},"iam_single_member_response_with_code":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/iam_member_with_code"}},"type":"object"}],"title":"response_with_roles"},"iam_single_member_response_with_policies":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/iam_member_with_policies"}},"type":"object"}],"title":"Response with Policies"},"iam_single_membership_response":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/iam_membership"}},"type":"object"}],"title":"response_with_roles"},"iam_single_membership_response_with_policies":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/iam_membership-with-policies"}},"type":"object"}],"title":"response_with_policies"},"iam_single_organization_response":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-single"},{"properties":{"result":{"type":"object"}},"type":"object"}]},"iam_single_role_response":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-single"},{"properties":{"result":{"type":"object"}},"type":"object"}]},"iam_single_token_create_response":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/iam_token_with_value"}},"type":"object"}],"title":"Response of a create request with a single token"},"iam_single_token_response":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/iam_token_base"}},"type":"object"}],"title":"Response with a single token"},"iam_single_user_response":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-single"},{"properties":{"result":{"type":"object"}},"type":"object"}]},"iam_status":{"description":"Status of the token.","enum":["active","disabled","expired"],"example":"active","type":"string"},"iam_telephone":{"description":"User's telephone number","example":"+1 123-123-1234","maxLength":20,"nullable":true,"type":"string"},"iam_token_base":{"properties":{"condition":{"$ref":"#/components/schemas/iam_condition"},"expires_on":{"$ref":"#/components/schemas/iam_expires_on"},"id":{"$ref":"#/components/schemas/iam_token_identifier"},"issued_on":{"$ref":"#/components/schemas/iam_issued_on"},"last_used_on":{"$ref":"#/components/schemas/iam_last_used_on"},"modified_on":{"$ref":"#/components/schemas/iam_modified_on"},"name":{"$ref":"#/components/schemas/iam_name"},"not_before":{"$ref":"#/components/schemas/iam_not_before"},"policies":{"$ref":"#/components/schemas/iam_token_policies"},"status":{"$ref":"#/components/schemas/iam_status"}},"type":"object"},"iam_token_body":{"allOf":[{"$ref":"#/components/schemas/iam_token_base"},{"type":"object"},{"required":["name","status","policies"]}],"title":"Token defined in a request body"},"iam_token_identifier":{"description":"Token identifier tag.","example":"ed17574386854bf78a67040be0a770b0","maxLength":32,"readOnly":true,"type":"string"},"iam_token_policies":{"description":"List of access policies assigned to the token.","items":{"$ref":"#/components/schemas/iam_policy_with_permission_groups_and_resources"},"type":"array"},"iam_token_with_value":{"allOf":[{"$ref":"#/components/schemas/iam_token_base"},{"properties":{"value":{"$ref":"#/components/schemas/iam_value"}}}],"title":"Create token response, with the token value"},"iam_two_factor_authentication_enabled":{"default":false,"description":"Indicates whether two-factor authentication is enabled for the user account. Does not apply to API authentication.","readOnly":true,"type":"boolean"},"iam_unit-identifier":{"description":"Tenant unit identifier.","example":"f267e341f3dd4697bd3b9f71dd96247f","readOnly":true,"type":"string"},"iam_update-member-with-policies":{"properties":{"policies":{"description":"Array of policies associated with this member.","items":{"$ref":"#/components/schemas/iam_create_member_policy"},"type":"array"}},"required":["policies"],"title":"Update Member with Policies","type":"object"},"iam_update-member-with-roles":{"allOf":[{"$ref":"#/components/schemas/iam_member"}],"title":"Update Member with Account Roles"},"iam_user_invite":{"allOf":[{"$ref":"#/components/schemas/iam_base"},{"properties":{"status":{"description":"Current status of the invitation.","enum":["pending","accepted","rejected","expired"],"example":"accepted"}}}]},"iam_value":{"description":"The token value.","example":"8M7wS6hCpXVc-DoRnPPY_UCWPgy8aea4Wy6kCe5T","maxLength":80,"minLength":40,"readOnly":true,"type":"string","x-sensitive":true},"iam_zipcode":{"description":"The zipcode or postal code where the user lives.","example":"12345","maxLength":20,"nullable":true,"type":"string"},"images_account_identifier":{"description":"Account identifier tag.","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"images_api-response-collection-v2":{"allOf":[{"$ref":"#/components/schemas/images_api-response-common"},{"properties":{"result":{"properties":{"continuation_token":{"$ref":"#/components/schemas/images_images_list_continuation_token"}},"type":"object"}}}],"type":"object"},"images_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/images_messages"},"messages":{"$ref":"#/components/schemas/images_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"images_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/images_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/images_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"images_api-response-single":{"allOf":[{"$ref":"#/components/schemas/images_api-response-common"},{"properties":{"result":{"anyOf":[{"type":"object"},{"type":"string"}]}}}],"type":"object"},"images_deleted_response":{"allOf":[{"$ref":"#/components/schemas/images_api-response-single"},{"properties":{"result":{"example":{},"type":"object"}}}]},"images_image":{"properties":{"filename":{"$ref":"#/components/schemas/images_image_filename"},"id":{"$ref":"#/components/schemas/images_image_identifier"},"meta":{"$ref":"#/components/schemas/images_image_metadata"},"requireSignedURLs":{"$ref":"#/components/schemas/images_image_requireSignedURLs"},"uploaded":{"$ref":"#/components/schemas/images_image_uploaded"},"variants":{"$ref":"#/components/schemas/images_image_variants"}},"type":"object"},"images_image_basic_upload":{"properties":{"file":{"description":"An image binary data. Only needed when type is uploading a file.","format":"binary"},"metadata":{"description":"User modifiable key-value store. Can use used for keeping references to another system of record for managing images.","type":"object"},"requireSignedURLs":{"default":false,"description":"Indicates whether the image requires a signature token for the access.","example":true,"type":"boolean"},"url":{"description":"A URL to fetch an image from origin. Only needed when type is uploading from a URL.","example":"https://example.com/path/to/logo.png","type":"string"}},"type":"object"},"images_image_direct_upload_request_v2":{"properties":{"expiry":{"default":"Now + 30 minutes","description":"The date after which the upload will not be accepted. Minimum: Now + 2 minutes. Maximum: Now + 6 hours.","example":"2021-01-02T02:20:00Z","format":"date-time","type":"string"},"id":{"description":"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,"type":"string"},"metadata":{"description":"User modifiable key-value store. Can be used for keeping references to another system of record, for managing images.","type":"object"},"requireSignedURLs":{"default":false,"description":"Indicates whether the image requires a signature token to be accessed.","example":true,"type":"boolean"}},"type":"object"},"images_image_direct_upload_response_v2":{"allOf":[{"$ref":"#/components/schemas/images_api-response-single"},{"properties":{"result":{"properties":{"id":{"description":"Image unique identifier.","example":"e22e9e6b-c02b-42fd-c405-6c32af5fe600","maxLength":32,"readOnly":true,"type":"string"},"uploadURL":{"description":"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","type":"string"}}}}}]},"images_image_filename":{"description":"Image file name.","example":"logo.png","maxLength":255,"readOnly":true,"type":"string"},"images_image_hero_url":{"description":"URI to hero variant for an image.","example":"https://imagedelivery.net/MTt4OTd0b0w5aj/107b9558-dd06-4bbd-5fef-9c2c16bb7900/hero","format":"uri","readOnly":true,"type":"string"},"images_image_identifier":{"description":"Image unique identifier.","example":"107b9558-dd06-4bbd-5fef-9c2c16bb7900","maxLength":32,"readOnly":true,"type":"string"},"images_image_key_name":{"description":"Key name.","example":"default","readOnly":true,"type":"string"},"images_image_key_response_collection":{"allOf":[{"$ref":"#/components/schemas/images_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/images_image_keys_response"}}}]},"images_image_key_value":{"description":"Key value.","example":"Oix0bbNaT8Rge9PuyxUBrjI6zrgnsyJ5=","readOnly":true,"type":"string"},"images_image_keys":{"properties":{"name":{"$ref":"#/components/schemas/images_image_key_name"},"value":{"$ref":"#/components/schemas/images_image_key_value"}},"type":"object"},"images_image_keys_response":{"properties":{"keys":{"items":{"$ref":"#/components/schemas/images_image_keys"},"type":"array"}},"type":"object"},"images_image_metadata":{"description":"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"},"type":"object"},"images_image_original_url":{"description":"URI to original variant for an image.","example":"https://imagedelivery.net/MTt4OTd0b0w5aj/107b9558-dd06-4bbd-5fef-9c2c16bb7900/original","format":"uri","readOnly":true,"type":"string"},"images_image_patch_request":{"properties":{"metadata":{"description":"User modifiable key-value store. Can be used for keeping references to another system of record for managing images. No change if not specified.","type":"object"},"requireSignedURLs":{"description":"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,"type":"boolean"}},"type":"object"},"images_image_requireSignedURLs":{"default":false,"description":"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.","example":true,"type":"boolean"},"images_image_response_blob":{"anyOf":[{"type":"string"},{"type":"object"}],"example":"\u003cimage blob data\u003e"},"images_image_response_single":{"allOf":[{"$ref":"#/components/schemas/images_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/images_image"}}}]},"images_image_thumbnail_url":{"description":"URI to thumbnail variant for an image.","example":"https://imagedelivery.net/MTt4OTd0b0w5aj/107b9558-dd06-4bbd-5fef-9c2c16bb7900/thumbnail","format":"uri","readOnly":true,"type":"string"},"images_image_uploaded":{"description":"When the media item was uploaded.","example":"2014-01-02T02:20:00.123Z","format":"date-time","readOnly":true,"type":"string"},"images_image_variant_definition":{"properties":{"id":{"$ref":"#/components/schemas/images_image_variant_identifier"},"neverRequireSignedURLs":{"$ref":"#/components/schemas/images_image_variant_neverRequireSignedURLs"},"options":{"$ref":"#/components/schemas/images_image_variant_options"}},"required":["id","options"],"type":"object"},"images_image_variant_fit":{"description":"The fit property describes how the width and height dimensions should be interpreted.","enum":["scale-down","contain","cover","crop","pad"],"example":"scale-down","type":"string"},"images_image_variant_height":{"description":"Maximum height in image pixels.","example":768,"minimum":1,"type":"number"},"images_image_variant_identifier":{"example":"hero","maxLength":99,"pattern":"^[a-zA-Z0-9]$","type":"string"},"images_image_variant_list_response":{"allOf":[{"$ref":"#/components/schemas/images_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/images_image_variants_response"}}}]},"images_image_variant_neverRequireSignedURLs":{"default":false,"description":"Indicates whether the variant can access an image without a signature, regardless of image access control.","example":true,"type":"boolean"},"images_image_variant_options":{"description":"Allows you to define image resizing sizes for different use cases.","properties":{"fit":{"$ref":"#/components/schemas/images_image_variant_fit"},"height":{"$ref":"#/components/schemas/images_image_variant_height"},"metadata":{"$ref":"#/components/schemas/images_image_variant_schemas_metadata"},"width":{"$ref":"#/components/schemas/images_image_variant_width"}},"required":["fit","metadata","width","height"],"type":"object"},"images_image_variant_patch_request":{"properties":{"neverRequireSignedURLs":{"$ref":"#/components/schemas/images_image_variant_neverRequireSignedURLs"},"options":{"$ref":"#/components/schemas/images_image_variant_options"}},"required":["options"],"type":"object"},"images_image_variant_public_request":{"properties":{"hero":{"properties":{"id":{"$ref":"#/components/schemas/images_image_variant_identifier"},"neverRequireSignedURLs":{"$ref":"#/components/schemas/images_image_variant_neverRequireSignedURLs"},"options":{"$ref":"#/components/schemas/images_image_variant_options"}},"required":["id","options"],"type":"object"}},"type":"object"},"images_image_variant_response":{"properties":{"variant":{"$ref":"#/components/schemas/images_image_variant_definition"}},"type":"object"},"images_image_variant_schemas_metadata":{"description":"What EXIF data should be preserved in the output image.","enum":["keep","copyright","none"],"example":"none","type":"string"},"images_image_variant_simple_response":{"allOf":[{"$ref":"#/components/schemas/images_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/images_image_variant_response"}}}]},"images_image_variant_width":{"description":"Maximum width in image pixels.","example":1366,"minimum":1,"type":"number"},"images_image_variants":{"description":"Object specifying available variants for an image.","example":["https://imagedelivery.net/MTt4OTd0b0w5aj/107b9558-dd06-4bbd-5fef-9c2c16bb7900/thumbnail","https://imagedelivery.net/MTt4OTd0b0w5aj/107b9558-dd06-4bbd-5fef-9c2c16bb7900/hero","https://imagedelivery.net/MTt4OTd0b0w5aj/107b9558-dd06-4bbd-5fef-9c2c16bb7900/original"],"items":{"anyOf":[{"$ref":"#/components/schemas/images_image_thumbnail_url"},{"$ref":"#/components/schemas/images_image_hero_url"},{"$ref":"#/components/schemas/images_image_original_url"}]},"readOnly":true,"type":"array"},"images_image_variants_response":{"properties":{"variants":{"$ref":"#/components/schemas/images_image_variant_public_request"}},"type":"object"},"images_images_list_continuation_token":{"description":"Continuation token to fetch next page. Passed as a query param when requesting List V2 api endpoint.","example":"iD0bxlWFSVUWsDHbzIqvDkgBW4otifAAuGXLz1n8BQA","maxLength":32,"nullable":true,"readOnly":true,"type":"string"},"images_images_list_response":{"allOf":[{"$ref":"#/components/schemas/images_api-response-common"},{"properties":{"result":{"properties":{"images":{"items":{"$ref":"#/components/schemas/images_image"},"type":"array"}},"type":"object"}}}]},"images_images_list_response_v2":{"allOf":[{"$ref":"#/components/schemas/images_api-response-collection-v2"},{"properties":{"result":{"properties":{"images":{"items":{"$ref":"#/components/schemas/images_image"},"type":"array"}},"type":"object"}}}]},"images_images_stats":{"properties":{"count":{"$ref":"#/components/schemas/images_images_stats_count"}},"type":"object"},"images_images_stats_allowed":{"description":"Cloudflare Images allowed usage.","example":100000,"readOnly":true,"type":"number"},"images_images_stats_count":{"properties":{"allowed":{"$ref":"#/components/schemas/images_images_stats_allowed"},"current":{"$ref":"#/components/schemas/images_images_stats_current"}},"type":"object"},"images_images_stats_current":{"description":"Cloudflare Images current usage.","example":1000,"readOnly":true,"type":"number"},"images_images_stats_response":{"allOf":[{"$ref":"#/components/schemas/images_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/images_images_stats"}}}]},"images_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"images_signing_key_identifier":{"example":"someKey","maxLength":20,"pattern":"^[a-zA-Z0-9]$","type":"string"},"infra_AccountTag":{"description":"Account identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"title":"account_id","type":"string"},"infra_IPInfo":{"description":"The IPv4/IPv6 address that identifies where to reach a target","properties":{"ipv4":{"description":"The target's IPv4 address","properties":{"ip_addr":{"description":"IP address of the target","example":"187.26.29.249","type":"string"},"virtual_network_id":{"description":"Private virtual network identifier for the target","example":"c77b744e-acc8-428f-9257-6878c046ed55","format":"uuid","type":"string"}},"type":"object"},"ipv6":{"description":"The target's IPv6 address","properties":{"ip_addr":{"description":"IP address of the target","example":"64c0:64e8:f0b4:8dbf:7104:72b0:ec8f:f5e0","type":"string"},"virtual_network_id":{"description":"Private virtual network identifier for the target","example":"c77b744e-acc8-428f-9257-6878c046ed55","format":"uuid","type":"string"}},"type":"object"}},"type":"object"},"infra_Target":{"properties":{"created_at":{"description":"Date and time at which the target was created","example":"2019-08-24T14:15:22Z","format":"date-time","type":"string"},"hostname":{"description":"A non-unique field that refers to a target","example":"infra-access-target","type":"string"},"id":{"$ref":"#/components/schemas/infra_TargetId"},"ip":{"$ref":"#/components/schemas/infra_IPInfo"},"modified_at":{"description":"Date and time at which the target was modified","example":"2019-08-24T14:15:22Z","format":"date-time","type":"string"}},"required":["id","hostname","ip","created_at","modified_at"],"type":"object"},"infra_TargetArray":{"items":{"$ref":"#/components/schemas/infra_Target"},"type":"array"},"infra_TargetId":{"description":"Target identifier","example":"0191dce4-9ab4-7fce-b660-8e5dec5172da","format":"uuid","maxLength":36,"title":"target_id","type":"string"},"infra_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/infra_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/infra_result_info"}}}],"type":"object"},"infra_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/infra_messages"},"messages":{"$ref":"#/components/schemas/infra_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"infra_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/infra_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/infra_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"infra_api-response-single":{"allOf":[{"$ref":"#/components/schemas/infra_api-response-common"}],"type":"object"},"infra_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"infra_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"intel-sinkholes_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/intel-sinkholes_messages"},"messages":{"$ref":"#/components/schemas/intel-sinkholes_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"intel-sinkholes_empty_object_response":{"type":"object"},"intel-sinkholes_get_sinkholes_response":{"allOf":[{"$ref":"#/components/schemas/intel-sinkholes_api-response-common"},{"properties":{"result":{"example":[{"account_tag":"233f45e61fd1f7e21e1e154ede4q2859","created_on":"2023-05-12T12:21:56.777653Z","description":"user specified description 1","id":1,"modified_on":"2023-06-18T03:13:34.123321Z","name":"sinkhole_1","r2_bucket":"my_bucket","r2_id":"\u003cr2_id\u003e"},{"account_tag":"233f45e61fd1f7e21e1e154ede4q2859","created_on":"2023-05-21T21:43:52.867525Z","description":"user specified description 2","id":2,"modified_on":"2023-06-28T18:46:18.764425Z","name":"sinkhole_1","r2_bucket":"my_bucket","r2_id":"\u003cr2_id\u003e"}],"items":{"$ref":"#/components/schemas/intel-sinkholes_sinkhole_item"},"type":"array"}}}]},"intel-sinkholes_id":{"description":"The unique identifier for the sinkhole","type":"integer"},"intel-sinkholes_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"intel-sinkholes_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"intel-sinkholes_name":{"description":"The name of the sinkhole","type":"string"},"intel-sinkholes_sinkhole_item":{"example":{"account_tag":"233f45e61fd1f7e21e1e154ede4q2859","created_on":"2023-05-12T12:21:56.777653Z","description":"user specified description 1","id":1,"modified_on":"2023-06-18T03:13:34.123321Z","name":"sinkhole_1","r2_bucket":"my_bucket","r2_id":"\u003cr2_id\u003e"},"properties":{"account_tag":{"description":"The account tag that owns this sinkhole","type":"string"},"created_on":{"description":"The date and time when the sinkhole was created","format":"date-time","type":"string"},"id":{"$ref":"#/components/schemas/intel-sinkholes_id"},"modified_on":{"description":"The date and time when the sinkhole was last modified","format":"date-time","type":"string"},"name":{"$ref":"#/components/schemas/intel-sinkholes_name"},"r2_bucket":{"description":"The name of the R2 bucket to store results","type":"string"},"r2_id":{"description":"The id of the R2 instance","type":"string"}}},"intel_additional_information":{"description":"Additional information related to the host name.","properties":{"suspected_malware_family":{"description":"Suspected DGA malware family.","example":"","type":"string"}},"type":"object"},"intel_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/intel_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"},"result_info":{"$ref":"#/components/schemas/intel_result_info"}}}],"type":"object"},"intel_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/intel_messages"},"messages":{"$ref":"#/components/schemas/intel_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"intel_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/intel_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/intel_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"intel_api-response-single":{"allOf":[{"$ref":"#/components/schemas/intel_schemas-api-response-common"}],"type":"object"},"intel_application":{"description":"Application that the hostname belongs to.","properties":{"id":{"type":"integer"},"name":{"example":"CLOUDFLARE","type":"string"}},"type":"object"},"intel_asn":{"type":"integer"},"intel_asn_components-schemas-response":{"allOf":[{"$ref":"#/components/schemas/intel_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/intel_asn"}}}]},"intel_asn_country":{"example":"US","type":"string"},"intel_asn_description":{"example":"CLOUDFLARENET","type":"string"},"intel_asn_type":{"description":"Infrastructure type of this ASN.","enum":["hosting_provider","isp","organization"],"example":"hosting_provider","type":"string"},"intel_categories_with_super_category_ids_example_empty":{"example":[],"items":{"$ref":"#/components/schemas/intel_category_with_super_category_id"},"type":"array"},"intel_category_with_super_category_id":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"super_category_id":{"type":"integer"}}},"intel_collection_response":{"allOf":[{"$ref":"#/components/schemas/intel_api-response-collection"},{"properties":{"result":{"items":{"properties":{"additional_information":{"$ref":"#/components/schemas/intel_additional_information"},"application":{"$ref":"#/components/schemas/intel_application"},"content_categories":{"$ref":"#/components/schemas/intel_content_categories"},"domain":{"$ref":"#/components/schemas/intel_domain_name"},"inherited_content_categories":{"$ref":"#/components/schemas/intel_inherited_content_categories"},"inherited_from":{"$ref":"#/components/schemas/intel_inherited_from"},"inherited_risk_types":{"$ref":"#/components/schemas/intel_inherited_risk_types"},"popularity_rank":{"$ref":"#/components/schemas/intel_popularity_rank"},"risk_score":{"$ref":"#/components/schemas/intel_risk_score"},"risk_types":{"$ref":"#/components/schemas/intel_risk_types"}}},"type":"array"}}}]},"intel_components-schemas-response":{"allOf":[{"$ref":"#/components/schemas/intel_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/intel_ip-list"},"type":"array"}}}]},"intel_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/intel_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/intel_passive-dns-by-ip"}}}]},"intel_content_categories":{"description":"Current content categories.","example":[{"id":155,"name":"Technology","super_category_id":26}]},"intel_count":{"description":"Total results returned based on your search parameters.","example":1,"type":"number"},"intel_domain":{"properties":{"additional_information":{"$ref":"#/components/schemas/intel_additional_information"},"application":{"$ref":"#/components/schemas/intel_application"},"content_categories":{"$ref":"#/components/schemas/intel_content_categories"},"domain":{"$ref":"#/components/schemas/intel_domain_name"},"inherited_content_categories":{"$ref":"#/components/schemas/intel_inherited_content_categories"},"inherited_from":{"$ref":"#/components/schemas/intel_inherited_from"},"inherited_risk_types":{"$ref":"#/components/schemas/intel_inherited_risk_types"},"popularity_rank":{"$ref":"#/components/schemas/intel_popularity_rank"},"resolves_to_refs":{"$ref":"#/components/schemas/intel_resolves_to_refs"},"risk_score":{"$ref":"#/components/schemas/intel_risk_score"},"risk_types":{"$ref":"#/components/schemas/intel_risk_types"}}},"intel_domain-history":{"properties":{"categorizations":{"items":{"properties":{"categories":{"example":[{"id":155,"name":"Technology"}]},"end":{"example":"2021-04-30","format":"date","type":"string"},"start":{"example":"2021-04-01","format":"date","type":"string"}},"type":"object"},"type":"array"},"domain":{"$ref":"#/components/schemas/intel_domain_name"}}},"intel_domain_name":{"example":"cloudflare.com","type":"string"},"intel_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"intel_inherited_content_categories":{"$ref":"#/components/schemas/intel_categories_with_super_category_ids_example_empty"},"intel_inherited_from":{"description":"Domain from which `inherited_content_categories` and `inherited_risk_types` are inherited, if applicable.","type":"string"},"intel_inherited_risk_types":{"$ref":"#/components/schemas/intel_categories_with_super_category_ids_example_empty"},"intel_ip":{"anyOf":[{"$ref":"#/components/schemas/intel_ipv4"},{"$ref":"#/components/schemas/intel_ipv6"}]},"intel_ip-list":{"properties":{"description":{"type":"string"},"id":{"type":"integer"},"name":{"example":"Malware","type":"string"}}},"intel_ipv4":{"example":"192.0.2.0","format":"ipv4","type":"string"},"intel_ipv6":{"example":"2001:0DB8::","format":"ipv6","type":"string"},"intel_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"intel_miscategorization":{"properties":{"content_adds":{"description":"Content category IDs to add.","example":[82],"items":{"type":"integer"},"type":"array"},"content_removes":{"description":"Content category IDs to remove.","example":[155],"items":{"type":"integer"},"type":"array"},"indicator_type":{"enum":["domain","ipv4","ipv6","url"],"example":"domain","type":"string"},"ip":{"description":"Provide only if indicator_type is `ipv4` or `ipv6`.","type":"string"},"security_adds":{"description":"Security category IDs to add.","example":[117,131],"items":{"type":"integer"},"type":"array"},"security_removes":{"description":"Security category IDs to remove.","example":[83],"items":{"type":"integer"},"type":"array"},"url":{"description":"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/`.","type":"string"}}},"intel_page":{"description":"Current page within paginated list of results.","example":1,"type":"number"},"intel_passive-dns-by-ip":{"properties":{"count":{"description":"Total results returned based on your search parameters.","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results.","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results.","example":20,"type":"number"},"reverse_records":{"description":"Reverse DNS look-ups observed during the time period.","items":{"properties":{"first_seen":{"description":"First seen date of the DNS record during the time period.","example":"2021-04-01","format":"date","type":"string"},"hostname":{"description":"Hostname that the IP was observed resolving to."},"last_seen":{"description":"Last seen date of the DNS record during the time period.","example":"2021-04-30","format":"date","type":"string"}},"type":"object"},"type":"array"}}},"intel_per_page":{"description":"Number of results per page of results.","example":20,"type":"number"},"intel_phishing-url-info":{"properties":{"categorizations":{"description":"List of categorizations applied to this submission.","items":{"properties":{"category":{"description":"Name of the category applied.","example":"PHISHING","type":"string"},"verification_status":{"description":"Result of human review for this categorization.","example":"confirmed","type":"string"}},"type":"object"},"type":"array"},"model_results":{"description":"List of model results for completed scans.","items":{"properties":{"model_name":{"description":"Name of the model.","example":"MACHINE_LEARNING_v2","type":"string"},"model_score":{"description":"Score output by the model for this submission.","example":0.024,"type":"number"}},"type":"object"},"type":"array"},"rule_matches":{"description":"List of signatures that matched against site content found when crawling the URL.","items":{"properties":{"banning":{"description":"For internal use.","type":"boolean"},"blocking":{"description":"For internal use.","type":"boolean"},"description":{"description":"Description of the signature that matched.","example":"Match frequently used social followers phishing kit","type":"string"},"name":{"description":"Name of the signature that matched.","example":"phishkit.social_followers","type":"string"}},"type":"object"},"type":"array"},"scan_status":{"description":"Status of the most recent scan found.","properties":{"last_processed":{"description":"Timestamp of when the submission was processed.","example":"Wed, 26 Oct 2022 16:04:51 GMT","type":"string"},"scan_complete":{"description":"For internal use.","type":"boolean"},"status_code":{"description":"Status code that the crawler received when loading the submitted URL.","type":"integer"},"submission_id":{"description":"ID of the most recent submission.","type":"integer"}},"type":"object"},"screenshot_download_signature":{"description":"For internal use.","type":"string"},"screenshot_path":{"description":"For internal use.","type":"string"},"url":{"description":"URL that was submitted.","example":"https://www.cloudflare.com","type":"string"}}},"intel_phishing-url-info_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/intel_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/intel_phishing-url-info"}}}]},"intel_phishing-url-submit":{"properties":{"excluded_urls":{"description":"URLs that were excluded from scanning because their domain is in our no-scan list.","items":{"properties":{"url":{"description":"URL that was excluded.","example":"https://developers.cloudflare.com","type":"string"}},"type":"object"},"type":"array"},"skipped_urls":{"description":"URLs that were skipped because the same URL is currently being scanned","items":{"properties":{"url":{"description":"URL that was skipped.","example":"https://www.cloudflare.com/developer-week/","type":"string"},"url_id":{"description":"ID of the submission of that URL that is currently scanning.","example":2,"type":"integer"}},"type":"object"},"type":"array"},"submitted_urls":{"description":"URLs that were successfully submitted for scanning.","items":{"properties":{"url":{"description":"URL that was submitted.","example":"https://www.cloudflare.com","type":"string"},"url_id":{"description":"ID assigned to this URL submission. Used to retrieve scanning results.","example":1,"type":"integer"}},"type":"object"},"type":"array"}}},"intel_phishing-url-submit_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/intel_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/intel_phishing-url-submit"}}}]},"intel_popularity_rank":{"description":"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.","type":"integer"},"intel_resolves_to_ref":{"properties":{"id":{"$ref":"#/components/schemas/intel_stix_identifier"},"value":{"description":"IP address or domain name.","example":"192.0.2.0","type":"string"}},"type":"object"},"intel_resolves_to_refs":{"description":"Specifies a list of references to one or more IP addresses or domain names that the domain name currently resolves to.","items":{"$ref":"#/components/schemas/intel_resolves_to_ref"},"type":"array"},"intel_response":{"allOf":[{"$ref":"#/components/schemas/intel_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/intel_domain-history"},"type":"array"}}}]},"intel_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"intel_risk_score":{"description":"Hostname risk score, which is a value between 0 (lowest risk) to 1 (highest risk).","type":"number"},"intel_risk_types":{"example":[]},"intel_schemas-api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/intel_messages"},"messages":{"$ref":"#/components/schemas/intel_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"intel_schemas-asn":{"properties":{"asn":{"$ref":"#/components/schemas/intel_asn"},"country":{"$ref":"#/components/schemas/intel_asn_country"},"description":{"$ref":"#/components/schemas/intel_asn_description"},"domain_count":{"type":"integer"},"top_domains":{"example":["example.com"],"items":{"type":"string"},"type":"array"},"type":{"$ref":"#/components/schemas/intel_asn_type"}}},"intel_schemas-ip":{"properties":{"belongs_to_ref":{"description":"Specifies a reference to the autonomous systems (AS) that the IP address belongs to.","properties":{"country":{"example":"US","type":"string"},"description":{"example":"CLOUDFLARENET","type":"string"},"id":{"example":"autonomous-system--2fa28d71-3549-5a38-af05-770b79ad6ea8"},"type":{"description":"Infrastructure type of this ASN.","enum":["hosting_provider","isp","organization"],"example":"hosting_provider","type":"string"},"value":{"type":"string"}},"type":"object"},"ip":{"$ref":"#/components/schemas/intel_ip"},"risk_types":{"example":[{"id":131,"name":"Phishing","super_category_id":21}]}}},"intel_schemas-response":{"allOf":[{"$ref":"#/components/schemas/intel_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/intel_schemas-ip"},"type":"array"}}}]},"intel_schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/intel_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/intel_whois"}}}]},"intel_single_response":{"allOf":[{"$ref":"#/components/schemas/intel_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/intel_domain"}}}]},"intel_start_end_params":{"properties":{"end":{"description":"Defaults to the current date.","example":"2021-04-30","format":"date","type":"string"},"start":{"description":"Defaults to 30 days before the end parameter value.","example":"2021-04-01","format":"date","type":"string"}},"type":"object"},"intel_stix_identifier":{"description":"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","type":"string"},"intel_url":{"description":"URL(s) to filter submissions results by","example":"https://www.cloudflare.com","format":"uri","type":"string"},"intel_url_param":{"properties":{"url":{"$ref":"#/components/schemas/intel_url"}},"type":"object"},"intel_whois":{"properties":{"created_date":{"example":"2009-02-17","format":"date","type":"string"},"domain":{"$ref":"#/components/schemas/intel_domain_name"},"nameservers":{"example":["ns3.cloudflare.com","ns4.cloudflare.com","ns5.cloudflare.com","ns6.cloudflare.com","ns7.cloudflare.com"],"items":{"type":"string"},"type":"array"},"registrant":{"example":"DATA REDACTED","type":"string"},"registrant_country":{"example":"United States","type":"string"},"registrant_email":{"example":"https://domaincontact.cloudflareregistrar.com/cloudflare.com","type":"string"},"registrant_org":{"example":"DATA REDACTED","type":"string"},"registrar":{"example":"Cloudflare, Inc.","type":"string"},"updated_date":{"example":"2017-05-24","format":"date","type":"string"}}},"legacy-jhs_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/legacy-jhs_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"},"result_info":{"$ref":"#/components/schemas/legacy-jhs_result_info"}}}],"type":"object"},"legacy-jhs_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/legacy-jhs_messages"},"messages":{"$ref":"#/components/schemas/legacy-jhs_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"legacy-jhs_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/legacy-jhs_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/legacy-jhs_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"legacy-jhs_api-response-single":{"allOf":[{"$ref":"#/components/schemas/legacy-jhs_api-response-common"},{"properties":{"result":{"anyOf":[{"type":"object"},{"type":"string"}],"nullable":true}}}],"type":"object"},"legacy-jhs_app_id":{"description":"Application identifier.","example":"ea95132c15732412d22c1476fa83f27a","maxLength":32,"readOnly":true,"type":"string"},"legacy-jhs_app_id_param":{"description":"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","type":"string"},"legacy-jhs_argo_smart_routing":{"default":false,"description":"Enables Argo Smart Routing for this application.\nNotes: Only available for TCP applications with traffic_type set to \"direct\".","example":true,"type":"boolean"},"legacy-jhs_created":{"description":"When the Application was created.","example":"2014-01-02T02:20:00Z","format":"date-time","readOnly":true,"type":"string"},"legacy-jhs_dimensions":{"description":"Can be used to break down the data by given attributes. Options are: \n\nDimension | Name | Example\n--------------------------|---------------------------------|--------------------------\nevent | Connection Event | connect, progress, disconnect, originError, clientFiltered\nappID | Application ID | 40d67c87c6cd4b889a4fd57805225e85\ncoloName | Colo Name | SFO\nipVersion | IP version used by the client | 4, 6.","example":["event","appID"],"items":{"enum":["event","appID","coloName","ipVersion"],"type":"string"},"type":"array"},"legacy-jhs_dns":{"description":"The name and type of DNS record for the Spectrum application.","properties":{"name":{"$ref":"#/components/schemas/legacy-jhs_dns_name"},"type":{"$ref":"#/components/schemas/legacy-jhs_dns_type"}},"type":"object"},"legacy-jhs_dns_name":{"description":"The name of the DNS record associated with the application.","example":"ssh.example.com","format":"hostname","type":"string"},"legacy-jhs_dns_ttl":{"description":"The TTL of our resolution of your DNS record in seconds.","minimum":600,"type":"integer"},"legacy-jhs_dns_type":{"description":"The type of DNS record associated with the application.","enum":["CNAME","ADDRESS"],"example":"CNAME","type":"string"},"legacy-jhs_edge_ips":{"default":{"connectivity":"all","type":"dynamic"},"description":"The anycast edge IP configuration for the hostname of this application.","oneOf":[{"properties":{"connectivity":{"description":"The IP versions supported for inbound connections on Spectrum anycast IPs.","enum":["all","ipv4","ipv6"],"example":"all","type":"string"},"type":{"description":"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.","enum":["dynamic"],"example":"dynamic","type":"string"}},"type":"object"},{"properties":{"ips":{"description":"The array of customer owned IPs we broadcast via anycast for this hostname and application.","example":["192.0.2.1"],"items":{"description":"Edge anycast IPs.","example":"192.0.2.1","type":"string"},"type":"array"},"type":{"description":"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.","enum":["static"],"example":"static","type":"string"}},"type":"object"}]},"legacy-jhs_id":{"description":"Identifier of a recommedation result.","example":"ssl_recommendation","type":"string"},"legacy-jhs_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"legacy-jhs_ip_firewall":{"description":"Enables IP Access Rules for this application.\nNotes: Only available for TCP applications.","example":true,"type":"boolean"},"legacy-jhs_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"legacy-jhs_modified":{"description":"When the Application was last modified.","example":"2014-01-02T02:20:00Z","format":"date-time","readOnly":true,"type":"string"},"legacy-jhs_origin_dns":{"description":"The name and type of DNS record for the Spectrum application.","properties":{"name":{"$ref":"#/components/schemas/legacy-jhs_origin_dns_name"},"ttl":{"$ref":"#/components/schemas/legacy-jhs_dns_ttl"},"type":{"$ref":"#/components/schemas/legacy-jhs_origin_dns_type"}},"type":"object"},"legacy-jhs_origin_dns_name":{"description":"The name of the DNS record associated with the origin.","example":"origin.example.com","format":"hostname","type":"string"},"legacy-jhs_origin_dns_type":{"description":"The type of DNS record associated with the origin. \"\" is used to specify a combination of A/AAAA records.","enum":["","A","AAAA","SRV"],"example":"","type":"string"},"legacy-jhs_origin_port":{"anyOf":[{"type":"integer"},{"type":"string"}],"description":"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\"`.\nNotes: 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},"legacy-jhs_protocol":{"description":"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","type":"string"},"legacy-jhs_proxy_protocol":{"default":"off","description":"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.","enum":["off","v1","v2","simple"],"example":"off","type":"string"},"legacy-jhs_response_collection":{"allOf":[{"$ref":"#/components/schemas/legacy-jhs_api-response-collection"},{"properties":{"result":{"items":{"type":"object"},"type":"array"}}}]},"legacy-jhs_response_single":{"allOf":[{"$ref":"#/components/schemas/legacy-jhs_api-response-single"},{"properties":{"result":{"type":"object"}},"type":"object"}]},"legacy-jhs_response_single_origin_dns":{"allOf":[{"$ref":"#/components/schemas/legacy-jhs_api-response-single"},{"properties":{"result":{"properties":{"argo_smart_routing":{"$ref":"#/components/schemas/legacy-jhs_argo_smart_routing"},"created_on":{"$ref":"#/components/schemas/legacy-jhs_created"},"dns":{"$ref":"#/components/schemas/legacy-jhs_dns"},"edge_ips":{"$ref":"#/components/schemas/legacy-jhs_edge_ips"},"id":{"$ref":"#/components/schemas/legacy-jhs_app_id"},"ip_firewall":{"$ref":"#/components/schemas/legacy-jhs_ip_firewall"},"modified_on":{"$ref":"#/components/schemas/legacy-jhs_modified"},"origin_dns":{"$ref":"#/components/schemas/legacy-jhs_origin_dns"},"origin_port":{"$ref":"#/components/schemas/legacy-jhs_origin_port"},"protocol":{"$ref":"#/components/schemas/legacy-jhs_protocol"},"proxy_protocol":{"$ref":"#/components/schemas/legacy-jhs_proxy_protocol"},"tls":{"$ref":"#/components/schemas/legacy-jhs_tls"},"traffic_type":{"$ref":"#/components/schemas/legacy-jhs_traffic_type"}}}}}]},"legacy-jhs_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"legacy-jhs_schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/legacy-jhs_api-response-common"},{"properties":{"result":{"items":{"type":"object"},"type":"array"}}}]},"legacy-jhs_sort":{"description":"The sort order for the result set; sort fields must be included in `metrics` or `dimensions`.","example":["+count","-bytesIngress"],"items":{},"type":"array"},"legacy-jhs_timestamp":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"legacy-jhs_tls":{"description":"The type of TLS termination associated with the application.","enum":["off","flexible","full","strict"],"example":"full","type":"string"},"legacy-jhs_traffic_type":{"default":"direct","description":"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.","enum":["direct","http","https"],"example":"direct","type":"string"},"legacy-jhs_until":{"description":"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","type":"string"},"legacy-jhs_value":{"enum":["flexible","full","strict"],"example":"strict","type":"string"},"lists_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/lists_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"}}}],"type":"object"},"lists_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/lists_messages"},"messages":{"$ref":"#/components/schemas/lists_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"lists_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/lists_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/lists_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"lists_bulk-operation-response-collection":{"allOf":[{"$ref":"#/components/schemas/lists_api-response-collection"},{"properties":{"result":{"$ref":"#/components/schemas/lists_operation"}},"type":"object"}]},"lists_created_on":{"description":"The RFC 3339 timestamp of when the list was created.","example":"2020-01-01T08:00:00Z","type":"string"},"lists_description":{"description":"An informative summary of the list.","example":"This is a note","maxLength":500,"type":"string"},"lists_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"lists_item":{"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"},"oneOf":[{"$ref":"#/components/schemas/lists_item_ip"},{"$ref":"#/components/schemas/lists_item_redirect"},{"$ref":"#/components/schemas/lists_item_hostname"},{"$ref":"#/components/schemas/lists_item_asn"}],"properties":{"asn":{"$ref":"#/components/schemas/lists_item_asn"},"comment":{"$ref":"#/components/schemas/lists_item_comment"},"created_on":{"description":"The RFC 3339 timestamp of when the item was created.","example":"2020-01-01T08:00:00Z","readOnly":true,"type":"string"},"hostname":{"$ref":"#/components/schemas/lists_item_hostname"},"id":{"$ref":"#/components/schemas/lists_list_id"},"ip":{"$ref":"#/components/schemas/lists_item_ip"},"modified_on":{"description":"The RFC 3339 timestamp of when the item was last modified.","example":"2020-01-10T14:00:00Z","readOnly":true,"type":"string"},"redirect":{"$ref":"#/components/schemas/lists_item_redirect"}},"type":"object"},"lists_item-response-collection":{"allOf":[{"$ref":"#/components/schemas/lists_api-response-collection"},{"properties":{"result":{"$ref":"#/components/schemas/lists_item"}},"type":"object"}]},"lists_item_asn":{"description":"A non-negative 32 bit integer","example":5567,"type":"integer"},"lists_item_comment":{"description":"An informative summary of the list item.","example":"Private IP address","type":"string"},"lists_item_hostname":{"description":"Valid characters for hostnames are ASCII(7) letters from a to z, the digits from 0 to 9, wildcards (*), and the hyphen (-).","properties":{"url_hostname":{"example":"example.com","type":"string"}},"required":["url_hostname"]},"lists_item_id":{"description":"The unique ID of the item in the List.","example":"34b12448945f11eaa1b71c4d701ab86e","type":"string"},"lists_item_ip":{"description":"An IPv4 address, an IPv4 CIDR, or an IPv6 CIDR. IPv6 CIDRs are limited to a maximum of /64.","example":"10.0.0.1","type":"string"},"lists_item_redirect":{"description":"The definition of the redirect.","properties":{"include_subdomains":{"default":false,"type":"boolean"},"preserve_path_suffix":{"default":false,"type":"boolean"},"preserve_query_string":{"default":false,"type":"boolean"},"source_url":{"example":"example.com/arch","type":"string"},"status_code":{"default":301,"enum":[301,302,307,308],"type":"integer"},"subpath_matching":{"default":false,"type":"boolean"},"target_url":{"example":"https://archlinux.org/","type":"string"}},"required":["source_url","target_url"]},"lists_items":{"items":{"$ref":"#/components/schemas/lists_item"},"type":"array"},"lists_items-list-response-collection":{"allOf":[{"$ref":"#/components/schemas/lists_api-response-collection"},{"properties":{"result":{"$ref":"#/components/schemas/lists_items"},"result_info":{"properties":{"cursors":{"properties":{"after":{"example":"yyy","type":"string"},"before":{"example":"xxx","type":"string"}},"type":"object"}},"type":"object"}},"type":"object"}]},"lists_items-update-request-collection":{"items":{"allOf":[{"properties":{"asn":{"$ref":"#/components/schemas/lists_item_asn"},"comment":{"$ref":"#/components/schemas/lists_item_comment"},"hostname":{"$ref":"#/components/schemas/lists_item_hostname"},"ip":{"$ref":"#/components/schemas/lists_item_ip"},"redirect":{"$ref":"#/components/schemas/lists_item_redirect"}},"type":"object"}]},"type":"array"},"lists_kind":{"description":"The type of the list. Each type supports specific list items (IP addresses, ASNs, hostnames or redirects).","enum":["ip","redirect","hostname","asn"],"example":"ip"},"lists_list":{"properties":{"created_on":{"$ref":"#/components/schemas/lists_created_on"},"description":{"$ref":"#/components/schemas/lists_description"},"id":{"$ref":"#/components/schemas/lists_list_id"},"kind":{"$ref":"#/components/schemas/lists_kind"},"modified_on":{"$ref":"#/components/schemas/lists_modified_on"},"name":{"$ref":"#/components/schemas/lists_name"},"num_items":{"$ref":"#/components/schemas/lists_num_items"},"num_referencing_filters":{"$ref":"#/components/schemas/lists_num_referencing_filters"}},"type":"object"},"lists_list-delete-response-collection":{"allOf":[{"$ref":"#/components/schemas/lists_api-response-collection"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/lists_item_id"}},"type":"object"}},"type":"object"}],"type":"object"},"lists_list-response-collection":{"allOf":[{"$ref":"#/components/schemas/lists_api-response-collection"},{"properties":{"result":{"$ref":"#/components/schemas/lists_list"}},"type":"object"}],"type":"object"},"lists_list_id":{"description":"The unique ID of the list.","example":"2c0fc9fa937b11eaa1b71c4d701ab86e","maxLength":32,"minLength":32,"readOnly":true,"type":"string"},"lists_lists-async-response":{"allOf":[{"$ref":"#/components/schemas/lists_api-response-collection"},{"properties":{"result":{"properties":{"operation_id":{"$ref":"#/components/schemas/lists_operation_id"}},"type":"object"}},"type":"object"}]},"lists_lists-response-collection":{"allOf":[{"$ref":"#/components/schemas/lists_api-response-collection"},{"properties":{"result":{"items":{"allOf":[{"$ref":"#/components/schemas/lists_list"},{"required":["id","name","kind","num_items","created_on","modified_on"],"type":"object"}]},"type":"array"}},"type":"object"}],"type":"object"},"lists_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"lists_modified_on":{"description":"The RFC 3339 timestamp of when the list was last modified.","example":"2020-01-10T14:00:00Z","type":"string"},"lists_name":{"description":"An informative name for the list. Use this name in filter and rule expressions.","example":"list1","maxLength":50,"pattern":"^[a-zA-Z0-9_]+$","type":"string"},"lists_num_items":{"description":"The number of items in the list.","example":10,"type":"number"},"lists_num_referencing_filters":{"description":"The number of [filters](/operations/filters-list-filters) referencing the list.","example":2,"type":"number"},"lists_operation":{"properties":{"completed":{"description":"The RFC 3339 timestamp of when the operation was completed.","example":"2020-01-01T08:00:00Z","readOnly":true,"type":"string"},"error":{"description":"A message describing the error when the status is `failed`.","example":"This list is at the maximum number of items","readOnly":true,"type":"string"},"id":{"$ref":"#/components/schemas/lists_operation_id"},"status":{"description":"The current status of the asynchronous operation.","enum":["pending","running","completed","failed"],"example":"failed","readOnly":true,"type":"string"}},"required":["id","status"],"type":"object"},"lists_operation_id":{"description":"The unique operation ID of the asynchronous action.","example":"4da8780eeb215e6cb7f48dd981c4ea02","readOnly":true,"type":"string"},"load-balancing_Host":{"description":"The 'Host' header allows to override the hostname set in the HTTP request. Current support is 1 'Host' header override per origin.","items":{"example":"example.com","type":"string"},"type":"array"},"load-balancing_adaptive_routing":{"description":"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.","properties":{"failover_across_pools":{"default":false,"description":"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.","example":true,"type":"boolean"}},"type":"object"},"load-balancing_address":{"description":"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","type":"string"},"load-balancing_allow_insecure":{"default":false,"description":"Do not validate the certificate when monitor use HTTPS. This parameter is currently only valid for HTTP and HTTPS monitors.","example":true,"type":"boolean"},"load-balancing_analytics":{"properties":{"id":{"default":1,"type":"integer"},"origins":{"example":[{"address":"198.51.100.4","changed":true,"enabled":true,"failure_reason":"No failures","healthy":true,"ip":"198.51.100.4","name":"some-origin"}],"items":{"$ref":"#/components/schemas/load-balancing_origin-analytics"},"type":"array"},"pool":{"example":{"changed":true,"healthy":true,"id":"74bc6a8b9b0dda3d651707a2928bad0c","minimum_origins":1,"name":"some-pool"},"type":"object"},"timestamp":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","type":"string"}},"type":"object"},"load-balancing_api-paginated-response-collection":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/load-balancing_result_info"}}}],"required":["result_info"],"type":"object"},"load-balancing_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/load-balancing_messages"},"messages":{"$ref":"#/components/schemas/load-balancing_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"load-balancing_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/load-balancing_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/load-balancing_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"load-balancing_api-response-single":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-response-common"},{"properties":{"result":{"anyOf":[{"nullable":true,"type":"object"},{"nullable":true,"type":"string"}]}}}],"type":"object"},"load-balancing_check_regions":{"description":"A list of regions from which to run health checks. Null means every Cloudflare data center.","example":["WEU","ENAM"],"items":{"description":"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, ALL_REGIONS: all regions (ENTERPRISE customers only).","enum":["WNAM","ENAM","WEU","EEU","NSAM","SSAM","OC","ME","NAF","SAF","SAS","SEAS","NEAS","ALL_REGIONS"],"type":"string"},"nullable":true,"type":"array"},"load-balancing_components-schemas-description":{"description":"Object description.","example":"Load Balancer for www.example.com","type":"string"},"load-balancing_components-schemas-enabled":{"default":true,"description":"Whether to enable (the default) this load balancer.","example":true,"type":"boolean"},"load-balancing_components-schemas-id_response":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-identifier"}},"type":"object"}}}]},"load-balancing_components-schemas-identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"load-balancing_components-schemas-name":{"description":"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","type":"string"},"load-balancing_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-paginated-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/load-balancing_analytics"},"type":"array"}}}]},"load-balancing_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-response-single"},{"properties":{"result":{"description":"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"}]},"type":"object"}}}]},"load-balancing_consecutive_down":{"default":0,"description":"To be marked unhealthy the monitored origin must fail this healthcheck N consecutive times.","type":"integer"},"load-balancing_consecutive_up":{"default":0,"description":"To be marked healthy the monitored origin must pass this healthcheck N consecutive times.","type":"integer"},"load-balancing_country_pools":{"additionalProperties":{"description":"A `string:[string]` object of key-values. Country code maps to list of pool IDs.","items":{"type":"string"},"type":"array"},"description":"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"]},"type":"object"},"load-balancing_default_pools":{"description":"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","9290f38c5d07c2e2f4df57b1f61d4196","00920f38ce07c2e2f4df50b1f61d4194"],"items":{"description":"A pool ID.","type":"string"},"type":"array"},"load-balancing_description":{"description":"Object description.","example":"Login page monitor","type":"string"},"load-balancing_disabled_at":{"description":"This field shows up only if the origin is disabled. This field is set with the time the origin was disabled.","format":"date-time","readOnly":true,"type":"string"},"load-balancing_enabled":{"default":true,"description":"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).","example":false,"type":"boolean"},"load-balancing_expected_body":{"description":"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","type":"string"},"load-balancing_expected_codes":{"default":"200","description":"The expected HTTP response code or code range of the health check. This parameter is only valid for HTTP and HTTPS monitors.","example":"2xx","type":"string"},"load-balancing_fallback_pool":{"description":"The pool ID to use when all other pools are detected as unhealthy.","type":"string"},"load-balancing_filter_options":{"description":"Filter options for a particular resource type (pool or origin). Use null to reset.","nullable":true,"properties":{"disable":{"default":false,"description":"If set true, disable notifications for this type of resource (pool or origin).","type":"boolean"},"healthy":{"description":"If present, send notifications only for this health status (e.g. false for only DOWN events). Use null to reset (all events).","nullable":true,"type":"boolean"}},"type":"object"},"load-balancing_follow_redirects":{"default":false,"description":"Follow redirects if returned by the origin. This parameter is only valid for HTTP and HTTPS monitors.","example":true,"type":"boolean"},"load-balancing_header":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"description":"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"]},"type":"object"},"load-balancing_health_details":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-response-single"},{"properties":{"result":{"description":"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"}}]}}},"properties":{"pool_id":{"description":"Pool ID","example":"17b5962d775c646f3f9725cbc7a53df4","type":"string"},"pop_health":{"description":"List of regions and associated health status.","properties":{"healthy":{"description":"Whether health check in region is healthy.","example":true,"type":"boolean"},"origins":{"items":{"$ref":"#/components/schemas/load-balancing_origin-health"},"type":"array"}},"type":"object"}},"type":"object"}}}]},"load-balancing_id_response":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/load-balancing_identifier"}},"type":"object"}}}]},"load-balancing_identifier":{"example":"f1aba936b94213e5b8dca0c0dbf1f9cc","type":"string"},"load-balancing_interval":{"default":60,"description":"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.","type":"integer"},"load-balancing_latitude":{"description":"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.","type":"number"},"load-balancing_load-balancer":{"properties":{"adaptive_routing":{"$ref":"#/components/schemas/load-balancing_adaptive_routing"},"country_pools":{"$ref":"#/components/schemas/load-balancing_country_pools"},"created_on":{"$ref":"#/components/schemas/load-balancing_timestamp"},"default_pools":{"$ref":"#/components/schemas/load-balancing_default_pools"},"description":{"$ref":"#/components/schemas/load-balancing_components-schemas-description"},"enabled":{"$ref":"#/components/schemas/load-balancing_components-schemas-enabled"},"fallback_pool":{"$ref":"#/components/schemas/load-balancing_fallback_pool"},"id":{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-identifier"},"location_strategy":{"$ref":"#/components/schemas/load-balancing_location_strategy"},"modified_on":{"$ref":"#/components/schemas/load-balancing_timestamp"},"name":{"$ref":"#/components/schemas/load-balancing_components-schemas-name"},"networks":{"$ref":"#/components/schemas/load-balancing_networks"},"pop_pools":{"$ref":"#/components/schemas/load-balancing_pop_pools"},"proxied":{"$ref":"#/components/schemas/load-balancing_proxied"},"random_steering":{"$ref":"#/components/schemas/load-balancing_random_steering"},"region_pools":{"$ref":"#/components/schemas/load-balancing_region_pools"},"rules":{"$ref":"#/components/schemas/load-balancing_rules"},"session_affinity":{"$ref":"#/components/schemas/load-balancing_session_affinity"},"session_affinity_attributes":{"$ref":"#/components/schemas/load-balancing_session_affinity_attributes"},"session_affinity_ttl":{"$ref":"#/components/schemas/load-balancing_session_affinity_ttl"},"steering_policy":{"$ref":"#/components/schemas/load-balancing_steering_policy"},"ttl":{"$ref":"#/components/schemas/load-balancing_ttl"}},"type":"object"},"load-balancing_load-balancer_components-schemas-identifier":{"example":"699d98642c564d2e855e9661899b7252","type":"string"},"load-balancing_load-balancer_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-paginated-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/load-balancing_load-balancer"},"type":"array"}}}]},"load-balancing_load-balancer_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/load-balancing_load-balancer"}}}]},"load-balancing_load_shedding":{"description":"Configures load shedding policies and percentages for the pool.","properties":{"default_percent":{"default":0,"description":"The percent of traffic to shed from the pool, according to the default policy. Applies to new sessions and traffic without session affinity.","maximum":100,"minimum":0,"type":"number"},"default_policy":{"default":"random","description":"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.","enum":["random","hash"],"type":"string"},"session_percent":{"default":0,"description":"The percent of existing sessions to shed from the pool, according to the session policy.","maximum":100,"minimum":0,"type":"number"},"session_policy":{"default":"hash","description":"Only the hash policy is supported for existing sessions (to avoid exponential decay).","enum":["hash"],"type":"string"}},"type":"object"},"load-balancing_location_strategy":{"description":"Controls location-based steering for non-proxied requests. See `steering_policy` to learn how steering is affected.","properties":{"mode":{"default":"pop","description":"Determines the authoritative location when ECS is not preferred, does not exist in the request, or its GeoIP lookup is unsuccessful.\n- `\"pop\"`: Use the Cloudflare PoP location.\n- `\"resolver_ip\"`: Use the DNS resolver GeoIP location. If the GeoIP lookup is unsuccessful, use the Cloudflare PoP location.","enum":["pop","resolver_ip"],"example":"resolver_ip","type":"string"},"prefer_ecs":{"default":"proximity","description":"Whether the EDNS Client Subnet (ECS) GeoIP should be preferred as the authoritative location.\n- `\"always\"`: Always prefer ECS.\n- `\"never\"`: Never prefer ECS.\n- `\"proximity\"`: Prefer ECS only when `steering_policy=\"proximity\"`.\n- `\"geo\"`: Prefer ECS only when `steering_policy=\"geo\"`.","enum":["always","never","proximity","geo"],"example":"always","type":"string"}},"type":"object"},"load-balancing_longitude":{"description":"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.","type":"number"},"load-balancing_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"load-balancing_method":{"default":"GET","description":"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.","example":"GET","type":"string"},"load-balancing_minimum_origins":{"default":1,"description":"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.","type":"integer"},"load-balancing_monitor":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-editable"},{"properties":{"created_on":{"$ref":"#/components/schemas/load-balancing_timestamp"},"id":{"$ref":"#/components/schemas/load-balancing_identifier"},"modified_on":{"$ref":"#/components/schemas/load-balancing_timestamp"}},"type":"object"}]},"load-balancing_monitor-editable":{"properties":{"allow_insecure":{"$ref":"#/components/schemas/load-balancing_allow_insecure"},"consecutive_down":{"$ref":"#/components/schemas/load-balancing_consecutive_down"},"consecutive_up":{"$ref":"#/components/schemas/load-balancing_consecutive_up"},"description":{"$ref":"#/components/schemas/load-balancing_description"},"expected_body":{"$ref":"#/components/schemas/load-balancing_expected_body"},"expected_codes":{"$ref":"#/components/schemas/load-balancing_expected_codes"},"follow_redirects":{"$ref":"#/components/schemas/load-balancing_follow_redirects"},"header":{"$ref":"#/components/schemas/load-balancing_header"},"interval":{"$ref":"#/components/schemas/load-balancing_interval"},"method":{"$ref":"#/components/schemas/load-balancing_method"},"path":{"$ref":"#/components/schemas/load-balancing_path"},"port":{"$ref":"#/components/schemas/load-balancing_port"},"probe_zone":{"$ref":"#/components/schemas/load-balancing_probe_zone"},"retries":{"$ref":"#/components/schemas/load-balancing_retries"},"timeout":{"$ref":"#/components/schemas/load-balancing_timeout"},"type":{"$ref":"#/components/schemas/load-balancing_type"}},"type":"object"},"load-balancing_monitor-references-response":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-response-common"},{"properties":{"result":{"description":"List of resources that reference a given monitor.","example":[{"reference_type":"referrer","resource_id":"17b5962d775c646f3f9725cbc7a53df4","resource_name":"primary-dc-1","resource_type":"pool"}],"items":{"properties":{"reference_type":{"enum":["*","referral","referrer"],"type":"string"},"resource_id":{"type":"string"},"resource_name":{"type":"string"},"resource_type":{"type":"string"}},"type":"object"},"type":"array"}}}]},"load-balancing_monitor-response-collection":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-paginated-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/load-balancing_monitor"},"type":"array"}}}]},"load-balancing_monitor-response-single":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/load-balancing_monitor"}}}]},"load-balancing_monitor_id":{"description":"The ID of the Monitor to use for checking the health of origins within this pool.","type":"string"},"load-balancing_name":{"description":"A short name (tag) for the pool. Only alphanumeric characters, hyphens, and underscores are allowed.","example":"primary-dc-1","type":"string"},"load-balancing_networks":{"description":"List of networks where Load Balancer or Pool is enabled.","items":{"example":["cloudflare","jdcloud"],"type":"string"},"type":"array"},"load-balancing_notification_email":{"description":"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","type":"string"},"load-balancing_notification_filter":{"description":"Filter pool and origin health notifications by resource type or health status. Use null to reset.","example":{"origin":{"disable":true},"pool":{"healthy":false}},"nullable":true,"properties":{"origin":{"$ref":"#/components/schemas/load-balancing_filter_options"},"pool":{"$ref":"#/components/schemas/load-balancing_filter_options"}},"type":"object"},"load-balancing_origin":{"properties":{"address":{"$ref":"#/components/schemas/load-balancing_address"},"disabled_at":{"$ref":"#/components/schemas/load-balancing_disabled_at"},"enabled":{"$ref":"#/components/schemas/load-balancing_schemas-enabled"},"header":{"$ref":"#/components/schemas/load-balancing_schemas-header"},"name":{"$ref":"#/components/schemas/load-balancing_schemas-name"},"virtual_network_id":{"$ref":"#/components/schemas/load-balancing_virtual_network_id"},"weight":{"$ref":"#/components/schemas/load-balancing_weight"}},"type":"object"},"load-balancing_origin-analytics":{"properties":{"address":{"$ref":"#/components/schemas/load-balancing_address"},"changed":{"$ref":"#/components/schemas/load-balancing_origin-changed"},"enabled":{"$ref":"#/components/schemas/load-balancing_schemas-enabled"},"failure_reason":{"$ref":"#/components/schemas/load-balancing_origin-failure-reason"},"healthy":{"$ref":"#/components/schemas/load-balancing_origin-healthy"},"ip":{"$ref":"#/components/schemas/load-balancing_origin-ip"},"name":{"$ref":"#/components/schemas/load-balancing_schemas-name"}},"type":"object"},"load-balancing_origin-changed":{"description":"Whether the origin has changed health status.","example":true,"type":"boolean"},"load-balancing_origin-failure-reason":{"description":"Failure reason for un-healthy origin health check.","example":"No failures","type":"string"},"load-balancing_origin-health":{"properties":{"ip":{"properties":{"failure_reason":{"description":"Failure reason.","example":"No failure reasons","type":"string"},"healthy":{"description":"Origin health status.","example":true,"type":"boolean"},"response_code":{"description":"Response code from origin health check.","example":200,"type":"number"},"rtt":{"description":"Origin RTT (Round Trip Time) response.","example":"201.5ms","type":"string"}},"type":"object"}},"type":"object"},"load-balancing_origin-healthy":{"description":"Whether the origin is reported as healthy.","example":true,"type":"boolean"},"load-balancing_origin-ip":{"description":"The IP address (IPv4 or IPv6) of the origin.","example":"198.51.100.4","type":"string"},"load-balancing_origin_health_data":{"description":"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"},"properties":{"failure_reason":{"type":"string"},"healthy":{"type":"boolean"},"response_code":{"type":"number"},"rtt":{"type":"string"}},"type":"object"},"load-balancing_origin_healthy":{"default":true,"description":"If true, filter events where the origin status is healthy. If false, filter events where the origin status is unhealthy.","example":true,"type":"boolean"},"load-balancing_origin_steering":{"description":"Configures origin steering for the pool. Controls how origins are selected for new sessions and traffic without session affinity.","properties":{"policy":{"default":"random","description":"The type of origin steering policy to use.\n- `\"random\"`: Select an origin randomly.\n- `\"hash\"`: Select an origin by computing a hash over the CF-Connecting-IP address.\n- `\"least_outstanding_requests\"`: Select an origin by taking into consideration origin weights, as well as each origin's number of outstanding requests. Origins with more pending requests are weighted proportionately less relative to others.\n- `\"least_connections\"`: Select an origin by taking into consideration origin weights, as well as each origin's number of open connections. Origins with more open connections are weighted proportionately less relative to others. Supported for HTTP/1 and HTTP/2 connections.","enum":["random","hash","least_outstanding_requests","least_connections"],"type":"string"}},"type":"object"},"load-balancing_origins":{"description":"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.","items":{"$ref":"#/components/schemas/load-balancing_origin"},"type":"array"},"load-balancing_patch_pools_notification_email":{"description":"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.","enum":[""],"example":"","type":"string"},"load-balancing_path":{"default":"/","description":"The endpoint path you want to conduct a health check against. This parameter is only valid for HTTP and HTTPS monitors.","example":"/health","type":"string"},"load-balancing_pool":{"properties":{"check_regions":{"$ref":"#/components/schemas/load-balancing_check_regions"},"created_on":{"$ref":"#/components/schemas/load-balancing_timestamp"},"description":{"$ref":"#/components/schemas/load-balancing_schemas-description"},"disabled_at":{"$ref":"#/components/schemas/load-balancing_schemas-disabled_at"},"enabled":{"$ref":"#/components/schemas/load-balancing_enabled"},"id":{"$ref":"#/components/schemas/load-balancing_schemas-identifier"},"latitude":{"$ref":"#/components/schemas/load-balancing_latitude"},"load_shedding":{"$ref":"#/components/schemas/load-balancing_load_shedding"},"longitude":{"$ref":"#/components/schemas/load-balancing_longitude"},"minimum_origins":{"$ref":"#/components/schemas/load-balancing_minimum_origins"},"modified_on":{"$ref":"#/components/schemas/load-balancing_timestamp"},"monitor":{"$ref":"#/components/schemas/load-balancing_monitor_id"},"name":{"$ref":"#/components/schemas/load-balancing_name"},"networks":{"$ref":"#/components/schemas/load-balancing_networks"},"notification_email":{"$ref":"#/components/schemas/load-balancing_notification_email"},"notification_filter":{"$ref":"#/components/schemas/load-balancing_notification_filter"},"origin_steering":{"$ref":"#/components/schemas/load-balancing_origin_steering"},"origins":{"$ref":"#/components/schemas/load-balancing_origins"}},"type":"object"},"load-balancing_pool_name":{"description":"The name for the pool to filter.","example":"primary-dc","type":"string"},"load-balancing_pools-references-response":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-response-common"},{"properties":{"result":{"description":"List of resources that reference a given pool.","example":[{"reference_type":"referrer","resource_id":"699d98642c564d2e855e9661899b7252","resource_name":"www.example.com","resource_type":"load_balancer"},{"reference_type":"referral","resource_id":"f1aba936b94213e5b8dca0c0dbf1f9cc","resource_name":"Login page monitor","resource_type":"monitor"}],"items":{"properties":{"reference_type":{"enum":["*","referral","referrer"],"type":"string"},"resource_id":{"type":"string"},"resource_name":{"type":"string"},"resource_type":{"type":"string"}},"type":"object"},"type":"array"}}}]},"load-balancing_pop_pools":{"additionalProperties":{"description":"A `string:[string]` object of key-values. PoP code maps to list of pool IDs.","items":{"type":"string"},"type":"array"},"description":"(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"]},"type":"object"},"load-balancing_port":{"default":0,"description":"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).","type":"integer"},"load-balancing_preview_id":{"example":"f1aba936b94213e5b8dca0c0dbf1f9cc"},"load-balancing_preview_response":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-response-single"},{"properties":{"result":{"properties":{"pools":{"additionalProperties":{"description":"The pool name associated with the pool ID.","type":"string"},"description":"Monitored pool IDs mapped to their respective names.","example":{"abwlnp5jbqn45ecgxd03erbgtxtqai0d":"WNAM Datacenter","ve8h9lrcip5n5bbga9yqmdws28ay5d0l":"EEU Datacenter"},"type":"object"},"preview_id":{"$ref":"#/components/schemas/load-balancing_identifier"}},"type":"object"}}}]},"load-balancing_preview_result":{"additionalProperties":{"properties":{"healthy":{"type":"boolean"},"origins":{"items":{"additionalProperties":{"$ref":"#/components/schemas/load-balancing_origin_health_data"},"maxProperties":1,"minProperties":1,"type":"object"},"type":"array"}},"type":"object"},"description":"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"}}]}},"type":"object"},"load-balancing_preview_result_response":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/load-balancing_preview_result"}}}]},"load-balancing_probe_zone":{"description":"Assign this monitor to emulate the specified zone while probing. This parameter is only valid for HTTP and HTTPS monitors.","example":"example.com","type":"string"},"load-balancing_proxied":{"default":false,"description":"Whether the hostname should be gray clouded (false) or orange clouded (true).","example":true,"type":"boolean"},"load-balancing_random_steering":{"description":"Configures pool weights.\n- `steering_policy=\"random\"`: A random pool is selected with probability proportional to pool weights.\n- `steering_policy=\"least_outstanding_requests\"`: Use pool weights to scale each pool's outstanding requests.\n- `steering_policy=\"least_connections\"`: Use pool weights to scale each pool's open connections.","properties":{"default_weight":{"default":1,"description":"The default weight for pools in the load balancer that are not specified in the pool_weights map.","example":0.2,"maximum":1,"minimum":0,"multipleOf":0.1,"type":"number"},"pool_weights":{"additionalProperties":{"type":"number"},"description":"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},"type":"object"}},"type":"object"},"load-balancing_region_code":{"description":"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).","enum":["WNAM","ENAM","WEU","EEU","NSAM","SSAM","OC","ME","NAF","SAF","SAS","SEAS","NEAS"],"example":"WNAM","type":"string"},"load-balancing_region_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-response-single"},{"properties":{"result":{"type":"object"}}}]},"load-balancing_region_pools":{"additionalProperties":{"description":"A `string:[string]` object of key-values. Region code maps to list of pool IDs.","items":{"type":"string"},"type":"array"},"description":"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"]},"type":"object"},"load-balancing_resource_reference":{"description":"A reference to a load balancer resource.","properties":{"reference_type":{"description":"When listed as a reference, the type (direction) of the reference.","enum":["referral","referrer"],"type":"string"},"references":{"description":"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"},{"reference_type":"referral","resource_id":"f1aba936b94213e5b8dca0c0dbf1f9cc","resource_name":"Login page monitor","resource_type":"monitor"}],"items":{"description":"A reference to a load balancer resource.","type":"object"},"type":"array"},"resource_id":{"example":"17b5962d775c646f3f9725cbc7a53df4"},"resource_name":{"description":"The human-identifiable name of the resource.","example":"primary-dc-1","type":"string"},"resource_type":{"description":"The type of the resource.","enum":["load_balancer","monitor","pool"],"example":"pool","type":"string"}},"type":"object"},"load-balancing_result_info":{"properties":{"count":{"description":"Total number of results on the current page","example":20,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"},"total_pages":{"description":"Total number of pages available","example":100,"type":"number"}},"type":"object"},"load-balancing_retries":{"default":2,"description":"The number of retries to attempt in case of a timeout before marking the origin as unhealthy. Retries are attempted immediately.","type":"integer"},"load-balancing_rules":{"description":"BETA Field Not General Access: A list of rules for this load balancer to execute.","items":{"additionalProperties":false,"description":"A rule object containing conditions and overrides for this load balancer to evaluate.","properties":{"condition":{"description":"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\"","type":"string"},"disabled":{"default":false,"description":"Disable this specific rule. It will no longer be evaluated by this load balancer.","type":"boolean"},"fixed_response":{"description":"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.","properties":{"content_type":{"description":"The http 'Content-Type' header to include in the response.","example":"application/json","maxLength":32,"type":"string"},"location":{"description":"The http 'Location' header to include in the response.","example":"www.example.com","maxLength":2048,"type":"string"},"message_body":{"description":"Text to include as the http body.","example":"Testing Hello","maxLength":1024,"type":"string"},"status_code":{"description":"The http status code to respond with.","type":"integer"}},"type":"object"},"name":{"description":"Name of this rule. Only used for human readability.","example":"route the path /testing to testing datacenter.","maxLength":200,"type":"string"},"overrides":{"description":"A collection of overrides to apply to the load balancer when this rule's condition is true. All fields are optional.","properties":{"adaptive_routing":{"$ref":"#/components/schemas/load-balancing_adaptive_routing"},"country_pools":{"$ref":"#/components/schemas/load-balancing_country_pools"},"default_pools":{"$ref":"#/components/schemas/load-balancing_default_pools"},"fallback_pool":{"$ref":"#/components/schemas/load-balancing_fallback_pool"},"location_strategy":{"$ref":"#/components/schemas/load-balancing_location_strategy"},"pop_pools":{"$ref":"#/components/schemas/load-balancing_pop_pools"},"random_steering":{"$ref":"#/components/schemas/load-balancing_random_steering"},"region_pools":{"$ref":"#/components/schemas/load-balancing_region_pools"},"session_affinity":{"$ref":"#/components/schemas/load-balancing_session_affinity"},"session_affinity_attributes":{"$ref":"#/components/schemas/load-balancing_session_affinity_attributes"},"session_affinity_ttl":{"$ref":"#/components/schemas/load-balancing_session_affinity_ttl"},"steering_policy":{"$ref":"#/components/schemas/load-balancing_steering_policy"},"ttl":{"$ref":"#/components/schemas/load-balancing_ttl"}},"type":"object"},"priority":{"default":0,"description":"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.","minimum":0,"type":"integer"},"terminates":{"default":false,"description":"If this rule's condition is true, this causes rule evaluation to stop after processing this rule.","type":"boolean"}},"type":"object"},"type":"array"},"load-balancing_schemas-description":{"description":"A human-readable description of the pool.","example":"Primary data center - Provider XYZ","type":"string"},"load-balancing_schemas-disabled_at":{"description":"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","readOnly":true,"type":"string"},"load-balancing_schemas-enabled":{"default":true,"description":"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.","example":true,"type":"boolean"},"load-balancing_schemas-header":{"description":"The request header is used to pass additional information with an HTTP request. Currently supported header is 'Host'.","properties":{"Host":{"$ref":"#/components/schemas/load-balancing_Host"}},"type":"object"},"load-balancing_schemas-id_response":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/load-balancing_schemas-identifier"}},"type":"object"}}}]},"load-balancing_schemas-identifier":{"example":"17b5962d775c646f3f9725cbc7a53df4","type":"string"},"load-balancing_schemas-name":{"description":"A human-identifiable name for the origin.","example":"app-server-1","type":"string"},"load-balancing_schemas-preview_id":{"example":"p1aba936b94213e5b8dca0c0dbf1f9cc","type":"string"},"load-balancing_schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-paginated-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/load-balancing_pool"},"type":"array"}}}]},"load-balancing_schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/load-balancing_pool"}}}]},"load-balancing_search":{"properties":{"resources":{"description":"A list of resources matching the search query.","items":{"$ref":"#/components/schemas/load-balancing_resource_reference"},"type":"array"}},"type":"object"},"load-balancing_search_params":{"properties":{"query":{"default":"","description":"Search query term.","example":"primary","type":"string"},"references":{"default":"","description":"The type of references to include (\"*\" for all).","enum":["","*","referral","referrer"],"example":"*","type":"string"}},"type":"object"},"load-balancing_search_result":{"properties":{"result":{"$ref":"#/components/schemas/load-balancing_search"}},"type":"object"},"load-balancing_session_affinity":{"default":"none","description":"Specifies the type of session affinity the load balancer should use unless specified as `\"none\"`. The supported types are:\n- `\"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.\n- `\"ip_cookie\"`: Behaves the same as `\"cookie\"` except the initial origin selection is stable and based on the client's ip address.\n- `\"header\"`: On the first request to a proxied load balancer, a session key based on the configured HTTP headers (see `session_affinity_attributes.headers`) is generated, encoding the request headers used for storing in the load balancer session state which origin the request will be forwarded to. Subsequent requests to the load balancer with the same headers will be sent to the same origin server, for the duration of the session and as long as the origin server remains healthy. If the session has been idle for the duration of `session_affinity_ttl` seconds or the origin server is unhealthy, then a new origin server is calculated and used. See `headers` in `session_affinity_attributes` for additional required configuration.","enum":["none","cookie","ip_cookie","header"],"example":"cookie","type":"string"},"load-balancing_session_affinity_attributes":{"description":"Configures attributes for session affinity.","properties":{"drain_duration":{"description":"Configures the drain duration in seconds. This field is only used when session affinity is enabled on the load balancer.","example":100,"type":"number"},"headers":{"default":"none","description":"Configures the names of HTTP headers to base session affinity on when header `session_affinity` is enabled. At least one HTTP header name must be provided. To specify the exact cookies to be used, include an item in the following format: `\"cookie:\u003ccookie-name-1\u003e,\u003ccookie-name-2\u003e\"` (example) where everything after the colon is a comma-separated list of cookie names. Providing only `\"cookie\"` will result in all cookies being used. The default max number of HTTP header names that can be provided depends on your plan: 5 for Enterprise, 1 for all other plans.","items":{"description":"An HTTP header name.","maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9_-]+$","type":"string"},"type":"array","uniqueItems":true},"require_all_headers":{"default":false,"description":"When header `session_affinity` is enabled, this option can be used to specify how HTTP headers on load balancing requests will be used. The supported values are:\n- `\"true\"`: Load balancing requests must contain *all* of the HTTP headers specified by the `headers` session affinity attribute, otherwise sessions aren't created.\n- `\"false\"`: Load balancing requests must contain *at least one* of the HTTP headers specified by the `headers` session affinity attribute, otherwise sessions aren't created.","type":"boolean"},"samesite":{"default":"Auto","description":"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\".","enum":["Auto","Lax","None","Strict"],"example":"Auto","type":"string"},"secure":{"default":"Auto","description":"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.","enum":["Auto","Always","Never"],"example":"Auto","type":"string"},"zero_downtime_failover":{"default":"none","description":"Configures the zero-downtime failover between origins within a pool when session affinity is enabled. This feature is currently incompatible with Argo, Tiered Cache, and Bandwidth Alliance. The supported values are:\n- `\"none\"`: No failover takes place for sessions pinned to the origin (default).\n- `\"temporary\"`: 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.\n- `\"sticky\"`: The session affinity cookie is updated and subsequent requests are sent to the new origin. Note: Zero-downtime failover with sticky sessions is currently not supported for session affinity by header.","enum":["none","temporary","sticky"],"example":"sticky","type":"string"}},"type":"object"},"load-balancing_session_affinity_ttl":{"description":"Time, in seconds, until a client's session expires after being created. Once the expiry time has been reached, subsequent requests may get sent to a different origin server. The accepted ranges per `session_affinity` policy are:\n- `\"cookie\"` / `\"ip_cookie\"`: The current default of 23 hours will be used unless explicitly set. The accepted range of values is between [1800, 604800].\n- `\"header\"`: The current default of 1800 seconds will be used unless explicitly set. The accepted range of values is between [30, 3600]. Note: With session affinity by header, sessions only expire after they haven't been used for the number of seconds specified.","example":1800,"type":"number"},"load-balancing_steering_policy":{"default":"","description":"Steering Policy for this load balancer.\n- `\"off\"`: Use `default_pools`.\n- `\"geo\"`: Use `region_pools`/`country_pools`/`pop_pools`. For non-proxied requests, the country for `country_pools` is determined by `location_strategy`.\n- `\"random\"`: Select a pool randomly.\n- `\"dynamic_latency\"`: Use round trip time to select the closest pool in default_pools (requires pool health checks).\n- `\"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.\n- `\"least_outstanding_requests\"`: Select a pool by taking into consideration `random_steering` weights, as well as each pool's number of outstanding requests. Pools with more pending requests are weighted proportionately less relative to others.\n- `\"least_connections\"`: Select a pool by taking into consideration `random_steering` weights, as well as each pool's number of open connections. Pools with more open connections are weighted proportionately less relative to others. Supported for HTTP/1 and HTTP/2 connections.\n- `\"\"`: Will map to `\"geo\"` if you use `region_pools`/`country_pools`/`pop_pools` otherwise `\"off\"`.","enum":["off","geo","random","dynamic_latency","proximity","least_outstanding_requests","least_connections",""],"example":"dynamic_latency","type":"string"},"load-balancing_subdivision_code_a2":{"description":"Two-letter subdivision code followed in ISO 3166-2.","example":"CA","type":"string"},"load-balancing_timeout":{"default":5,"description":"The timeout (in seconds) before marking the health check as failed.","type":"integer"},"load-balancing_timestamp":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"load-balancing_ttl":{"description":"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,"type":"number"},"load-balancing_type":{"default":"http","description":"The protocol to use for the health check. Currently supported protocols are 'HTTP','HTTPS', 'TCP', 'ICMP-PING', 'UDP-ICMP', and 'SMTP'.","enum":["http","https","tcp","udp_icmp","icmp_ping","smtp"],"example":"https","type":"string"},"load-balancing_until":{"description":"End date and time of requesting data period in the ISO8601 format.","example":"2016-11-11T13:00:00Z","format":"date-time","type":"string"},"load-balancing_virtual_network_id":{"description":"The virtual network subnet ID the origin belongs in. Virtual network must also belong to the account.","example":"a5624d4e-044a-4ff0-b3e1-e2465353d4b4","type":"string"},"load-balancing_weight":{"default":1,"description":"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.\n- `origin_steering.policy=\"least_outstanding_requests\"`: Use weight to scale the origin's outstanding requests.\n- `origin_steering.policy=\"least_connections\"`: Use weight to scale the origin's open connections.","example":0.6,"maximum":1,"minimum":0,"multipleOf":0.01,"type":"number"},"logcontrol_account_identifier":{"$ref":"#/components/schemas/logcontrol_identifier"},"logcontrol_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/logcontrol_messages"},"messages":{"$ref":"#/components/schemas/logcontrol_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"logcontrol_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/logcontrol_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/logcontrol_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"logcontrol_api-response-single":{"allOf":[{"$ref":"#/components/schemas/logcontrol_api-response-common"}],"type":"object"},"logcontrol_cmb_config":{"nullable":true,"properties":{"regions":{"$ref":"#/components/schemas/logcontrol_regions"}},"type":"object"},"logcontrol_cmb_config_response_single":{"allOf":[{"$ref":"#/components/schemas/logcontrol_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/logcontrol_cmb_config"}}}]},"logcontrol_flag":{"description":"The log retention flag for Logpull API.","example":true,"type":"boolean"},"logcontrol_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"logcontrol_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"logcontrol_regions":{"description":"Comma-separated list of regions.","example":"eu","maxLength":256,"pattern":"^[a-z,]*$","type":"string"},"logcontrol_retention_flag":{"nullable":true,"properties":{"flag":{"$ref":"#/components/schemas/logcontrol_flag"}},"type":"object"},"logcontrol_retention_flag_response_single":{"allOf":[{"$ref":"#/components/schemas/logcontrol_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/logcontrol_retention_flag"}}}]},"logcontrol_zone_identifier":{"$ref":"#/components/schemas/logcontrol_identifier"},"logpush_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/logpush_messages"},"messages":{"$ref":"#/components/schemas/logpush_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"logpush_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/logpush_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/logpush_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"logpush_api-response-single":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common"}],"type":"object"},"logpush_dataset":{"description":"Name of the dataset. A list of supported datasets can be found on the [Developer Docs](https://developers.cloudflare.com/logs/reference/log-fields/).","example":"http_requests","maxLength":256,"nullable":true,"pattern":"^[a-zA-Z0-9_\\-]*$","type":"string"},"logpush_destination_conf":{"description":"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,"type":"string"},"logpush_destination_exists_response":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common"},{"properties":{"result":{"nullable":true,"properties":{"exists":{"example":false,"type":"boolean"}},"type":"object"}}}]},"logpush_enabled":{"description":"Flag that indicates if the job is enabled.","example":false,"type":"boolean"},"logpush_error_message":{"description":"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","nullable":true,"type":"string"},"logpush_fields":{"description":"Comma-separated list of fields.","example":"ClientIP,ClientRequestHost,ClientRequestMethod,ClientRequestURI,EdgeEndTimestamp,EdgeResponseBytes,EdgeResponseStatus,EdgeStartTimestamp,RayID","type":"string"},"logpush_filter":{"description":"Filters to drill down into specific events.","example":"{\"where\":{\"and\":[{\"key\":\"ClientCountry\",\"operator\":\"neq\",\"value\":\"ca\"}]}}","type":"string"},"logpush_frequency":{"default":"high","deprecated":true,"description":"This field is deprecated. Please use `max_upload_*` parameters instead. 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.","enum":["high","low"],"example":"high","nullable":true,"type":"string"},"logpush_get_ownership_response":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common"},{"properties":{"result":{"nullable":true,"properties":{"filename":{"example":"logs/challenge-filename.txt","type":"string"},"message":{"example":"","type":"string"},"valid":{"example":true,"type":"boolean"}},"type":"object"}}}]},"logpush_id":{"description":"Unique id of the job.","minimum":1,"type":"integer"},"logpush_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"logpush_instant_logs_job":{"nullable":true,"properties":{"destination_conf":{"$ref":"#/components/schemas/logpush_schemas-destination_conf"},"fields":{"$ref":"#/components/schemas/logpush_fields"},"filter":{"$ref":"#/components/schemas/logpush_filter"},"sample":{"$ref":"#/components/schemas/logpush_sample"},"session_id":{"$ref":"#/components/schemas/logpush_session_id"}},"type":"object"},"logpush_instant_logs_job_response_collection":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/logpush_instant_logs_job"},"type":"array"}}}]},"logpush_instant_logs_job_response_single":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/logpush_instant_logs_job"}}}]},"logpush_kind":{"default":"","description":"The kind parameter (optional) is used to differentiate between Logpush and Edge Log Delivery jobs. Currently, Edge Log Delivery is only supported for the `http_requests` dataset.","enum":["edge"],"example":"","nullable":true,"type":"string"},"logpush_last_complete":{"description":"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","nullable":true,"type":"string"},"logpush_last_error":{"description":"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","nullable":true,"type":"string"},"logpush_logpull_options":{"deprecated":true,"description":"This field is deprecated. Use `output_options` instead. 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\u0026timestamps=rfc3339","format":"uri-reference","maxLength":4096,"nullable":true,"type":"string"},"logpush_logpush_field_response_collection":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common"},{"properties":{"result":{"items":{"nullable":true,"properties":{"key":{"example":"value","type":"string"}},"type":"object"},"type":"object"}}}]},"logpush_logpush_job":{"nullable":true,"properties":{"dataset":{"$ref":"#/components/schemas/logpush_dataset"},"destination_conf":{"$ref":"#/components/schemas/logpush_destination_conf"},"enabled":{"$ref":"#/components/schemas/logpush_enabled"},"error_message":{"$ref":"#/components/schemas/logpush_error_message"},"frequency":{"$ref":"#/components/schemas/logpush_frequency"},"id":{"$ref":"#/components/schemas/logpush_id"},"kind":{"$ref":"#/components/schemas/logpush_kind"},"last_complete":{"$ref":"#/components/schemas/logpush_last_complete"},"last_error":{"$ref":"#/components/schemas/logpush_last_error"},"logpull_options":{"$ref":"#/components/schemas/logpush_logpull_options"},"max_upload_bytes":{"$ref":"#/components/schemas/logpush_max_upload_bytes"},"max_upload_interval_seconds":{"$ref":"#/components/schemas/logpush_max_upload_interval_seconds"},"max_upload_records":{"$ref":"#/components/schemas/logpush_max_upload_records"},"name":{"$ref":"#/components/schemas/logpush_name"},"output_options":{"$ref":"#/components/schemas/logpush_output_options"}},"type":"object"},"logpush_logpush_job_response_collection":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/logpush_logpush_job"},"type":"array"}}}]},"logpush_logpush_job_response_single":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/logpush_logpush_job"}}}]},"logpush_max_upload_bytes":{"description":"The maximum uncompressed file size of a batch of logs. This setting value must be between `5 MB` and `1 GB`, or `0` to disable it. Note that you cannot set a minimum file size; this means that log files may be much smaller than this batch size. This parameter is not available for jobs with `edge` as its kind.","example":5000000,"maximum":1000000000,"minimum":5000000,"nullable":true,"type":"integer"},"logpush_max_upload_interval_seconds":{"default":30,"description":"The maximum interval in seconds for log batches. This setting must be between 30 and 300 seconds (5 minutes), or `0` to disable it. Note that you cannot specify a minimum interval for log batches; this means that log files may be sent in shorter intervals than this. This parameter is only used for jobs with `edge` as its kind.","example":30,"maximum":300,"minimum":30,"nullable":true,"type":"integer"},"logpush_max_upload_records":{"default":100000,"description":"The maximum number of log lines per batch. This setting must be between 1000 and 1,000,000 lines, or `0` to disable it. Note that you cannot specify a minimum number of log lines per batch; this means that log files may contain many fewer lines than this. This parameter is not available for jobs with `edge` as its kind.","example":1000,"maximum":1000000,"minimum":1000,"nullable":true,"type":"integer"},"logpush_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"logpush_name":{"description":"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,"nullable":true,"pattern":"^[a-zA-Z0-9\\-\\.]*$","type":"string"},"logpush_output_options":{"description":"The structured replacement for `logpull_options`. When including this field, the `logpull_option` field will be ignored.","nullable":true,"properties":{"CVE-2021-4428":{"default":false,"description":"If set to true, will cause all occurrences of `${` in the generated files to be replaced with `x{`.","nullable":true,"type":"boolean"},"batch_prefix":{"default":"","description":"String to be prepended before each batch.","nullable":true,"type":"string"},"batch_suffix":{"default":"","description":"String to be appended after each batch.","nullable":true,"type":"string"},"field_delimiter":{"default":",","description":"String to join fields. This field be ignored when `record_template` is set.","nullable":true,"type":"string"},"field_names":{"description":"List of field names to be included in the Logpush output. For the moment, there is no option to add all fields at once, so you must specify all the fields names you are interested in.","example":["ClientIP","EdgeStartTimestamp","RayID"],"items":{"type":"string"},"type":"array"},"output_type":{"default":"ndjson","description":"Specifies the output type, such as `ndjson` or `csv`. This sets default values for the rest of the settings, depending on the chosen output type. Some formatting rules, like string quoting, are different between output types.","enum":["ndjson","csv"],"example":"ndjson","type":"string"},"record_delimiter":{"default":"","description":"String to be inserted in-between the records as separator.","nullable":true,"type":"string"},"record_prefix":{"default":"{","description":"String to be prepended before each record.","nullable":true,"type":"string"},"record_suffix":{"default":"}\n","description":"String to be appended after each record.","nullable":true,"type":"string"},"record_template":{"default":"","description":"String to use as template for each record instead of the default comma-separated list. All fields used in the template must be present in `field_names` as well, otherwise they will end up as null. Format as a Go `text/template` without any standard functions, like conditionals, loops, sub-templates, etc.","nullable":true,"type":"string"},"sample_rate":{"default":1,"description":"Floating number to specify sampling rate. Sampling is applied on top of filtering, and regardless of the current `sample_interval` of the data.","format":"float","maximum":1,"minimum":0,"nullable":true,"type":"number"},"timestamp_format":{"default":"unixnano","description":"String to specify the format for timestamps, such as `unixnano`, `unix`, or `rfc3339`.","enum":["unixnano","unix","rfc3339"],"type":"string"}},"type":"object"},"logpush_ownership_challenge":{"description":"Ownership challenge token to prove destination ownership.","example":"00000000000000000000","maxLength":4096,"pattern":"^[a-zA-Z0-9/\\+\\.\\-_]*$","type":"string"},"logpush_sample":{"description":"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,"type":"integer"},"logpush_schemas-destination_conf":{"description":"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,"type":"string"},"logpush_session_id":{"description":"Unique session id of the job.","example":"99d471b1ca3c23cc8e30b6acec5db987","type":"string"},"logpush_validate_ownership_response":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common"},{"properties":{"result":{"nullable":true,"properties":{"valid":{"example":true,"type":"boolean"}},"type":"object"}}}]},"logpush_validate_response":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common"},{"properties":{"result":{"nullable":true,"properties":{"message":{"example":"","type":"string"},"valid":{"example":true,"type":"boolean"}},"type":"object"}}}]},"logshare_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/logshare_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/logshare_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"logshare_count":{"description":"When `?count=` is provided, the response will contain up to `count` results. Since results are not sorted, you are likely to get different data for repeated requests. `count` must be an integer \u003e 0.","minimum":1,"type":"integer"},"logshare_end":{"anyOf":[{"type":"string"},{"type":"integer"}],"description":"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"},"logshare_fields":{"description":"The `/received` route by default returns a limited set of fields, and allows customers to override the default field set by specifying individual fields. The reasons for this are: 1. Most customers require only a small subset of fields, but that subset varies from customer to customer; 2. Flat schema is much easier to work with downstream (importing into BigTable etc); 3. Performance (time to process, file size). If `?fields=` is not specified, default field set is returned. This default field set may change at any time. When `?fields=` is provided, each record is returned with the specified fields. `fields` must be specified as a comma separated list without any whitespaces, and all fields must exist. The order in which fields are specified does not matter, and the order of fields in the response is not specified.","example":"ClientIP,RayID,EdgeStartTimestamp","type":"string"},"logshare_fields_response":{"properties":{"key":{"example":"value","type":"string"}},"type":"object"},"logshare_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"logshare_logs_response_json_lines":{"anyOf":[{"type":"string"},{"type":"object"}],"example":"{\"ClientIP\":\"192.0.2.1\",\"RayID\":\"41ddf1740f67442d\",\"EdgeStartTimestamp\":1526810289280000000}\n{\"ClientIP\":\"192.0.2.1\",\"RayID\":\"41ddf1740f67442d\",\"EdgeStartTimestamp\":1526810289280000000}\n{\"ClientIP\":\"192.0.2.1\",\"RayID\":\"41ddf1740f67442d\",\"EdgeStartTimestamp\":1526810289280000000}"},"logshare_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"logshare_ray_identifier":{"description":"Ray identifier.","example":"41ddf1740f67442d","maxLength":16,"readOnly":true,"type":"string"},"logshare_sample":{"description":"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,"type":"number"},"logshare_start":{"anyOf":[{"type":"string"},{"type":"integer"}],"description":"Sets the (inclusive) beginning of the requested time frame. This can be a unix timestamp (in seconds or nanoseconds), or an absolute timestamp that conforms to RFC 3339. At this point in time, it cannot exceed a time in the past greater than seven days.","example":"2018-05-20T10:00:00Z"},"logshare_timestamps":{"default":"unixnano","description":"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.","enum":["unix","unixnano","rfc3339"],"example":"unixnano","type":"string"},"logshare_zone_identifier":{"$ref":"#/components/schemas/logshare_identifier"},"magic-transit_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/magic-transit_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"},"result_info":{"$ref":"#/components/schemas/magic-transit_result_info"}}}],"type":"object"},"magic-transit_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/magic-transit_messages"},"messages":{"$ref":"#/components/schemas/magic-transit_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"magic-transit_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/magic-transit_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/magic-transit_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"magic-transit_asn":{"description":"AS number associated with the node object.","type":"string"},"magic-transit_colo":{"properties":{"city":{"$ref":"#/components/schemas/magic-transit_colo_city"},"name":{"$ref":"#/components/schemas/magic-transit_colo_name"}},"type":"object"},"magic-transit_colo_city":{"description":"Source colo city.","example":"Denver, CO, US","type":"string"},"magic-transit_colo_name":{"description":"Source colo name.","example":"den01","type":"string"},"magic-transit_colo_result":{"properties":{"colo":{"$ref":"#/components/schemas/magic-transit_colo"},"error":{"$ref":"#/components/schemas/magic-transit_error"},"hops":{"items":{"$ref":"#/components/schemas/magic-transit_hop_result"},"type":"array"},"target_summary":{"$ref":"#/components/schemas/magic-transit_target_summary"},"traceroute_time_ms":{"$ref":"#/components/schemas/magic-transit_traceroute_time_ms"}},"type":"object"},"magic-transit_colos":{"description":"If no source colo names specified, all colos will be used. China colos are unavailable for traceroutes.","example":["den","sin"],"items":{"description":"Source colo name.","type":"string"},"type":"array"},"magic-transit_error":{"description":"Errors resulting from collecting traceroute from colo to target.","enum":["","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"],"example":"","type":"string"},"magic-transit_hop_result":{"properties":{"nodes":{"description":"An array of node objects.","items":{"$ref":"#/components/schemas/magic-transit_node_result"},"type":"array"},"packets_lost":{"$ref":"#/components/schemas/magic-transit_packets_lost"},"packets_sent":{"$ref":"#/components/schemas/magic-transit_packets_sent"},"packets_ttl":{"$ref":"#/components/schemas/magic-transit_packets_ttl"}},"type":"object"},"magic-transit_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"magic-transit_ip":{"description":"IP address of the node.","type":"string"},"magic-transit_labels":{"description":"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.","items":{"type":"string"},"type":"array"},"magic-transit_max_rtt_ms":{"description":"Maximum RTT in ms.","type":"number"},"magic-transit_max_ttl":{"default":15,"description":"Max TTL.","maximum":64,"minimum":0,"type":"integer"},"magic-transit_mean_rtt_ms":{"description":"Mean RTT in ms.","type":"number"},"magic-transit_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"magic-transit_min_rtt_ms":{"description":"Minimum RTT in ms.","type":"number"},"magic-transit_name":{"description":"Host name of the address, this may be the same as the IP address.","type":"string"},"magic-transit_node_result":{"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},"properties":{"asn":{"$ref":"#/components/schemas/magic-transit_asn"},"ip":{"$ref":"#/components/schemas/magic-transit_ip"},"labels":{"$ref":"#/components/schemas/magic-transit_labels"},"max_rtt_ms":{"$ref":"#/components/schemas/magic-transit_max_rtt_ms"},"mean_rtt_ms":{"$ref":"#/components/schemas/magic-transit_mean_rtt_ms"},"min_rtt_ms":{"$ref":"#/components/schemas/magic-transit_min_rtt_ms"},"name":{"$ref":"#/components/schemas/magic-transit_name"},"packet_count":{"$ref":"#/components/schemas/magic-transit_packet_count"},"std_dev_rtt_ms":{"$ref":"#/components/schemas/magic-transit_std_dev_rtt_ms"}},"type":"object"},"magic-transit_options":{"example":{"max_ttl":15,"packet_type":"icmp"},"properties":{"max_ttl":{"$ref":"#/components/schemas/magic-transit_max_ttl"},"packet_type":{"$ref":"#/components/schemas/magic-transit_packet_type"},"packets_per_ttl":{"$ref":"#/components/schemas/magic-transit_packets_per_ttl"},"port":{"$ref":"#/components/schemas/magic-transit_port"},"wait_time":{"$ref":"#/components/schemas/magic-transit_wait_time"}}},"magic-transit_packet_count":{"description":"Number of packets with a response from this node.","type":"integer"},"magic-transit_packet_type":{"default":"icmp","description":"Type of packet sent.","enum":["icmp","tcp","udp","gre","gre+icmp"],"example":"icmp","type":"string"},"magic-transit_packets_lost":{"description":"Number of packets where no response was received.","type":"integer"},"magic-transit_packets_per_ttl":{"default":3,"description":"Number of packets sent at each TTL.","maximum":10,"minimum":0,"type":"integer"},"magic-transit_packets_sent":{"description":"Number of packets sent with specified TTL.","type":"integer"},"magic-transit_packets_ttl":{"description":"The time to live (TTL).","type":"integer"},"magic-transit_port":{"default":0,"description":"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.","maximum":65535,"minimum":0,"type":"integer"},"magic-transit_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"magic-transit_std_dev_rtt_ms":{"description":"Standard deviation of the RTTs in ms.","type":"number"},"magic-transit_target":{"description":"The target hostname, IPv6, or IPv6 address.","example":"1.1.1.1","type":"string"},"magic-transit_target_result":{"properties":{"colos":{"items":{"$ref":"#/components/schemas/magic-transit_colo_result"},"type":"array"},"target":{"$ref":"#/components/schemas/magic-transit_target"}},"type":"object"},"magic-transit_target_summary":{"description":"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},"type":"object"},"magic-transit_targets":{"example":["203.0.113.1","cloudflare.com"],"items":{"description":"Hosts as a hostname or IPv4/IPv6 address represented by strings.","example":"203.0.113.1","type":"string"},"maxLength":10,"type":"array"},"magic-transit_traceroute_response_collection":{"allOf":[{"$ref":"#/components/schemas/magic-transit_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/magic-transit_target_result"},"type":"array"}}}]},"magic-transit_traceroute_time_ms":{"description":"Total time of traceroute in ms.","type":"integer"},"magic-transit_wait_time":{"default":1,"description":"Set the time (in seconds) to wait for a response to a probe.","maximum":5,"minimum":1,"type":"integer"},"magic-visibility_account_identifier":{"example":"6f91088a406011ed95aed352566e8d4c","type":"string"},"magic-visibility_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"},"result_info":{"$ref":"#/components/schemas/magic-visibility_result_info"}}}],"type":"object"},"magic-visibility_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/magic-visibility_messages"},"messages":{"$ref":"#/components/schemas/magic-visibility_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"magic-visibility_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"magic-visibility_api-response-single":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_api-response-common"},{"properties":{"result":{"anyOf":[{"type":"object"},{"type":"string"}]}}}],"type":"object"},"magic-visibility_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"magic-visibility_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"magic-visibility_mnm_config":{"properties":{"default_sampling":{"$ref":"#/components/schemas/magic-visibility_mnm_config_default_sampling"},"name":{"$ref":"#/components/schemas/magic-visibility_mnm_config_name"},"router_ips":{"$ref":"#/components/schemas/magic-visibility_mnm_config_router_ips"},"warp_devices":{"$ref":"#/components/schemas/magic-visibility_mnm_config_warp_devices"}},"required":["name","default_sampling","router_ips","warp_devices"],"type":"object"},"magic-visibility_mnm_config_default_sampling":{"default":1,"description":"Fallback sampling rate of flow messages being sent in packets per second. This should match the packet sampling rate configured on the router.","minimum":1,"type":"number"},"magic-visibility_mnm_config_name":{"description":"The account name.","example":"cloudflare user's account","type":"string"},"magic-visibility_mnm_config_router_ip":{"description":"IPv4 CIDR of the router sourcing flow data. Only /32 addresses are currently supported.","example":"203.0.113.1","type":"string"},"magic-visibility_mnm_config_router_ips":{"items":{"$ref":"#/components/schemas/magic-visibility_mnm_config_router_ip"},"type":"array"},"magic-visibility_mnm_config_single_response":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/magic-visibility_mnm_config"}},"type":"object"}]},"magic-visibility_mnm_config_warp_device":{"description":"Object representing a warp device with an ID and name.","properties":{"id":{"description":"Unique identifier for the warp device.","example":"5360368d-b351-4791-abe1-93550dabd351","type":"string"},"name":{"description":"Name of the warp device.","example":"My warp device","type":"string"},"router_ip":{"description":"IPv4 CIDR of the router sourcing flow data associated with this warp device. Only /32 addresses are currently supported.","example":"203.0.113.1","type":"string"}},"required":["id","name","router_ip"],"type":"object"},"magic-visibility_mnm_config_warp_devices":{"items":{"$ref":"#/components/schemas/magic-visibility_mnm_config_warp_device"},"type":"array"},"magic-visibility_mnm_rule":{"nullable":true,"properties":{"automatic_advertisement":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_automatic_advertisement"},"bandwidth_threshold":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_bandwidth_threshold"},"duration":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_duration"},"id":{"$ref":"#/components/schemas/magic-visibility_rule_identifier"},"name":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_name"},"packet_threshold":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_packet_threshold"},"prefixes":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_ip_prefixes"}},"required":["name","prefixes","automatic_advertisement","duration"],"type":"object"},"magic-visibility_mnm_rule_advertisable_response":{"nullable":true,"properties":{"automatic_advertisement":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_automatic_advertisement"}},"required":["automatic_advertisement"],"type":"object"},"magic-visibility_mnm_rule_advertisement_single_response":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_advertisable_response"}},"type":"object"}]},"magic-visibility_mnm_rule_automatic_advertisement":{"description":"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","nullable":true,"type":"boolean"},"magic-visibility_mnm_rule_bandwidth_threshold":{"description":"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,"type":"number"},"magic-visibility_mnm_rule_duration":{"default":"1m","description":"The amount of time that the rule threshold must be exceeded to send an alert notification. The final value must be equivalent to one of the following 8 values [\"1m\",\"5m\",\"10m\",\"15m\",\"20m\",\"30m\",\"45m\",\"60m\"]. The format is AhBmCsDmsEusFns where A, B, C, D, E and F durations are optional; however at least one unit must be provided.","example":"300s","type":"string"},"magic-visibility_mnm_rule_ip_prefix":{"description":"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","type":"string"},"magic-visibility_mnm_rule_ip_prefixes":{"items":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_ip_prefix"},"type":"array"},"magic-visibility_mnm_rule_name":{"description":"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","type":"string"},"magic-visibility_mnm_rule_packet_threshold":{"description":"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,"type":"number"},"magic-visibility_mnm_rules_collection_response":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/magic-visibility_mnm_rule"},"nullable":true,"type":"array"}}}]},"magic-visibility_mnm_rules_single_response":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/magic-visibility_mnm_rule"}},"type":"object"}]},"magic-visibility_pcaps_byte_limit":{"description":"The maximum number of bytes to capture. This field only applies to `full` packet captures.","example":500000,"maximum":1000000000,"minimum":1,"type":"number"},"magic-visibility_pcaps_collection_response":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_api-response-collection"},{"properties":{"result":{"items":{"anyOf":[{"$ref":"#/components/schemas/magic-visibility_pcaps_response_simple"},{"$ref":"#/components/schemas/magic-visibility_pcaps_response_full"}]},"type":"array"}}}]},"magic-visibility_pcaps_colo_name":{"description":"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","type":"string"},"magic-visibility_pcaps_destination_conf":{"description":"The full URI for the bucket. This field only applies to `full` packet captures.","example":"s3://pcaps-bucket?region=us-east-1","type":"string"},"magic-visibility_pcaps_error_message":{"description":"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.","type":"string"},"magic-visibility_pcaps_filter_v1":{"description":"The packet capture filter. When this field is empty, all packets are captured.","properties":{"destination_address":{"description":"The destination IP address of the packet.","example":"1.2.3.4","type":"string"},"destination_port":{"description":"The destination port of the packet.","example":80,"type":"number"},"protocol":{"description":"The protocol number of the packet.","example":6,"type":"number"},"source_address":{"description":"The source IP address of the packet.","example":"1.2.3.4","type":"string"},"source_port":{"description":"The source port of the packet.","example":123,"type":"number"}},"type":"object"},"magic-visibility_pcaps_id":{"description":"The ID for the packet capture.","example":"66802ca5668e47a2b82c2e6746e45037","maxLength":32,"minLength":32,"type":"string"},"magic-visibility_pcaps_ownership_challenge":{"description":"The ownership challenge filename stored in the bucket.","example":"ownership-challenge-9883874ecac311ec8475433579a6bf5f.txt","type":"string"},"magic-visibility_pcaps_ownership_collection":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/magic-visibility_pcaps_ownership_response"},"nullable":true,"type":"array"}}}]},"magic-visibility_pcaps_ownership_request":{"properties":{"destination_conf":{"$ref":"#/components/schemas/magic-visibility_pcaps_destination_conf"}},"required":["destination_conf"],"type":"object"},"magic-visibility_pcaps_ownership_response":{"properties":{"destination_conf":{"$ref":"#/components/schemas/magic-visibility_pcaps_destination_conf"},"filename":{"$ref":"#/components/schemas/magic-visibility_pcaps_ownership_challenge"},"id":{"description":"The bucket ID associated with the packet captures API.","example":"9883874ecac311ec8475433579a6bf5f","maxLength":32,"minLength":32,"type":"string"},"status":{"description":"The status of the ownership challenge. Can be pending, success or failed.","enum":["pending","success","failed"],"example":"success","type":"string"},"submitted":{"description":"The RFC 3339 timestamp when the bucket was added to packet captures API.","example":"2020-01-01T08:00:00Z","type":"string"},"validated":{"description":"The RFC 3339 timestamp when the bucket was validated.","example":"2020-01-01T08:00:00Z","type":"string"}},"required":["id","status","submitted","destination_conf","filename"],"type":"object"},"magic-visibility_pcaps_ownership_single_response":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/magic-visibility_pcaps_ownership_response"}}}]},"magic-visibility_pcaps_ownership_validate_request":{"properties":{"destination_conf":{"$ref":"#/components/schemas/magic-visibility_pcaps_destination_conf"},"ownership_challenge":{"$ref":"#/components/schemas/magic-visibility_pcaps_ownership_challenge"}},"required":["destination_conf","ownership_challenge"],"type":"object"},"magic-visibility_pcaps_packet_limit":{"description":"The limit of packets contained in a packet capture.","example":10000,"maximum":10000,"minimum":1,"type":"number"},"magic-visibility_pcaps_request_full":{"properties":{"byte_limit":{"$ref":"#/components/schemas/magic-visibility_pcaps_byte_limit"},"colo_name":{"$ref":"#/components/schemas/magic-visibility_pcaps_colo_name"},"destination_conf":{"$ref":"#/components/schemas/magic-visibility_pcaps_destination_conf"},"filter_v1":{"$ref":"#/components/schemas/magic-visibility_pcaps_filter_v1"},"packet_limit":{"$ref":"#/components/schemas/magic-visibility_pcaps_packet_limit"},"system":{"$ref":"#/components/schemas/magic-visibility_pcaps_system"},"time_limit":{"$ref":"#/components/schemas/magic-visibility_pcaps_time_limit"},"type":{"$ref":"#/components/schemas/magic-visibility_pcaps_type"}},"required":["time_limit","type","system","colo_name","destination_conf"],"type":"object"},"magic-visibility_pcaps_request_pcap":{"anyOf":[{"$ref":"#/components/schemas/magic-visibility_pcaps_request_simple"},{"$ref":"#/components/schemas/magic-visibility_pcaps_request_full"}]},"magic-visibility_pcaps_request_simple":{"properties":{"filter_v1":{"$ref":"#/components/schemas/magic-visibility_pcaps_filter_v1"},"packet_limit":{"$ref":"#/components/schemas/magic-visibility_pcaps_packet_limit"},"system":{"$ref":"#/components/schemas/magic-visibility_pcaps_system"},"time_limit":{"$ref":"#/components/schemas/magic-visibility_pcaps_time_limit"},"type":{"$ref":"#/components/schemas/magic-visibility_pcaps_type"}},"required":["time_limit","packet_limit","type","system"],"type":"object"},"magic-visibility_pcaps_response_full":{"properties":{"byte_limit":{"$ref":"#/components/schemas/magic-visibility_pcaps_byte_limit"},"colo_name":{"$ref":"#/components/schemas/magic-visibility_pcaps_colo_name"},"destination_conf":{"$ref":"#/components/schemas/magic-visibility_pcaps_destination_conf"},"error_message":{"$ref":"#/components/schemas/magic-visibility_pcaps_error_message"},"filter_v1":{"$ref":"#/components/schemas/magic-visibility_pcaps_filter_v1"},"id":{"$ref":"#/components/schemas/magic-visibility_pcaps_id"},"status":{"$ref":"#/components/schemas/magic-visibility_pcaps_status"},"submitted":{"$ref":"#/components/schemas/magic-visibility_pcaps_submitted"},"system":{"$ref":"#/components/schemas/magic-visibility_pcaps_system"},"time_limit":{"$ref":"#/components/schemas/magic-visibility_pcaps_time_limit"},"type":{"$ref":"#/components/schemas/magic-visibility_pcaps_type"}},"type":"object"},"magic-visibility_pcaps_response_simple":{"properties":{"filter_v1":{"$ref":"#/components/schemas/magic-visibility_pcaps_filter_v1"},"id":{"$ref":"#/components/schemas/magic-visibility_pcaps_id"},"status":{"$ref":"#/components/schemas/magic-visibility_pcaps_status"},"submitted":{"$ref":"#/components/schemas/magic-visibility_pcaps_submitted"},"system":{"$ref":"#/components/schemas/magic-visibility_pcaps_system"},"time_limit":{"$ref":"#/components/schemas/magic-visibility_pcaps_time_limit"},"type":{"$ref":"#/components/schemas/magic-visibility_pcaps_type"}},"type":"object"},"magic-visibility_pcaps_single_response":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_api-response-single"},{"properties":{"result":{"anyOf":[{"$ref":"#/components/schemas/magic-visibility_pcaps_response_simple"},{"$ref":"#/components/schemas/magic-visibility_pcaps_response_full"}]}}}]},"magic-visibility_pcaps_status":{"description":"The status of the packet capture request.","enum":["unknown","success","pending","running","conversion_pending","conversion_running","complete","failed"],"example":"success","type":"string"},"magic-visibility_pcaps_submitted":{"description":"The RFC 3339 timestamp when the packet capture was created.","example":"2020-01-01T08:00:00Z","type":"string"},"magic-visibility_pcaps_system":{"description":"The system used to collect packet captures.","enum":["magic-transit"],"example":"magic-transit","type":"string"},"magic-visibility_pcaps_time_limit":{"description":"The packet capture duration in seconds.","example":300,"maximum":300,"minimum":1,"type":"number"},"magic-visibility_pcaps_type":{"description":"The type of packet capture. `Simple` captures sampled packets, and `full` captures entire payloads and non-sampled packets.","enum":["simple","full"],"example":"simple","type":"string"},"magic-visibility_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"magic-visibility_rule_identifier":{"description":"The id of the rule. Must be unique.","example":"2890e6fa406311ed9b5a23f70f6fb8cf","type":"string"},"magic_account_app":{"description":"Custom app defined for an account.","properties":{"account_app_id":{"$ref":"#/components/schemas/magic_account_app_id"},"hostnames":{"$ref":"#/components/schemas/magic_app_hostnames"},"ip_subnets":{"$ref":"#/components/schemas/magic_app_subnets"},"name":{"$ref":"#/components/schemas/magic_app_name"},"type":{"$ref":"#/components/schemas/magic_app_type"}},"required":["account_app_id"],"title":"Account App","type":"object"},"magic_account_app_id":{"description":"Magic account app ID.","example":"ac60d3d0435248289d446cedd870bcf4","type":"string"},"magic_acl":{"description":"Bidirectional ACL policy for network traffic within a site.","properties":{"description":{"description":"Description for the ACL.","example":"Allows local traffic between PIN pads and cash register.","type":"string"},"forward_locally":{"$ref":"#/components/schemas/magic_forward_locally"},"id":{"$ref":"#/components/schemas/magic_identifier"},"lan_1":{"$ref":"#/components/schemas/magic_lan-acl-configuration"},"lan_2":{"$ref":"#/components/schemas/magic_lan-acl-configuration"},"name":{"description":"The name of the ACL.","example":"PIN Pad - Cash Register","type":"string"},"protocols":{"items":{"description":"Array of allowed communication protocols between configured LANs. If no protocols are provided, all protocols are allowed.","enum":["tcp","udp","icmp"],"type":"string"},"type":"array"}},"type":"object"},"magic_acl-subnet":{"oneOf":[{"$ref":"#/components/schemas/magic_ip-address"},{"$ref":"#/components/schemas/magic_cidr"}]},"magic_acl_deleted_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/magic_acl"}}}]},"magic_acl_modified_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/magic_acl"}}}]},"magic_acl_single_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/magic_acl"}}}]},"magic_acl_update_request":{"properties":{"description":{"description":"Description for the ACL.","example":"Allows local traffic between PIN pads and cash register.","type":"string"},"forward_locally":{"$ref":"#/components/schemas/magic_forward_locally"},"lan_1":{"$ref":"#/components/schemas/magic_lan-acl-configuration"},"lan_2":{"$ref":"#/components/schemas/magic_lan-acl-configuration"},"name":{"description":"The name of the ACL.","example":"PIN Pad - Cash Register","type":"string"},"protocols":{"items":{"description":"Array of allowed communication protocols between configured LANs. If no protocols are provided, all protocols are allowed.","enum":["tcp","udp","icmp"],"type":"string"},"type":"array"}},"type":"object"},"magic_acls_add_single_request":{"description":"Bidirectional ACL policy for local network traffic within a site.","properties":{"description":{"description":"Description for the ACL.","example":"Allows local traffic between PIN pads and cash register.","type":"string"},"forward_locally":{"$ref":"#/components/schemas/magic_forward_locally"},"lan_1":{"$ref":"#/components/schemas/magic_lan-acl-configuration"},"lan_2":{"$ref":"#/components/schemas/magic_lan-acl-configuration"},"name":{"description":"The name of the ACL.","example":"PIN Pad - Cash Register","type":"string"},"protocols":{"items":{"description":"Array of allowed communication protocols between configured LANs. If no protocols are provided, all protocols are allowed.","enum":["tcp","udp","icmp"],"type":"string"},"type":"array"}},"required":["name","lan_1","lan_2"],"type":"object"},"magic_acls_collection_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/magic_acl"},"type":"array"}}}]},"magic_allow_null_cipher":{"description":"When `true`, the tunnel can use a null-cipher (`ENCR_NULL`) in the ESP tunnel (Phase 2).","example":true,"type":"boolean"},"magic_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/magic_messages"},"messages":{"$ref":"#/components/schemas/magic_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"magic_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/magic_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/magic_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"magic_api-response-single":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-common"},{"properties":{"result":{"anyOf":[{"nullable":true,"type":"object"},{"nullable":true,"type":"string"}]}}}],"type":"object"},"magic_app":{"description":"Collection of Hostnames and/or IP Subnets to associate with traffic decisions.","oneOf":[{"$ref":"#/components/schemas/magic_account_app"},{"$ref":"#/components/schemas/magic_managed_app"}],"type":"object"},"magic_app_add_single_request":{"anyOf":[{"required":["hostnames"],"title":"Hostnames"},{"required":["ip_subnets"],"title":"Subnets"}],"properties":{"hostnames":{"$ref":"#/components/schemas/magic_app_hostnames"},"ip_subnets":{"$ref":"#/components/schemas/magic_app_subnets"},"name":{"$ref":"#/components/schemas/magic_app_name"},"type":{"$ref":"#/components/schemas/magic_app_type"}},"required":["name","type"],"type":"object"},"magic_app_breakout":{"description":"Whether to breakout traffic to the app's endpoints directly. Null preserves default behavior.","example":true,"type":"boolean"},"magic_app_config":{"allOf":[{"properties":{"breakout":{"$ref":"#/components/schemas/magic_app_breakout"},"id":{"$ref":"#/components/schemas/magic_identifier"},"priority":{"$ref":"#/components/schemas/magic_app_priority"},"site_id":{"$ref":"#/components/schemas/magic_identifier"}},"required":["id","site_id"]},{"oneOf":[{"properties":{"account_app_id":{"$ref":"#/components/schemas/magic_account_app_id"}},"required":["account_app_id"],"title":"Account App"},{"properties":{"managed_app_id":{"$ref":"#/components/schemas/magic_managed_app_id"}},"required":["managed_app_id"],"title":"Managed App"}]}],"description":"Traffic decision configuration for an app.","type":"object"},"magic_app_config_add_single_request":{"allOf":[{"oneOf":[{"properties":{"account_app_id":{"$ref":"#/components/schemas/magic_account_app_id"}},"required":["account_app_id"],"title":"Account App"},{"properties":{"managed_app_id":{"$ref":"#/components/schemas/magic_managed_app_id"}},"required":["managed_app_id"],"title":"Managed App"}]},{"anyOf":[{"required":["breakout"],"title":"Breakout"},{"required":["priority"],"title":"Prioritize"}]},{"properties":{"breakout":{"$ref":"#/components/schemas/magic_app_breakout"},"priority":{"$ref":"#/components/schemas/magic_app_priority"}}}],"type":"object"},"magic_app_config_single_response":{"allOf":[{"$ref":"#/components/schemas/magic_apps-response-object"},{"properties":{"result":{"$ref":"#/components/schemas/magic_app_config"}}}]},"magic_app_config_update_request":{"properties":{"account_app_id":{"$ref":"#/components/schemas/magic_account_app_id"},"breakout":{"$ref":"#/components/schemas/magic_app_breakout"},"managed_app_id":{"$ref":"#/components/schemas/magic_managed_app_id"},"priority":{"$ref":"#/components/schemas/magic_app_priority"}},"type":"object"},"magic_app_configs_collection_response":{"allOf":[{"$ref":"#/components/schemas/magic_apps-response-object"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/magic_app_config"},"type":"array"}}}]},"magic_app_hostnames":{"description":"FQDNs to associate with traffic decisions.","items":{"example":"auth.cloudflare.com","type":"string"},"type":"array"},"magic_app_name":{"description":"Display name for the app.","example":"Cloudflare Dashboard","type":"string"},"magic_app_priority":{"description":"Priority of traffic. 0 is default, anything greater is prioritized. (Currently only 0 and 1 are supported)","maximum":1,"minimum":0,"type":"integer"},"magic_app_single_response":{"allOf":[{"$ref":"#/components/schemas/magic_apps-response-object"},{"properties":{"result":{"$ref":"#/components/schemas/magic_account_app"}}}]},"magic_app_subnets":{"description":"CIDRs to associate with traffic decisions.","items":{"allOf":[{"$ref":"#/components/schemas/magic_cidr"},{"example":"1.1.1.1/32"}]},"type":"array"},"magic_app_type":{"description":"Category of the app.","example":"Development","type":"string"},"magic_app_update_request":{"anyOf":[{"required":["name"],"title":"Update App Name"},{"required":["type"],"title":"Update App Type"},{"required":["hostnames"],"title":"Update App Hostnames"},{"required":["ip_subnets"],"title":"Update App Subnets"}],"properties":{"hostnames":{"$ref":"#/components/schemas/magic_app_hostnames"},"ip_subnets":{"$ref":"#/components/schemas/magic_app_subnets"},"name":{"$ref":"#/components/schemas/magic_app_name"},"type":{"$ref":"#/components/schemas/magic_app_type"}},"type":"object"},"magic_apps-response-array":{"properties":{"errors":{"$ref":"#/components/schemas/magic_messages"},"messages":{"$ref":"#/components/schemas/magic_messages"},"result":{"items":{},"nullable":true,"type":"array"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"magic_apps-response-object":{"properties":{"errors":{"$ref":"#/components/schemas/magic_messages"},"messages":{"$ref":"#/components/schemas/magic_messages"},"result":{"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"magic_apps_collection_response":{"allOf":[{"$ref":"#/components/schemas/magic_apps-response-array"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/magic_app"},"type":"array"}}}]},"magic_cidr":{"description":"A valid CIDR notation representing an IP range.","example":"192.0.2.0/24","type":"string"},"magic_cloudflare_gre_endpoint":{"description":"The IP address assigned to the Cloudflare side of the GRE tunnel.","example":"203.0.113.1","type":"string"},"magic_cloudflare_ipsec_endpoint":{"description":"The IP address assigned to the Cloudflare side of the IPsec tunnel.","example":"203.0.113.1","type":"string"},"magic_colo_name":{"description":"Scope colo name.","example":"den01","type":"string"},"magic_colo_names":{"description":"List of colo names for the ECMP scope.","items":{"$ref":"#/components/schemas/magic_colo_name"},"type":"array"},"magic_colo_region":{"description":"Scope colo region.","example":"APAC","type":"string"},"magic_colo_regions":{"description":"List of colo regions for the ECMP scope.","items":{"$ref":"#/components/schemas/magic_colo_region"},"type":"array"},"magic_components-schemas-description":{"description":"An optional description forthe IPsec tunnel.","example":"Tunnel for ISP X","type":"string"},"magic_components-schemas-modified_tunnels_collection_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"modified":{"example":true,"type":"boolean"},"modified_interconnects":{"items":{"$ref":"#/components/schemas/magic_interconnect"},"type":"array"}}}}}]},"magic_components-schemas-name":{"description":"The name of the interconnect. The name cannot share a name with other tunnels.","example":"pni_ord","type":"string"},"magic_components-schemas-tunnel_modified_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"modified":{"example":true,"type":"boolean"},"modified_interconnect":{"$ref":"#/components/schemas/magic_interconnect"}},"type":"object"}}}]},"magic_components-schemas-tunnel_single_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"interconnect":{"$ref":"#/components/schemas/magic_interconnect"}},"type":"object"}}}]},"magic_components-schemas-tunnels_collection_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"interconnects":{"items":{"$ref":"#/components/schemas/magic_interconnect"},"type":"array"}}}}}]},"magic_connector-id":{"description":"Magic Connector identifier tag.","example":"ac60d3d0435248289d446cedd870bcf4","type":"string"},"magic_created_on":{"description":"When the route was created.","example":"2017-06-14T00:00:00Z","format":"date-time","readOnly":true,"type":"string"},"magic_customer_gre_endpoint":{"description":"The IP address assigned to the customer side of the GRE tunnel.","example":"203.0.113.1","type":"string"},"magic_customer_ipsec_endpoint":{"description":"The IP address assigned to the customer side of the IPsec tunnel. Not required, but must be set for proactive traceroutes to work.","example":"203.0.113.1","type":"string"},"magic_description":{"description":"An optional human provided description of the static route.","example":"New route for new prefix 203.0.113.1","type":"string"},"magic_forward_locally":{"description":"The desired forwarding action for this ACL policy. If set to \"false\", the policy will forward traffic to Cloudflare. If set to \"true\", the policy will forward traffic locally on the Magic Connector. If not included in request, will default to false.","type":"boolean"},"magic_gre":{"description":"The configuration specific to GRE interconnects.","properties":{"cloudflare_endpoint":{"description":"The IP address assigned to the Cloudflare side of the GRE tunnel created as part of the Interconnect.","example":"203.0.113.1","type":"string"}},"type":"object"},"magic_gre-tunnel":{"properties":{"cloudflare_gre_endpoint":{"$ref":"#/components/schemas/magic_cloudflare_gre_endpoint"},"created_on":{"$ref":"#/components/schemas/magic_schemas-created_on"},"customer_gre_endpoint":{"$ref":"#/components/schemas/magic_customer_gre_endpoint"},"description":{"$ref":"#/components/schemas/magic_schemas-description"},"health_check":{"$ref":"#/components/schemas/magic_tunnel_health_check"},"id":{"$ref":"#/components/schemas/magic_schemas-identifier"},"interface_address":{"$ref":"#/components/schemas/magic_interface_address"},"modified_on":{"$ref":"#/components/schemas/magic_schemas-modified_on"},"mtu":{"$ref":"#/components/schemas/magic_mtu"},"name":{"$ref":"#/components/schemas/magic_name"},"ttl":{"$ref":"#/components/schemas/magic_ttl"}},"required":["name","customer_gre_endpoint","cloudflare_gre_endpoint","interface_address"],"type":"object"},"magic_gre_tunnel_add_single_request":{"properties":{"cloudflare_gre_endpoint":{"$ref":"#/components/schemas/magic_cloudflare_gre_endpoint"},"customer_gre_endpoint":{"$ref":"#/components/schemas/magic_customer_gre_endpoint"},"description":{"$ref":"#/components/schemas/magic_schemas-description"},"health_check":{"$ref":"#/components/schemas/magic_tunnel_health_check"},"interface_address":{"$ref":"#/components/schemas/magic_interface_address"},"mtu":{"$ref":"#/components/schemas/magic_mtu"},"name":{"$ref":"#/components/schemas/magic_name"},"ttl":{"$ref":"#/components/schemas/magic_ttl"}},"required":["name","customer_gre_endpoint","cloudflare_gre_endpoint","interface_address"],"type":"object"},"magic_gre_tunnel_update_request":{"allOf":[{"$ref":"#/components/schemas/magic_gre_tunnel_add_single_request"}]},"magic_health_check_base":{"properties":{"enabled":{"default":true,"description":"Determines whether to run healthchecks for a tunnel.","example":true,"type":"boolean"},"rate":{"default":"mid","description":"How frequent the health check is run. The default value is `mid`.","enum":["low","mid","high"],"example":"low","type":"string"},"target":{"description":"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`. This field is ignored for bidirectional healthchecks as the interface_address (not assigned to the Cloudflare side of the tunnel) is used as the target. Must be in object form if the x-magic-new-hc-target header is set to true and string form if x-magic-new-hc-target is absent or set to false.","oneOf":[{"$ref":"#/components/schemas/magic_health_check_target"},{"type":"string"}]},"type":{"default":"reply","description":"The type of healthcheck to run, reply or request. The default value is `reply`.","enum":["reply","request"],"example":"request","type":"string"}},"type":"object"},"magic_health_check_target":{"description":"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`. This field is ignored for bidirectional healthchecks as the interface_address (not assigned to the Cloudflare side of the tunnel) is used as the target.","properties":{"effective":{"description":"The effective health check target. If 'saved' is empty, then this field will be populated with the calculated default value on GET requests. Ignored in POST, PUT, and PATCH requests.","example":"203.0.113.1","readOnly":true,"type":"string"},"saved":{"description":"The saved health check target. Setting the value to the empty string indicates that the calculated default value will be used.","example":"203.0.113.1","type":"string"}},"type":"object"},"magic_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"magic_interconnect":{"properties":{"colo_name":{"$ref":"#/components/schemas/magic_components-schemas-name"},"created_on":{"$ref":"#/components/schemas/magic_schemas-created_on"},"description":{"$ref":"#/components/schemas/magic_interconnect_components-schemas-description"},"gre":{"$ref":"#/components/schemas/magic_gre"},"health_check":{"$ref":"#/components/schemas/magic_interconnect_health_check"},"id":{"$ref":"#/components/schemas/magic_schemas-identifier"},"interface_address":{"$ref":"#/components/schemas/magic_interface_address"},"modified_on":{"$ref":"#/components/schemas/magic_schemas-modified_on"},"mtu":{"$ref":"#/components/schemas/magic_schemas-mtu"},"name":{"$ref":"#/components/schemas/magic_components-schemas-name"}},"type":"object"},"magic_interconnect_components-schemas-description":{"description":"An optional description of the interconnect.","example":"Tunnel for Interconnect to ORD","type":"string"},"magic_interconnect_health_check":{"$ref":"#/components/schemas/magic_health_check_base"},"magic_interconnect_tunnel_update_request":{"properties":{"description":{"$ref":"#/components/schemas/magic_interconnect_components-schemas-description"},"gre":{"$ref":"#/components/schemas/magic_gre"},"health_check":{"$ref":"#/components/schemas/magic_interconnect_health_check"},"interface_address":{"$ref":"#/components/schemas/magic_interface_address"},"mtu":{"$ref":"#/components/schemas/magic_schemas-mtu"}},"type":"object"},"magic_interface_address":{"description":"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","type":"string"},"magic_ip-address":{"description":"A valid IPv4 address.","example":"192.0.2.1","type":"string"},"magic_ipsec-tunnel":{"properties":{"allow_null_cipher":{"$ref":"#/components/schemas/magic_allow_null_cipher"},"cloudflare_endpoint":{"$ref":"#/components/schemas/magic_cloudflare_ipsec_endpoint"},"created_on":{"$ref":"#/components/schemas/magic_schemas-created_on"},"customer_endpoint":{"$ref":"#/components/schemas/magic_customer_ipsec_endpoint"},"description":{"$ref":"#/components/schemas/magic_components-schemas-description"},"health_check":{"$ref":"#/components/schemas/magic_tunnel_health_check"},"id":{"$ref":"#/components/schemas/magic_schemas-identifier"},"interface_address":{"$ref":"#/components/schemas/magic_interface_address"},"modified_on":{"$ref":"#/components/schemas/magic_schemas-modified_on"},"name":{"$ref":"#/components/schemas/magic_schemas-name"},"psk_metadata":{"$ref":"#/components/schemas/magic_psk_metadata"},"replay_protection":{"$ref":"#/components/schemas/magic_replay_protection"}},"required":["name","cloudflare_endpoint","interface_address"],"type":"object"},"magic_ipsec_tunnel_add_request":{"allOf":[{"$ref":"#/components/schemas/magic_ipsec_tunnel_add_single_request"}]},"magic_ipsec_tunnel_add_single_request":{"properties":{"cloudflare_endpoint":{"$ref":"#/components/schemas/magic_cloudflare_ipsec_endpoint"},"customer_endpoint":{"$ref":"#/components/schemas/magic_customer_ipsec_endpoint"},"description":{"$ref":"#/components/schemas/magic_components-schemas-description"},"health_check":{"$ref":"#/components/schemas/magic_tunnel_health_check"},"interface_address":{"$ref":"#/components/schemas/magic_interface_address"},"name":{"$ref":"#/components/schemas/magic_schemas-name"},"psk":{"$ref":"#/components/schemas/magic_psk"},"replay_protection":{"$ref":"#/components/schemas/magic_replay_protection"}},"required":["name","cloudflare_endpoint","interface_address"],"type":"object"},"magic_ipsec_tunnel_update_request":{"allOf":[{"$ref":"#/components/schemas/magic_ipsec_tunnel_add_single_request"}]},"magic_lan":{"properties":{"ha_link":{"description":"mark true to use this LAN for HA probing. only works for site with HA turned on. only one LAN can be set as the ha_link.","type":"boolean"},"id":{"$ref":"#/components/schemas/magic_identifier"},"name":{"type":"string"},"nat":{"$ref":"#/components/schemas/magic_nat"},"physport":{"$ref":"#/components/schemas/magic_port"},"routed_subnets":{"items":{"$ref":"#/components/schemas/magic_routed_subnet"},"type":"array"},"site_id":{"$ref":"#/components/schemas/magic_identifier"},"static_addressing":{"$ref":"#/components/schemas/magic_lan_static_addressing"},"vlan_tag":{"$ref":"#/components/schemas/magic_vlan_tag"}},"type":"object"},"magic_lan-acl-configuration":{"properties":{"lan_id":{"description":"The identifier for the LAN you want to create an ACL policy with.","type":"string"},"lan_name":{"description":"The name of the LAN based on the provided lan_id.","type":"string"},"ports":{"description":"Array of ports on the provided LAN that will be included in the ACL. If no ports are provided, communication on any port on this LAN is allowed.","items":{"$ref":"#/components/schemas/magic_port"},"type":"array"},"subnets":{"description":"Array of subnet IPs within the LAN that will be included in the ACL. If no subnets are provided, communication on any subnets on this LAN are allowed.","items":{"$ref":"#/components/schemas/magic_acl-subnet"},"type":"array"}},"required":["lan_id"],"type":"object"},"magic_lan_deleted_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/magic_lan"}}}]},"magic_lan_dhcp_relay":{"properties":{"server_addresses":{"description":"List of DHCP server IPs.","items":{"$ref":"#/components/schemas/magic_ip-address"},"type":"array"}},"type":"object"},"magic_lan_dhcp_server":{"properties":{"dhcp_pool_end":{"$ref":"#/components/schemas/magic_ip-address"},"dhcp_pool_start":{"$ref":"#/components/schemas/magic_ip-address"},"dns_server":{"$ref":"#/components/schemas/magic_ip-address"},"reservations":{"additionalProperties":{"description":"IP address associated with the MAC address","type":"string"},"description":"Mapping of MAC addresses to IP addresses","example":{"00:11:22:33:44:55":"192.0.2.100","AA:BB:CC:DD:EE:FF":"192.168.1.101"},"type":"object"}},"type":"object"},"magic_lan_modified_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/magic_lan"}}}]},"magic_lan_single_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/magic_lan"}}}]},"magic_lan_static_addressing":{"description":"If the site is not configured in high availability mode, this configuration is optional (if omitted, use DHCP). However, if in high availability mode, static_address is required along with secondary and virtual address.","properties":{"address":{"$ref":"#/components/schemas/magic_cidr"},"dhcp_relay":{"$ref":"#/components/schemas/magic_lan_dhcp_relay"},"dhcp_server":{"$ref":"#/components/schemas/magic_lan_dhcp_server"},"secondary_address":{"$ref":"#/components/schemas/magic_cidr"},"virtual_address":{"$ref":"#/components/schemas/magic_cidr"}},"required":["address"],"type":"object"},"magic_lan_update_request":{"properties":{"name":{"type":"string"},"nat":{"$ref":"#/components/schemas/magic_nat"},"physport":{"$ref":"#/components/schemas/magic_port"},"routed_subnets":{"items":{"$ref":"#/components/schemas/magic_routed_subnet"},"type":"array"},"static_addressing":{"$ref":"#/components/schemas/magic_lan_static_addressing"},"vlan_tag":{"$ref":"#/components/schemas/magic_vlan_tag"}},"type":"object"},"magic_lans_add_single_request":{"properties":{"ha_link":{"description":"mark true to use this LAN for HA probing. only works for site with HA turned on. only one LAN can be set as the ha_link.","type":"boolean"},"name":{"type":"string"},"nat":{"$ref":"#/components/schemas/magic_nat"},"physport":{"$ref":"#/components/schemas/magic_port"},"routed_subnets":{"items":{"$ref":"#/components/schemas/magic_routed_subnet"},"type":"array"},"static_addressing":{"$ref":"#/components/schemas/magic_lan_static_addressing"},"vlan_tag":{"$ref":"#/components/schemas/magic_vlan_tag"}},"required":["physport","vlan_tag"],"type":"object"},"magic_lans_collection_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/magic_lan"},"type":"array"}}}]},"magic_managed_app":{"description":"Managed app defined by Cloudflare.","properties":{"hostnames":{"$ref":"#/components/schemas/magic_app_hostnames"},"ip_subnets":{"$ref":"#/components/schemas/magic_app_subnets"},"managed_app_id":{"$ref":"#/components/schemas/magic_managed_app_id"},"name":{"$ref":"#/components/schemas/magic_app_name"},"type":{"$ref":"#/components/schemas/magic_app_type"}},"required":["managed_app_id"],"title":"Managed App","type":"object"},"magic_managed_app_id":{"description":"Managed app ID.","example":"cloudflare","type":"string"},"magic_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"magic_modified_on":{"description":"When the route was last modified.","example":"2017-06-14T05:20:00Z","format":"date-time","readOnly":true,"type":"string"},"magic_modified_tunnels_collection_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"modified":{"example":true,"type":"boolean"},"modified_gre_tunnels":{"items":{"$ref":"#/components/schemas/magic_gre-tunnel"},"type":"array"}}}}}]},"magic_mtu":{"default":1476,"description":"Maximum Transmission Unit (MTU) in bytes for the GRE tunnel. The minimum value is 576.","type":"integer"},"magic_multiple_route_delete_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"deleted":{"example":true,"type":"boolean"},"deleted_routes":{"items":{"$ref":"#/components/schemas/magic_route"},"type":"array"}}}}}]},"magic_multiple_route_modified_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"modified":{"example":true,"type":"boolean"},"modified_routes":{"items":{"$ref":"#/components/schemas/magic_route"},"type":"array"}}}}}]},"magic_name":{"description":"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","type":"string"},"magic_nat":{"properties":{"static_prefix":{"$ref":"#/components/schemas/magic_cidr"}},"type":"object"},"magic_nexthop":{"description":"The next-hop IP Address for the static route.","example":"203.0.113.1","type":"string"},"magic_port":{"example":1,"type":"integer"},"magic_prefix":{"description":"IP Prefix in Classless Inter-Domain Routing format.","example":"192.0.2.0/24","type":"string"},"magic_priority":{"description":"Priority of the static route.","type":"integer"},"magic_psk":{"description":"A randomly generated or provided string for use in the IPsec tunnel.","example":"O3bwKSjnaoCxDoUxjcq4Rk8ZKkezQUiy","type":"string"},"magic_psk_generation_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"ipsec_tunnel_id":{"$ref":"#/components/schemas/magic_identifier"},"psk":{"$ref":"#/components/schemas/magic_psk"},"psk_metadata":{"$ref":"#/components/schemas/magic_psk_metadata"}}}}}]},"magic_psk_metadata":{"description":"The PSK metadata that includes when the PSK was generated.","properties":{"last_generated_on":{"$ref":"#/components/schemas/magic_schemas-modified_on"}},"type":"object"},"magic_replay_protection":{"default":false,"description":"If `true`, then IPsec replay protection will be supported in the Cloudflare-to-customer direction.","example":false,"type":"boolean"},"magic_route":{"properties":{"created_on":{"$ref":"#/components/schemas/magic_created_on"},"description":{"$ref":"#/components/schemas/magic_description"},"id":{"$ref":"#/components/schemas/magic_identifier"},"modified_on":{"$ref":"#/components/schemas/magic_modified_on"},"nexthop":{"$ref":"#/components/schemas/magic_nexthop"},"prefix":{"$ref":"#/components/schemas/magic_prefix"},"priority":{"$ref":"#/components/schemas/magic_priority"},"scope":{"$ref":"#/components/schemas/magic_scope"},"weight":{"$ref":"#/components/schemas/magic_weight"}},"required":["prefix","nexthop","priority"],"type":"object"},"magic_route_add_single_request":{"properties":{"description":{"$ref":"#/components/schemas/magic_description"},"nexthop":{"$ref":"#/components/schemas/magic_nexthop"},"prefix":{"$ref":"#/components/schemas/magic_prefix"},"priority":{"$ref":"#/components/schemas/magic_priority"},"scope":{"$ref":"#/components/schemas/magic_scope"},"weight":{"$ref":"#/components/schemas/magic_weight"}},"required":["prefix","nexthop","priority"],"type":"object"},"magic_route_delete_id":{"allOf":[{"properties":{"id":{"$ref":"#/components/schemas/magic_identifier"}},"required":["id"]}]},"magic_route_delete_many_request":{"properties":{"routes":{"items":{"$ref":"#/components/schemas/magic_route_delete_id"},"type":"array"}},"required":["routes"],"type":"object"},"magic_route_deleted_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"deleted":{"example":true,"type":"boolean"},"deleted_route":{"$ref":"#/components/schemas/magic_route"}},"type":"object"}}}]},"magic_route_modified_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"modified":{"example":true,"type":"boolean"},"modified_route":{"$ref":"#/components/schemas/magic_route"}},"type":"object"}}}]},"magic_route_single_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"route":{"$ref":"#/components/schemas/magic_route"}},"type":"object"}}}]},"magic_route_update_many_request":{"properties":{"routes":{"items":{"$ref":"#/components/schemas/magic_route_update_single_request"},"type":"array"}},"required":["routes"],"type":"object"},"magic_route_update_request":{"allOf":[{"$ref":"#/components/schemas/magic_route_add_single_request"}]},"magic_route_update_single_request":{"allOf":[{"properties":{"id":{"$ref":"#/components/schemas/magic_identifier"}},"required":["id"]},{"$ref":"#/components/schemas/magic_route_add_single_request"}]},"magic_routed_subnet":{"properties":{"nat":{"$ref":"#/components/schemas/magic_nat"},"next_hop":{"$ref":"#/components/schemas/magic_ip-address"},"prefix":{"$ref":"#/components/schemas/magic_cidr"}},"required":["prefix","next_hop"],"type":"object"},"magic_routes_collection_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"routes":{"items":{"$ref":"#/components/schemas/magic_route"},"type":"array"}}}}}]},"magic_schemas-created_on":{"description":"The date and time the tunnel was created.","example":"2017-06-14T00:00:00Z","format":"date-time","readOnly":true,"type":"string"},"magic_schemas-description":{"description":"An optional description of the GRE tunnel.","example":"Tunnel for ISP X","type":"string"},"magic_schemas-identifier":{"description":"Tunnel identifier tag.","example":"c4a7362d577a6c3019a474fd6f485821","maxLength":32,"readOnly":true,"type":"string"},"magic_schemas-modified_on":{"description":"The date and time the tunnel was last modified.","example":"2017-06-14T05:20:00Z","format":"date-time","readOnly":true,"type":"string"},"magic_schemas-modified_tunnels_collection_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"modified":{"example":true,"type":"boolean"},"modified_ipsec_tunnels":{"items":{"$ref":"#/components/schemas/magic_ipsec-tunnel"},"type":"array"}}}}}]},"magic_schemas-mtu":{"default":1476,"description":"The Maximum Transmission Unit (MTU) in bytes for the interconnect. The minimum value is 576.","type":"integer"},"magic_schemas-name":{"description":"The name of the IPsec tunnel. The name cannot share a name with other tunnels.","example":"IPsec_1","type":"string"},"magic_schemas-tunnel_deleted_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"deleted":{"example":true,"type":"boolean"},"deleted_ipsec_tunnel":{"$ref":"#/components/schemas/magic_ipsec-tunnel"}},"type":"object"}}}]},"magic_schemas-tunnel_modified_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"modified":{"example":true,"type":"boolean"},"modified_ipsec_tunnel":{"$ref":"#/components/schemas/magic_ipsec-tunnel"}},"type":"object"}}}]},"magic_schemas-tunnel_single_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"ipsec_tunnel":{"$ref":"#/components/schemas/magic_ipsec-tunnel"}},"type":"object"}}}]},"magic_schemas-tunnels_collection_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"ipsec_tunnels":{"items":{"$ref":"#/components/schemas/magic_ipsec-tunnel"},"type":"array"}}}}}]},"magic_scope":{"description":"Used only for ECMP routes.","properties":{"colo_names":{"$ref":"#/components/schemas/magic_colo_names"},"colo_regions":{"$ref":"#/components/schemas/magic_colo_regions"}},"type":"object"},"magic_secondary-connector-id":{"description":"Magic Connector identifier tag. Used when high availability mode is on.","example":"8d67040d3835dbcf46ce29da440dc482","type":"string"},"magic_site":{"properties":{"connector_id":{"$ref":"#/components/schemas/magic_connector-id"},"description":{"type":"string"},"ha_mode":{"description":"Site high availability mode. If set to true, the site can have two connectors and runs in high availability mode.","example":true,"type":"boolean"},"id":{"$ref":"#/components/schemas/magic_identifier"},"location":{"$ref":"#/components/schemas/magic_site-location"},"name":{"$ref":"#/components/schemas/magic_site-name"},"secondary_connector_id":{"$ref":"#/components/schemas/magic_secondary-connector-id"}},"type":"object"},"magic_site-location":{"description":"Location of site in latitude and longitude.","properties":{"lat":{"description":"Latitude","example":37.6192,"type":"string"},"lon":{"description":"Longitude","example":122.3816,"type":"string"}},"type":"object"},"magic_site-name":{"description":"The name of the site.","example":"site_1","type":"string"},"magic_site_deleted_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/magic_site"}}}]},"magic_site_modified_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/magic_site"}}}]},"magic_site_single_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/magic_site"}}}]},"magic_site_update_request":{"properties":{"connector_id":{"$ref":"#/components/schemas/magic_connector-id"},"description":{"type":"string"},"location":{"$ref":"#/components/schemas/magic_site-location"},"name":{"$ref":"#/components/schemas/magic_site-name"},"secondary_connector_id":{"$ref":"#/components/schemas/magic_secondary-connector-id"}},"type":"object"},"magic_sites_add_single_request":{"properties":{"connector_id":{"$ref":"#/components/schemas/magic_connector-id"},"description":{"type":"string"},"ha_mode":{"description":"Site high availability mode. If set to true, the site can have two connectors and runs in high availability mode.","example":true,"type":"boolean"},"location":{"$ref":"#/components/schemas/magic_site-location"},"name":{"$ref":"#/components/schemas/magic_site-name"},"secondary_connector_id":{"$ref":"#/components/schemas/magic_secondary-connector-id"}},"required":["name"],"type":"object"},"magic_sites_collection_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/magic_site"},"type":"array"}}}]},"magic_ttl":{"default":64,"description":"Time To Live (TTL) in number of hops of the GRE tunnel.","type":"integer"},"magic_tunnel_deleted_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"deleted":{"example":true,"type":"boolean"},"deleted_gre_tunnel":{"$ref":"#/components/schemas/magic_gre-tunnel"}},"type":"object"}}}]},"magic_tunnel_health_check":{"allOf":[{"$ref":"#/components/schemas/magic_health_check_base"},{"properties":{"direction":{"default":"unidirectional","description":"The direction of the flow of the healthcheck. Either unidirectional, where the probe comes to you via the tunnel and the result comes back to Cloudflare via the open Internet, or bidirectional where both the probe and result come and go via the tunnel.","enum":["unidirectional","bidirectional"],"example":"bidirectional","type":"string"}}}]},"magic_tunnel_modified_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"modified":{"example":true,"type":"boolean"},"modified_gre_tunnel":{"$ref":"#/components/schemas/magic_gre-tunnel"}},"type":"object"}}}]},"magic_tunnel_single_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"gre_tunnel":{"$ref":"#/components/schemas/magic_gre-tunnel"}},"type":"object"}}}]},"magic_tunnels_collection_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"properties":{"gre_tunnels":{"items":{"$ref":"#/components/schemas/magic_gre-tunnel"},"type":"array"}}}}}]},"magic_vlan_tag":{"description":"VLAN port number.","example":0,"type":"integer"},"magic_wan":{"properties":{"id":{"$ref":"#/components/schemas/magic_identifier"},"name":{"type":"string"},"physport":{"$ref":"#/components/schemas/magic_port"},"priority":{"description":"Priority of WAN for traffic loadbalancing.","type":"integer"},"site_id":{"$ref":"#/components/schemas/magic_identifier"},"static_addressing":{"$ref":"#/components/schemas/magic_wan_static_addressing"},"vlan_tag":{"$ref":"#/components/schemas/magic_vlan_tag"}},"type":"object"},"magic_wan_deleted_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/magic_wan"}}}]},"magic_wan_modified_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/magic_wan"}}}]},"magic_wan_single_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/magic_wan"}}}]},"magic_wan_static_addressing":{"description":"(optional) if omitted, use DHCP. Submit secondary_address when site is in high availability mode.","properties":{"address":{"$ref":"#/components/schemas/magic_cidr"},"gateway_address":{"$ref":"#/components/schemas/magic_ip-address"},"secondary_address":{"$ref":"#/components/schemas/magic_cidr"}},"required":["address","gateway_address"],"type":"object"},"magic_wan_update_request":{"properties":{"name":{"type":"string"},"physport":{"$ref":"#/components/schemas/magic_port"},"priority":{"type":"integer"},"static_addressing":{"$ref":"#/components/schemas/magic_wan_static_addressing"},"vlan_tag":{"$ref":"#/components/schemas/magic_vlan_tag"}},"type":"object"},"magic_wans_add_single_request":{"properties":{"name":{"type":"string"},"physport":{"$ref":"#/components/schemas/magic_port"},"priority":{"type":"integer"},"static_addressing":{"$ref":"#/components/schemas/magic_wan_static_addressing"},"vlan_tag":{"$ref":"#/components/schemas/magic_vlan_tag"}},"required":["physport","vlan_tag"],"type":"object"},"magic_wans_collection_response":{"allOf":[{"$ref":"#/components/schemas/magic_api-response-single"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/magic_wan"},"type":"array"}}}]},"magic_weight":{"description":"Optional weight of the ECMP scope - if provided.","type":"integer"},"mconn_account_id":{"description":"Account identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"mconn_admin_connector":{"properties":{"account_id":{"$ref":"#/components/schemas/mconn_account_id"},"activated":{"type":"boolean"},"cohort":{"type":"string"},"desired_version":{"type":"string"},"device_id":{"$ref":"#/components/schemas/mconn_uuid"},"id":{"$ref":"#/components/schemas/mconn_uuid"},"interrupt_window_duration_hours":{"type":"number"},"interrupt_window_hour_of_day":{"type":"number"},"last_heartbeat":{"type":"string"},"last_seen_version":{"type":"string"},"last_updated":{"type":"string"},"notes":{"type":"string"},"pinned_version":{"type":"string"},"timezone":{"type":"string"},"upgrade_asap":{"type":"boolean"},"upgrade_attempts":{"type":"number"}},"required":["id","account_id","notes","activated","last_updated","timezone","interrupt_window_hour_of_day","interrupt_window_duration_hours","upgrade_asap","upgrade_attempts"],"type":"object"},"mconn_admin_connector_create_request":{"$ref":"#/components/schemas/mconn_admin_connector_fields"},"mconn_admin_connector_create_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_admin_connector"}}}]},"mconn_admin_connector_delete_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_admin_connector"}}}]},"mconn_admin_connector_fetch_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_admin_connector"}}}]},"mconn_admin_connector_fields":{"properties":{"account_id":{"type":"number"},"activated":{"type":"boolean"},"cohort":{"type":"string"},"desired_version":{"type":"string"},"device_id":{"type":"string"},"interrupt_window_duration_hours":{"type":"number"},"interrupt_window_hour_of_day":{"type":"number"},"last_heartbeat":{"type":"string"},"last_seen_version":{"type":"string"},"last_updated":{"type":"string"},"notes":{"type":"string"},"pinned_version":{"type":"string"},"timezone":{"type":"string"},"upgrade_asap":{"type":"boolean"},"upgrade_attempts":{"type":"number"}},"type":"object"},"mconn_admin_connector_list_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/mconn_admin_connector"},"type":"array"}}}]},"mconn_admin_connector_replace_request":{"$ref":"#/components/schemas/mconn_admin_connector_fields"},"mconn_admin_connector_replace_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_admin_connector"}}}]},"mconn_admin_connector_update_request":{"$ref":"#/components/schemas/mconn_admin_connector_fields"},"mconn_admin_connector_update_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_admin_connector"}}}]},"mconn_admin_device":{"properties":{"crypt_key":{"type":"string"},"crypt_key_rotation_finished_at":{"type":"string"},"crypt_key_rotation_output":{"type":"string"},"crypt_key_rotation_started_at":{"type":"string"},"crypt_key_rotation_status_code":{"type":"number"},"ek_cert":{"type":"string"},"id":{"$ref":"#/components/schemas/mconn_uuid"},"imaged_at":{"type":"string"},"last_crypt_key":{"type":"string"},"last_updated":{"type":"string"},"license_key_sha256":{"type":"string"},"metadata":{"type":"string"},"serial_number":{"type":"string"}},"required":["id","metadata","crypt_key","last_updated"],"type":"object"},"mconn_admin_device_create_request":{"$ref":"#/components/schemas/mconn_admin_device_fields"},"mconn_admin_device_create_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_admin_device"}}}]},"mconn_admin_device_delete_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_admin_device"}}}]},"mconn_admin_device_fetch_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_admin_device"}}}]},"mconn_admin_device_fields":{"properties":{"crypt_key":{"type":"string"},"crypt_key_rotation_finished_at":{"type":"string"},"crypt_key_rotation_output":{"type":"string"},"crypt_key_rotation_started_at":{"type":"string"},"crypt_key_rotation_status_code":{"type":"number"},"ek_cert":{"type":"string"},"imaged_at":{"type":"string"},"last_crypt_key":{"type":"string"},"last_updated":{"type":"string"},"license_key_sha256":{"type":"string"},"metadata":{"type":"string"},"serial_number":{"type":"string"}},"type":"object"},"mconn_admin_device_list_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/mconn_admin_device"},"type":"array"}}}]},"mconn_admin_device_replace_request":{"$ref":"#/components/schemas/mconn_admin_device_fields"},"mconn_admin_device_replace_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_admin_device"}}}]},"mconn_admin_device_update_request":{"$ref":"#/components/schemas/mconn_admin_device_fields"},"mconn_admin_device_update_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_admin_device"}}}]},"mconn_admin_flare":{"properties":{"id":{"$ref":"#/components/schemas/mconn_uuid"},"triggered_at":{"type":"string"}},"required":["id","triggered_at"],"type":"object"},"mconn_admin_flare_replace_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_admin_flare"}}}]},"mconn_admin_macros_diagnose_connector_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_admin_macros_diagnose_connector_result"}}}]},"mconn_admin_macros_diagnose_connector_result":{"properties":{"connector":{"$ref":"#/components/schemas/mconn_admin_connector"},"device":{"$ref":"#/components/schemas/mconn_admin_device"},"site":{"$ref":"#/components/schemas/mconn_admin_site"}},"type":"object"},"mconn_admin_macros_provision_licensed_connector_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_admin_macros_provision_licensed_connector_result"}}}]},"mconn_admin_macros_provision_licensed_connector_result":{"properties":{"connector":{"$ref":"#/components/schemas/mconn_admin_connector"},"device":{"$ref":"#/components/schemas/mconn_admin_device"},"license_key":{"type":"string"}},"required":["license_key","device","connector"],"type":"object"},"mconn_admin_macros_provision_physical_connector_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_admin_macros_provision_physical_connector_result"}}}]},"mconn_admin_macros_provision_physical_connector_result":{"properties":{"connector":{"$ref":"#/components/schemas/mconn_admin_connector"}},"required":["connector"],"type":"object"},"mconn_admin_site":{"properties":{"id":{"$ref":"#/components/schemas/mconn_uuid"}},"required":["id"],"type":"object"},"mconn_admin_upgrade_slot":{"properties":{"connector_id":{"$ref":"#/components/schemas/mconn_uuid"},"id":{"type":"number"},"started_at":{"type":"string"}},"required":["id"],"type":"object"},"mconn_admin_upgrade_slots_fetch_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/mconn_admin_upgrade_slot"},"type":"array"}}}]},"mconn_admin_upgrade_slots_replace_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/mconn_admin_upgrade_slot"},"type":"array"}}}]},"mconn_bad_response":{"allOf":[{"$ref":"#/components/schemas/mconn_response"},{"properties":{"errors":{"items":{"$ref":"#/components/schemas/mconn_coded_message"},"minLength":1,"type":"array"},"result":{"$ref":"#/components/schemas/mconn_none"}}}]},"mconn_coded_message":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"mconn_conduit_connector":{"properties":{"account_id":{"$ref":"#/components/schemas/mconn_account_id"}},"required":["account_id"],"type":"object"},"mconn_conduit_fetch_connector_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_conduit_fetch_connector_result"}}}]},"mconn_conduit_fetch_connector_result":{"$ref":"#/components/schemas/mconn_conduit_connector"},"mconn_controller_attestation_session":{"properties":{"ak_public":{"type":"string"},"connector":{"$ref":"#/components/schemas/mconn_controller_connector_identity"},"device":{"$ref":"#/components/schemas/mconn_controller_device_identity"},"nonce":{"type":"string"}},"required":["ak_public","device","nonce"],"type":"object"},"mconn_controller_begin_attestation_session_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_controller_begin_attestation_session_result"}}}]},"mconn_controller_begin_attestation_session_result":{"$ref":"#/components/schemas/mconn_controller_attestation_session"},"mconn_controller_connector":{"properties":{"account_id":{"$ref":"#/components/schemas/mconn_account_id"},"activated":{"type":"boolean"},"desired_version":{"type":"string"},"id":{"$ref":"#/components/schemas/mconn_uuid"},"interrupt_window_duration_hours":{"type":"number"},"interrupt_window_hour_of_day":{"type":"number"},"last_heartbeat":{"type":"string"},"last_seen_version":{"type":"string"},"pinned_version":{"type":"string"},"timezone":{"type":"string"},"upgrade_asap":{"type":"boolean"},"upgrade_attempts":{"type":"number"}},"required":["id","account_id","activated","timezone","interrupt_window_hour_of_day","interrupt_window_duration_hours","upgrade_asap","upgrade_attempts"],"type":"object"},"mconn_controller_connector_identity":{"properties":{"account_id":{"$ref":"#/components/schemas/mconn_account_id"},"activated":{"type":"boolean"},"id":{"$ref":"#/components/schemas/mconn_uuid"}},"required":["id","account_id","activated"],"type":"object"},"mconn_controller_device":{"properties":{"crypt_key":{"type":"string"},"id":{"$ref":"#/components/schemas/mconn_uuid"},"imaged_at":{"type":"string"},"last_crypt_key":{"type":"string"},"license_key_sha256":{"type":"string"},"serial_number":{"type":"string"}},"required":["id","crypt_key"],"type":"object"},"mconn_controller_device_identity":{"properties":{"id":{"$ref":"#/components/schemas/mconn_uuid"},"imaged_at":{"type":"string"},"serial_number":{"type":"string"}},"required":["id"],"type":"object"},"mconn_controller_end_attestation_session_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_controller_end_attestation_session_result"}}}]},"mconn_controller_end_attestation_session_result":{"$ref":"#/components/schemas/mconn_controller_attestation_session"},"mconn_controller_fetch_cloudflared_token_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_controller_fetch_cloudflared_token_result"}}}]},"mconn_controller_fetch_cloudflared_token_result":{"type":"string"},"mconn_controller_fetch_connector_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_controller_fetch_connector_result"}}}]},"mconn_controller_fetch_connector_result":{"$ref":"#/components/schemas/mconn_controller_connector"},"mconn_controller_fetch_device_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_controller_fetch_device_result"}}}]},"mconn_controller_fetch_device_result":{"$ref":"#/components/schemas/mconn_controller_device"},"mconn_controller_fetch_flare_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_controller_fetch_flare_result"}}}]},"mconn_controller_fetch_flare_result":{"$ref":"#/components/schemas/mconn_controller_flare"},"mconn_controller_fetch_upgrade_slots_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/mconn_controller_upgrade_slot"},"type":"array"}}}]},"mconn_controller_flare":{"properties":{"triggered_at":{"type":"string"}},"required":["triggered_at"],"type":"object"},"mconn_controller_identify_ek_cert_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_controller_identify_ek_cert_result"}}}]},"mconn_controller_identify_ek_cert_result":{"properties":{"connector":{"$ref":"#/components/schemas/mconn_controller_connector_identity"},"device":{"$ref":"#/components/schemas/mconn_controller_device_identity"}},"type":"object"},"mconn_controller_identify_license_key_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_controller_identify_license_key_result"}}}]},"mconn_controller_identify_license_key_result":{"properties":{"connector":{"$ref":"#/components/schemas/mconn_controller_connector_identity"},"device":{"$ref":"#/components/schemas/mconn_controller_device_identity"}},"type":"object"},"mconn_controller_update_connector_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_controller_update_connector_result"}}}]},"mconn_controller_update_connector_result":{"type":"object"},"mconn_controller_update_device_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_controller_update_device_result"}}}]},"mconn_controller_update_device_result":{"type":"object"},"mconn_controller_upgrade_slot":{"properties":{"connector_id":{"$ref":"#/components/schemas/mconn_uuid"},"id":{"type":"number"},"started_at":{"type":"string"}},"required":["id"],"type":"object"},"mconn_create_attestation_session_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_controller_attestation_session"}}}]},"mconn_create_connector_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_admin_connector"}}}]},"mconn_customer_connector":{"properties":{"activated":{"type":"boolean"},"device":{"$ref":"#/components/schemas/mconn_customer_device"},"id":{"$ref":"#/components/schemas/mconn_uuid"},"interrupt_window_duration_hours":{"type":"number"},"interrupt_window_hour_of_day":{"type":"number"},"last_heartbeat":{"type":"string"},"last_seen_version":{"type":"string"},"last_updated":{"type":"string"},"notes":{"type":"string"},"timezone":{"type":"string"}},"required":["id","notes","activated","last_updated","timezone","interrupt_window_hour_of_day","interrupt_window_duration_hours"],"type":"object"},"mconn_customer_connector_fetch_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_customer_connector"}}}]},"mconn_customer_connector_fields":{"properties":{"activated":{"type":"boolean"},"interrupt_window_duration_hours":{"type":"number"},"interrupt_window_hour_of_day":{"type":"number"},"notes":{"type":"string"},"timezone":{"type":"string"}},"type":"object"},"mconn_customer_connector_list_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/mconn_customer_connector"},"type":"array"}}}]},"mconn_customer_connector_update_request":{"$ref":"#/components/schemas/mconn_customer_connector_fields"},"mconn_customer_connector_update_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_customer_connector"}}}]},"mconn_customer_device":{"properties":{"id":{"$ref":"#/components/schemas/mconn_uuid"},"serial_number":{"type":"string"}},"required":["id"],"type":"object"},"mconn_delete_attestation_session_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_controller_attestation_session"}}}]},"mconn_delete_controller_flare_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_controller_flare"}}}]},"mconn_good_response":{"allOf":[{"$ref":"#/components/schemas/mconn_response"},{"properties":{"errors":{"items":{"$ref":"#/components/schemas/mconn_coded_message"},"maxLength":0,"type":"array"}}}]},"mconn_heartbeat_response":{"$ref":"#/components/schemas/mconn_good_response"},"mconn_none":{"nullable":true,"type":"object"},"mconn_partner_device":{"properties":{"id":{"$ref":"#/components/schemas/mconn_uuid"}},"required":["id"],"type":"object"},"mconn_partner_device_register_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"$ref":"#/components/schemas/mconn_partner_device"}}}]},"mconn_read_controller_connector_token_response":{"allOf":[{"$ref":"#/components/schemas/mconn_good_response"},{"properties":{"result":{"type":"string"}}}]},"mconn_response":{"properties":{"messages":{"items":{"$ref":"#/components/schemas/mconn_coded_message"},"type":"array"},"success":{"type":"boolean"}},"required":["result","success","errors","messages"],"type":"object"},"mconn_uuid":{"type":"string"},"mq_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/mq_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"},"result_info":{"$ref":"#/components/schemas/mq_result_info"}}}],"type":"object"},"mq_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/mq_messages"},"messages":{"$ref":"#/components/schemas/mq_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful.","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"mq_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/mq_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/mq_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful.","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"mq_batch_size":{"description":"The maximum number of messages to include in a batch.","example":50,"type":"number"},"mq_consumer":{"properties":{"created_on":{"readOnly":true,"type":"string"},"environment":{"readOnly":true,"type":"string"},"queue_name":{"readOnly":true,"type":"string"},"service":{"readOnly":true,"type":"string"},"settings":{"properties":{"batch_size":{"$ref":"#/components/schemas/mq_batch_size"},"max_retries":{"$ref":"#/components/schemas/mq_max_retries"},"max_wait_time_ms":{"$ref":"#/components/schemas/mq_max_wait_time_ms"}},"type":"object"}},"type":"object"},"mq_consumer_created":{"properties":{"created_on":{"readOnly":true,"type":"string"},"dead_letter_queue":{"$ref":"#/components/schemas/mq_dlq_name"},"environment":{"readOnly":true,"type":"string"},"queue_name":{"readOnly":true,"type":"string"},"script_name":{"readOnly":true,"type":"string"},"settings":{"properties":{"batch_size":{"$ref":"#/components/schemas/mq_batch_size"},"max_retries":{"$ref":"#/components/schemas/mq_max_retries"},"max_wait_time_ms":{"$ref":"#/components/schemas/mq_max_wait_time_ms"}},"type":"object"}},"type":"object"},"mq_consumer_updated":{"properties":{"created_on":{"readOnly":true,"type":"string"},"dead_letter_queue":{"example":"updated-example-dlq"},"environment":{"readOnly":true,"type":"string"},"queue_name":{"readOnly":true,"type":"string"},"script_name":{"readOnly":true,"type":"string"},"settings":{"properties":{"batch_size":{"example":100,"type":"number"},"max_retries":{"$ref":"#/components/schemas/mq_max_retries"},"max_wait_time_ms":{"$ref":"#/components/schemas/mq_max_wait_time_ms"}},"type":"object"}},"type":"object"},"mq_dlq_name":{"description":"The name of the dead letter queue.","example":"example-dlq","type":"string"},"mq_identifier":{"description":"Identifier.","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"mq_lease_id":{"example":"eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIn0..Q8p21d7dceR6vUfwftONdQ.JVqZgAS-Zk7MqmqccYtTHeeMElNHaOMigeWdb8LyMOg.T2_HV99CYzGaQuhTyW8RsgbnpTRZHRM6N7UoSaAKeK0","readOnly":true,"type":"string"},"mq_max_retries":{"description":"The maximum number of retries","example":3,"type":"number"},"mq_max_wait_time_ms":{"example":5000,"type":"number"},"mq_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"mq_name":{"example":"example-queue","type":"string"},"mq_producer":{"properties":{"environment":{"readOnly":true,"type":"string"},"service":{"readOnly":true,"type":"string"}},"type":"object"},"mq_queue":{"properties":{"consumers":{"items":{"$ref":"#/components/schemas/mq_consumer"},"readOnly":true,"type":"array"},"consumers_total_count":{"readOnly":true,"type":"number"},"created_on":{"readOnly":true,"type":"string"},"modified_on":{"readOnly":true,"type":"string"},"producers":{"items":{"$ref":"#/components/schemas/mq_producer"},"readOnly":true,"type":"array"},"producers_total_count":{"readOnly":true,"type":"number"},"queue_id":{"readOnly":true,"type":"string"},"queue_name":{"$ref":"#/components/schemas/mq_name"}},"type":"object"},"mq_queue_created":{"properties":{"created_on":{"readOnly":true,"type":"string"},"modified_on":{"readOnly":true,"type":"string"},"queue_id":{"readOnly":true,"type":"string"},"queue_name":{"$ref":"#/components/schemas/mq_name"}},"type":"object"},"mq_queue_message":{"properties":{"attempts":{"example":1,"readOnly":true,"type":"number"},"body":{"example":"hello world","readOnly":true,"type":"string"},"id":{"example":"b01b5594f784d0165c2985833f5660dd","readOnly":true,"type":"string"},"lease_id":{"$ref":"#/components/schemas/mq_lease_id"},"metadata":{"example":{"CF-Content-Type":"text","CF-sourceMessageSource":"dash"},"readOnly":true,"type":"object"},"timestamp_ms":{"example":1710950954154,"readOnly":true,"type":"number"}},"type":"object"},"mq_queue_updated":{"properties":{"created_on":{"readOnly":true,"type":"string"},"modified_on":{"readOnly":true,"type":"string"},"queue_id":{"readOnly":true,"type":"string"},"queue_name":{"$ref":"#/components/schemas/mq_renamed_name"}},"type":"object"},"mq_renamed_name":{"example":"renamed-example-queue","type":"string"},"mq_result_info":{"properties":{"count":{"description":"Total number of results for the requested service.","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results.","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results.","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters.","example":2000,"type":"number"}},"type":"object"},"mq_script-response-collection":{"allOf":[{"$ref":"#/components/schemas/mq_api-response-common"},{"properties":{"result":{"items":{"properties":{"created_on":{"readOnly":true},"etag":{"readOnly":true},"id":{"readOnly":true},"modified_on":{"readOnly":true},"usage_model":{"readOnly":true}}},"type":"array"}}}]},"mq_visibility_timeout":{"description":"The number of milliseconds that a message is exclusively leased. After the timeout, the message becomes available for another attempt.","example":6000,"type":"number"},"observatory_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/observatory_api-response-common"}],"type":"object"},"observatory_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/observatory_messages"},"messages":{"$ref":"#/components/schemas/observatory_messages"},"success":{"description":"Whether the API call was successful.","example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"observatory_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/observatory_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/observatory_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"observatory_api-response-single":{"allOf":[{"$ref":"#/components/schemas/observatory_api-response-common"}],"type":"object"},"observatory_availabilities":{"properties":{"quota":{"properties":{"plan":{"description":"Cloudflare plan.","example":"free","type":"string"},"quotasPerPlan":{"description":"The number of tests available per plan.","properties":{"value":{"$ref":"#/components/schemas/observatory_plan-properties-info"}},"type":"object"},"remainingSchedules":{"description":"The number of remaining schedules available.","example":1,"type":"number"},"remainingTests":{"description":"The number of remaining tests available.","example":30,"type":"number"},"scheduleQuotasPerPlan":{"description":"The number of schedules available per plan.","properties":{"value":{"$ref":"#/components/schemas/observatory_plan-properties-info"}},"type":"object"}},"type":"object"},"regions":{"items":{"$ref":"#/components/schemas/observatory_labeled_region"},"type":"array"},"regionsPerPlan":{"description":"Available regions.","properties":{"business":{"items":{"$ref":"#/components/schemas/observatory_labeled_region"},"type":"array"},"enterprise":{"items":{"$ref":"#/components/schemas/observatory_labeled_region"},"type":"array"},"free":{"items":{"$ref":"#/components/schemas/observatory_labeled_region"},"type":"array"},"pro":{"items":{"$ref":"#/components/schemas/observatory_labeled_region"},"type":"array"}},"type":"object"}},"type":"object"},"observatory_availabilities-response":{"allOf":[{"$ref":"#/components/schemas/observatory_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/observatory_availabilities"}}}]},"observatory_count-response":{"allOf":[{"$ref":"#/components/schemas/observatory_api-response-single"},{"properties":{"result":{"properties":{"count":{"description":"Number of items affected.","example":1,"type":"number"}},"type":"object"}}}]},"observatory_create-schedule-response":{"allOf":[{"$ref":"#/components/schemas/observatory_api-response-single"},{"properties":{"result":{"properties":{"schedule":{"$ref":"#/components/schemas/observatory_schedule"},"test":{"$ref":"#/components/schemas/observatory_page_test"}},"type":"object"}}}]},"observatory_device_type":{"description":"The type of device.","enum":["DESKTOP","MOBILE"],"example":"DESKTOP","type":"string"},"observatory_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"observatory_labeled_region":{"description":"A test region with a label.","properties":{"label":{"example":"Iowa, USA","type":"string"},"value":{"$ref":"#/components/schemas/observatory_region"}},"type":"object"},"observatory_lighthouse_error_code":{"description":"The error code of the Lighthouse result.","enum":["NOT_REACHABLE","DNS_FAILURE","NOT_HTML","LIGHTHOUSE_TIMEOUT","UNKNOWN"],"example":"NOT_REACHABLE","type":"string"},"observatory_lighthouse_report":{"description":"The Lighthouse report.","properties":{"cls":{"description":"Cumulative Layout Shift.","example":100,"type":"number"},"deviceType":{"$ref":"#/components/schemas/observatory_device_type"},"error":{"properties":{"code":{"$ref":"#/components/schemas/observatory_lighthouse_error_code"},"detail":{"description":"Detailed error message.","example":"Details: net::ERR_CONNECTION_CLOSED","type":"string"},"finalDisplayedUrl":{"description":"The final URL displayed to the user.","example":"example.com","type":"string"}},"type":"object"},"fcp":{"description":"First Contentful Paint.","example":100,"type":"number"},"jsonReportUrl":{"description":"The URL to the full Lighthouse JSON report.","type":"string"},"lcp":{"description":"Largest Contentful Paint.","example":100,"type":"number"},"performanceScore":{"description":"The Lighthouse performance score.","example":90,"type":"number"},"si":{"description":"Speed Index.","example":100,"type":"number"},"state":{"$ref":"#/components/schemas/observatory_lighthouse_state"},"tbt":{"description":"Total Blocking Time.","example":100,"type":"number"},"ttfb":{"description":"Time To First Byte.","example":100,"type":"number"},"tti":{"description":"Time To Interactive.","example":100,"type":"number"}},"type":"object"},"observatory_lighthouse_state":{"description":"The state of the Lighthouse report.","enum":["RUNNING","COMPLETE","FAILED"],"example":"COMPLETE","type":"string"},"observatory_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"observatory_page-test-response-collection":{"allOf":[{"$ref":"#/components/schemas/observatory_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/observatory_page_test"},"type":"array"}}},{"properties":{"result_info":{"$ref":"#/components/schemas/observatory_result_info"}}}]},"observatory_page-test-response-single":{"allOf":[{"$ref":"#/components/schemas/observatory_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/observatory_page_test"}}}]},"observatory_page_test":{"properties":{"date":{"$ref":"#/components/schemas/observatory_timestamp"},"desktopReport":{"$ref":"#/components/schemas/observatory_lighthouse_report"},"id":{"$ref":"#/components/schemas/observatory_uuid"},"mobileReport":{"$ref":"#/components/schemas/observatory_lighthouse_report"},"region":{"$ref":"#/components/schemas/observatory_labeled_region"},"scheduleFrequency":{"$ref":"#/components/schemas/observatory_schedule_frequency"},"url":{"$ref":"#/components/schemas/observatory_url"}},"type":"object"},"observatory_pages-response-collection":{"allOf":[{"$ref":"#/components/schemas/observatory_api-response-collection"},{"properties":{"result":{"items":{"properties":{"region":{"$ref":"#/components/schemas/observatory_labeled_region"},"scheduleFrequency":{"$ref":"#/components/schemas/observatory_schedule_frequency"},"tests":{"items":{"$ref":"#/components/schemas/observatory_page_test"},"type":"array"},"url":{"$ref":"#/components/schemas/observatory_url"}}},"type":"array"}}}]},"observatory_plan-properties-info":{"description":"Counts per account plan.","properties":{"business":{"example":1,"type":"integer"},"enterprise":{"example":1,"type":"integer"},"free":{"example":1,"type":"integer"},"pro":{"example":1,"type":"integer"}},"type":"object"},"observatory_region":{"description":"A test region.","enum":["asia-east1","asia-northeast1","asia-northeast2","asia-south1","asia-southeast1","australia-southeast1","europe-north1","europe-southwest1","europe-west1","europe-west2","europe-west3","europe-west4","europe-west8","europe-west9","me-west1","southamerica-east1","us-central1","us-east1","us-east4","us-south1","us-west1"],"example":"us-central1","type":"string"},"observatory_result_info":{"properties":{"count":{"example":5,"type":"integer"},"page":{"example":1,"type":"integer"},"per_page":{"example":5,"type":"integer"},"total_count":{"example":3,"type":"integer"}},"type":"object"},"observatory_schedule":{"description":"The test schedule.","properties":{"frequency":{"$ref":"#/components/schemas/observatory_schedule_frequency"},"region":{"$ref":"#/components/schemas/observatory_region"},"url":{"$ref":"#/components/schemas/observatory_url"}},"type":"object"},"observatory_schedule-response-single":{"allOf":[{"$ref":"#/components/schemas/observatory_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/observatory_schedule"}}}]},"observatory_schedule_frequency":{"description":"The frequency of the test.","enum":["DAILY","WEEKLY"],"example":"DAILY","type":"string"},"observatory_timestamp":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","type":"string"},"observatory_trend":{"properties":{"cls":{"description":"Cumulative Layout Shift trend.","items":{"nullable":true,"type":"number"},"type":"array"},"fcp":{"description":"First Contentful Paint trend.","items":{"nullable":true,"type":"number"},"type":"array"},"lcp":{"description":"Largest Contentful Paint trend.","items":{"nullable":true,"type":"number"},"type":"array"},"performanceScore":{"description":"The Lighthouse score trend.","items":{"nullable":true,"type":"number"},"type":"array"},"si":{"description":"Speed Index trend.","items":{"nullable":true,"type":"number"},"type":"array"},"tbt":{"description":"Total Blocking Time trend.","items":{"nullable":true,"type":"number"},"type":"array"},"ttfb":{"description":"Time To First Byte trend.","items":{"nullable":true,"type":"number"},"type":"array"},"tti":{"description":"Time To Interactive trend.","items":{"nullable":true,"type":"number"},"type":"array"}},"type":"object"},"observatory_trend-response":{"allOf":[{"$ref":"#/components/schemas/observatory_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/observatory_trend"}}}]},"observatory_url":{"description":"A URL.","example":"example.com","type":"string"},"observatory_uuid":{"description":"UUID","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","maxLength":36,"type":"string"},"page-shield_api-get-response-collection":{"allOf":[{"$ref":"#/components/schemas/page-shield_api-response-common"},{"properties":{"result":{"nullable":true,"type":"object"}}}],"type":"object"},"page-shield_api-list-response-collection":{"allOf":[{"$ref":"#/components/schemas/page-shield_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/page-shield_result_info"}},"required":["result_info"]}],"type":"object"},"page-shield_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/page-shield_messages"},"messages":{"$ref":"#/components/schemas/page-shield_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success"],"type":"object"},"page-shield_api-response-common-failure":{"properties":{"errors":{"$ref":"#/components/schemas/page-shield_messages"},"messages":{"$ref":"#/components/schemas/page-shield_messages"},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors"],"type":"object"},"page-shield_api-response-single":{"allOf":[{"$ref":"#/components/schemas/page-shield_api-response-common"},{"properties":{"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]}}}],"type":"object"},"page-shield_connection":{"properties":{"added_at":{"example":"2021-08-18T10:51:10.09615Z","format":"date-time","type":"string"},"domain_reported_malicious":{"example":false,"type":"boolean"},"first_page_url":{"example":"blog.cloudflare.com/page","type":"string"},"first_seen_at":{"example":"2021-08-18T10:51:08Z","format":"date-time","type":"string"},"host":{"example":"blog.cloudflare.com","type":"string"},"id":{"$ref":"#/components/schemas/page-shield_id"},"last_seen_at":{"example":"2021-09-02T09:57:54Z","format":"date-time","type":"string"},"malicious_domain_categories":{"example":["Malware"],"items":{"type":"string"},"type":"array"},"malicious_url_categories":{"example":["Malware"],"items":{"type":"string"},"type":"array"},"page_urls":{"example":["blog.cloudflare.com/page1","blog.cloudflare.com/page2"],"items":{"type":"string"},"type":"array"},"url":{"example":"https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js","type":"string"},"url_contains_cdn_cgi_path":{"example":false,"type":"boolean"},"url_reported_malicious":{"example":false,"type":"boolean"}},"required":["id","url","added_at","first_seen_at","last_seen_at","host","url_contains_cdn_cgi_path"]},"page-shield_cookie":{"properties":{"domain_attribute":{"example":"cloudflare.com","type":"string"},"expires_attribute":{"example":"2021-10-02T09:57:54Z","format":"date-time","type":"string"},"first_seen_at":{"example":"2021-08-18T10:51:08Z","format":"date-time","type":"string"},"host":{"example":"blog.cloudflare.com","type":"string"},"http_only_attribute":{"example":true,"type":"boolean"},"id":{"$ref":"#/components/schemas/page-shield_id"},"last_seen_at":{"example":"2021-09-02T09:57:54Z","format":"date-time","type":"string"},"max_age_attribute":{"example":3600,"type":"integer"},"name":{"example":"session_id","type":"string"},"page_urls":{"example":["blog.cloudflare.com/page1","blog.cloudflare.com/page2"],"items":{"type":"string"},"type":"array"},"path_attribute":{"example":"/","type":"string"},"same_site_attribute":{"enum":["lax","strict","none"],"example":"strict","type":"string"},"secure_attribute":{"example":true,"type":"boolean"},"type":{"enum":["first_party","unknown"],"example":"first_party","type":"string"}},"required":["id","type","name","host","first_seen_at","last_seen_at"]},"page-shield_cryptomining_score":{"description":"The cryptomining score of the JavaScript content.","maximum":99,"minimum":1,"nullable":true,"type":"integer"},"page-shield_dataflow_score":{"description":"The dataflow score of the JavaScript content.","maximum":99,"minimum":1,"nullable":true,"type":"integer"},"page-shield_enabled":{"description":"When true, indicates that Page Shield is enabled.","example":true,"type":"boolean"},"page-shield_fetched_at":{"description":"The timestamp of when the script was last fetched.","nullable":true,"type":"string"},"page-shield_get-zone-connection-response":{"allOf":[{"$ref":"#/components/schemas/page-shield_api-get-response-collection"},{"properties":{"result":{"$ref":"#/components/schemas/page-shield_connection"}},"required":["result"]}]},"page-shield_get-zone-cookie-response":{"allOf":[{"$ref":"#/components/schemas/page-shield_api-get-response-collection"},{"properties":{"result":{"$ref":"#/components/schemas/page-shield_cookie"}},"required":["result"]}]},"page-shield_get-zone-policy-response":{"allOf":[{"$ref":"#/components/schemas/page-shield_api-get-response-collection"},{"properties":{"result":{"$ref":"#/components/schemas/page-shield_policy-with-id"}},"required":["result"]}]},"page-shield_get-zone-script-response":{"allOf":[{"$ref":"#/components/schemas/page-shield_api-get-response-collection"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/page-shield_script"},{"properties":{"versions":{"example":[{"cryptomining_score":20,"dataflow_score":2,"fetched_at":"2021-08-18T10:51:08Z","hash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b423","js_integrity_score":2,"magecart_score":10,"malware_score":5,"obfuscation_score":10}],"items":{"$ref":"#/components/schemas/page-shield_version"},"nullable":true,"type":"array"}}}]}},"required":["result"]}]},"page-shield_get-zone-settings-response":{"properties":{"enabled":{"$ref":"#/components/schemas/page-shield_enabled"},"updated_at":{"$ref":"#/components/schemas/page-shield_updated_at"},"use_cloudflare_reporting_endpoint":{"$ref":"#/components/schemas/page-shield_use_cloudflare_reporting_endpoint"},"use_connection_url_path":{"$ref":"#/components/schemas/page-shield_use_connection_url_path"}},"required":["enabled","updated_at","use_cloudflare_reporting_endpoint","use_connection_url_path"]},"page-shield_hash":{"description":"The computed hash of the analyzed script.","maxLength":64,"minLength":64,"nullable":true,"type":"string"},"page-shield_id":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"page-shield_js_integrity_score":{"description":"The integrity score of the JavaScript content.","maximum":99,"minimum":1,"nullable":true,"type":"integer"},"page-shield_list-zone-connections-response":{"allOf":[{"$ref":"#/components/schemas/page-shield_api-list-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/page-shield_connection"},"type":"array"}},"type":"object"}]},"page-shield_list-zone-cookies-response":{"allOf":[{"$ref":"#/components/schemas/page-shield_api-list-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/page-shield_cookie"},"type":"array"}},"required":["result"],"type":"object"}]},"page-shield_list-zone-policies-response":{"allOf":[{"$ref":"#/components/schemas/page-shield_api-list-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/page-shield_policy-with-id"},"type":"array"}},"required":["result"],"type":"object"}]},"page-shield_list-zone-scripts-response":{"allOf":[{"$ref":"#/components/schemas/page-shield_api-list-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/page-shield_script"},"type":"array"}},"required":["result"],"type":"object"}]},"page-shield_magecart_score":{"description":"The magecart score of the JavaScript content.","maximum":99,"minimum":1,"nullable":true,"type":"integer"},"page-shield_malware_score":{"description":"The malware score of the JavaScript content.","maximum":99,"minimum":1,"nullable":true,"type":"integer"},"page-shield_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"page-shield_obfuscation_score":{"description":"The obfuscation score of the JavaScript content.","maximum":99,"minimum":1,"nullable":true,"type":"integer"},"page-shield_policy":{"properties":{"action":{"$ref":"#/components/schemas/page-shield_policy-action"},"description":{"$ref":"#/components/schemas/page-shield_policy-description"},"enabled":{"$ref":"#/components/schemas/page-shield_policy-enabled"},"expression":{"$ref":"#/components/schemas/page-shield_policy-expression"},"value":{"$ref":"#/components/schemas/page-shield_policy-value"}},"required":["description","action","expression","enabled","value"]},"page-shield_policy-action":{"description":"The action to take if the expression matches","enum":["allow","log"],"example":"allow","type":"string"},"page-shield_policy-description":{"description":"A description for the policy","example":"Checkout page CSP policy","type":"string"},"page-shield_policy-enabled":{"description":"Whether the policy is enabled","example":true,"type":"boolean"},"page-shield_policy-expression":{"description":"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\")","type":"string"},"page-shield_policy-value":{"description":"The policy which will be applied","example":"script-src 'none';","type":"string"},"page-shield_policy-with-id":{"allOf":[{"$ref":"#/components/schemas/page-shield_policy"},{"properties":{"id":{"$ref":"#/components/schemas/page-shield_id"}},"required":["id"]}],"required":["id","description","action","expression","enabled","value"]},"page-shield_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"},"total_pages":{"description":"Total number of pages","example":100,"type":"number"}},"required":["page","per_page","count","total_count","total_pages"],"type":"object"},"page-shield_script":{"properties":{"added_at":{"example":"2021-08-18T10:51:10.09615Z","format":"date-time","type":"string"},"cryptomining_score":{"$ref":"#/components/schemas/page-shield_cryptomining_score"},"dataflow_score":{"$ref":"#/components/schemas/page-shield_dataflow_score"},"domain_reported_malicious":{"example":false,"type":"boolean"},"fetched_at":{"$ref":"#/components/schemas/page-shield_fetched_at"},"first_page_url":{"example":"blog.cloudflare.com/page","type":"string"},"first_seen_at":{"example":"2021-08-18T10:51:08Z","format":"date-time","type":"string"},"hash":{"$ref":"#/components/schemas/page-shield_hash"},"host":{"example":"blog.cloudflare.com","type":"string"},"id":{"$ref":"#/components/schemas/page-shield_id"},"js_integrity_score":{"$ref":"#/components/schemas/page-shield_js_integrity_score"},"last_seen_at":{"example":"2021-09-02T09:57:54Z","format":"date-time","type":"string"},"magecart_score":{"$ref":"#/components/schemas/page-shield_magecart_score"},"malicious_domain_categories":{"example":["Malware"],"items":{"type":"string"},"type":"array"},"malicious_url_categories":{"example":["Malware"],"items":{"type":"string"},"type":"array"},"malware_score":{"$ref":"#/components/schemas/page-shield_malware_score"},"obfuscation_score":{"$ref":"#/components/schemas/page-shield_obfuscation_score"},"page_urls":{"example":["blog.cloudflare.com/page1","blog.cloudflare.com/page2"],"items":{"type":"string"},"type":"array"},"url":{"example":"https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js","type":"string"},"url_contains_cdn_cgi_path":{"example":false,"type":"boolean"},"url_reported_malicious":{"example":false,"type":"boolean"}},"required":["id","url","added_at","first_seen_at","last_seen_at","host","url_contains_cdn_cgi_path"]},"page-shield_update-zone-settings-response":{"properties":{"enabled":{"$ref":"#/components/schemas/page-shield_enabled"},"updated_at":{"$ref":"#/components/schemas/page-shield_updated_at"},"use_cloudflare_reporting_endpoint":{"$ref":"#/components/schemas/page-shield_use_cloudflare_reporting_endpoint"},"use_connection_url_path":{"$ref":"#/components/schemas/page-shield_use_connection_url_path"}},"required":["enabled","updated_at","use_cloudflare_reporting_endpoint","use_connection_url_path"]},"page-shield_updated_at":{"description":"The timestamp of when Page Shield was last updated.","example":"2022-10-12T17:56:52.083582+01:00","type":"string"},"page-shield_use_cloudflare_reporting_endpoint":{"description":"When true, CSP reports will be sent to https://csp-reporting.cloudflare.com/cdn-cgi/script_monitor/report","example":true,"type":"boolean"},"page-shield_use_connection_url_path":{"description":"When true, the paths associated with connections URLs will also be analyzed.","example":true,"type":"boolean"},"page-shield_version":{"description":"The version of the analyzed script.","properties":{"cryptomining_score":{"$ref":"#/components/schemas/page-shield_cryptomining_score"},"dataflow_score":{"$ref":"#/components/schemas/page-shield_dataflow_score"},"fetched_at":{"$ref":"#/components/schemas/page-shield_fetched_at"},"hash":{"$ref":"#/components/schemas/page-shield_hash"},"js_integrity_score":{"$ref":"#/components/schemas/page-shield_js_integrity_score"},"magecart_score":{"$ref":"#/components/schemas/page-shield_magecart_score"},"malware_score":{"$ref":"#/components/schemas/page-shield_malware_score"},"obfuscation_score":{"$ref":"#/components/schemas/page-shield_obfuscation_score"}},"type":"object"},"page-shield_zone_settings_response_single":{"allOf":[{"$ref":"#/components/schemas/page-shield_api-response-single"},{"properties":{"result":{"type":"object"}}}]},"pages_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/pages_messages"},"messages":{"$ref":"#/components/schemas/pages_messages"},"success":{"description":"Whether the API call was successful","enum":[false,true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"pages_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/pages_messages"}],"example":[{"code":7003,"message":"No route for the URI."}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/pages_messages"}],"example":[]},"result":{"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful.","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"pages_api-response-pagination":{"properties":{"result_info":{"properties":{"count":{"description":"The number of items on the current page.","example":1,"type":"integer"},"page":{"description":"The page currently being requested.","example":1,"type":"integer"},"per_page":{"description":"The number of items per page being returned.","example":100,"type":"integer"},"total_count":{"description":"The total count of items.","example":1,"type":"integer"},"total_pages":{"description":"The total count of pages.","example":1,"type":"integer"}},"required":["page","per_page","count","total_count"],"type":"object"}},"type":"object"},"pages_api-response-single":{"allOf":[{"$ref":"#/components/schemas/pages_api-response-common"},{"properties":{"result":{"nullable":true,"type":"object"}}}],"type":"object"},"pages_build_config":{"description":"Configs for the project build process.","properties":{"build_caching":{"description":"Enable build caching for the project.","example":true,"nullable":true,"type":"boolean"},"build_command":{"description":"Command used to build project.","example":"npm run build","nullable":true,"type":"string"},"destination_dir":{"description":"Output directory of the build.","example":"build","nullable":true,"type":"string"},"root_dir":{"description":"Directory to run the command.","example":"/","nullable":true,"type":"string"},"web_analytics_tag":{"description":"The classifying tag for analytics.","example":"cee1c73f6e4743d0b5e6bb1a0bcaabcc","nullable":true,"type":"string"},"web_analytics_token":{"description":"The auth token for analytics.","example":"021e1057c18547eca7b79f2516f06o7x","nullable":true,"type":"string"}},"type":"object"},"pages_deployment-list-response":{"allOf":[{"$ref":"#/components/schemas/pages_api-response-common"},{"$ref":"#/components/schemas/pages_api-response-pagination"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/pages_deployments"},"type":"array"}}}]},"pages_deployment-new-deployment":{"allOf":[{"$ref":"#/components/schemas/pages_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/pages_deployments"}}}]},"pages_deployment-response-details":{"allOf":[{"$ref":"#/components/schemas/pages_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/pages_deployments"}}}]},"pages_deployment-response-logs":{"allOf":[{"$ref":"#/components/schemas/pages_api-response-common"},{"properties":{"result":{"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 -\u003e 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},"properties":{"data":{"items":{"properties":{"line":{"readOnly":true,"type":"string"},"ts":{"readOnly":true,"type":"string"}},"type":"object"},"type":"array"},"includes_container_logs":{"readOnly":true,"type":"boolean"},"total":{"readOnly":true,"type":"integer"}},"type":"object"}},"type":"object"}]},"pages_deployment-response-stage-logs":{"allOf":[{"$ref":"#/components/schemas/pages_api-response-common"},{"properties":{"result":{"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},"type":"object"}}}]},"pages_deployment_configs":{"description":"Configs for deployments in a project.","properties":{"preview":{"anyOf":[{"$ref":"#/components/schemas/pages_deployment_configs_values"}],"description":"Configs for preview deploys.","type":"object"},"production":{"anyOf":[{"$ref":"#/components/schemas/pages_deployment_configs_values"}],"description":"Configs for production deploys.","type":"object"}},"type":"object"},"pages_deployment_configs_values":{"properties":{"ai_bindings":{"additionalProperties":{"description":"AI binding.","nullable":true,"properties":{"project_id":{"type":"string"}},"type":"object"},"description":"Constellation bindings used for Pages Functions.","example":{"AI_BINDING":{"project_id":"some-project-id"}},"nullable":true,"type":"object"},"analytics_engine_datasets":{"additionalProperties":{"description":"Analytics Engine binding.","nullable":true,"properties":{"dataset":{"description":"Name of the dataset.","example":"api_analytics","type":"string"}},"type":"object"},"description":"Analytics Engine bindings used for Pages Functions.","example":{"ANALYTICS_ENGINE_BINDING":{"dataset":"api_analytics"}},"nullable":true,"type":"object"},"browsers":{"additionalProperties":{"description":"Browser binding.","nullable":true,"type":"object","x-stainless-empty-object":true},"description":"Browser bindings used for Pages Functions.","example":{"BROWSER":{}},"nullable":true,"type":"object"},"compatibility_date":{"description":"Compatibility date used for Pages Functions.","example":"2022-01-01","type":"string"},"compatibility_flags":{"description":"Compatibility flags used for Pages Functions.","example":["url_standard"],"items":{"type":"string"},"type":"array"},"d1_databases":{"additionalProperties":{"description":"D1 binding.","nullable":true,"properties":{"id":{"description":"UUID of the D1 database.","example":"445e2955-951a-43f8-a35b-a4d0c8138f63","type":"string"}},"type":"object"},"description":"D1 databases used for Pages Functions.","example":{"D1_BINDING":{"id":"445e2955-951a-43f8-a35b-a4d0c8138f63"}},"nullable":true,"type":"object"},"durable_object_namespaces":{"additionalProperties":{"description":"Durabble Object binding.","nullable":true,"properties":{"namespace_id":{"description":"ID of the Durabble Object namespace.","example":"5eb63bbbe01eeed093cb22bb8f5acdc3","type":"string"}},"type":"object"},"description":"Durabble Object namespaces used for Pages Functions.","example":{"DO_BINDING":{"namespace_id":"5eb63bbbe01eeed093cb22bb8f5acdc3"}},"nullable":true,"type":"object"},"env_vars":{"additionalProperties":{"description":"Environment variable.","example":{"type":"plain_text","value":"hello world"},"nullable":true,"properties":{"type":{"description":"The type of environment variable.","enum":["plain_text","secret_text"],"type":"string"},"value":{"description":"Environment variable value.","type":"string"}},"required":["value"],"type":"object"},"description":"Environment variables for build configs.","nullable":true,"type":"object"},"hyperdrive_bindings":{"additionalProperties":{"description":"Hyperdrive binding.","nullable":true,"properties":{"id":{"example":"a76a99bc342644deb02c38d66082262a","type":"string"}},"type":"object"},"description":"Hyperdrive bindings used for Pages Functions.","example":{"HYPERDRIVE":{"id":"a76a99bc342644deb02c38d66082262a"}},"nullable":true,"type":"object"},"kv_namespaces":{"additionalProperties":{"description":"KV namespace binding.","nullable":true,"properties":{"namespace_id":{"description":"ID of the KV namespace.","example":"5eb63bbbe01eeed093cb22bb8f5acdc3","type":"string"}},"type":"object"},"description":"KV namespaces used for Pages Functions.","example":{"KV_BINDING":{"namespace_id":"5eb63bbbe01eeed093cb22bb8f5acdc3"}},"nullable":true,"type":"object"},"mtls_certificates":{"additionalProperties":{"description":"mTLS binding.","nullable":true,"properties":{"certificate_id":{"example":"d7cdd17c-916f-4cb7-aabe-585eb382ec4e","type":"string"}},"type":"object"},"description":"mTLS bindings used for Pages Functions.","example":{"MTLS":{"certificate_id":"d7cdd17c-916f-4cb7-aabe-585eb382ec4e"}},"nullable":true,"type":"object"},"placement":{"description":"Placement setting used for Pages Functions.","example":{"mode":"smart"},"nullable":true,"properties":{"mode":{"description":"Placement mode.","example":"smart","type":"string"}},"type":"object"},"queue_producers":{"additionalProperties":{"description":"Queue Producer binding.","nullable":true,"properties":{"name":{"description":"Name of the Queue.","example":"some-queue","type":"string"}},"type":"object"},"description":"Queue Producer bindings used for Pages Functions.","example":{"QUEUE_PRODUCER_BINDING":{"name":"some-queue"}},"nullable":true,"type":"object"},"r2_buckets":{"additionalProperties":{"description":"R2 binding.","nullable":true,"properties":{"jurisdiction":{"description":"Jurisdiction of the R2 bucket.","example":"eu","nullable":true,"type":"string"},"name":{"description":"Name of the R2 bucket.","example":"some-bucket","type":"string"}},"type":"object"},"description":"R2 buckets used for Pages Functions.","example":{"R2_BINDING":{"name":"some-bucket"}},"nullable":true,"type":"object"},"services":{"additionalProperties":{"description":"Service binding.","nullable":true,"properties":{"entrypoint":{"description":"The entrypoint to bind to.","nullable":true,"type":"string"},"environment":{"description":"The Service environment.","type":"string"},"service":{"description":"The Service name.","type":"string"}},"type":"object"},"description":"Services used for Pages Functions.","example":{"SERVICE_BINDING":{"entrypoint":"MyHandler","environment":"production","service":"example-worker"}},"nullable":true,"type":"object"},"vectorize_bindings":{"additionalProperties":{"description":"Vectorize binding.","nullable":true,"properties":{"index_name":{"example":"my_index","type":"string"}},"type":"object"},"description":"Vectorize bindings used for Pages Functions.","example":{"VECTORIZE":{"index_name":"my_index"}},"nullable":true,"type":"object"}},"type":"object"},"pages_deployment_stage_name":{"description":"Deployment stage name.","example":"deploy","pattern":"queued|initialize|clone_repo|build|deploy","type":"string"},"pages_deployments":{"properties":{"aliases":{"description":"A list of alias URLs pointing to this deployment.","example":["https://branchname.projectname.pages.dev"],"items":{"type":"string"},"nullable":true,"readOnly":true,"type":"array"},"build_config":{"$ref":"#/components/schemas/pages_build_config"},"created_on":{"description":"When the deployment was created.","example":"2021-03-09T00:55:03.923456Z","format":"date-time","readOnly":true,"type":"string"},"deployment_trigger":{"description":"Info about what caused the deployment.","properties":{"metadata":{"description":"Additional info about the trigger.","properties":{"branch":{"description":"Where the trigger happened.","example":"main","readOnly":true,"type":"string"},"commit_hash":{"description":"Hash of the deployment trigger commit.","example":"ad9ccd918a81025731e10e40267e11273a263421","readOnly":true,"type":"string"},"commit_message":{"description":"Message of the deployment trigger commit.","example":"Update index.html","readOnly":true,"type":"string"}},"type":"object"},"type":{"description":"What caused the deployment.","example":"ad_hoc","pattern":"push|ad_hoc","readOnly":true,"type":"string"}},"readOnly":true,"type":"object"},"env_vars":{"additionalProperties":{"description":"Environment variable.","nullable":true,"properties":{"type":{"description":"The type of environment variable.","type":"string"},"value":{"description":"Environment variable value.","type":"string"}},"required":["value"],"type":"object"},"description":"A dict of env variables to build this deploy.","example":{"BUILD_VERSION":{"value":"3.3"},"ENV":{"value":"STAGING"}},"readOnly":true,"type":"object"},"environment":{"description":"Type of deploy.","example":"preview","pattern":"preview|production","readOnly":true,"type":"string"},"id":{"description":"Id of the deployment.","example":"f64788e9-fccd-4d4a-a28a-cb84f88f6","readOnly":true,"type":"string"},"is_skipped":{"description":"If the deployment has been skipped.","example":true,"readOnly":true,"type":"boolean"},"latest_stage":{"$ref":"#/components/schemas/pages_stage"},"modified_on":{"description":"When the deployment was last modified.","example":"2021-03-09T00:58:59.045655","format":"date-time","readOnly":true,"type":"string"},"project_id":{"description":"Id of the project.","example":"7b162ea7-7367-4d67-bcde-1160995d5","readOnly":true,"type":"string"},"project_name":{"description":"Name of the project.","example":"ninjakittens","readOnly":true,"type":"string"},"short_id":{"description":"Short Id (8 character) of the deployment.","example":"f64788e9","readOnly":true,"type":"string"},"source":{"$ref":"#/components/schemas/pages_source"},"stages":{"description":"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"},{"ended_on":null,"name":"initialize","started_on":null,"status":"idle"},{"ended_on":null,"name":"clone_repo","started_on":null,"status":"idle"},{"ended_on":null,"name":"build","started_on":null,"status":"idle"},{"ended_on":null,"name":"deploy","started_on":null,"status":"idle"}],"items":{"$ref":"#/components/schemas/pages_stage"},"readOnly":true,"type":"array"},"url":{"description":"The live URL to view this deployment.","example":"https://f64788e9.ninjakittens.pages.dev","readOnly":true,"type":"string"}},"type":"object"},"pages_domain-object":{"properties":{"certificate_authority":{"enum":["google","lets_encrypt"],"example":"lets_encrypt","readOnly":true,"type":"string"},"created_on":{"readOnly":true,"type":"string"},"domain_id":{"readOnly":true,"type":"string"},"id":{"readOnly":true,"type":"string"},"name":{"example":"example.com","type":"string"},"status":{"enum":["initializing","pending","active","deactivated","blocked","error"],"readOnly":true,"type":"string"},"validation_data":{"properties":{"error_message":{"type":"string"},"method":{"enum":["http","txt"],"type":"string"},"status":{"enum":["initializing","pending","active","deactivated","error"],"type":"string"},"txt_name":{"type":"string"},"txt_value":{"type":"string"}},"readOnly":true,"type":"object"},"verification_data":{"properties":{"error_message":{"type":"string"},"status":{"enum":["pending","active","deactivated","blocked","error"],"type":"string"}},"readOnly":true,"type":"object"},"zone_tag":{"readOnly":true,"type":"string"}},"type":"object"},"pages_domain-response-collection":{"allOf":[{"$ref":"#/components/schemas/pages_api-response-common"},{"$ref":"#/components/schemas/pages_api-response-pagination"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/pages_domain-object"},"type":"array"}}}]},"pages_domain-response-single":{"allOf":[{"$ref":"#/components/schemas/pages_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/pages_domain-object"}}}]},"pages_domain_name":{"description":"Name of the domain.","example":"this-is-my-domain-01.com","pattern":"^[a-z0-9][a-z0-9-]*$","type":"string"},"pages_domains-post":{"properties":{"name":{"example":"example.com","type":"string"}},"type":"object"},"pages_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"pages_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"pages_project-object":{"properties":{"build_config":{"$ref":"#/components/schemas/pages_build_config"},"canonical_deployment":{"allOf":[{"$ref":"#/components/schemas/pages_deployments"},{"description":"Most recent deployment to the repo.","nullable":true,"readOnly":true,"type":"object"}]},"created_on":{"description":"When the project was created.","example":"2017-01-01T00:00:00Z","format":"date-time","readOnly":true,"type":"string"},"deployment_configs":{"$ref":"#/components/schemas/pages_deployment_configs"},"domains":{"description":"A list of associated custom domains for the project.","example":["customdomain.com","customdomain.org"],"items":{"type":"string"},"readOnly":true,"type":"array"},"id":{"description":"Id of the project.","example":"7b162ea7-7367-4d67-bcde-1160995d5","readOnly":true,"type":"string"},"latest_deployment":{"allOf":[{"$ref":"#/components/schemas/pages_deployments"},{"description":"Most recent deployment to the repo.","nullable":true,"readOnly":true,"type":"object"}]},"name":{"description":"Name of the project.","example":"NextJS Blog","type":"string"},"production_branch":{"description":"Production branch of the project. Used to identify production deployments.","example":"main","type":"string"},"source":{"$ref":"#/components/schemas/pages_source"},"subdomain":{"description":"The Cloudflare subdomain associated with the project.","example":"helloworld.pages.dev","readOnly":true,"type":"string"}},"type":"object"},"pages_project-patch":{"allOf":[{"$ref":"#/components/schemas/pages_project-object"},{"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"}}}}},"type":"object"}]},"pages_project-response":{"allOf":[{"$ref":"#/components/schemas/pages_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/pages_project-object"}}}]},"pages_project_name":{"description":"Name of the project.","example":"this-is-my-project-01","pattern":"^[a-z0-9][a-z0-9-]*$","type":"string"},"pages_projects-response":{"allOf":[{"$ref":"#/components/schemas/pages_api-response-common"},{"$ref":"#/components/schemas/pages_api-response-pagination"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/pages_deployments"},"type":"array"}}}]},"pages_source":{"properties":{"config":{"properties":{"deployments_enabled":{"type":"boolean"},"owner":{"type":"string"},"path_excludes":{"items":{"type":"string"},"type":"array"},"path_includes":{"items":{"type":"string"},"type":"array"},"pr_comments_enabled":{"type":"boolean"},"preview_branch_excludes":{"items":{"type":"string"},"type":"array"},"preview_branch_includes":{"items":{"type":"string"},"type":"array"},"preview_deployment_setting":{"enum":["all","none","custom"],"type":"string"},"production_branch":{"type":"string"},"production_deployments_enabled":{"type":"boolean"},"repo_name":{"type":"string"}},"type":"object"},"type":{"type":"string"}},"readOnly":true,"type":"object"},"pages_stage":{"description":"The status of the deployment.","properties":{"ended_on":{"description":"When the stage ended.","example":"2021-03-09T00:58:59.045655","format":"date-time","nullable":true,"readOnly":true,"type":"string"},"name":{"description":"The current build stage.","example":"deploy","pattern":"queued|initialize|clone_repo|build|deploy","type":"string"},"started_on":{"description":"When the stage started.","example":"2021-03-09T00:55:03.923456Z","format":"date-time","nullable":true,"readOnly":true,"type":"string"},"status":{"description":"State of the current stage.","example":"success","pattern":"success|idle|active|failure|canceled","readOnly":true,"type":"string"}},"readOnly":true,"type":"object"},"r2_account_identifier":{"description":"Account ID","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"r2_add_custom_domain_request":{"example":{"domain":"prefix.example-domain.com","zoneId":"36ca64a6d92827b8a6b90be344bb1bfd"},"properties":{"domain":{"description":"Name of the custom domain to be added","type":"string"},"enabled":{"description":"Whether to enable public bucket access at the custom domain. If undefined, the domain will be enabled.","type":"boolean"},"minTLS":{"description":"Minimum TLS Version the custom domain will accept for incoming connections. If not set, defaults to 1.0.","enum":["1.0","1.1","1.2","1.3"],"type":"string"},"zoneId":{"description":"Zone ID of the custom domain","type":"string"}},"required":["domain","zoneId"],"type":"object"},"r2_add_custom_domain_response":{"example":{"domain":"example-domain.com","enabled":true},"properties":{"domain":{"description":"Domain name of the affected custom domain","type":"string"},"enabled":{"description":"Whether this bucket is publicly accessible at the specified custom domain","type":"boolean"},"minTLS":{"description":"Minimum TLS Version the custom domain will accept for incoming connections. If not set, defaults to 1.0.","enum":["1.0","1.1","1.2","1.3"],"type":"string"}},"required":["domain","enabled"],"type":"object"},"r2_bucket":{"description":"A single R2 bucket","properties":{"creation_date":{"description":"Creation timestamp","type":"string"},"location":{"$ref":"#/components/schemas/r2_bucket_location"},"name":{"$ref":"#/components/schemas/r2_bucket_name"},"storage_class":{"$ref":"#/components/schemas/r2_storage_class"}},"type":"object"},"r2_bucket-config":{"properties":{"bucketName":{"description":"Name of the bucket.","type":"string"},"queues":{"description":"List of queues associated with the bucket.","items":{"$ref":"#/components/schemas/r2_queues-config"},"type":"array"}},"type":"object"},"r2_bucket_location":{"description":"Location of the bucket","enum":["apac","eeur","enam","weur","wnam"],"type":"string"},"r2_bucket_name":{"description":"Name of the bucket","example":"example-bucket","maxLength":64,"minLength":3,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]","type":"string"},"r2_domain_name":{"description":"Name of the custom domain","example":"example-domain/custom-domain.com","type":"string"},"r2_edit_custom_domain_request":{"example":{"enabled":true,"minTLS":"1.2"},"properties":{"enabled":{"description":"Whether to enable public bucket access at the specified custom domain","type":"boolean"},"minTLS":{"description":"Minimum TLS Version the custom domain will accept for incoming connections. If not set, defaults to previous value.","enum":["1.0","1.1","1.2","1.3"],"type":"string"}},"type":"object"},"r2_edit_custom_domain_response":{"example":{"domain":"example-domain.com","enabled":true},"properties":{"domain":{"description":"Domain name of the affected custom domain","type":"string"},"enabled":{"description":"Whether this bucket is publicly accessible at the specified custom domain","type":"boolean"},"minTLS":{"description":"Minimum TLS Version the custom domain will accept for incoming connections. If not set, defaults to 1.0.","enum":["1.0","1.1","1.2","1.3"],"type":"string"}},"required":["domain"],"type":"object"},"r2_edit_managed_domain_request":{"example":{"enabled":true},"properties":{"enabled":{"description":"Whether to enable public bucket access at the r2.dev domain","type":"boolean"}},"required":["enabled"],"type":"object"},"r2_enable_sippy_aws":{"properties":{"destination":{"description":"R2 bucket to copy objects to","properties":{"accessKeyId":{"description":"ID of a Cloudflare API token.\nThis is the value labelled \"Access Key ID\" when creating an API\ntoken from the [R2 dashboard](https://dash.cloudflare.com/?to=/:account/r2/api-tokens).\n\nSippy will use this token when writing objects to R2, so it is\nbest to scope this token to the bucket you're enabling Sippy for.\n","type":"string"},"provider":{"enum":["r2"],"type":"string"},"secretAccessKey":{"description":"Value of a Cloudflare API token.\nThis is the value labelled \"Secret Access Key\" when creating an API\ntoken from the [R2 dashboard](https://dash.cloudflare.com/?to=/:account/r2/api-tokens).\n\nSippy will use this token when writing objects to R2, so it is\nbest to scope this token to the bucket you're enabling Sippy for.\n","type":"string"}},"type":"object"},"source":{"description":"AWS S3 bucket to copy objects from","properties":{"accessKeyId":{"description":"Access Key ID of an IAM credential (ideally scoped to a single S3 bucket)","type":"string"},"bucket":{"description":"Name of the AWS S3 bucket","type":"string"},"provider":{"enum":["aws"],"type":"string"},"region":{"description":"Name of the AWS availability zone","type":"string"},"secretAccessKey":{"description":"Secret Access Key of an IAM credential (ideally scoped to a single S3 bucket)","type":"string"}},"type":"object"}}},"r2_enable_sippy_gcs":{"properties":{"destination":{"description":"R2 bucket to copy objects to","properties":{"accessKeyId":{"description":"ID of a Cloudflare API token.\nThis is the value labelled \"Access Key ID\" when creating an API\ntoken from the [R2 dashboard](https://dash.cloudflare.com/?to=/:account/r2/api-tokens).\n\nSippy will use this token when writing objects to R2, so it is\nbest to scope this token to the bucket you're enabling Sippy for.\n","type":"string"},"provider":{"enum":["r2"],"type":"string"},"secretAccessKey":{"description":"Value of a Cloudflare API token.\nThis is the value labelled \"Secret Access Key\" when creating an API\ntoken from the [R2 dashboard](https://dash.cloudflare.com/?to=/:account/r2/api-tokens).\n\nSippy will use this token when writing objects to R2, so it is\nbest to scope this token to the bucket you're enabling Sippy for.\n","type":"string"}},"type":"object"},"source":{"description":"GCS bucket to copy objects from","properties":{"bucket":{"description":"Name of the GCS bucket","type":"string"},"clientEmail":{"description":"Client email of an IAM credential (ideally scoped to a single GCS bucket)","type":"string"},"privateKey":{"description":"Private Key of an IAM credential (ideally scoped to a single GCS bucket)","type":"string"},"provider":{"enum":["gcs"],"type":"string"}},"type":"object"}}},"r2_errors":{"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"r2_list_custom_domains_response":{"example":{"domains":[{"domain":"prefix.example-domain.one.com","enabled":false,"status":{"ownership":"deactivated","ssl":"pending"},"zoneId":"36ca64a6d92827b8a6b90be344bb1bfd","zoneName":"example-domain.one.com"},{"domain":"prefix.example-domain.two.com","enabled":true,"status":{"ownership":"active","ssl":"active"},"zoneId":"d9d28585d5f8f5b0f857b055bf574f19"}]},"properties":{"domains":{"items":{"properties":{"domain":{"description":"Domain name of the custom domain to be added","type":"string"},"enabled":{"description":"Whether this bucket is publicly accessible at the specified custom domain","type":"boolean"},"minTLS":{"description":"Minimum TLS Version the custom domain will accept for incoming connections. If not set, defaults to 1.0.","enum":["1.0","1.1","1.2","1.3"],"type":"string"},"status":{"properties":{"ownership":{"description":"Ownership status of the domain","enum":["pending","active","deactivated","blocked","error","unknown"],"type":"string"},"ssl":{"description":"SSL certificate status","enum":["initializing","pending","active","deactivated","error","unknown"],"type":"string"}},"required":["ssl","ownership"],"type":"object"},"zoneId":{"description":"Zone ID of the custom domain resides in","type":"string"},"zoneName":{"description":"Zone that the custom domain resides in","type":"string"}},"required":["domain","status","enabled"],"type":"object"},"type":"array"}},"required":["domains"],"type":"object"},"r2_managed_domain_response":{"example":{"bucketId":"0113a9e4549cf9b1ff1bf56e04da0cef","domain":"pub-0113a9e4549cf9b1ff1bf56e04da0cef.r2.dev","enabled":true},"properties":{"bucketId":{"description":"Bucket ID","maxLength":32,"type":"string"},"domain":{"description":"Domain name of the bucket's r2.dev domain","type":"string"},"enabled":{"description":"Whether this bucket is publicly accessible at the r2.dev domain","type":"boolean"}},"required":["bucketId","domain","enabled"],"type":"object"},"r2_messages":{"items":{"type":"string"},"type":"array"},"r2_queue_identifier":{"description":"Queue ID","example":"11111aa1-11aa-111a-a1a1-a1a111a11a11","maxLength":32,"type":"string"},"r2_queues-config":{"properties":{"queueId":{"description":"Queue ID","example":"11111aa1-11aa-111a-a1a1-a1a111a11a11","type":"string"},"queueName":{"description":"Name of the queue","example":"first-queue","type":"string"},"rules":{"items":{"allOf":[{"$ref":"#/components/schemas/r2_rule"},{"properties":{"createdAt":{"description":"Timestamp when the rule was created","example":"2024-09-19T21:54:48.405Z","type":"string"},"ruleId":{"description":"Rule ID","example":"11111aa1-11aa-111a-a1a1-a1a111a11a11","type":"string"}},"type":"object"}]},"type":"array"}},"type":"object"},"r2_r2-action":{"enum":["PutObject","CopyObject","DeleteObject","CompleteMultipartUpload","LifecycleDeletion"],"type":"string"},"r2_remove_custom_domain_response":{"example":{"domain":"example-domain/custom-domain.com"},"properties":{"domain":{"description":"Name of the removed custom domain","type":"string"}},"required":["domain"],"type":"object"},"r2_result_info":{"properties":{"cursor":{"description":"A continuation token that should be used to fetch the next page of results","example":"1-JTdCJTIydiUyMiUzQTElMkMlMjJzdGFydEFmdGVyJTIyJTNBJTIyZGF2aWRwdWJsaWMlMjIlN0Q=","type":"string"},"per_page":{"description":"Maximum number of results on this page","example":20,"type":"number"}},"type":"object"},"r2_rule":{"properties":{"actions":{"description":"Array of R2 object actions that will trigger notifications","example":["PutObject","CopyObject"],"items":{"$ref":"#/components/schemas/r2_r2-action"},"type":"array","uniqueItems":true},"prefix":{"description":"Notifications will be sent only for objects with this prefix","example":"img/","type":"string"},"suffix":{"description":"Notifications will be sent only for objects with this suffix","example":".jpeg","type":"string"}},"required":["actions"],"type":"object"},"r2_sippy":{"properties":{"destination":{"description":"Details about the configured destination bucket","properties":{"accessKeyId":{"description":"ID of the Cloudflare API token used when writing objects to this\nbucket\n","type":"string"},"account":{"type":"string"},"bucket":{"description":"Name of the bucket on the provider","type":"string"},"provider":{"enum":["r2"],"type":"string"}},"type":"object"},"enabled":{"description":"State of Sippy for this bucket","type":"boolean"},"source":{"description":"Details about the configured source bucket","properties":{"bucket":{"description":"Name of the bucket on the provider","type":"string"},"provider":{"enum":["aws","gcs"],"type":"string"},"region":{"description":"Region where the bucket resides (AWS only)","nullable":true,"type":"string"}},"type":"object"}},"type":"object"},"r2_storage_class":{"default":"Standard","description":"Storage class for newly uploaded objects, unless specified otherwise.","enum":["Standard","InfrequentAccess"],"type":"string"},"r2_temp_access_creds_request":{"example":{"bucket":"example-bucket","objects":["example-object"],"parentAccessKeyId":"example-access-key-id","permission":"object-read-write","prefixes":["example-prefix/"],"ttlSeconds":3600},"properties":{"bucket":{"description":"Name of the R2 bucket","type":"string"},"objects":{"description":"Optional object paths to scope the credentials to","items":{"type":"string"},"type":"array"},"parentAccessKeyId":{"description":"The parent access key id to use for signing","type":"string"},"permission":{"description":"Permissions allowed on the credentials","enum":["admin-read-write","admin-read-only","object-read-write","object-read-only"],"type":"string"},"prefixes":{"description":"Optional prefix paths to scope the credentials to","items":{"type":"string"},"type":"array"},"ttlSeconds":{"default":900,"description":"How long the credentials will live for in seconds","maximum":604800,"type":"number"}},"required":["bucket","permission","ttlSeconds","parentAccessKeyId"],"type":"object"},"r2_temp_access_creds_response":{"example":{"accessKeyId":"example-access-key-id","secretAccessKey":"example-secret-key","sessionToken":"example-session-token"},"properties":{"accessKeyId":{"description":"ID for new access key","type":"string"},"secretAccessKey":{"description":"Secret access key","type":"string"},"sessionToken":{"description":"Security token","type":"string"}},"type":"object"},"r2_v4_response":{"properties":{"errors":{"$ref":"#/components/schemas/r2_errors"},"messages":{"$ref":"#/components/schemas/r2_messages"},"result":{"type":"object"},"success":{"description":"Whether the API call was successful","enum":[true],"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"r2_v4_response_failure":{"properties":{"errors":{"$ref":"#/components/schemas/r2_errors"},"messages":{"$ref":"#/components/schemas/r2_messages"},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"r2_v4_response_list":{"allOf":[{"$ref":"#/components/schemas/r2_v4_response"},{"properties":{"result_info":{"$ref":"#/components/schemas/r2_result_info"}},"type":"object"}]},"registrar-api_address":{"description":"Address.","example":"123 Sesame St.","type":"string"},"registrar-api_address2":{"description":"Optional address line for unit, floor, suite, etc.","example":"Suite 430","type":"string"},"registrar-api_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/registrar-api_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"},"result_info":{"$ref":"#/components/schemas/registrar-api_result_info"}}}],"type":"object"},"registrar-api_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/registrar-api_messages"},"messages":{"$ref":"#/components/schemas/registrar-api_messages"},"result":{"anyOf":[{"type":"object"},{"items":{"type":"object"},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"registrar-api_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/registrar-api_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/registrar-api_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"registrar-api_api-response-single":{"allOf":[{"$ref":"#/components/schemas/registrar-api_api-response-common"},{"properties":{"result":{"nullable":true,"type":"object"}}}],"type":"object"},"registrar-api_auto_renew":{"description":"Auto-renew controls whether subscription is automatically renewed upon domain expiration.","example":true,"type":"boolean"},"registrar-api_available":{"description":"Shows if a domain is available for transferring into Cloudflare Registrar.","example":false,"type":"boolean"},"registrar-api_can_register":{"description":"Indicates if the domain can be registered as a new domain.","example":false,"type":"boolean"},"registrar-api_city":{"description":"City.","example":"Austin","type":"string"},"registrar-api_contact_identifier":{"description":"Contact Identifier.","example":"ea95132c15732412d22c1476fa83f27a","maxLength":32,"readOnly":true,"type":"string"},"registrar-api_contact_properties":{"properties":{"address":{"$ref":"#/components/schemas/registrar-api_address"},"address2":{"$ref":"#/components/schemas/registrar-api_address2"},"city":{"$ref":"#/components/schemas/registrar-api_city"},"country":{"$ref":"#/components/schemas/registrar-api_country"},"email":{"$ref":"#/components/schemas/registrar-api_email"},"fax":{"$ref":"#/components/schemas/registrar-api_fax"},"first_name":{"$ref":"#/components/schemas/registrar-api_first_name"},"id":{"$ref":"#/components/schemas/registrar-api_contact_identifier"},"last_name":{"$ref":"#/components/schemas/registrar-api_last_name"},"organization":{"$ref":"#/components/schemas/registrar-api_organization"},"phone":{"$ref":"#/components/schemas/registrar-api_telephone"},"state":{"$ref":"#/components/schemas/registrar-api_state"},"zip":{"$ref":"#/components/schemas/registrar-api_zipcode"}},"required":["first_name","last_name","address","city","state","zip","country","phone","organization"],"type":"object"},"registrar-api_contacts":{"allOf":[{"$ref":"#/components/schemas/registrar-api_contact_properties"}],"type":"object"},"registrar-api_country":{"description":"The country in which the user lives.","example":"US","maxLength":30,"nullable":true,"type":"string"},"registrar-api_created_at":{"description":"Shows time of creation.","example":"2018-08-28T17:26:26Z","format":"date-time","type":"string"},"registrar-api_current_registrar":{"description":"Shows name of current registrar.","example":"Cloudflare","type":"string"},"registrar-api_domain_identifier":{"description":"Domain identifier.","example":"ea95132c15732412d22c1476fa83f27a","maxLength":32,"readOnly":true,"type":"string"},"registrar-api_domain_name":{"description":"Domain name.","example":"cloudflare.com","type":"string"},"registrar-api_domain_properties":{"properties":{"available":{"$ref":"#/components/schemas/registrar-api_available"},"can_register":{"$ref":"#/components/schemas/registrar-api_can_register"},"created_at":{"$ref":"#/components/schemas/registrar-api_created_at"},"current_registrar":{"$ref":"#/components/schemas/registrar-api_current_registrar"},"expires_at":{"$ref":"#/components/schemas/registrar-api_expires_at"},"id":{"$ref":"#/components/schemas/registrar-api_domain_identifier"},"locked":{"$ref":"#/components/schemas/registrar-api_locked"},"registrant_contact":{"$ref":"#/components/schemas/registrar-api_registrant_contact"},"registry_statuses":{"$ref":"#/components/schemas/registrar-api_registry_statuses"},"supported_tld":{"$ref":"#/components/schemas/registrar-api_supported_tld"},"transfer_in":{"$ref":"#/components/schemas/registrar-api_transfer_in"},"updated_at":{"$ref":"#/components/schemas/registrar-api_updated_at"}},"type":"object"},"registrar-api_domain_response_collection":{"allOf":[{"$ref":"#/components/schemas/registrar-api_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/registrar-api_domains"},"type":"array"}}}]},"registrar-api_domain_response_single":{"allOf":[{"$ref":"#/components/schemas/registrar-api_api-response-single"},{"properties":{"result":{"type":"object"}}}]},"registrar-api_domain_update_properties":{"properties":{"auto_renew":{"$ref":"#/components/schemas/registrar-api_auto_renew"},"locked":{"$ref":"#/components/schemas/registrar-api_locked"},"privacy":{"$ref":"#/components/schemas/registrar-api_privacy"}},"type":"object"},"registrar-api_domains":{"allOf":[{"$ref":"#/components/schemas/registrar-api_domain_properties"}],"type":"object"},"registrar-api_email":{"description":"The contact email address of the user.","example":"user@example.com","maxLength":90,"type":"string"},"registrar-api_expires_at":{"description":"Shows when domain name registration expires.","example":"2019-08-28T23:59:59Z","format":"date-time","type":"string"},"registrar-api_fax":{"description":"Contact fax number.","example":"123-867-5309","type":"string"},"registrar-api_first_name":{"description":"User's first name","example":"John","maxLength":60,"nullable":true,"type":"string"},"registrar-api_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"registrar-api_last_name":{"description":"User's last name","example":"Appleseed","maxLength":60,"nullable":true,"type":"string"},"registrar-api_locked":{"description":"Shows whether a registrar lock is in place for a domain.","example":false,"type":"boolean"},"registrar-api_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"registrar-api_organization":{"description":"Name of organization.","example":"Cloudflare, Inc.","type":"string"},"registrar-api_privacy":{"description":"Privacy option controls redacting WHOIS information.","example":true,"type":"boolean"},"registrar-api_registrant_contact":{"allOf":[{"$ref":"#/components/schemas/registrar-api_contacts"}],"description":"Shows contact information for domain registrant."},"registrar-api_registry_statuses":{"description":"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","type":"string"},"registrar-api_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"registrar-api_state":{"description":"State.","example":"TX","type":"string"},"registrar-api_supported_tld":{"description":"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,"type":"boolean"},"registrar-api_telephone":{"description":"User's telephone number","example":"+1 123-123-1234","maxLength":20,"nullable":true,"type":"string"},"registrar-api_transfer_in":{"description":"Statuses for domain transfers into Cloudflare Registrar.","properties":{"accept_foa":{"description":"Form of authorization has been accepted by the registrant.","enum":["needed","ok"],"example":"needed","type":"string"},"approve_transfer":{"description":"Shows transfer status with the registry.","enum":["needed","ok","pending","trying","rejected","unknown"],"example":"unknown","type":"string"},"can_cancel_transfer":{"description":"Indicates if cancellation is still possible.","example":true,"type":"boolean"},"disable_privacy":{"description":"Privacy guards are disabled at the foreign registrar.","enum":["needed","ok","unknown"],"example":"ok","type":"string"},"enter_auth_code":{"description":"Auth code has been entered and verified.","enum":["needed","ok","pending","trying","rejected"],"example":"needed","type":"string"},"unlock_domain":{"description":"Domain is unlocked at the foreign registrar.","enum":["needed","ok","pending","trying","unknown"],"example":"ok","type":"string"}}},"registrar-api_updated_at":{"description":"Last updated.","example":"2018-08-28T17:26:26Z","format":"date-time","type":"string"},"registrar-api_zipcode":{"description":"The zipcode or postal code where the user lives.","example":"12345","maxLength":20,"nullable":true,"type":"string"},"request-tracer_account_identifier":{"$ref":"#/components/schemas/request-tracer_identifier"},"request-tracer_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/request-tracer_messages"},"messages":{"$ref":"#/components/schemas/request-tracer_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"request-tracer_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/request-tracer_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/request-tracer_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"request-tracer_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"request-tracer_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"request-tracer_trace":{"items":{"description":"List of steps acting on request/response","properties":{"action":{"description":"If step type is rule, then action performed by this rule","example":"execute","pattern":"^[a-z_]+$","type":"string"},"action_parameters":{"description":"If step type is rule, then action parameters of this rule as JSON","example":{"id":"4814384a9e5d4991b9815dcfc25d2f1f"},"type":"object"},"description":{"description":"If step type is rule or ruleset, the description of this entity","example":"some rule","type":"string"},"expression":{"description":"If step type is rule, then expression used to match for this rule","example":"ip.src ne 1.1.1.1","type":"string"},"kind":{"description":"If step type is ruleset, then kind of this ruleset","example":"zone","type":"string"},"matched":{"description":"Whether tracing step affected tracing request/response","example":true,"type":"boolean"},"name":{"description":"If step type is ruleset, then name of this ruleset","example":"some ruleset name","type":"string"},"step_name":{"description":"Tracing step identifying name","example":"rule_id01","type":"string"},"trace":{"$ref":"#/components/schemas/request-tracer_trace"},"type":{"description":"Tracing step type","example":"rule","type":"string"}},"type":"object"},"type":"array"},"rulesets_AccountId":{"description":"The unique ID of the account.","example":"abf9b32d38c5f572afde3336ec0ce302","pattern":"^[0-9a-f]{32}$","title":"ID","type":"string"},"rulesets_BlockRule":{"allOf":[{"$ref":"#/components/schemas/rulesets_Rule"},{"properties":{"action":{"enum":["block"]},"action_parameters":{"properties":{"response":{"description":"The response to show when the block is applied.","properties":{"content":{"description":"The content to return.","example":"{\n \"success\": false,\n \"error\": \"you have been blocked\"\n}","minLength":1,"title":"Content","type":"string"},"content_type":{"description":"The type of the content to return.","example":"application/json","minLength":1,"title":"Content type","type":"string"},"status_code":{"description":"The status code to return.","maximum":499,"minimum":400,"title":"Status code","type":"integer"}},"required":["status_code","content","content_type"],"title":"Response","type":"object"}}},"description":{"example":"Block when the IP address is not 1.1.1.1"}},"title":"Block rule"}]},"rulesets_ChallengeRule":{"allOf":[{"$ref":"#/components/schemas/rulesets_Rule"},{"properties":{"action":{"enum":["challenge"]},"description":{"example":"Issue an Interactive Challenge if the visitor had not solved an Interactive Challenge prior to the request when the address is not 1.1.1.1"}},"title":"Challenge rule"}]},"rulesets_CompressResponseRule":{"allOf":[{"$ref":"#/components/schemas/rulesets_Rule"},{"properties":{"action":{"enum":["compress_response"]},"action_parameters":{"properties":{"algorithms":{"description":"Custom order for compression algorithms.","example":[{"name":"none"}],"items":{"description":"Compression algorithm to enable.","properties":{"name":{"description":"Name of compression algorithm to enable.","enum":["none","auto","default","gzip","brotli"],"title":"Name","type":"string"}},"title":"Compression Algorithm","type":"object"},"title":"Algorithm","type":"array"}}},"description":{"example":"Disable compression when address is not 1.1.1.1"}},"title":"Compression rule"}]},"rulesets_DDoSDynamicRule":{"allOf":[{"$ref":"#/components/schemas/rulesets_Rule"},{"properties":{"action":{"enum":["ddos_dynamic"]},"description":{"example":"Performs a specific action according to a set of internal guidelines defined by Cloudflare."}},"title":"DDoS Dynamic rule"}]},"rulesets_Errors":{"description":"A list of error messages.","items":{"$ref":"#/components/schemas/rulesets_Message"},"title":"Errors","type":"array"},"rulesets_ExecuteRule":{"allOf":[{"$ref":"#/components/schemas/rulesets_Rule"},{"properties":{"action":{"enum":["execute"]},"action_parameters":{"properties":{"id":{"allOf":[{"$ref":"#/components/schemas/rulesets_RulesetId"},{"description":"The ID of the ruleset to execute.","example":"4814384a9e5d4991b9815dcfc25d2f1f"}]},"matched_data":{"description":"The configuration to use for matched data logging.","properties":{"public_key":{"description":"The public key to encrypt matched data logs with.","example":"iGqBmyIUxuWt1rvxoAharN9FUXneUBxA/Y19PyyrEG0=","minLength":1,"title":"Public key","type":"string"}},"required":["public_key"],"title":"Matched data","type":"object"},"overrides":{"description":"A set of overrides to apply to the target ruleset.","minProperties":1,"properties":{"action":{"allOf":[{"$ref":"#/components/schemas/rulesets_RuleAction"},{"description":"An action to override all rules with. This option has lower precedence than rule and category overrides.","example":"log"}]},"categories":{"description":"A list of category-level overrides. This option has the second-highest precedence after rule-level overrides.","items":{"description":"A category-level override","minProperties":2,"properties":{"action":{"allOf":[{"$ref":"#/components/schemas/rulesets_RuleAction"},{"description":"The action to override rules in the category with.","example":"log"}]},"category":{"allOf":[{"$ref":"#/components/schemas/rulesets_RuleCategory"},{"description":"The name of the category to override."}]},"enabled":{"allOf":[{"$ref":"#/components/schemas/rulesets_RuleEnabled"},{"description":"Whether to enable execution of rules in the category."}]},"sensitivity_level":{"allOf":[{"$ref":"#/components/schemas/rulesets_ExecuteSensitivityLevel"},{"description":"The sensitivity level to use for rules in the category."}]}},"required":["category"],"title":"Category override","type":"object"},"minItems":1,"title":"Category overrides","type":"array","uniqueItems":true},"enabled":{"allOf":[{"$ref":"#/components/schemas/rulesets_RuleEnabled"},{"description":"Whether to enable execution of all rules. This option has lower precedence than rule and category overrides."}]},"rules":{"description":"A list of rule-level overrides. This option has the highest precedence.","items":{"description":"A rule-level override","minProperties":2,"properties":{"action":{"allOf":[{"$ref":"#/components/schemas/rulesets_RuleAction"},{"description":"The action to override the rule with.","example":"log"}]},"enabled":{"allOf":[{"$ref":"#/components/schemas/rulesets_RuleEnabled"},{"description":"Whether to enable execution of the rule."}]},"id":{"allOf":[{"$ref":"#/components/schemas/rulesets_RuleId"},{"description":"The ID of the rule to override.","example":"8ac8bc2a661e475d940980f9317f28e1"}]},"score_threshold":{"description":"The score threshold to use for the rule.","title":"Score threshold","type":"integer"},"sensitivity_level":{"allOf":[{"$ref":"#/components/schemas/rulesets_ExecuteSensitivityLevel"},{"description":"The sensitivity level to use for the rule."}]}},"required":["id"],"title":"Rule override","type":"object"},"minItems":1,"title":"Rule overrides","type":"array","uniqueItems":true},"sensitivity_level":{"allOf":[{"$ref":"#/components/schemas/rulesets_ExecuteSensitivityLevel"},{"description":"A sensitivity level to set for all rules. This option has lower precedence than rule and category overrides and is only applicable for DDoS phases."}]}},"title":"Overrides","type":"object"}},"required":["id"]},"description":{"example":"Execute the OWASP ruleset when the IP address is not 1.1.1.1"}},"title":"Execute rule"}]},"rulesets_ExecuteSensitivityLevel":{"enum":["default","medium","low","eoff"],"title":"Sensitivity level","type":"string"},"rulesets_ForceConnectionCloseRule":{"allOf":[{"$ref":"#/components/schemas/rulesets_Rule"},{"properties":{"action":{"enum":["force_connection_close"]},"description":{"example":"Closes ongoing HTTP connections. This action does not block a request, but it forces the client to reconnect. For HTTP/2 and HTTP/3 connections, the connection will be closed even if it breaks other requests running on the same connection."}},"title":"Force Connection Close rule"}]},"rulesets_JsChallengeRule":{"allOf":[{"$ref":"#/components/schemas/rulesets_Rule"},{"properties":{"action":{"enum":["js_challenge"]},"description":{"example":"Issue a non-interactive Javascript Challenge if the visitor had not solved a Interactive Challenge, Managed Challenge, or Javascript Challenge prior to the request when the address is not 1.1.1.1"}},"title":"Javascript Challenge rule"}]},"rulesets_LogCustomFieldRule":{"allOf":[{"$ref":"#/components/schemas/rulesets_Rule"},{"properties":{"action":{"enum":["log_custom_field"]},"action_parameters":{"minProperties":1,"properties":{"cookie_fields":{"description":"The cookie fields to log.","example":[{"name":"cookie_name_1"}],"items":{"description":"The cookie field to log.","properties":{"name":{"description":"The name of the field.","example":"cookie_name_1","minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"Cookie field","type":"object"},"minItems":1,"title":"Cookie fields","type":"array"},"request_fields":{"description":"The request fields to log.","example":[{"name":"http_request_header_name_1_in_lower_case"}],"items":{"description":"The request field to log.","properties":{"name":{"description":"The name of the field.","example":"http_request_header_name_1_in_lower_case","minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"Request field","type":"object"},"minItems":1,"title":"Request fields","type":"array"},"response_fields":{"description":"The response fields to log.","example":[{"name":"http_response_header_name_1_in_lower_case"}],"items":{"description":"The response field to log.","properties":{"name":{"description":"The name of the field.","example":"http_response_header_name_1_in_lower_case","minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"Response field","type":"object"},"minItems":1,"title":"Response fields","type":"array"}}},"description":{"example":"Log custom field when the IP address is not 1.1.1.1"}},"title":"Log Custom Field rule"}]},"rulesets_LogRule":{"allOf":[{"$ref":"#/components/schemas/rulesets_Rule"},{"properties":{"action":{"enum":["log"]},"description":{"example":"Log when the IP address is not 1.1.1.1"}},"title":"Log rule"}]},"rulesets_ManagedChallengeRule":{"allOf":[{"$ref":"#/components/schemas/rulesets_Rule"},{"properties":{"action":{"enum":["managed_challenge"]},"description":{"example":"Issue a Managed Challenge if the visitor had not solved a Managed Challenge or Interactive Challenge prior to the request when the address is not 1.1.1.1"}},"title":"Managed Challenge rule"}]},"rulesets_Message":{"description":"A message.","properties":{"code":{"description":"A unique code for this message.","example":10000,"title":"Code","type":"integer"},"message":{"description":"A text description of this message.","example":"something bad happened","minLength":1,"title":"Description","type":"string"},"source":{"description":"The source of this message.","properties":{"pointer":{"description":"A JSON pointer to the field that is the source of the message.","example":"/rules/0/action","minLength":1,"title":"Pointer","type":"string"}},"required":["pointer"],"title":"Source","type":"object"}},"required":["message"],"title":"Message","type":"object"},"rulesets_Messages":{"description":"A list of warning messages.","items":{"$ref":"#/components/schemas/rulesets_Message"},"title":"Messages","type":"array"},"rulesets_RedirectRule":{"allOf":[{"$ref":"#/components/schemas/rulesets_Rule"},{"properties":{"action":{"enum":["redirect"]},"action_parameters":{"properties":{"from_list":{"description":"Serve a redirect based on a bulk list lookup.","properties":{"key":{"description":"Expression that evaluates to the list lookup key.","example":"http.request.full_uri","minLength":1,"title":"Key","type":"string"},"name":{"description":"The name of the list to match against.","example":"list1","maxLength":50,"pattern":"^[a-zA-Z0-9_]+$","title":"Name","type":"string"}},"title":"Bulk Redirect","type":"object"},"from_value":{"description":"Serve a redirect based on the request properties.","properties":{"preserve_query_string":{"description":"Keep the query string of the original request.","title":"Preserve query string","type":"boolean"},"status_code":{"description":"The status code to be used for the redirect.","enum":[301,302,303,307,308],"title":"Status Code","type":"number"},"target_url":{"description":"The URL to redirect the request to.","example":{"expression":"concat(\"https://m.example.com\", http.request.uri.path)"},"oneOf":[{"properties":{"value":{"description":"The URL to redirect the request to.","minLength":1,"type":"string"}},"title":"Static URL redirect","type":"object"},{"properties":{"expression":{"description":"An expression to evaluate to get the URL to redirect the request to.","minLength":1,"type":"string"}},"title":"Dynamic URL redirect","type":"object"}]}},"title":"Single redirect","type":"object"}}},"description":{"example":"Redirect when IP address is not 1.1.1.1"}},"title":"Redirect rule"}]},"rulesets_RequestRule":{"discriminator":{"mapping":{"block":"#/components/schemas/rulesets_BlockRule","challenge":"#/components/schemas/rulesets_ChallengeRule","compress_response":"#/components/schemas/rulesets_CompressResponseRule","ddos_dynamic":"#/components/schemas/rulesets_DDoSDynamicRule","execute":"#/components/schemas/rulesets_ExecuteRule","force_connection_close":"#/components/schemas/rulesets_ForceConnectionCloseRule","js_challenge":"#/components/schemas/rulesets_JsChallengeRule","log":"#/components/schemas/rulesets_LogRule","log_custom_field":"#/components/schemas/rulesets_LogCustomFieldRule","managed_challenge":"#/components/schemas/rulesets_ManagedChallengeRule","redirect":"#/components/schemas/rulesets_RedirectRule","rewrite":"#/components/schemas/rulesets_RewriteRule","route":"#/components/schemas/rulesets_RouteRule","score":"#/components/schemas/rulesets_ScoreRule","serve_error":"#/components/schemas/rulesets_ServeErrorRule","set_cache_settings":"#/components/schemas/rulesets_SetCacheSettingsRule","set_config":"#/components/schemas/rulesets_SetConfigRule","skip":"#/components/schemas/rulesets_SkipRule"},"propertyName":"action"},"oneOf":[{"$ref":"#/components/schemas/rulesets_BlockRule"},{"$ref":"#/components/schemas/rulesets_ChallengeRule"},{"$ref":"#/components/schemas/rulesets_CompressResponseRule"},{"$ref":"#/components/schemas/rulesets_ExecuteRule"},{"$ref":"#/components/schemas/rulesets_JsChallengeRule"},{"$ref":"#/components/schemas/rulesets_LogRule"},{"$ref":"#/components/schemas/rulesets_ManagedChallengeRule"},{"$ref":"#/components/schemas/rulesets_RedirectRule"},{"$ref":"#/components/schemas/rulesets_RewriteRule"},{"$ref":"#/components/schemas/rulesets_RouteRule"},{"$ref":"#/components/schemas/rulesets_ScoreRule"},{"$ref":"#/components/schemas/rulesets_ServeErrorRule"},{"$ref":"#/components/schemas/rulesets_SetConfigRule"},{"$ref":"#/components/schemas/rulesets_SkipRule"},{"$ref":"#/components/schemas/rulesets_SetCacheSettingsRule"},{"$ref":"#/components/schemas/rulesets_LogCustomFieldRule"},{"$ref":"#/components/schemas/rulesets_DDoSDynamicRule"},{"$ref":"#/components/schemas/rulesets_ForceConnectionCloseRule"}]},"rulesets_RequestRules":{"description":"The list of rules in the ruleset.","items":{"$ref":"#/components/schemas/rulesets_RequestRule"},"title":"Rules","type":"array"},"rulesets_Response":{"description":"A response object.","properties":{"errors":{"$ref":"#/components/schemas/rulesets_Errors"},"messages":{"$ref":"#/components/schemas/rulesets_Messages"},"result":{"description":"A result.","title":"Result"},"success":{"description":"Whether the API call was successful.","title":"Success","type":"boolean"}},"required":["result","success","errors","messages"],"title":"Response","type":"object"},"rulesets_ResponseRule":{"allOf":[{"$ref":"#/components/schemas/rulesets_RequestRule"},{"required":["id","expression","action","ref","enabled"]}]},"rulesets_ResponseRules":{"description":"The list of rules in the ruleset.","items":{"$ref":"#/components/schemas/rulesets_ResponseRule"},"title":"Rules","type":"array"},"rulesets_RewriteRule":{"allOf":[{"$ref":"#/components/schemas/rulesets_Rule"},{"properties":{"action":{"enum":["rewrite"]},"action_parameters":{"properties":{"headers":{"additionalProperties":{"oneOf":[{"description":"Remove the header from the request.","properties":{"operation":{"enum":["remove"],"title":"Operation","type":"string"}},"required":["operation"],"title":"Remove header","type":"object"},{"description":"Set a request header with a static value.","properties":{"operation":{"enum":["set"],"title":"Operation","type":"string"},"value":{"description":"Static value for the header.","example":"static-header-value","minLength":1,"title":"Value","type":"string"}},"required":["operation","value"],"title":"Static header","type":"object"},{"description":"Set a request header with a dynamic value.","properties":{"expression":{"description":"Expression for the header value.","example":"ip.src","minLength":1,"title":"Expression","type":"string"},"operation":{"enum":["set"],"title":"Operation","type":"string"}},"required":["operation","expression"],"title":"Dynamic header","type":"object"}]},"description":"Map of request headers to modify.","example":{"client-http-version":{"expression":"http.request.version","operation":"set"}},"title":"Headers","type":"object"},"uri":{"description":"URI to rewrite the request to.","properties":{"path":{"allOf":[{"description":"Path portion rewrite.","example":{"expression":"regex_replace(http.request.uri.path, \"/bar$\", \"/baz\")"},"title":"Path"},{"$ref":"#/components/schemas/rulesets_RewriteUriPart"}]},"query":{"allOf":[{"description":"Query portion rewrite.","example":{"expression":"regex_replace(http.request.uri.query, \"foo=bar\", \"\")"},"title":"Query"},{"$ref":"#/components/schemas/rulesets_RewriteUriPart"}]}},"title":"URI","type":"object"}}},"description":{"example":"Add a header when the IP address is not 1.1.1.1"}},"title":"Rewrite rule"}]},"rulesets_RewriteUriPart":{"oneOf":[{"properties":{"value":{"description":"Predefined replacement value.","example":"/images","minLength":1,"type":"string"}},"required":["value"],"title":"Static value","type":"object"},{"properties":{"expression":{"description":"Expression to evaluate for the replacement value.","example":"regex_replace(http.request.uri.path, \"/bar$\", \"/baz\")","minLength":1,"type":"string"}},"required":["expression"],"title":"Dynamic value","type":"object"}]},"rulesets_RouteRule":{"allOf":[{"$ref":"#/components/schemas/rulesets_Rule"},{"properties":{"action":{"enum":["route"]},"action_parameters":{"properties":{"host_header":{"description":"Rewrite the HTTP Host header.","example":"static.example.com","minLength":1,"title":"Host Header","type":"string"},"origin":{"description":"Override the IP/TCP destination.","properties":{"host":{"description":"Override the resolved hostname.","example":"static.example.com","minLength":1,"title":"DNS Record","type":"string"},"port":{"description":"Override the destination port.","maximum":65535,"minimum":1,"title":"Port","type":"number"}},"title":"Origin","type":"object"},"sni":{"description":"Override the Server Name Indication (SNI).","properties":{"value":{"description":"The SNI override.","example":"static.example.com","minLength":1,"title":"Value","type":"string"}},"required":["value"],"title":"SNI","type":"object"}}},"description":{"example":"Select origin server when IP address is not 1.1.1.1"}},"title":"Origin rule"}]},"rulesets_Rule":{"properties":{"action":{"$ref":"#/components/schemas/rulesets_RuleAction"},"action_parameters":{"description":"The parameters configuring the rule's action.","title":"Action parameters","type":"object"},"categories":{"description":"The categories of the rule.","example":["directory-traversal","header"],"items":{"$ref":"#/components/schemas/rulesets_RuleCategory"},"minItems":1,"readOnly":true,"title":"Categories","type":"array","uniqueItems":true},"description":{"default":"","description":"An informative description of the rule.","title":"Description","type":"string"},"enabled":{"allOf":[{"$ref":"#/components/schemas/rulesets_RuleEnabled"},{"default":true}]},"exposed_credential_check":{"description":"Configure checks for exposed credentials.","properties":{"password_expression":{"description":"Expression that selects the password used in the credentials check.","example":"url_decode(http.request.body.form[\\\"password\\\"][0])","title":"Password Expression","type":"string"},"username_expression":{"description":"Expression that selects the user ID used in the credentials check.","example":"url_decode(http.request.body.form[\\\"username\\\"][0])","title":"Username Expression","type":"string"}},"required":["username_expression","password_expression"],"title":"Exposed Credential Check","type":"object"},"expression":{"description":"The expression defining which traffic will match the rule.","example":"ip.src ne 1.1.1.1","minLength":1,"title":"Expression","type":"string"},"id":{"$ref":"#/components/schemas/rulesets_RuleId"},"last_updated":{"description":"The timestamp of when the rule was last modified.","example":"2000-01-01T00:00:00.000000Z","format":"date-time","readOnly":true,"title":"Last updated","type":"string"},"logging":{"description":"An object configuring the rule's logging behavior.","properties":{"enabled":{"description":"Whether to generate a log when the rule matches.","example":true,"title":"Enabled","type":"boolean"}},"required":["enabled"],"title":"Logging","type":"object"},"ratelimit":{"description":"An object configuring the rule's ratelimit behavior.","properties":{"characteristics":{"description":"Characteristics of the request on which the ratelimiter counter will be incremented.","example":["ip.src"],"items":{"title":"Characteristic","type":"string"},"minLength":1,"title":"Characteristics","type":"array"},"counting_expression":{"description":"Defines when the ratelimit counter should be incremented. It is optional and defaults to the same as the rule's expression.","example":"http.request.body.raw eq \"abcd\"","title":"Counting Expression","type":"string"},"mitigation_timeout":{"description":"Period of time in seconds after which the action will be disabled following its first execution.","example":600,"title":"Mitigation Timeout","type":"integer"},"period":{"description":"Period in seconds over which the counter is being incremented.","enum":[10,60,600,3600],"example":60,"title":"Period","type":"integer"},"requests_per_period":{"description":"The threshold of requests per period after which the action will be executed for the first time.","example":1000,"title":"Requests per Period","type":"integer"},"requests_to_origin":{"description":"Defines if ratelimit counting is only done when an origin is reached.","example":true,"title":"Requests to Origin","type":"boolean"},"score_per_period":{"description":"The score threshold per period for which the action will be executed the first time.","example":400,"title":"Score per Period","type":"integer"},"score_response_header_name":{"description":"The response header name provided by the origin which should contain the score to increment ratelimit counter on.","example":"my-score","title":"Score Response Header Name","type":"integer"}},"required":["characteristics","period"],"title":"Ratelimit","type":"object"},"ref":{"description":"The reference of the rule (the rule ID by default).","example":"my_ref","minLength":1,"title":"Ref","type":"string"},"version":{"description":"The version of the rule.","example":"1","pattern":"^[0-9]+$","readOnly":true,"title":"Version","type":"string"}},"required":["version","last_updated"],"title":"Rule","type":"object"},"rulesets_RuleAction":{"description":"The action to perform when the rule matches.","pattern":"^[a-z]+$","title":"Action","type":"string"},"rulesets_RuleCategory":{"description":"A category of the rule.","example":"directory-traversal","minLength":1,"title":"Category","type":"string"},"rulesets_RuleEnabled":{"description":"Whether the rule should be executed.","example":true,"title":"Enabled","type":"boolean"},"rulesets_RuleId":{"description":"The unique ID of the rule.","example":"3a03d665bac047339bb530ecb439a90d","pattern":"^[0-9a-f]{32}$","title":"ID","type":"string"},"rulesets_RulePosition":{"description":"An object configuring where the rule will be placed.","title":"Position","type":"object"},"rulesets_Ruleset":{"description":"A ruleset object.","properties":{"description":{"default":"","description":"An informative description of the ruleset.","example":"My ruleset to execute managed rulesets","title":"Description","type":"string"},"id":{"allOf":[{"$ref":"#/components/schemas/rulesets_RulesetId"},{"readOnly":true}]},"last_updated":{"description":"The timestamp of when the ruleset was last modified.","example":"2000-01-01T00:00:00.000000Z","format":"date-time","readOnly":true,"title":"Last updated","type":"string"},"name":{"description":"The human-readable name of the ruleset.","example":"My ruleset","minLength":1,"title":"Name","type":"string"},"version":{"$ref":"#/components/schemas/rulesets_RulesetVersion"}},"required":["id","version","last_updated"],"title":"Ruleset","type":"object"},"rulesets_RulesetId":{"description":"The unique ID of the ruleset.","example":"2f2feab2026849078ba485f918791bdc","pattern":"^[0-9a-f]{32}$","title":"ID","type":"string"},"rulesets_RulesetKind":{"description":"The kind of the ruleset.","enum":["managed","custom","root","zone"],"example":"root","title":"Kind","type":"string"},"rulesets_RulesetPhase":{"description":"The phase of the ruleset.","enum":["ddos_l4","ddos_l7","http_config_settings","http_custom_errors","http_log_custom_fields","http_ratelimit","http_request_cache_settings","http_request_dynamic_redirect","http_request_firewall_custom","http_request_firewall_managed","http_request_late_transform","http_request_origin","http_request_redirect","http_request_sanitize","http_request_sbfm","http_request_select_configuration","http_request_transform","http_response_compression","http_response_firewall_managed","http_response_headers_transform","magic_transit","magic_transit_ids_managed","magic_transit_managed","magic_transit_ratelimit"],"example":"http_request_firewall_custom","title":"Phase","type":"string"},"rulesets_RulesetVersion":{"description":"The version of the ruleset.","example":"1","pattern":"^[0-9]+$","readOnly":true,"title":"Version","type":"string"},"rulesets_ScoreRule":{"allOf":[{"$ref":"#/components/schemas/rulesets_Rule"},{"properties":{"action":{"enum":["score"]},"action_parameters":{"example":{"increment":3},"minProperties":1,"properties":{"increment":{"description":"Increment contains the delta to change the score and can be either positive or negative.","example":3,"title":"Increment","type":"integer"}}},"description":{"example":"Increment score when the IP address is not 1.1.1.1"}},"title":"Score rule"}]},"rulesets_ServeErrorRule":{"allOf":[{"$ref":"#/components/schemas/rulesets_Rule"},{"properties":{"action":{"enum":["serve_error"]},"action_parameters":{"properties":{"content":{"description":"Error response content.","example":"{\"error\": \"1xxx error occurred\"}\n","maxLength":10240,"minLength":1,"title":"Content","type":"string"},"content_type":{"description":"Content-type header to set with the response.","enum":["application/json","text/xml","text/plain","text/html"],"example":"application/json","title":"Content Type","type":"string"},"status_code":{"description":"The status code to use for the error.","example":500,"maximum":999,"minimum":400,"title":"Status Code","type":"number"}}},"description":{"example":"Serve a JSON response to api users on error"}},"title":"Serve Error rule"}]},"rulesets_SetCacheSettingsRule":{"allOf":[{"$ref":"#/components/schemas/rulesets_Rule"},{"properties":{"action":{"enum":["set_cache_settings"]},"action_parameters":{"properties":{"additional_cacheable_ports":{"description":"List of additional ports that caching can be enabled on.","items":{"description":"A port to enable caching on","title":"Additional Cacheable Port","type":"integer"},"title":"Additional Cacheable Ports (Enterprise-only)","type":"array"},"browser_ttl":{"description":"Specify how long client browsers should cache the response. Cloudflare cache purge will not purge content cached on client browsers, so high browser TTLs may lead to stale content.","example":"{\n \"mode\": \"override_origin\",\n \"default\": 1000\n}","properties":{"default":{"description":"The TTL (in seconds) if you choose override_origin mode.","title":"Default TTL","type":"integer"},"mode":{"description":"Determines which browser ttl mode to use.","enum":["respect_origin","bypass_by_default","override_origin"],"title":"Mode","type":"string"}},"required":["mode"],"title":"Browser TTL","type":"object"},"cache":{"description":"Mark whether the request’s response from origin is eligible for caching. Caching itself will still depend on the cache-control header and your other caching configurations.","title":"Cache","type":"boolean"},"cache_key":{"description":"Define which components of the request are included or excluded from the cache key Cloudflare uses to store the response in cache.","properties":{"cache_by_device_type":{"description":"Separate cached content based on the visitor’s device type","title":"Cache by Device Type","type":"boolean"},"cache_deception_armor":{"description":"Protect from web cache deception attacks while allowing static assets to be cached","title":"Cache Deception Armor","type":"boolean"},"custom_key":{"description":"Customize which components of the request are included or excluded from the cache key.","properties":{"cookie":{"description":"The cookies to include in building the cache key.","properties":{"check_presence":{"description":"Checks for the presence of these cookie names. The presence of these cookies is used in building the cache key.","items":{"description":"A cookie name to check presence of.","title":"Cookie name","type":"string"},"title":"Check presence of cookies","type":"array"},"include":{"description":"Include these cookies' names and their values.","items":{"description":"Cookie name and corresponding value to include.","title":"Cookie name","type":"string"},"title":"Include cookies","type":"array"}},"title":"Cookie","type":"object"},"header":{"description":"The header names and values to include in building the cache key.","properties":{"check_presence":{"description":"Checks for the presence of these header names. The presence of these headers is used in building the cache key.","items":{"description":"A header name to check presence of.","title":"Header name","type":"string"},"title":"Check presence of headers","type":"array"},"contains":{"additionalProperties":{"description":"Check if the corresponding header contains any of the values in the list.","items":{"type":"string"},"title":"Header values","type":"array"},"description":"For each header name and list of values combination, check if the request header contains any of the values provided. The presence of the request header and whether any of the values provided are contained in the request header value is used in building the cache key.","title":"Header contains","type":"object"},"exclude_origin":{"description":"Whether or not to include the origin header. A value of true will exclude the origin header in the cache key.","title":"Exclude origin header","type":"boolean"},"include":{"description":"Include these headers' names and their values.","items":{"description":"Header name and corresponding value to include.","title":"Header name","type":"string"},"title":"Include headers","type":"array"}},"title":"Headers","type":"object"},"host":{"description":"Whether to use the original host or the resolved host in the cache key.","properties":{"resolved":{"description":"Use the resolved host in the cache key. A value of true will use the resolved host, while a value or false will use the original host.","example":true,"title":"Use Resolved host","type":"boolean"}},"title":"Host","type":"object"},"query_string":{"description":"Use the presence or absence of parameters in the query string to build the cache key.","properties":{"exclude":{"description":"build the cache key using all query string parameters EXCECPT these excluded parameters","properties":{"all":{"description":"Exclude all query string parameters from use in building the cache key.","title":"All","type":"boolean"},"list":{"description":"A list of query string parameters NOT used to build the cache key. All parameters present in the request but missing in this list will be used to build the cache key.","items":{"description":"A parameter in the list of query string parameters excluded from use in building a cache key.","title":"parameter","type":"string"},"title":"List","type":"array"}},"title":"Excluded query string parameters","type":"object"},"include":{"description":"build the cache key using a list of query string parameters that ARE in the request.","properties":{"all":{"description":"Use all query string parameters in the cache key.","title":"All","type":"boolean"},"list":{"description":"A list of query string parameters used to build the cache key.","items":{"description":"parameter to include in the list of query string parameters used to build a cache key.","title":"parameter","type":"string"},"title":"List","type":"array"}},"title":"Included query string parameters","type":"object"}},"title":"Query String","type":"object"},"user":{"description":"Characteristics of the request user agent used in building the cache key.","properties":{"device_type":{"description":"Use the user agent's device type in the cache key.","title":"Device Type","type":"boolean"},"geo":{"description":"Use the user agents's country in the cache key.","title":"Country","type":"boolean"},"lang":{"description":"Use the user agent's language in the cache key.","title":"Language","type":"boolean"}},"title":"User","type":"object"}},"title":"Custom Key","type":"object"},"ignore_query_strings_order":{"description":"Treat requests with the same query parameters the same, regardless of the order those query parameters are in. A value of true ignores the query strings' order.","title":"Ignore Query Strings Order","type":"boolean"}},"title":"Cache Key","type":"object"},"cache_reserve":{"description":"Mark whether the request's response from origin is eligible for Cache Reserve (requires a Cache Reserve add-on plan).","properties":{"eligible":{"description":"Determines whether cache reserve is enabled. If this is true and a request meets eligibility criteria, Cloudflare will write the resource to cache reserve.","example":"{\n \"eligible\": true,\n \"minimum_file_size\": 100000\n}","title":"Eligible","type":"boolean"},"minimum_file_size":{"description":"The minimum file size eligible for store in cache reserve.","title":"Minimum File Size","type":"integer"}},"required":["eligible","minimum_file_size"],"title":"CacheReserve","type":"object"},"edge_ttl":{"description":"TTL (Time to Live) specifies the maximum time to cache a resource in the Cloudflare edge network.","example":"{\n \"status_code_ttl\": [\n {\n \"status_code_range\": {\n \"to\": 299\n },\n \"value\": 86400\n },\n {\n \"status_code_range\": {\n \"from\": 300,\n \"to\": 499\n },\n \"value\": 0\n },\n {\n \"status_code_range\": {\n \"from\": 500\n },\n \"value\": -1\n }\n ],\n \"mode\": \"respect_origin\"\n}","properties":{"default":{"description":"The TTL (in seconds) if you choose override_origin mode.","maximum":9223372036854776000,"minimum":0,"title":"Default","type":"integer"},"mode":{"description":"edge ttl options","enum":["respect_origin","bypass_by_default","override_origin"],"title":"Mode","type":"string"},"status_code_ttl":{"description":"List of single status codes, or status code ranges to apply the selected mode","items":{"description":"Specify how long Cloudflare should cache the response based on the status code from the origin. Can be a single status code or a range or status codes","properties":{"status_code_range":{"description":"The range of status codes used to apply the selected mode.","properties":{"from":{"description":"response status code lower bound","title":"Status Code lower bound","type":"integer"},"to":{"description":"response status code upper bound","title":"Status Code upper bound","type":"integer"}},"required":["from","to"],"title":"Status Code Range","type":"object"},"status_code_value":{"description":"Set the ttl for responses with this specific status code","title":"Status Code Value","type":"integer"},"value":{"description":"Time to cache a response (in seconds). A value of 0 is equivalent to setting the Cache-Control header with the value \"no-cache\". A value of -1 is equivalent to setting Cache-Control header with the value of \"no-store\".","title":"TTL value","type":"integer"}},"required":["value"],"title":"Status Code TTL","type":"object"},"title":"Status Code TTLs","type":"array"}},"required":["mode","default","status_code_ttl"],"title":"Edge TTL","type":"object"},"origin_cache_control":{"description":"When enabled, Cloudflare will aim to strictly adhere to RFC 7234.","title":"Origin Cache Control (Enterprise-only)","type":"boolean"},"origin_error_page_passthru":{"description":"Generate Cloudflare error pages from issues sent from the origin server. When on, error pages will trigger for issues from the origin","title":"Origin Error Page Passthru","type":"boolean"},"read_timeout":{"description":"Define a timeout value between two successive read operations to your origin server. Historically, the timeout value between two read options from Cloudflare to an origin server is 100 seconds. If you are attempting to reduce HTTP 524 errors because of timeouts from an origin server, try increasing this timeout value.","example":900,"title":"Read Timeout (Enterprise-only)","type":"integer"},"respect_strong_etags":{"description":"Specify whether or not Cloudflare should respect strong ETag (entity tag) headers. When off, Cloudflare converts strong ETag headers to weak ETag headers.","title":"Respect Strong Etags","type":"boolean"},"serve_stale":{"description":"Define if Cloudflare should serve stale content while getting the latest content from the origin. If on, Cloudflare will not serve stale content while getting the latest content from the origin.","properties":{"disable_stale_while_updating":{"description":"Defines whether Cloudflare should serve stale content while updating. If true, Cloudflare will not serve stale content while getting the latest content from the origin.","title":"Disable Stale While Updating","type":"boolean"}},"required":["disable_stale_while_updating"],"title":"Serve Stale","type":"object"}}},"description":{"example":"Set cache settings when the hostname address is not example.com"}},"title":"Set Cache Settings rule"}]},"rulesets_SetConfigRule":{"allOf":[{"$ref":"#/components/schemas/rulesets_Rule"},{"properties":{"action":{"enum":["set_config"]},"action_parameters":{"properties":{"automatic_https_rewrites":{"description":"Turn on or off Automatic HTTPS Rewrites.","title":"Automatic HTTPS rewrites","type":"boolean"},"autominify":{"description":"Select which file extensions to minify automatically.","properties":{"css":{"description":"Minify CSS files.","title":"CSS","type":"boolean"},"html":{"description":"Minify HTML files.","title":"HTML","type":"boolean"},"js":{"description":"Minify JS files.","title":"JS","type":"boolean"}},"title":"Auto Minify","type":"object"},"bic":{"description":"Turn on or off Browser Integrity Check.","title":"Browser Integrity Check","type":"boolean"},"disable_apps":{"description":"Turn off all active Cloudflare Apps.","enum":[true],"title":"Disable Apps","type":"boolean"},"disable_rum":{"description":"Turn off Real User Monitoring (RUM).","enum":[true],"title":"Disable RUM","type":"boolean"},"disable_zaraz":{"description":"Turn off Zaraz.","enum":[true],"title":"Disable Zaraz","type":"boolean"},"email_obfuscation":{"description":"Turn on or off Email Obfuscation.","title":"Email Obfuscation","type":"boolean"},"fonts":{"description":"Turn on or off Cloudflare Fonts.","title":"Cloudflare Fonts","type":"boolean"},"hotlink_protection":{"description":"Turn on or off the Hotlink Protection.","title":"Hotlink Protection","type":"boolean"},"mirage":{"description":"Turn on or off Mirage.","title":"Mirage","type":"boolean"},"opportunistic_encryption":{"description":"Turn on or off Opportunistic Encryption.","title":"Opportunistic Encryption","type":"boolean"},"polish":{"description":"Configure the Polish level.","enum":["off","lossless","lossy"],"title":"Polish","type":"string"},"rocket_loader":{"description":"Turn on or off Rocket Loader","title":"Rocket Loader","type":"boolean"},"security_level":{"description":"Configure the Security Level.","enum":["off","essentially_off","low","medium","high","under_attack"],"title":"Security Level","type":"string"},"server_side_excludes":{"description":"Turn on or off Server Side Excludes.","title":"Server Side Excludes","type":"boolean"},"ssl":{"description":"Configure the SSL level.","enum":["off","flexible","full","strict","origin_pull"],"title":"SSL","type":"string"},"sxg":{"description":"Turn on or off Signed Exchanges (SXG).","title":"Signed Exchanges (SXG)","type":"boolean"}}},"description":{"example":"Disable Zaraz when IP address is not 1.1.1.1"}},"title":"Set Config Rule"}]},"rulesets_SkipRule":{"allOf":[{"$ref":"#/components/schemas/rulesets_Rule"},{"properties":{"action":{"enum":["skip"]},"action_parameters":{"example":{"ruleset":"current"},"minProperties":1,"properties":{"phases":{"description":"A list of phases to skip the execution of. This option is incompatible with the ruleset and rulesets options.","items":{"allOf":[{"$ref":"#/components/schemas/rulesets_RulesetPhase"},{"description":"A phase to skip the execution of."}]},"minItems":1,"title":"Phases","type":"array","uniqueItems":true},"products":{"description":"A list of legacy security products to skip the execution of.","items":{"description":"The name of a legacy security product to skip the execution of.","enum":["bic","hot","rateLimit","securityLevel","uaBlock","waf","zoneLockdown"],"title":"Product","type":"string"},"minItems":1,"title":"Products","type":"array","uniqueItems":true},"rules":{"additionalProperties":{"description":"A list of rule IDs in the ruleset to skip the execution of.","items":{"allOf":[{"$ref":"#/components/schemas/rulesets_RuleId"},{"description":"The ID of a rule in the ruleset to skip the execution of.","example":"8ac8bc2a661e475d940980f9317f28e1","title":"Rule"}]},"minItems":1,"title":"Rules","type":"array","uniqueItems":true},"description":"A mapping of ruleset IDs to a list of rule IDs in that ruleset to skip the execution of. This option is incompatible with the ruleset option.","example":{"4814384a9e5d4991b9815dcfc25d2f1f":["8ac8bc2a661e475d940980f9317f28e1"]},"minProperties":1,"title":"Rules","type":"object"},"ruleset":{"description":"A ruleset to skip the execution of. This option is incompatible with the rulesets, rules and phases options.","enum":["current"],"title":"Ruleset","type":"string"},"rulesets":{"description":"A list of ruleset IDs to skip the execution of. This option is incompatible with the ruleset and phases options.","items":{"allOf":[{"$ref":"#/components/schemas/rulesets_RulesetId"},{"description":"The ID of a ruleset to skip the execution of.","example":"4814384a9e5d4991b9815dcfc25d2f1f","title":"Ruleset"}]},"minItems":1,"title":"Rulesets","type":"array","uniqueItems":true}}},"description":{"example":"Skip the current ruleset when the IP address is not 1.1.1.1"}},"title":"Skip rule"}]},"rulesets_ZoneId":{"description":"The unique ID of the zone.","example":"9f1839b6152d298aca64c4e906b6d074","pattern":"^[0-9a-f]{32}$","title":"ID","type":"string"},"rulesets_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/rulesets_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"},"result_info":{"$ref":"#/components/schemas/rulesets_result_info"}}}],"type":"object"},"rulesets_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/rulesets_messages"},"messages":{"$ref":"#/components/schemas/rulesets_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"rulesets_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/rulesets_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/rulesets_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"rulesets_api-response-single":{"allOf":[{"$ref":"#/components/schemas/rulesets_api-response-common"},{"properties":{"result":{"anyOf":[{"type":"object"},{"type":"string"}]}}}],"type":"object"},"rulesets_available":{"description":"When true, the Managed Transform is available in the current Cloudflare plan.","example":true,"type":"boolean"},"rulesets_custom_pages_response_collection":{"allOf":[{"$ref":"#/components/schemas/rulesets_api-response-collection"},{"properties":{"result":{"items":{"type":"object"},"type":"array"}}}]},"rulesets_custom_pages_response_single":{"allOf":[{"$ref":"#/components/schemas/rulesets_api-response-single"},{"properties":{"result":{"type":"object"}}}]},"rulesets_enabled":{"description":"When true, the Managed Transform is enabled.","example":true,"type":"boolean"},"rulesets_id":{"description":"Human-readable identifier of the Managed Transform.","example":"add_cf-bot-score_header","type":"string"},"rulesets_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"rulesets_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"rulesets_request_list":{"items":{"$ref":"#/components/schemas/rulesets_request_model"},"type":"array"},"rulesets_request_model":{"properties":{"enabled":{"$ref":"#/components/schemas/rulesets_enabled"},"id":{"$ref":"#/components/schemas/rulesets_id"}},"type":"object"},"rulesets_response_list":{"items":{"$ref":"#/components/schemas/rulesets_response_model"},"type":"array"},"rulesets_response_model":{"properties":{"available":{"$ref":"#/components/schemas/rulesets_available"},"enabled":{"$ref":"#/components/schemas/rulesets_enabled"},"id":{"$ref":"#/components/schemas/rulesets_id"}},"type":"object"},"rulesets_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"rulesets_schemas-request_model":{"properties":{"scope":{"$ref":"#/components/schemas/rulesets_scope"},"type":{"$ref":"#/components/schemas/rulesets_type"}},"type":"object"},"rulesets_schemas-response_model":{"properties":{"scope":{"$ref":"#/components/schemas/rulesets_scope"},"type":{"$ref":"#/components/schemas/rulesets_type"}},"type":"object"},"rulesets_scope":{"description":"The scope of the URL normalization.","example":"incoming","type":"string"},"rulesets_type":{"description":"The type of URL normalization performed by Cloudflare.","example":"cloudflare","type":"string"},"rum_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/rum_messages"},"messages":{"$ref":"#/components/schemas/rum_messages"},"success":{"description":"Whether the API call was successful.","example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"rum_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/rum_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/rum_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"rum_auto_install":{"description":"If enabled, the JavaScript snippet is automatically injected for orange-clouded sites.","example":true,"type":"boolean"},"rum_create-rule-request":{"properties":{"host":{"example":"example.com","type":"string"},"inclusive":{"description":"Whether the rule includes or excludes traffic from being measured.","example":true,"type":"boolean"},"is_paused":{"description":"Whether the rule is paused or not.","example":false,"type":"boolean"},"paths":{"example":["*"],"items":{"type":"string"},"type":"array"}},"type":"object"},"rum_create-site-request":{"properties":{"auto_install":{"$ref":"#/components/schemas/rum_auto_install"},"host":{"description":"The hostname to use for gray-clouded sites.","example":"example.com","type":"string"},"zone_tag":{"$ref":"#/components/schemas/rum_zone_tag"}},"type":"object"},"rum_created":{"$ref":"#/components/schemas/rum_timestamp"},"rum_editable":{"example":true,"type":"boolean"},"rum_id":{"example":"rum","type":"string"},"rum_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"rum_is_host_regex":{"description":"Whether to match the hostname using a regular expression.","example":false,"type":"boolean"},"rum_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"rum_modify-rules-request":{"properties":{"delete_rules":{"description":"A list of rule identifiers to delete.","items":{"$ref":"#/components/schemas/rum_rule_identifier"},"type":"array"},"rules":{"description":"A list of rules to create or update.","items":{"properties":{"host":{"example":"example.com","type":"string"},"id":{"$ref":"#/components/schemas/rum_rule_identifier"},"inclusive":{"example":true,"type":"boolean"},"is_paused":{"example":false,"type":"boolean"},"paths":{"example":["*"],"items":{"type":"string"},"type":"array"}},"type":"object"},"type":"array"}},"type":"object"},"rum_order_by":{"description":"The property used to sort the list of results.","enum":["host","created"],"example":"host","type":"string"},"rum_page":{"description":"Current page within the paginated list of results.","example":1,"type":"number"},"rum_per_page":{"description":"Number of items to return per page of results.","example":10,"type":"number"},"rum_result_info":{"properties":{"count":{"description":"The total number of items on the current page.","example":10,"type":"integer"},"page":{"description":"Current page within the paginated list of results.","example":1,"type":"integer"},"per_page":{"description":"The maximum number of items to return per page of results.","example":10,"type":"integer"},"total_count":{"description":"The total number of items.","example":25,"type":"integer"},"total_pages":{"description":"The total number of pages.","example":3,"nullable":true,"type":"integer"}},"type":"object"},"rum_rule":{"properties":{"created":{"$ref":"#/components/schemas/rum_timestamp"},"host":{"description":"The hostname the rule will be applied to.","example":"example.com","type":"string"},"id":{"$ref":"#/components/schemas/rum_rule_identifier"},"inclusive":{"description":"Whether the rule includes or excludes traffic from being measured.","example":true,"type":"boolean"},"is_paused":{"description":"Whether the rule is paused or not.","example":false,"type":"boolean"},"paths":{"description":"The paths the rule will be applied to.","example":["*"],"items":{"type":"string"},"type":"array"},"priority":{"example":1000,"type":"number"}},"type":"object"},"rum_rule-id-response-single":{"allOf":[{"$ref":"#/components/schemas/rum_api-response-common"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/rum_rule_identifier"}},"type":"object"}}}]},"rum_rule-response-single":{"allOf":[{"$ref":"#/components/schemas/rum_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/rum_rule"}}}]},"rum_rule_identifier":{"description":"The Web Analytics rule identifier.","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","type":"string"},"rum_rules":{"description":"A list of rules.","items":{"$ref":"#/components/schemas/rum_rule"},"type":"array"},"rum_rules-response-collection":{"allOf":[{"$ref":"#/components/schemas/rum_api-response-common"},{"properties":{"result":{"properties":{"rules":{"$ref":"#/components/schemas/rum_rules"},"ruleset":{"$ref":"#/components/schemas/rum_ruleset"}},"type":"object"}}}]},"rum_ruleset":{"properties":{"enabled":{"description":"Whether the ruleset is enabled.","example":true,"type":"boolean"},"id":{"$ref":"#/components/schemas/rum_ruleset_identifier"},"zone_name":{"example":"example.com","type":"string"},"zone_tag":{"$ref":"#/components/schemas/rum_zone_tag"}},"type":"object"},"rum_ruleset_identifier":{"description":"The Web Analytics ruleset identifier.","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","type":"string"},"rum_rum-site-response-single":{"allOf":[{"$ref":"#/components/schemas/rum_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/rum_rum_site"}}}]},"rum_rum_site":{"properties":{"editable":{"$ref":"#/components/schemas/rum_editable"},"id":{"$ref":"#/components/schemas/rum_id"},"value":{"$ref":"#/components/schemas/rum_value"}},"type":"object"},"rum_site":{"properties":{"auto_install":{"$ref":"#/components/schemas/rum_auto_install"},"created":{"$ref":"#/components/schemas/rum_timestamp"},"rules":{"$ref":"#/components/schemas/rum_rules"},"ruleset":{"$ref":"#/components/schemas/rum_ruleset"},"site_tag":{"$ref":"#/components/schemas/rum_site_tag"},"site_token":{"$ref":"#/components/schemas/rum_site_token"},"snippet":{"$ref":"#/components/schemas/rum_snippet"}},"type":"object"},"rum_site-response-single":{"allOf":[{"$ref":"#/components/schemas/rum_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/rum_site"}}}]},"rum_site-tag-response-single":{"allOf":[{"$ref":"#/components/schemas/rum_api-response-common"},{"properties":{"result":{"properties":{"site_tag":{"$ref":"#/components/schemas/rum_site_tag"}},"type":"object"}}}]},"rum_site_tag":{"description":"The Web Analytics site identifier.","example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"},"rum_site_token":{"description":"The Web Analytics site token.","example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"},"rum_sites-response-collection":{"allOf":[{"$ref":"#/components/schemas/rum_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/rum_site"},"type":"array"},"result_info":{"$ref":"#/components/schemas/rum_result_info"}}}]},"rum_snippet":{"description":"Encoded JavaScript snippet.","example":"\u003c!-- Cloudflare Web Analytics --\u003e\u003cscript defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{\"token\": \"bc40a2d1b5834453aba85c1b9a3054da\"}'\u003e\u003c/script\u003e\u003c!-- End Cloudflare Web Analytics --\u003e","type":"string"},"rum_timestamp":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"rum_toggle-rum-request":{"properties":{"value":{"description":"Value can either be On or Off","example":"on","type":"string"}},"type":"object"},"rum_value":{"description":"Current state of RUM. Returns On, Off, or Manual","example":"on","type":"string"},"rum_zone_tag":{"description":"The zone identifier.","example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"},"secondary-dns_account_identifier":{"example":"01a7362d577a6c3019a474fd6f485823","readOnly":true,"type":"string"},"secondary-dns_acl":{"properties":{"id":{"$ref":"#/components/schemas/secondary-dns_components-schemas-identifier"},"ip_range":{"$ref":"#/components/schemas/secondary-dns_ip_range"},"name":{"$ref":"#/components/schemas/secondary-dns_acl_components-schemas-name"}},"required":["id","name","ip_range"],"type":"object"},"secondary-dns_acl_components-schemas-name":{"description":"The name of the acl.","example":"my-acl-1","type":"string"},"secondary-dns_algo":{"description":"TSIG algorithm.","example":"hmac-sha512.","type":"string"},"secondary-dns_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/secondary-dns_result_info"}}}],"type":"object"},"secondary-dns_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/secondary-dns_messages"},"messages":{"$ref":"#/components/schemas/secondary-dns_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"secondary-dns_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"secondary-dns_api-response-single":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_api-response-common"}],"type":"object"},"secondary-dns_auto_refresh_seconds":{"description":"How often should a secondary zone auto refresh regardless of DNS NOTIFY.\nNot applicable for primary zones.","example":86400,"type":"number"},"secondary-dns_components-schemas-id_response":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/secondary-dns_components-schemas-identifier"}},"type":"object"}}}]},"secondary-dns_components-schemas-identifier":{"example":"23ff594956f20c2a721606e94745a8aa","readOnly":true,"type":"string"},"secondary-dns_components-schemas-name":{"description":"The name of the peer.","example":"my-peer-1","type":"string"},"secondary-dns_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/secondary-dns_acl"},"type":"array"}}}]},"secondary-dns_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/secondary-dns_acl"}}}]},"secondary-dns_disable_transfer_response":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/secondary-dns_disable_transfer_result"}}}]},"secondary-dns_disable_transfer_result":{"description":"The zone transfer status of a primary zone","example":"Disabled","type":"string"},"secondary-dns_dns-secondary-secondary-zone":{"properties":{"auto_refresh_seconds":{"$ref":"#/components/schemas/secondary-dns_auto_refresh_seconds"},"id":{"$ref":"#/components/schemas/secondary-dns_identifier"},"name":{"$ref":"#/components/schemas/secondary-dns_name"},"peers":{"$ref":"#/components/schemas/secondary-dns_peers"}},"required":["id","name","peers","auto_refresh_seconds"],"type":"object"},"secondary-dns_enable_transfer_response":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/secondary-dns_enable_transfer_result"}}}]},"secondary-dns_enable_transfer_result":{"description":"The zone transfer status of a primary zone","example":"Enabled","type":"string"},"secondary-dns_force_response":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/secondary-dns_force_result"}}}]},"secondary-dns_force_result":{"description":"When force_axfr query parameter is set to true, the response is a simple string","example":"OK","type":"string"},"secondary-dns_id_response":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/secondary-dns_identifier"}},"type":"object"}}}]},"secondary-dns_identifier":{"example":"269d8f4853475ca241c4e730be286b20","readOnly":true,"type":"string"},"secondary-dns_ip":{"description":"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","type":"string"},"secondary-dns_ip_range":{"description":"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","type":"string"},"secondary-dns_ixfr_enable":{"description":"Enable IXFR transfer protocol, default is AXFR. Only applicable to secondary zones.","example":false,"type":"boolean"},"secondary-dns_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"secondary-dns_name":{"description":"Zone name.","example":"www.example.com.","type":"string"},"secondary-dns_peer":{"properties":{"id":{"$ref":"#/components/schemas/secondary-dns_components-schemas-identifier"},"ip":{"$ref":"#/components/schemas/secondary-dns_ip"},"ixfr_enable":{"$ref":"#/components/schemas/secondary-dns_ixfr_enable"},"name":{"$ref":"#/components/schemas/secondary-dns_components-schemas-name"},"port":{"$ref":"#/components/schemas/secondary-dns_port"},"tsig_id":{"$ref":"#/components/schemas/secondary-dns_tsig_id"}},"required":["id","name"],"type":"object"},"secondary-dns_peers":{"description":"A list of peer tags.","example":["23ff594956f20c2a721606e94745a8aa","00920f38ce07c2e2f4df50b1f61d4194"],"items":{"$ref":"#/components/schemas/secondary-dns_identifier"},"type":"array"},"secondary-dns_port":{"description":"DNS port of primary or secondary nameserver, depending on what zone this peer is linked to.","example":53,"type":"number"},"secondary-dns_response_collection":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/secondary-dns_tsig"},"type":"array"}}}]},"secondary-dns_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"secondary-dns_schemas-force_response":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/secondary-dns_schemas-force_result"}}}]},"secondary-dns_schemas-force_result":{"description":"When force_notify query parameter is set to true, the response is a simple string","example":"OK","type":"string"},"secondary-dns_schemas-id_response":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/secondary-dns_schemas-identifier"}},"type":"object"}}}]},"secondary-dns_schemas-identifier":{"example":"69cd1e104af3e6ed3cb344f263fd0d5a","readOnly":true,"type":"string"},"secondary-dns_schemas-name":{"description":"TSIG key name.","example":"tsig.customer.cf.","type":"string"},"secondary-dns_schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/secondary-dns_peer"},"type":"array"}}}]},"secondary-dns_schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/secondary-dns_peer"}}}]},"secondary-dns_secret":{"description":"TSIG secret.","example":"caf79a7804b04337c9c66ccd7bef9190a1e1679b5dd03d8aa10f7ad45e1a9dab92b417896c15d4d007c7c14194538d2a5d0feffdecc5a7f0e1c570cfa700837c","type":"string"},"secondary-dns_single_request_outgoing":{"properties":{"id":{"$ref":"#/components/schemas/secondary-dns_identifier"},"name":{"$ref":"#/components/schemas/secondary-dns_name"},"peers":{"$ref":"#/components/schemas/secondary-dns_peers"}},"required":["id","name","peers"]},"secondary-dns_single_response":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/secondary-dns_tsig"}}}]},"secondary-dns_single_response_incoming":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_api-response-single"},{"properties":{"result":{"properties":{"auto_refresh_seconds":{"$ref":"#/components/schemas/secondary-dns_auto_refresh_seconds"},"checked_time":{"$ref":"#/components/schemas/secondary-dns_time"},"created_time":{"$ref":"#/components/schemas/secondary-dns_time"},"id":{"$ref":"#/components/schemas/secondary-dns_identifier"},"modified_time":{"$ref":"#/components/schemas/secondary-dns_time"},"name":{"$ref":"#/components/schemas/secondary-dns_name"},"peers":{"$ref":"#/components/schemas/secondary-dns_peers"},"soa_serial":{"$ref":"#/components/schemas/secondary-dns_soa_serial"}},"type":"object"}}}]},"secondary-dns_single_response_outgoing":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_api-response-single"},{"properties":{"result":{"properties":{"checked_time":{"$ref":"#/components/schemas/secondary-dns_time"},"created_time":{"$ref":"#/components/schemas/secondary-dns_time"},"id":{"$ref":"#/components/schemas/secondary-dns_identifier"},"last_transferred_time":{"$ref":"#/components/schemas/secondary-dns_time"},"name":{"$ref":"#/components/schemas/secondary-dns_name"},"peers":{"$ref":"#/components/schemas/secondary-dns_peers"},"soa_serial":{"$ref":"#/components/schemas/secondary-dns_soa_serial"}},"type":"object"}}}]},"secondary-dns_soa_serial":{"description":"The serial number of the SOA for the given zone.","example":2019102400,"type":"number"},"secondary-dns_time":{"description":"The time for a specific event.","example":"2019-10-24T17:09:42.883908+01:00","type":"string"},"secondary-dns_tsig":{"properties":{"algo":{"$ref":"#/components/schemas/secondary-dns_algo"},"id":{"$ref":"#/components/schemas/secondary-dns_schemas-identifier"},"name":{"$ref":"#/components/schemas/secondary-dns_schemas-name"},"secret":{"$ref":"#/components/schemas/secondary-dns_secret"}},"required":["id","name","secret","algo"],"type":"object"},"secondary-dns_tsig_id":{"description":"TSIG authentication will be used for zone transfer if configured.","example":"69cd1e104af3e6ed3cb344f263fd0d5a","type":"string"},"security-center_accountId":{"$ref":"#/components/schemas/security-center_identifier"},"security-center_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/security-center_messages"},"messages":{"$ref":"#/components/schemas/security-center_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"security-center_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/security-center_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/security-center_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"security-center_api-response-single":{"allOf":[{"$ref":"#/components/schemas/security-center_api-response-common"}],"type":"object"},"security-center_count":{"description":"Total number of results","example":1,"type":"integer"},"security-center_dismissed":{"example":false,"type":"boolean"},"security-center_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"security-center_issue":{"properties":{"dismissed":{"example":false,"type":"boolean"},"id":{"type":"string"},"issue_class":{"$ref":"#/components/schemas/security-center_issueClass"},"issue_type":{"$ref":"#/components/schemas/security-center_issueType"},"payload":{"type":"object"},"resolve_link":{"type":"string"},"resolve_text":{"type":"string"},"severity":{"enum":["Low","Moderate","Critical"],"type":"string"},"since":{"format":"date-time","type":"string"},"subject":{"$ref":"#/components/schemas/security-center_subject"},"timestamp":{"format":"date-time","type":"string"}},"type":"object"},"security-center_issueClass":{"example":"always_use_https_not_enabled","type":"string"},"security-center_issueClasses":{"example":["a_record_dangling","always_use_https_not_enabled"],"items":{"$ref":"#/components/schemas/security-center_issueClass"},"type":"array"},"security-center_issueType":{"enum":["compliance_violation","email_security","exposed_infrastructure","insecure_configuration","weak_authentication"],"type":"string"},"security-center_issueTypes":{"example":["compliance_violation","email_security"],"items":{"$ref":"#/components/schemas/security-center_issueType"},"type":"array"},"security-center_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"security-center_page":{"description":"Current page within paginated list of results","example":1,"type":"integer"},"security-center_perPage":{"description":"Number of results per page of results","example":25,"maximum":1000,"minimum":1,"type":"integer"},"security-center_products":{"example":["access","dns"],"items":{"type":"string"},"type":"array"},"security-center_securityTxt":{"properties":{"acknowledgments":{"example":["https://example.com/hall-of-fame.html"],"items":{"format":"uri","type":"string"},"type":"array"},"canonical":{"example":["https://www.example.com/.well-known/security.txt"],"items":{"format":"uri","type":"string"},"type":"array"},"contact":{"example":["mailto:security@example.com","tel:+1-201-555-0123","https://example.com/security-contact.html"],"items":{"format":"uri","type":"string"},"type":"array"},"enabled":{"example":true,"type":"boolean"},"encryption":{"example":["https://example.com/pgp-key.txt","dns:5d2d37ab76d47d36._openpgpkey.example.com?type=OPENPGPKEY","openpgp4fpr:5f2de5521c63a801ab59ccb603d49de44b29100f"],"items":{"format":"uri","type":"string"},"type":"array"},"expires":{"format":"date-time","type":"string"},"hiring":{"example":["https://example.com/jobs.html"],"items":{"format":"uri","type":"string"},"type":"array"},"policy":{"example":["https://example.com/disclosure-policy.html"],"items":{"format":"uri","type":"string"},"type":"array"},"preferredLanguages":{"example":"en, es, fr","type":"string"}},"type":"object"},"security-center_severityQueryParam":{"example":["low","moderate"],"items":{"enum":["low","moderate","critical"],"type":"string"},"type":"array"},"security-center_subject":{"example":"example.com","type":"string"},"security-center_subjects":{"items":{"$ref":"#/components/schemas/security-center_subject"},"type":"array"},"security-center_valueCountsResponse":{"allOf":[{"$ref":"#/components/schemas/security-center_api-response-common"},{"properties":{"result":{"anyOf":[{"items":{"properties":{"count":{"example":1,"type":"integer"},"value":{"type":"string"}},"type":"object"},"type":"array"}]}}}]},"security-center_zoneId":{"$ref":"#/components/schemas/security-center_identifier"},"snippets_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/snippets_messages"},"messages":{"$ref":"#/components/schemas/snippets_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"snippets_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/snippets_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/snippets_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"snippets_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"snippets_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"snippets_rules":{"description":"List of snippet rules","items":{"properties":{"description":{"example":"Rule description","type":"string"},"enabled":{"example":true,"type":"boolean"},"expression":{"example":"http.cookie eq \"a=b\"","type":"string"},"snippet_name":{"$ref":"#/components/schemas/snippets_snippet_name"}},"type":"object"},"type":"array"},"snippets_snippet":{"description":"Snippet Information","properties":{"created_on":{"description":"Creation time of the snippet","example":"2023-07-24-00:00:00","type":"string"},"modified_on":{"description":"Modification time of the snippet","example":"2023-07-24-00:00:00","type":"string"},"snippet_name":{"$ref":"#/components/schemas/snippets_snippet_name"}},"type":"object"},"snippets_snippet_name":{"description":"Snippet identifying name","example":"snippet_name_01","pattern":"^[A-Za-z0-9_]+$","type":"string"},"snippets_zone_identifier":{"$ref":"#/components/schemas/snippets_identifier"},"spectrum-analytics_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/spectrum-analytics_messages"},"messages":{"$ref":"#/components/schemas/spectrum-analytics_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"spectrum-analytics_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/spectrum-analytics_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/spectrum-analytics_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"spectrum-analytics_api-response-single":{"allOf":[{"$ref":"#/components/schemas/spectrum-analytics_api-response-common"}],"type":"object"},"spectrum-analytics_app_id_param":{"description":"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","type":"string"},"spectrum-analytics_column":{"properties":{"dimensions":{"items":{"type":"string"},"type":"array"},"metrics":{"oneOf":[{"items":{"type":"number"},"type":"array"},{"items":{"items":{"type":"number"},"type":"array"},"type":"array"}]}},"type":"object"},"spectrum-analytics_dimensions":{"description":"Can be used to break down the data by given attributes. Options are: \n\nDimension | Name | Example\n--------------------------|---------------------------------|--------------------------\nevent | Connection Event | connect, progress, disconnect, originError, clientFiltered\nappID | Application ID | 40d67c87c6cd4b889a4fd57805225e85\ncoloName | Colo Name | SFO\nipVersion | IP version used by the client | 4, 6.","example":["event","appID"],"items":{"enum":["event","appID","coloName","ipVersion"],"type":"string"},"type":"array"},"spectrum-analytics_filters":{"description":"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:\n\nOperator | Name | URL Encoded\n--------------------------|---------------------------------|--------------------------\n== | Equals | %3D%3D\n!= | Does not equals | !%3D\n\\\u003e | Greater Than | %3E\n\\\u003c | Less Than | %3C\n\\\u003e= | Greater than or equal to | %3E%3D\n\\\u003c= | Less than or equal to | %3C%3D","example":"event==disconnect%20AND%20coloName!=SFO","type":"string"},"spectrum-analytics_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"spectrum-analytics_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"spectrum-analytics_metrics":{"description":"One or more metrics to compute. Options are: \n\nMetric | Name | Example | Unit\n--------------------------|-------------------------------------|--------------------------|--------------------------\ncount | Count of total events | 1000 | Count\nbytesIngress | Sum of ingress bytes | 1000 | Sum\nbytesEgress | Sum of egress bytes | 1000 | Sum\ndurationAvg | Average connection duration | 1.0 | Time in milliseconds\ndurationMedian | Median connection duration | 1.0 | Time in milliseconds\nduration90th | 90th percentile connection duration | 1.0 | Time in milliseconds\nduration99th | 99th percentile connection duration | 1.0 | Time in milliseconds.","example":["count","bytesIngress"],"items":{"enum":["count","bytesIngress","bytesEgress","durationAvg","durationMedian","duration90th","duration99th"],"type":"string"},"type":"array"},"spectrum-analytics_query":{"properties":{"dimensions":{"$ref":"#/components/schemas/spectrum-analytics_dimensions"},"filters":{"$ref":"#/components/schemas/spectrum-analytics_filters"},"limit":{"description":"Limit number of returned metrics.","type":"number"},"metrics":{"$ref":"#/components/schemas/spectrum-analytics_metrics"},"since":{"$ref":"#/components/schemas/spectrum-analytics_since"},"sort":{"$ref":"#/components/schemas/spectrum-analytics_sort"},"until":{"$ref":"#/components/schemas/spectrum-analytics_until"}},"type":"object"},"spectrum-analytics_query-response-aggregate":{"allOf":[{"$ref":"#/components/schemas/spectrum-analytics_api-response-single"},{"properties":{"result":{"items":{"properties":{"appID":{"allOf":[{"description":"Application identifier."},{"$ref":"#/components/schemas/spectrum-analytics_identifier"}]},"bytesEgress":{"description":"Number of bytes sent","type":"number"},"bytesIngress":{"description":"Number of bytes received","type":"number"},"connections":{"description":"Number of connections","type":"number"},"durationAvg":{"description":"Average duration of connections","type":"number"}},"required":["appID","bytesIngress","bytesEgress","connections","durationAvg"],"type":"object"},"type":"array"}}}]},"spectrum-analytics_query-response-single":{"allOf":[{"$ref":"#/components/schemas/spectrum-analytics_api-response-single"},{"properties":{"result":{"properties":{"data":{"description":"List of columns returned by the analytics query.","items":{"$ref":"#/components/schemas/spectrum-analytics_column"},"type":"array"},"data_lag":{"description":"Number of seconds between current time and last processed event, i.e. how many seconds of data could be missing.","example":3,"minimum":0,"type":"number"},"max":{"allOf":[{"description":"Maximum result for each selected metrics across all data."},{"$ref":"#/components/schemas/spectrum-analytics_stat"}]},"min":{"allOf":[{"description":"Minimum result for each selected metrics across all data."},{"$ref":"#/components/schemas/spectrum-analytics_stat"}]},"query":{"$ref":"#/components/schemas/spectrum-analytics_query"},"rows":{"description":"Total number of rows in the result.","example":5,"minimum":0,"type":"number"},"time_intervals":{"description":"List of time interval buckets: [start, end]","items":{"items":{"$ref":"#/components/schemas/spectrum-analytics_timestamp"},"type":"array"},"type":"array"},"totals":{"allOf":[{"description":"Total result for each selected metrics across all data."},{"$ref":"#/components/schemas/spectrum-analytics_stat"}]}},"required":["rows","data","data_lag","min","max","totals","query"],"type":"object"}}}]},"spectrum-analytics_since":{"allOf":[{"description":"Start of time interval to query, defaults to `until` - 6 hours. Timestamp must be in RFC3339 format and uses UTC unless otherwise specified."},{"$ref":"#/components/schemas/spectrum-analytics_timestamp"}]},"spectrum-analytics_sort":{"description":"The sort order for the result set; sort fields must be included in `metrics` or `dimensions`.","example":["+count","-bytesIngress"],"items":{"type":"string"},"type":"array"},"spectrum-analytics_stat":{"additionalProperties":{"type":"number"},"example":{"bytesEgress":100,"bytesIngress":50},"type":"object"},"spectrum-analytics_timestamp":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","type":"string"},"spectrum-analytics_until":{"allOf":[{"description":"End of time interval to query, defaults to current time. Timestamp must be in RFC3339 format and uses UTC unless otherwise specified."},{"$ref":"#/components/schemas/spectrum-analytics_timestamp"}]},"spectrum-config_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/spectrum-config_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/spectrum-config_result_info"}}}],"type":"object"},"spectrum-config_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/spectrum-config_messages"},"messages":{"$ref":"#/components/schemas/spectrum-config_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"spectrum-config_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/spectrum-config_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/spectrum-config_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"spectrum-config_api-response-single":{"allOf":[{"$ref":"#/components/schemas/spectrum-config_api-response-common"}],"type":"object"},"spectrum-config_api-response-single-id":{"allOf":[{"$ref":"#/components/schemas/spectrum-config_api-response-common"},{"properties":{"result":{"nullable":true,"properties":{"id":{"$ref":"#/components/schemas/spectrum-config_identifier"}},"required":["id"],"type":"object"}}}],"type":"object"},"spectrum-config_app_config":{"allOf":[{"$ref":"#/components/schemas/spectrum-config_base_app_config"},{"properties":{"argo_smart_routing":{"$ref":"#/components/schemas/spectrum-config_argo_smart_routing"},"dns":{"$ref":"#/components/schemas/spectrum-config_dns"},"edge_ips":{"$ref":"#/components/schemas/spectrum-config_edge_ips"},"ip_firewall":{"$ref":"#/components/schemas/spectrum-config_ip_firewall"},"origin_direct":{"$ref":"#/components/schemas/spectrum-config_origin_direct"},"origin_dns":{"$ref":"#/components/schemas/spectrum-config_origin_dns"},"origin_port":{"$ref":"#/components/schemas/spectrum-config_origin_port"},"protocol":{"$ref":"#/components/schemas/spectrum-config_protocol"},"proxy_protocol":{"$ref":"#/components/schemas/spectrum-config_proxy_protocol"},"tls":{"$ref":"#/components/schemas/spectrum-config_tls"},"traffic_type":{"$ref":"#/components/schemas/spectrum-config_traffic_type"}},"required":["protocol","dns","ip_firewall","proxy_protocol","tls","traffic_type"],"type":"object"}]},"spectrum-config_app_config_collection":{"allOf":[{"$ref":"#/components/schemas/spectrum-config_api-response-collection"},{"properties":{"result":{"oneOf":[{"items":{"$ref":"#/components/schemas/spectrum-config_app_config"},"type":"array"},{"items":{"$ref":"#/components/schemas/spectrum-config_paygo_app_config"},"type":"array"}]}}}]},"spectrum-config_app_config_single":{"allOf":[{"$ref":"#/components/schemas/spectrum-config_api-response-single"},{"properties":{"result":{"oneOf":[{"$ref":"#/components/schemas/spectrum-config_app_config"},{"$ref":"#/components/schemas/spectrum-config_paygo_app_config"}]}}}]},"spectrum-config_app_identifier":{"allOf":[{"description":"App identifier."},{"readOnly":true},{"$ref":"#/components/schemas/spectrum-config_identifier"}]},"spectrum-config_argo_smart_routing":{"default":false,"description":"Enables Argo Smart Routing for this application.\nNotes: Only available for TCP applications with traffic_type set to \"direct\".","example":true,"type":"boolean"},"spectrum-config_base_app_config":{"properties":{"created_on":{"$ref":"#/components/schemas/spectrum-config_created"},"id":{"$ref":"#/components/schemas/spectrum-config_app_identifier"},"modified_on":{"$ref":"#/components/schemas/spectrum-config_modified"}},"required":["id","created_on","modified_on"],"type":"object"},"spectrum-config_created":{"allOf":[{"description":"When the Application was created."},{"readOnly":true},{"$ref":"#/components/schemas/spectrum-config_timestamp"}]},"spectrum-config_dns":{"description":"The name and type of DNS record for the Spectrum application.","properties":{"name":{"$ref":"#/components/schemas/spectrum-config_dns_name"},"type":{"$ref":"#/components/schemas/spectrum-config_dns_type"}},"type":"object"},"spectrum-config_dns_name":{"description":"The name of the DNS record associated with the application.","example":"ssh.example.com","format":"hostname","type":"string"},"spectrum-config_dns_ttl":{"description":"The TTL of our resolution of your DNS record in seconds.","minimum":600,"type":"integer"},"spectrum-config_dns_type":{"description":"The type of DNS record associated with the application.","enum":["CNAME","ADDRESS"],"example":"CNAME","type":"string"},"spectrum-config_edge_ips":{"default":{"connectivity":"all","type":"dynamic"},"description":"The anycast edge IP configuration for the hostname of this application.","oneOf":[{"properties":{"connectivity":{"description":"The IP versions supported for inbound connections on Spectrum anycast IPs.","enum":["all","ipv4","ipv6"],"example":"all","type":"string"},"type":{"description":"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.","enum":["dynamic"],"example":"dynamic","type":"string"}},"type":"object"},{"properties":{"ips":{"description":"The array of customer owned IPs we broadcast via anycast for this hostname and application.","example":["192.0.2.1"],"items":{"description":"Edge anycast IPs.","example":"192.0.2.1","type":"string"},"type":"array"},"type":{"description":"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.","enum":["static"],"example":"static","type":"string"}},"type":"object"}]},"spectrum-config_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"spectrum-config_ip_firewall":{"description":"Enables IP Access Rules for this application.\nNotes: Only available for TCP applications.","example":true,"type":"boolean"},"spectrum-config_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"spectrum-config_modified":{"allOf":[{"description":"When the Application was last modified."},{"readOnly":true},{"$ref":"#/components/schemas/spectrum-config_timestamp"}]},"spectrum-config_origin_direct":{"description":"List of origin IP addresses. Array may contain multiple IP addresses for load balancing.","items":{"example":"tcp://127.0.0.1:8080","format":"URI","type":"string"},"type":"array"},"spectrum-config_origin_dns":{"description":"The name and type of DNS record for the Spectrum application.","properties":{"name":{"$ref":"#/components/schemas/spectrum-config_origin_dns_name"},"ttl":{"$ref":"#/components/schemas/spectrum-config_dns_ttl"},"type":{"$ref":"#/components/schemas/spectrum-config_origin_dns_type"}},"type":"object"},"spectrum-config_origin_dns_name":{"description":"The name of the DNS record associated with the origin.","example":"origin.example.com","format":"hostname","type":"string"},"spectrum-config_origin_dns_type":{"description":"The type of DNS record associated with the origin. \"\" is used to specify a combination of A/AAAA records.","enum":["","A","AAAA","SRV"],"example":"","type":"string"},"spectrum-config_origin_port":{"anyOf":[{"type":"integer"},{"type":"string"}],"description":"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\"`.\nNotes: 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},"spectrum-config_paygo_app_config":{"allOf":[{"$ref":"#/components/schemas/spectrum-config_base_app_config"},{"properties":{"dns":{"$ref":"#/components/schemas/spectrum-config_dns"},"origin_direct":{"$ref":"#/components/schemas/spectrum-config_origin_direct"},"protocol":{"$ref":"#/components/schemas/spectrum-config_protocol"}},"required":["protocol","dns"],"type":"object"}]},"spectrum-config_protocol":{"description":"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","type":"string"},"spectrum-config_proxy_protocol":{"default":"off","description":"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.","enum":["off","v1","v2","simple"],"example":"off","type":"string"},"spectrum-config_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"spectrum-config_timestamp":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","type":"string"},"spectrum-config_tls":{"description":"The type of TLS termination associated with the application.","enum":["off","flexible","full","strict"],"example":"full","type":"string"},"spectrum-config_traffic_type":{"default":"direct","description":"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.","enum":["direct","http","https"],"example":"direct","type":"string"},"spectrum-config_update_app_config":{"oneOf":[{"$ref":"#/components/schemas/spectrum-config_app_config"},{"$ref":"#/components/schemas/spectrum-config_paygo_app_config"}]},"spectrum-config_zone_identifier":{"allOf":[{"description":"Zone identifier."},{"readOnly":true},{"$ref":"#/components/schemas/spectrum-config_identifier"}]},"speed_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/speed_messages"},"messages":{"$ref":"#/components/schemas/speed_messages"},"success":{"description":"Whether the API call was successful","example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"speed_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/speed_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/speed_messages"}],"example":[]},"result":{"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"speed_api-response-single-id":{"allOf":[{"$ref":"#/components/schemas/speed_api-response-common"},{"properties":{"result":{"nullable":true,"properties":{"id":{"$ref":"#/components/schemas/speed_identifier"}},"required":["id"],"type":"object"}}}],"type":"object"},"speed_base":{"properties":{"editable":{"default":true,"description":"Whether or not this setting can be modified for this zone (based on your Cloudflare plan level).","enum":[true,false],"readOnly":true,"type":"boolean"},"id":{"description":"Identifier of the zone setting.","example":"development_mode","type":"string"},"modified_on":{"description":"last time this setting was modified.","example":"2014-01-01T05:20:00.12345Z","format":"date-time","nullable":true,"readOnly":true,"type":"string"},"value":{"description":"Current value of the zone setting.","enum":["on","off"],"example":"on","type":"string"}}},"speed_cloudflare_fonts":{"allOf":[{"$ref":"#/components/schemas/speed_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["fonts"],"example":"fonts"},"value":{"$ref":"#/components/schemas/speed_cloudflare_fonts_value"}}}],"description":"Enhance your website's font delivery with Cloudflare Fonts. Deliver Google Hosted fonts from your own domain,\nboost performance, and enhance user privacy. Refer to the Cloudflare Fonts documentation for more information.\n","title":"Cloudflare Fonts"},"speed_cloudflare_fonts_value":{"default":"off","description":"Whether the feature is enabled or disabled.","enum":["on","off"],"type":"string"},"speed_cloudflare_speed_brain_response":{"allOf":[{"$ref":"#/components/schemas/speed_base"}],"properties":{"value":{"description":"Whether the feature is enabled or disabled.\nDefaults to \"on\" for Free plans, otherwise defaults to \"off\".\n"}},"title":"Cloudflare Speed Brain response"},"speed_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"speed_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"stream_accessRules":{"description":"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.","properties":{"action":{"description":"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.","enum":["allow","block"],"example":"allow","type":"string"},"country":{"description":"An array of 2-letter country codes in ISO 3166-1 Alpha-2 format used to match requests.","items":{"type":"string"},"type":"array"},"ip":{"description":"An array of IPv4 or IPV6 addresses or CIDRs used to match requests.","items":{"type":"string"},"type":"array"},"type":{"description":"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.","enum":["any","ip.src","ip.geoip.country"],"example":"ip.src","type":"string"}},"type":"object"},"stream_account_identifier":{"description":"The account identifier tag.","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"stream_addAudioTrackResponse":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/stream_additionalAudio"}}}]},"stream_additionalAudio":{"properties":{"default":{"$ref":"#/components/schemas/stream_audio_default"},"label":{"$ref":"#/components/schemas/stream_audio_label"},"status":{"$ref":"#/components/schemas/stream_audio_state"},"uid":{"$ref":"#/components/schemas/stream_identifier"}}},"stream_allowedOrigins":{"description":"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"],"items":{"type":"string"},"type":"array"},"stream_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/stream_messages"},"messages":{"$ref":"#/components/schemas/stream_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"stream_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/stream_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/stream_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"stream_api-response-single":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-common"}],"type":"object"},"stream_asc":{"default":false,"description":"Lists videos in ascending order of creation.","example":true,"type":"boolean"},"stream_audio_default":{"default":false,"description":"Denotes whether the audio track will be played by default in a player.","type":"boolean"},"stream_audio_identifier":{"description":"The unique identifier for an additional audio track.","example":"ea95132c15732412d22c1476fa83f27a","maxLength":32,"type":"string"},"stream_audio_label":{"description":"A string to uniquely identify the track amongst other audio track labels for the specified video.","example":"director commentary","type":"string"},"stream_audio_state":{"description":"Specifies the processing status of the video.","enum":["queued","ready","error"],"type":"string"},"stream_caption_basic_upload":{"properties":{"file":{"description":"The WebVTT file containing the caption or subtitle content.","example":"@/Users/kyle/Desktop/tr.vtt","type":"string"}},"required":["file"],"type":"object"},"stream_caption_status":{"description":"The status of a generated caption.","enum":["ready","inprogress","error"],"type":"string"},"stream_captions":{"properties":{"generated":{"$ref":"#/components/schemas/stream_generated_caption"},"label":{"$ref":"#/components/schemas/stream_label"},"language":{"$ref":"#/components/schemas/stream_language"},"status":{"$ref":"#/components/schemas/stream_caption_status"}},"type":"object"},"stream_clipResponseSingle":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/stream_clipping"}}}]},"stream_clipped_from_video_uid":{"description":"The unique video identifier (UID).","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"stream_clipping":{"properties":{"allowedOrigins":{"$ref":"#/components/schemas/stream_allowedOrigins"},"clippedFromVideoUID":{"$ref":"#/components/schemas/stream_clipped_from_video_uid"},"created":{"$ref":"#/components/schemas/stream_clipping_created"},"creator":{"$ref":"#/components/schemas/stream_creator"},"endTimeSeconds":{"$ref":"#/components/schemas/stream_end_time_seconds"},"maxDurationSeconds":{"$ref":"#/components/schemas/stream_maxDurationSeconds"},"meta":{"$ref":"#/components/schemas/stream_media_metadata"},"modified":{"$ref":"#/components/schemas/stream_live_input_modified"},"playback":{"$ref":"#/components/schemas/stream_playback"},"preview":{"$ref":"#/components/schemas/stream_preview"},"requireSignedURLs":{"$ref":"#/components/schemas/stream_requireSignedURLs"},"startTimeSeconds":{"$ref":"#/components/schemas/stream_start_time_seconds"},"status":{"$ref":"#/components/schemas/stream_media_state"},"thumbnailTimestampPct":{"$ref":"#/components/schemas/stream_thumbnailTimestampPct"},"watermark":{"$ref":"#/components/schemas/stream_watermarkAtUpload"}}},"stream_clipping_created":{"description":"The date and time the clip was created.","example":"2014-01-02T02:20:00Z","format":"date-time","type":"string"},"stream_copyAudioTrack":{"properties":{"label":{"$ref":"#/components/schemas/stream_audio_label"},"url":{"description":"An audio track 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://www.examplestorage.com/audio_file.mp3","format":"uri","type":"string"}},"required":["label"],"type":"object"},"stream_create_input_request":{"properties":{"defaultCreator":{"$ref":"#/components/schemas/stream_live_input_default_creator"},"deleteRecordingAfterDays":{"$ref":"#/components/schemas/stream_live_input_recording_deletion"},"meta":{"$ref":"#/components/schemas/stream_live_input_metadata"},"recording":{"$ref":"#/components/schemas/stream_live_input_recording_settings"}}},"stream_create_output_request":{"properties":{"enabled":{"$ref":"#/components/schemas/stream_output_enabled"},"streamKey":{"$ref":"#/components/schemas/stream_output_streamKey"},"url":{"$ref":"#/components/schemas/stream_output_url"}},"required":["url","streamKey"]},"stream_created":{"description":"The date and time the media item was created.","example":"2014-01-02T02:20:00Z","format":"date-time","type":"string"},"stream_creator":{"description":"A user-defined identifier for the media creator.","example":"creator-id_abcde12345","maxLength":64,"type":"string"},"stream_deleted_response":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-single"},{"properties":{"result":{"example":"ok","type":"string"}}}]},"stream_direct_upload_request":{"properties":{"allowedOrigins":{"$ref":"#/components/schemas/stream_allowedOrigins"},"creator":{"$ref":"#/components/schemas/stream_creator"},"expiry":{"default":"Now + 30 minutes","description":"The date and time after upload when videos will not be accepted.","example":"2021-01-02T02:20:00Z","format":"date-time","type":"string"},"maxDurationSeconds":{"$ref":"#/components/schemas/stream_maxDurationSeconds"},"meta":{"$ref":"#/components/schemas/stream_media_metadata"},"requireSignedURLs":{"$ref":"#/components/schemas/stream_requireSignedURLs"},"scheduledDeletion":{"$ref":"#/components/schemas/stream_scheduledDeletion"},"thumbnailTimestampPct":{"$ref":"#/components/schemas/stream_thumbnailTimestampPct"},"watermark":{"$ref":"#/components/schemas/stream_watermark_at_upload"}},"required":["maxDurationSeconds"],"type":"object"},"stream_direct_upload_response":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-single"},{"properties":{"result":{"properties":{"scheduledDeletion":{"$ref":"#/components/schemas/stream_scheduledDeletion"},"uid":{"$ref":"#/components/schemas/stream_identifier"},"uploadURL":{"description":"The URL an unauthenticated upload can use for a single `HTTP POST multipart/form-data` request.","example":"www.example.com/samplepath","type":"string"},"watermark":{"$ref":"#/components/schemas/stream_watermarks"}}}}}]},"stream_downloadedFrom":{"description":"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","type":"string"},"stream_downloads_response":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-single"},{"properties":{"result":{"type":"object"}}}]},"stream_duration":{"description":"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.","type":"number"},"stream_editAudioTrack":{"properties":{"default":{"$ref":"#/components/schemas/stream_audio_default"},"label":{"$ref":"#/components/schemas/stream_audio_label"}},"type":"object"},"stream_end":{"description":"Lists videos created before the specified date.","example":"2014-01-02T02:20:00Z","format":"date-time","type":"string"},"stream_end_time_seconds":{"description":"Specifies the end time for the video clip in seconds.","type":"integer"},"stream_errorReasonCode":{"description":"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","type":"string"},"stream_errorReasonText":{"description":"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.","type":"string"},"stream_generated_caption":{"description":"Whether the caption was generated via AI.","example":true,"type":"boolean"},"stream_height":{"description":"The height of the image in pixels.","type":"integer"},"stream_identifier":{"description":"A Cloudflare-generated unique identifier for a media item.","example":"ea95132c15732412d22c1476fa83f27a","maxLength":32,"type":"string"},"stream_include_counts":{"default":false,"description":"Includes the total number of videos associated with the submitted query parameters.","example":true,"type":"boolean"},"stream_input":{"properties":{"height":{"description":"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.","type":"integer"},"width":{"description":"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.","type":"integer"}},"type":"object"},"stream_input_rtmps":{"description":"Details for streaming to an live input using RTMPS.","properties":{"streamKey":{"$ref":"#/components/schemas/stream_input_rtmps_stream_key"},"url":{"$ref":"#/components/schemas/stream_input_rtmps_url"}},"type":"object"},"stream_input_rtmps_stream_key":{"description":"The secret key to use when streaming via RTMPS to a live input.","example":"2fb3cb9f17e68a2568d6ebed8d5505eak3ceaf8c9b1f395e1b76b79332497cada","type":"string"},"stream_input_rtmps_url":{"description":"The RTMPS URL you provide to the broadcaster, which they stream live video to.","example":"rtmps://live.cloudflare.com:443/live/","type":"string"},"stream_input_srt":{"description":"Details for streaming to a live input using SRT.","properties":{"passphrase":{"$ref":"#/components/schemas/stream_input_srt_stream_passphrase"},"streamId":{"$ref":"#/components/schemas/stream_input_srt_stream_id"},"url":{"$ref":"#/components/schemas/stream_input_srt_url"}},"type":"object"},"stream_input_srt_stream_id":{"description":"The identifier of the live input to use when streaming via SRT.","example":"f256e6ea9341d51eea64c9454659e576","type":"string"},"stream_input_srt_stream_passphrase":{"description":"The secret key to use when streaming via SRT to a live input.","example":"2fb3cb9f17e68a2568d6ebed8d5505eak3ceaf8c9b1f395e1b76b79332497cada","type":"string"},"stream_input_srt_url":{"description":"The SRT URL you provide to the broadcaster, which they stream live video to.","example":"srt://live.cloudflare.com:778","type":"string"},"stream_input_webrtc":{"description":"Details for streaming to a live input using WebRTC.","properties":{"url":{"$ref":"#/components/schemas/stream_input_webrtc_url"}},"type":"object"},"stream_input_webrtc_url":{"description":"The WebRTC URL you provide to the broadcaster, which they stream live video to.","example":"https://customer-m033z5x00ks6nunl.cloudflarestream.com/b236bde30eb07b9d01318940e5fc3edake34a3efb3896e18f2dc277ce6cc993ad/webRTC/publish","type":"string"},"stream_jwk":{"description":"The signing key in JWK format.","example":"eyJ1c2UiOiJzaWciLCJrdHkiOiJSU0EiLCJraWQiOiI1MjEzY2ZhMTIxZjcwYjhjMTM4MDY4NmZmYzM3MWJhMyIsImFsZyI6IlJTMjU2IiwibiI6IjBUandqT2laV21KNDN2ZjNUbzREb1htWFd0SkdOR3lYZmh5dHRMYUJnRjEtRVFXUURLaG9LYm9hS21xakNBc21za3V0YkxVN1BVOGRrUU5ER1p3S3VWczA4elNaNGt4aTR0RWdQUFp5dDdkWEMtbFlSWW95ckFHRjRBWGh5MzI5YkhDUDFJbHJCQl9Ba0dnbmRMQWd1bnhZMHJSZ2N2T3ppYXc2S0p4Rm5jMlVLMFdVOGIwcDRLS0hHcDFLTDlkazBXVDhkVllxYmVSaUpqQ2xVRW1oOHl2OUNsT1ZhUzRLeGlYNnhUUTREWnc2RGFKZklWM1F0Tmd2cG1ieWxOSmFQSG5zc3JodDJHS1A5NjJlS2poUVJsaWd2SFhKTE9uSm9KZkxlSUVIWi1peFdmY1RETUg5MnNHdm93MURPanhMaUNOMXpISy1oN2JMb1hUaUxnYzRrdyIsImUiOiJBUUFCIiwiZCI6IndpQWEwaU5mWnNYSGNOcVMxSWhnUmdzVHJHay1TcFlYV2lReDZHTU9kWlJKekhGazN0bkRERFJvNHNKZTBxX0dEOWkzNlEyZkVadS15elpEcEJkc3U5OHNtaHhNU19Ta0s5X3VFYUo1Zm96V2IyN3JRRnFoLVliUU9MUThkUnNPRHZmQl9Hb2txWWJzblJDR3kzWkFaOGZJZ25ocXBUNEpiOHdsaWxpMUgxeFpzM3RnTWtkTEluTm1yMFAtcTYxZEtNd3JYZVRoSWNEc0kyb2Z1LTFtRm1MWndQb2ZGbmxaTW9QN1pfRU5pUGNfWGtWNzFhaHBOZE9pcW5ablZtMHBCNE5QS1UweDRWTjQyYlAzWEhMUmpkV2hJOGt3SC1BdXhqb3BLaHJ0R2tvcG1jZFRkM1ZRdElaOGRpZHByMXpBaEpvQi16ZVlIaTFUel9ZSFFld0FRUSIsInAiOiIyVTZFVUJka3U3TndDYXoyNzZuWGMxRXgwVHpNZjU4U0UtU2M2eUNaYWk2TkwzVURpWi1mNHlIdkRLYnFGUXdLWDNwZ0l2aVE3Y05QYUpkbE9NeS1mU21GTXU3V3hlbVZYamFlTjJCMkRDazhQY0NEOVgxU2hhR3E1ZUdSSHNObVUtSDNxTG1FRGpjLWliazRHZ0RNb2lVYjQ2OGxFZHAwU2pIOXdsOUdsYTgiLCJxIjoiOW5ucXg5ZnNNY2dIZ29DemhfVjJmaDhoRUxUSUM5aFlIOVBCTG9aQjZIaE1TWG1ja1BSazVnUlpPWlFEN002TzlMaWZjNmFDVXdEbjBlQzU2YkFDNUNrcWxjODJsVDhzTWlMeWJyTjh3bWotcjNjSTBGQTlfSGQySEY1ZkgycnJmenVqd0NWM3czb09Ud3p4d1g3c2xKbklRanphel91SzEyWEtucVZZcUYwIiwiZHAiOiJxQklTUTlfVUNWaV9Ucng0UU9VYnZoVU9jc2FUWkNHajJiNzNudU9YeElnOHFuZldSSnN4RG5zd2FKaXdjNWJjYnZ3M1h0VGhRd1BNWnhpeE1UMHFGNlFGWVY5WXZibnJ6UEp4YkdNdTZqajZYc2lIUjFlbWU3U09lVDM4Xzg0aFZyOXV6UkN2RWstb0R0MHlodW9YVzFGWVFNRTE2cGtMV0ZkUjdRUERsQUUiLCJkcSI6Im5zQUp3eXZFbW8tdW5wU01qYjVBMHB6MExCRjBZNFMxeGRJYXNfLVBSYzd0dThsVFdWMl8teExEOFR6dmhqX0lmY0RJR3JJZGNKNjlzVVZnR1M3ZnZkcng3Y21uNjFyai1XcmU0UVJFRC1lV1dxZDlpc2FVRmg5UGVKZ2tCbFZVVnYtdnladVlWdFF2a1NUU05ZR3RtVXl2V2xKZDBPWEFHRm9jdGlfak9aVSIsInFpIjoib0dYaWxLQ2NKRXNFdEE1eG54WUdGQW5UUjNwdkZLUXR5S0F0UGhHaHkybm5ya2VzN1RRaEFxMGhLRWZtU1RzaE1hNFhfd05aMEstX1F0dkdoNDhpeHdTTDVLTEwxZnFsY0k2TF9XUnF0cFQxS21LRERlUHR2bDVCUzFGbjgwSGFwR215cmZRWUU4S09QR2UwUl82S1BOZE1vc3dYQ3Nfd0RYMF92ZzNoNUxRIn0=","type":"string"},"stream_key_generation_response":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/stream_keys"}}}]},"stream_key_response_collection":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-common"},{"properties":{"result":{"items":{"properties":{"created":{"$ref":"#/components/schemas/stream_signing_key_created"},"id":{"$ref":"#/components/schemas/stream_schemas-identifier"}},"type":"object"},"type":"array"}}}]},"stream_keys":{"properties":{"created":{"$ref":"#/components/schemas/stream_signing_key_created"},"id":{"$ref":"#/components/schemas/stream_schemas-identifier"},"jwk":{"$ref":"#/components/schemas/stream_jwk"},"pem":{"$ref":"#/components/schemas/stream_pem"}},"type":"object"},"stream_label":{"description":"The language label displayed in the native language to users.","example":"Türkçe","type":"string"},"stream_language":{"description":"The language tag in BCP 47 format.","example":"tr","type":"string"},"stream_language_response_collection":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/stream_captions"},"type":"array"}}}]},"stream_language_response_single":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/stream_captions"}}}]},"stream_listAudioTrackResponse":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/stream_additionalAudio"},"type":"array"}}}]},"stream_liveInput":{"description":"The live input ID used to upload a video with Stream Live.","example":"fc0a8dc887b16759bfd9ad922230a014","maxLength":32,"type":"string"},"stream_live_input":{"description":"Details about a live input.","properties":{"created":{"$ref":"#/components/schemas/stream_live_input_created"},"deleteRecordingAfterDays":{"$ref":"#/components/schemas/stream_live_input_recording_deletion"},"meta":{"$ref":"#/components/schemas/stream_live_input_metadata"},"modified":{"$ref":"#/components/schemas/stream_live_input_modified"},"recording":{"$ref":"#/components/schemas/stream_live_input_recording_settings"},"rtmps":{"$ref":"#/components/schemas/stream_input_rtmps"},"rtmpsPlayback":{"$ref":"#/components/schemas/stream_playback_rtmps"},"srt":{"$ref":"#/components/schemas/stream_input_srt"},"srtPlayback":{"$ref":"#/components/schemas/stream_playback_srt"},"status":{"$ref":"#/components/schemas/stream_live_input_status"},"uid":{"$ref":"#/components/schemas/stream_live_input_identifier"},"webRTC":{"$ref":"#/components/schemas/stream_input_webrtc"},"webRTCPlayback":{"$ref":"#/components/schemas/stream_playback_webrtc"}},"type":"object"},"stream_live_input_created":{"description":"The date and time the live input was created.","example":"2014-01-02T02:20:00Z","format":"date-time","type":"string"},"stream_live_input_default_creator":{"description":"Sets the creator ID asssociated with this live input.","type":"string"},"stream_live_input_identifier":{"description":"A unique identifier for a live input.","example":"66be4bf738797e01e1fca35a7bdecdcd","maxLength":32,"type":"string"},"stream_live_input_metadata":{"description":"A user modifiable key-value store used to reference other systems of record for managing live inputs.","example":{"name":"test stream 1"},"type":"object"},"stream_live_input_modified":{"description":"The date and time the live input was last modified.","example":"2014-01-02T02:20:00Z","format":"date-time","type":"string"},"stream_live_input_object_without_url":{"properties":{"created":{"$ref":"#/components/schemas/stream_live_input_created"},"deleteRecordingAfterDays":{"$ref":"#/components/schemas/stream_live_input_recording_deletion"},"meta":{"$ref":"#/components/schemas/stream_live_input_metadata"},"modified":{"$ref":"#/components/schemas/stream_live_input_modified"},"uid":{"$ref":"#/components/schemas/stream_live_input_identifier"}}},"stream_live_input_recording_allowedOrigins":{"description":"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"],"items":{"type":"string"},"type":"array"},"stream_live_input_recording_deletion":{"description":"Indicates the number of days after which the live inputs recordings will be deleted. When a stream completes and the recording is ready, the value is used to calculate a scheduled deletion date for that recording. Omit the field to indicate no change, or include with a `null` value to remove an existing scheduled deletion.","example":45,"minimum":30,"type":"number"},"stream_live_input_recording_hideLiveViewerCount":{"default":false,"description":"Disables reporting the number of live viewers when this property is set to `true`.","example":true,"type":"boolean"},"stream_live_input_recording_mode":{"default":"off","description":"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.","enum":["off","automatic"],"example":"automatic","type":"string"},"stream_live_input_recording_requireSignedURLs":{"default":false,"description":"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.","example":true,"type":"boolean"},"stream_live_input_recording_settings":{"description":"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":{"hideLiveViewerCount":false,"mode":"off","requireSignedURLs":false,"timeoutSeconds":0},"properties":{"allowedOrigins":{"$ref":"#/components/schemas/stream_live_input_recording_allowedOrigins"},"hideLiveViewerCount":{"$ref":"#/components/schemas/stream_live_input_recording_hideLiveViewerCount"},"mode":{"$ref":"#/components/schemas/stream_live_input_recording_mode"},"requireSignedURLs":{"$ref":"#/components/schemas/stream_live_input_recording_requireSignedURLs"},"timeoutSeconds":{"$ref":"#/components/schemas/stream_live_input_recording_timeoutSeconds"}},"type":"object"},"stream_live_input_recording_timeoutSeconds":{"default":0,"description":"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.","type":"integer"},"stream_live_input_response_collection":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-common"},{"properties":{"result":{"properties":{"liveInputs":{"items":{"$ref":"#/components/schemas/stream_live_input_object_without_url"},"type":"array"},"range":{"description":"The total number of remaining live inputs based on cursor position.","example":1000,"type":"integer"},"total":{"description":"The total number of live inputs that match the provided filters.","example":35586,"type":"integer"}},"type":"object"}}}]},"stream_live_input_response_single":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/stream_live_input"}}}]},"stream_live_input_status":{"description":"The connection status of a live input.","enum":[null,"connected","reconnected","reconnecting","client_disconnect","ttl_exceeded","failed_to_connect","failed_to_reconnect","new_configuration_accepted"],"nullable":true,"type":"string"},"stream_maxDurationSeconds":{"description":"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,"type":"integer"},"stream_media_metadata":{"description":"A user modifiable key-value store used to reference other systems of record for managing videos.","example":{"name":"video12345.mp4"},"type":"object"},"stream_media_state":{"description":"Specifies the processing status for all quality levels for a video.","enum":["pendingupload","downloading","queued","inprogress","ready","error"],"example":"inprogress","type":"string"},"stream_media_status":{"description":"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.","properties":{"errorReasonCode":{"$ref":"#/components/schemas/stream_errorReasonCode"},"errorReasonText":{"$ref":"#/components/schemas/stream_errorReasonText"},"pctComplete":{"$ref":"#/components/schemas/stream_pctComplete"},"state":{"$ref":"#/components/schemas/stream_media_state"}}},"stream_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"stream_modified":{"description":"The date and time the media item was last modified.","example":"2014-01-02T02:20:00Z","format":"date-time","type":"string"},"stream_name":{"default":"","description":"A short description of the watermark profile.","example":"Marketing Videos","type":"string"},"stream_notificationUrl":{"description":"The URL where webhooks will be sent.","example":"https://example.com","format":"uri","type":"string"},"stream_oneTimeUploadExpiry":{"description":"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","type":"string"},"stream_opacity":{"default":1,"description":"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.","example":0.75,"maximum":1,"minimum":0,"type":"number"},"stream_output":{"properties":{"enabled":{"$ref":"#/components/schemas/stream_output_enabled"},"streamKey":{"$ref":"#/components/schemas/stream_output_streamKey"},"uid":{"$ref":"#/components/schemas/stream_output_identifier"},"url":{"$ref":"#/components/schemas/stream_output_url"}}},"stream_output_enabled":{"default":true,"description":"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.","example":true,"type":"boolean"},"stream_output_identifier":{"description":"A unique identifier for the output.","example":"baea4d9c515887b80289d5c33cf01145","maxLength":32,"type":"string"},"stream_output_response_collection":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/stream_output"},"type":"array"}}}]},"stream_output_response_single":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/stream_output"}}}]},"stream_output_streamKey":{"description":"The streamKey used to authenticate against an output's target.","example":"uzya-f19y-g2g9-a2ee-51j2","type":"string"},"stream_output_url":{"description":"The URL an output uses to restream.","example":"rtmp://a.rtmp.youtube.com/live2","type":"string"},"stream_padding":{"default":0.05,"description":"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.","example":0.1,"maximum":1,"minimum":0,"type":"number"},"stream_pctComplete":{"description":"Indicates the size of the entire upload in bytes. The value must be a non-negative integer.","maximum":100,"minimum":0,"type":"string"},"stream_pem":{"description":"The signing key in PEM format.","example":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcGdJQkFBS0NBUUVBMFRqd2pPaVpXbUo0M3ZmM1RvNERvWG1YV3RKR05HeVhmaHl0dExhQmdGMStFUVdRCkRLaG9LYm9hS21xakNBc21za3V0YkxVN1BVOGRrUU5ER1p3S3VWczA4elNaNGt4aTR0RWdQUFp5dDdkWEMrbFkKUllveXJBR0Y0QVhoeTMyOWJIQ1AxSWxyQkIvQWtHZ25kTEFndW54WTByUmdjdk96aWF3NktKeEZuYzJVSzBXVQo4YjBwNEtLSEdwMUtMOWRrMFdUOGRWWXFiZVJpSmpDbFVFbWg4eXY5Q2xPVmFTNEt4aVg2eFRRNERadzZEYUpmCklWM1F0Tmd2cG1ieWxOSmFQSG5zc3JodDJHS1A5NjJlS2poUVJsaWd2SFhKTE9uSm9KZkxlSUVIWitpeFdmY1QKRE1IOTJzR3ZvdzFET2p4TGlDTjF6SEsraDdiTG9YVGlMZ2M0a3dJREFRQUJBb0lCQVFEQ0lCclNJMTlteGNkdwoycExVaUdCR0N4T3NhVDVLbGhkYUpESG9ZdzUxbEVuTWNXVGUyY01NTkdqaXdsN1NyOFlQMkxmcERaOFJtNzdMCk5rT2tGMnk3M3l5YUhFeEw5S1FyMys0Um9ubCtqTlp2YnV0QVdxSDVodEE0dER4MUd3NE85OEg4YWlTcGh1eWQKRUliTGRrQm54OGlDZUdxbFBnbHZ6Q1dLV0xVZlhGbXplMkF5UjBzaWMyYXZRLzZyclYwb3pDdGQ1T0Vod093agphaCs3N1dZV1l0bkEraDhXZVZreWcvdG44UTJJOXo5ZVJYdlZxR2sxMDZLcWRtZFdiU2tIZzA4cFRUSGhVM2paCnMvZGNjdEdOMWFFanlUQWY0QzdHT2lrcUd1MGFTaW1aeDFOM2RWQzBobngySjJtdlhNQ0VtZ0g3TjVnZUxWUFAKOWdkQjdBQkJBb0dCQU5sT2hGQVhaTHV6Y0Ftczl1K3AxM05STWRFOHpIK2ZFaFBrbk9zZ21Xb3VqUzkxQTRtZgpuK01oN3d5bTZoVU1DbDk2WUNMNGtPM0RUMmlYWlRqTXZuMHBoVEx1MXNYcGxWNDJuamRnZGd3cFBEM0FnL1Y5ClVvV2hxdVhoa1I3RFpsUGg5Nmk1aEE0M1BvbTVPQm9BektJbEcrT3ZKUkhhZEVveC9jSmZScFd2QW9HQkFQWjUKNnNmWDdESElCNEtBczRmMWRuNGZJUkMweUF2WVdCL1R3UzZHUWVoNFRFbDVuSkQwWk9ZRVdUbVVBK3pPanZTNApuM09tZ2xNQTU5SGd1ZW13QXVRcEtwWFBOcFUvTERJaThtNnpmTUpvL3E5M0NOQlFQZngzZGh4ZVh4OXE2Mzg3Cm84QWxkOE42RGs4TThjRis3SlNaeUVJODJzLzdpdGRseXA2bFdLaGRBb0dCQUtnU0VrUGYxQWxZdjA2OGVFRGwKRzc0VkRuTEdrMlFobzltKzk1N2psOFNJUEtwMzFrU2JNUTU3TUdpWXNIT1czRzc4TjE3VTRVTUR6R2NZc1RFOQpLaGVrQldGZldMMjU2OHp5Y1d4akx1bzQrbDdJaDBkWHBudTBqbms5L1AvT0lWYS9iczBRcnhKUHFBN2RNb2JxCkYxdFJXRURCTmVxWkMxaFhVZTBEdzVRQkFvR0JBSjdBQ2NNcnhKcVBycDZVakkyK1FOS2M5Q3dSZEdPRXRjWFMKR3JQL2owWE83YnZKVTFsZHYvc1N3L0U4NzRZL3lIM0F5QnF5SFhDZXZiRkZZQmt1MzczYThlM0pwK3RhNC9scQozdUVFUkEvbmxscW5mWXJHbEJZZlQzaVlKQVpWVkZiL3I4bWJtRmJVTDVFazBqV0JyWmxNcjFwU1hkRGx3QmhhCkhMWXY0em1WQW9HQkFLQmw0cFNnbkNSTEJMUU9jWjhXQmhRSjAwZDZieFNrTGNpZ0xUNFJvY3RwNTY1SHJPMDAKSVFLdElTaEg1a2s3SVRHdUYvOERXZEN2djBMYnhvZVBJc2NFaStTaXk5WDZwWENPaS8xa2FyYVU5U3BpZ3czago3YjVlUVV0UlovTkIycVJwc3EzMEdCUENqanhudEVmK2lqelhUS0xNRndyUDhBMTlQNzRONGVTMAotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=","type":"string"},"stream_playback":{"properties":{"dash":{"description":"DASH Media Presentation Description for the video.","example":"https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/manifest/video.mpd","type":"string"},"hls":{"description":"The HLS manifest for the video.","example":"https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/manifest/video.m3u8","type":"string"}},"type":"object"},"stream_playback_rtmps":{"description":"Details for playback from an live input using RTMPS.","properties":{"streamKey":{"$ref":"#/components/schemas/stream_playback_rtmps_stream_key"},"url":{"$ref":"#/components/schemas/stream_playback_rtmps_url"}},"type":"object"},"stream_playback_rtmps_stream_key":{"description":"The secret key to use for playback via RTMPS.","example":"2fb3cb9f17e68a2568d6ebed8d5505eak3ceaf8c9b1f395e1b76b79332497cada","type":"string"},"stream_playback_rtmps_url":{"description":"The URL used to play live video over RTMPS.","example":"rtmps://live.cloudflare.com:443/live/","type":"string"},"stream_playback_srt":{"description":"Details for playback from an live input using SRT.","properties":{"passphrase":{"$ref":"#/components/schemas/stream_playback_srt_stream_passphrase"},"streamId":{"$ref":"#/components/schemas/stream_playback_srt_stream_id"},"url":{"$ref":"#/components/schemas/stream_playback_srt_url"}},"type":"object"},"stream_playback_srt_stream_id":{"description":"The identifier of the live input to use for playback via SRT.","example":"f256e6ea9341d51eea64c9454659e576","type":"string"},"stream_playback_srt_stream_passphrase":{"description":"The secret key to use for playback via SRT.","example":"2fb3cb9f17e68a2568d6ebed8d5505eak3ceaf8c9b1f395e1b76b79332497cada","type":"string"},"stream_playback_srt_url":{"description":"The URL used to play live video over SRT.","example":"rtmps://live.cloudflare.com:443/live/","type":"string"},"stream_playback_webrtc":{"description":"Details for playback from a live input using WebRTC.","properties":{"url":{"$ref":"#/components/schemas/stream_playback_webrtc_url"}},"type":"object"},"stream_playback_webrtc_url":{"description":"The URL used to play live video over WebRTC.","example":"https://customer-m033z5x00ks6nunl.cloudflarestream.com/b236bde30eb07b9d01318940e5fc3edake34a3efb3896e18f2dc277ce6cc993ad/webRTC/play","type":"string"},"stream_position":{"default":"upperRight","description":"The location of the image. Valid positions are: `upperRight`, `upperLeft`, `lowerLeft`, `lowerRight`, and `center`. Note that `center` ignores the `padding` parameter.","example":"center","type":"string"},"stream_preview":{"description":"The video's preview page URI. This field is omitted until encoding is complete.","example":"https://customer-m033z5x00ks6nunl.cloudflarestream.com/ea95132c15732412d22c1476fa83f27a/watch","format":"uri","type":"string"},"stream_readyToStream":{"description":"Indicates whether the video is playable. The field is empty if the video is not ready for viewing or the live stream is still in progress.","example":true,"type":"boolean"},"stream_readyToStreamAt":{"description":"Indicates the time at which the video became playable. The field is empty if the video is not ready for viewing or the live stream is still in progress.","example":"2014-01-02T02:20:00Z","format":"date-time","type":"string"},"stream_requireSignedURLs":{"default":false,"description":"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.","example":true,"type":"boolean"},"stream_scale":{"default":0.15,"description":"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.","example":0.1,"maximum":1,"minimum":0,"type":"number"},"stream_scheduledDeletion":{"description":"Indicates the date and time at which the video will be deleted. Omit the field to indicate no change, or include with a `null` value to remove an existing scheduled deletion. If specified, must be at least 30 days from upload time.","example":"2014-01-02T02:20:00Z","format":"date-time","type":"string"},"stream_schemas-identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"stream_search":{"description":"Searches over the `name` key in the `meta` field. This field can be set with or after the upload request.","example":"puppy.mp4","type":"string"},"stream_signed_token_request":{"properties":{"accessRules":{"description":"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"},{"action":"allow","ip":["93.184.216.0/24","2400:cb00::/32"],"type":"ip.src"},{"action":"block","type":"any"}],"items":{"$ref":"#/components/schemas/stream_accessRules"},"type":"array"},"downloadable":{"default":false,"description":"The optional boolean value that enables using signed tokens to access MP4 download links for a video.","type":"boolean"},"exp":{"description":"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.","type":"integer"},"id":{"description":"The optional ID of a Stream signing key. If present, the `pem` field is also required.","example":"ab0d4ef71g4425f8dcba9041231813000","type":"string"},"nbf":{"description":"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.","type":"integer"},"pem":{"description":"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=","type":"string"}},"type":"object"},"stream_signed_token_response":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-single"},{"properties":{"result":{"properties":{"token":{"description":"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","type":"string"}}}}}]},"stream_signing_key_created":{"description":"The date and time a signing key was created.","example":"2014-01-02T02:20:00Z","format":"date-time","type":"string"},"stream_size":{"description":"The size of the media item in bytes.","example":4190963,"type":"number"},"stream_start":{"description":"Lists videos created after the specified date.","example":"2014-01-02T02:20:00Z","format":"date-time","type":"string"},"stream_start_time_seconds":{"description":"Specifies the start time for the video clip in seconds.","type":"integer"},"stream_storage_use_response":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-single"},{"properties":{"result":{"properties":{"creator":{"$ref":"#/components/schemas/stream_creator"},"totalStorageMinutes":{"description":"The total minutes of video content stored in the account.","type":"integer"},"totalStorageMinutesLimit":{"description":"The storage capacity alloted for the account.","type":"integer"},"videoCount":{"description":"The total count of videos associated with the account.","type":"integer"}}}}}]},"stream_thumbnailTimestampPct":{"default":0,"description":"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.","example":0.529241,"maximum":1,"minimum":0,"type":"number"},"stream_thumbnail_url":{"description":"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","type":"string"},"stream_tus_resumable":{"description":"Specifies the TUS protocol version. This value must be included in every upload request.\nNotes: The only supported version of TUS protocol is 1.0.0.","enum":["1.0.0"],"example":"1.0.0","type":"string"},"stream_type":{"description":"Specifies whether the video is `vod` or `live`.","example":"live","type":"string"},"stream_update_input_request":{"properties":{"defaultCreator":{"$ref":"#/components/schemas/stream_live_input_default_creator"},"deleteRecordingAfterDays":{"$ref":"#/components/schemas/stream_live_input_recording_deletion"},"meta":{"$ref":"#/components/schemas/stream_live_input_metadata"},"recording":{"$ref":"#/components/schemas/stream_live_input_recording_settings"}}},"stream_update_output_request":{"properties":{"enabled":{"$ref":"#/components/schemas/stream_output_enabled"}},"required":["enabled"]},"stream_upload_length":{"description":"Indicates the size of the entire upload in bytes. The value must be a non-negative integer.","minimum":0,"type":"integer"},"stream_upload_metadata":{"description":"Comma-separated key-value pairs following the TUS protocol specification. Values are Base-64 encoded.\nSupported keys: `name`, `requiresignedurls`, `allowedorigins`, `thumbnailtimestamppct`, `watermark`, `scheduleddeletion`.","example":"name aGVsbG8gd29ybGQ=, requiresignedurls, allowedorigins ZXhhbXBsZS5jb20sdGVzdC5jb20=","type":"string"},"stream_uploaded":{"description":"The date and time the media item was uploaded.","example":"2014-01-02T02:20:00Z","format":"date-time","type":"string"},"stream_videoClipStandard":{"properties":{"allowedOrigins":{"$ref":"#/components/schemas/stream_allowedOrigins"},"clippedFromVideoUID":{"$ref":"#/components/schemas/stream_clipped_from_video_uid"},"creator":{"$ref":"#/components/schemas/stream_creator"},"endTimeSeconds":{"$ref":"#/components/schemas/stream_end_time_seconds"},"maxDurationSeconds":{"$ref":"#/components/schemas/stream_maxDurationSeconds"},"requireSignedURLs":{"$ref":"#/components/schemas/stream_requireSignedURLs"},"startTimeSeconds":{"$ref":"#/components/schemas/stream_start_time_seconds"},"thumbnailTimestampPct":{"$ref":"#/components/schemas/stream_thumbnailTimestampPct"},"watermark":{"$ref":"#/components/schemas/stream_watermarkAtUpload"}},"required":["clippedFromVideoUID","startTimeSeconds","endTimeSeconds"],"type":"object"},"stream_video_copy_request":{"properties":{"allowedOrigins":{"$ref":"#/components/schemas/stream_allowedOrigins"},"creator":{"$ref":"#/components/schemas/stream_creator"},"meta":{"$ref":"#/components/schemas/stream_media_metadata"},"requireSignedURLs":{"$ref":"#/components/schemas/stream_requireSignedURLs"},"scheduledDeletion":{"$ref":"#/components/schemas/stream_scheduledDeletion"},"thumbnailTimestampPct":{"$ref":"#/components/schemas/stream_thumbnailTimestampPct"},"url":{"description":"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","type":"string"},"watermark":{"$ref":"#/components/schemas/stream_watermark_at_upload"}},"required":["url"]},"stream_video_response_collection":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/stream_videos"},"type":"array"}}},{"properties":{"range":{"description":"The total number of remaining videos based on cursor position.","example":1000,"type":"integer"},"total":{"description":"The total number of videos that match the provided filters.","example":35586,"type":"integer"}}}]},"stream_video_response_single":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/stream_videos"}}}]},"stream_video_update":{"properties":{"allowedOrigins":{"$ref":"#/components/schemas/stream_allowedOrigins"},"creator":{"$ref":"#/components/schemas/stream_creator"},"maxDurationSeconds":{"$ref":"#/components/schemas/stream_maxDurationSeconds"},"meta":{"$ref":"#/components/schemas/stream_media_metadata"},"requireSignedURLs":{"$ref":"#/components/schemas/stream_requireSignedURLs"},"scheduledDeletion":{"$ref":"#/components/schemas/stream_scheduledDeletion"},"thumbnailTimestampPct":{"$ref":"#/components/schemas/stream_thumbnailTimestampPct"},"uploadExpiry":{"$ref":"#/components/schemas/stream_oneTimeUploadExpiry"}},"type":"object"},"stream_videos":{"properties":{"allowedOrigins":{"$ref":"#/components/schemas/stream_allowedOrigins"},"created":{"$ref":"#/components/schemas/stream_created"},"creator":{"$ref":"#/components/schemas/stream_creator"},"duration":{"$ref":"#/components/schemas/stream_duration"},"input":{"$ref":"#/components/schemas/stream_input"},"liveInput":{"$ref":"#/components/schemas/stream_liveInput"},"maxDurationSeconds":{"$ref":"#/components/schemas/stream_maxDurationSeconds"},"meta":{"$ref":"#/components/schemas/stream_media_metadata"},"modified":{"$ref":"#/components/schemas/stream_modified"},"playback":{"$ref":"#/components/schemas/stream_playback"},"preview":{"$ref":"#/components/schemas/stream_preview"},"readyToStream":{"$ref":"#/components/schemas/stream_readyToStream"},"readyToStreamAt":{"$ref":"#/components/schemas/stream_readyToStreamAt"},"requireSignedURLs":{"$ref":"#/components/schemas/stream_requireSignedURLs"},"scheduledDeletion":{"$ref":"#/components/schemas/stream_scheduledDeletion"},"size":{"$ref":"#/components/schemas/stream_size"},"status":{"$ref":"#/components/schemas/stream_media_status"},"thumbnail":{"$ref":"#/components/schemas/stream_thumbnail_url"},"thumbnailTimestampPct":{"$ref":"#/components/schemas/stream_thumbnailTimestampPct"},"uid":{"$ref":"#/components/schemas/stream_identifier"},"uploadExpiry":{"$ref":"#/components/schemas/stream_oneTimeUploadExpiry"},"uploaded":{"$ref":"#/components/schemas/stream_uploaded"},"watermark":{"$ref":"#/components/schemas/stream_watermarks"}},"type":"object"},"stream_watermarkAtUpload":{"properties":{"uid":{"description":"The unique identifier for the watermark profile.","example":"ea95132c15732412d22c1476fa83f27a","maxLength":32,"type":"string"}},"type":"object"},"stream_watermark_at_upload":{"properties":{"uid":{"description":"The unique identifier for the watermark profile.","example":"ea95132c15732412d22c1476fa83f27a","maxLength":32,"type":"string"}},"type":"object"},"stream_watermark_basic_upload":{"properties":{"file":{"description":"The image file to upload.","example":"@/Users/rchen/Downloads/watermark.png","type":"string"},"name":{"$ref":"#/components/schemas/stream_name"},"opacity":{"$ref":"#/components/schemas/stream_opacity"},"padding":{"$ref":"#/components/schemas/stream_padding"},"position":{"$ref":"#/components/schemas/stream_position"},"scale":{"$ref":"#/components/schemas/stream_scale"}},"required":["file"],"type":"object"},"stream_watermark_created":{"description":"The date and a time a watermark profile was created.","example":"2014-01-02T02:20:00Z","format":"date-time","type":"string"},"stream_watermark_identifier":{"description":"The unique identifier for a watermark profile.","example":"ea95132c15732412d22c1476fa83f27a","maxLength":32,"type":"string"},"stream_watermark_response_collection":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/stream_watermarks"},"type":"array"}}}]},"stream_watermark_response_single":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/stream_watermarks"}}}]},"stream_watermark_size":{"description":"The size of the image in bytes.","example":29472,"type":"number"},"stream_watermarks":{"properties":{"created":{"$ref":"#/components/schemas/stream_watermark_created"},"downloadedFrom":{"$ref":"#/components/schemas/stream_downloadedFrom"},"height":{"$ref":"#/components/schemas/stream_height"},"name":{"$ref":"#/components/schemas/stream_name"},"opacity":{"$ref":"#/components/schemas/stream_opacity"},"padding":{"$ref":"#/components/schemas/stream_padding"},"position":{"$ref":"#/components/schemas/stream_position"},"scale":{"$ref":"#/components/schemas/stream_scale"},"size":{"$ref":"#/components/schemas/stream_watermark_size"},"uid":{"$ref":"#/components/schemas/stream_watermark_identifier"},"width":{"$ref":"#/components/schemas/stream_width"}},"type":"object"},"stream_webhook_request":{"properties":{"notificationUrl":{"$ref":"#/components/schemas/stream_notificationUrl"}},"required":["notificationUrl"]},"stream_webhook_response_single":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-single"},{"properties":{"result":{"type":"object"}}}]},"stream_width":{"description":"The width of the image in pixels.","type":"integer"},"teams-devices_allow_mode_switch":{"description":"Whether to allow the user to switch WARP between modes.","example":true,"type":"boolean"},"teams-devices_allow_updates":{"description":"Whether to receive update notifications when a new version of the client is available.","example":true,"type":"boolean"},"teams-devices_allowed_to_leave":{"description":"Whether to allow devices to leave the organization.","example":true,"type":"boolean"},"teams-devices_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"},"result_info":{"$ref":"#/components/schemas/teams-devices_result_info"}}}],"type":"object"},"teams-devices_api-response-collection-common":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"}}}],"type":"object"},"teams-devices_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/teams-devices_messages"},"messages":{"$ref":"#/components/schemas/teams-devices_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful.","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"teams-devices_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/teams-devices_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/teams-devices_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"teams-devices_api-response-single":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-common"},{"properties":{"result":{"anyOf":[{"type":"object"},{"type":"string"}],"nullable":true,"type":"object"}}}],"type":"object"},"teams-devices_application_input_request":{"properties":{"operating_system":{"description":"Operating system","enum":["windows","linux","mac"],"example":"mac","type":"string"},"path":{"description":"Path for the application.","example":"/bin/cat","type":"string"},"sha256":{"description":"SHA-256.","example":"b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c","type":"string"},"thumbprint":{"description":"Signing certificate thumbprint.","example":"0aabab210bdb998e9cf45da2c9ce352977ab531c681b74cf1e487be1bbe9fe6e","type":"string"}},"required":["path","operating_system"],"title":"Application","type":"object"},"teams-devices_auto_connect":{"description":"The amount of time in minutes to reconnect after having been disabled.","example":0,"type":"number"},"teams-devices_captive_portal":{"description":"Turn on the captive portal after the specified amount of time.","example":180,"type":"number"},"teams-devices_carbonblack_input_request":{"properties":{"operating_system":{"description":"Operating system","enum":["windows","linux","mac"],"example":"mac","type":"string"},"path":{"description":"File path.","example":"/bin/cat","type":"string"},"sha256":{"description":"SHA-256.","example":"b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c","type":"string"},"thumbprint":{"description":"Signing certificate thumbprint.","example":"0aabab210bdb998e9cf45da2c9ce352977ab531c681b74cf1e487be1bbe9fe6e","type":"string"}},"required":["path","operating_system"],"title":"Carbonblack","type":"object"},"teams-devices_checkDisks":{"description":"List of volume names to be checked for encryption.","example":["C","D","G"],"items":{"type":"string"},"type":"array"},"teams-devices_client_certificate_input_request":{"properties":{"certificate_id":{"description":"UUID of Cloudflare managed certificate.","example":"b14ddcc4-bcd2-4df4-bd4f-eb27d5a50c30","maxLength":36,"type":"string"},"cn":{"description":"Common Name that is protected by the certificate","example":"example.com","type":"string"}},"required":["certificate_id","cn"],"title":"Client Certificate","type":"object"},"teams-devices_client_certificate_v2_input_request":{"properties":{"certificate_id":{"description":"UUID of Cloudflare managed certificate.","example":"b14ddcc4-bcd2-4df4-bd4f-eb27d5a50c30","maxLength":36,"type":"string"},"check_private_key":{"description":"Confirm the certificate was not imported from another device. We recommend keeping this enabled unless the certificate was deployed without a private key.","example":true,"type":"boolean"},"cn":{"description":"Common Name that is protected by the client certificate. This may include one or more variables in the ${ } notation. Only ${serial_number} and ${hostname} are valid variables.","example":"${hostname}.com.${serial_number}","type":"string"},"extended_key_usage":{"description":"List of values indicating purposes for which the certificate public key can be used","example":["clientAuth","emailProtection"],"items":{"$ref":"#/components/schemas/teams-devices_extended_key_usage_enum"},"type":"array"},"locations":{"properties":{"paths":{"$ref":"#/components/schemas/teams-devices_paths"},"trust_stores":{"$ref":"#/components/schemas/teams-devices_trust_stores"}},"type":"object"},"operating_system":{"description":"Operating System","enum":["windows","mac","linux"],"example":"windows","type":"string"}},"required":["certificate_id","check_private_key","operating_system"],"title":"Client Certificate V2","type":"object"},"teams-devices_components-schemas-name":{"description":"The name of the device posture integration.","example":"My Workspace One Integration","type":"string"},"teams-devices_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/teams-devices_device-managed-networks"},"type":"array"}}}]},"teams-devices_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/teams-devices_device-managed-networks"}}}]},"teams-devices_components-schemas-type":{"description":"The type of device managed network.","enum":["tls"],"example":"tls","type":"string"},"teams-devices_components-schemas-uuid":{"description":"UUID","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","maxLength":36,"readOnly":true,"type":"string"},"teams-devices_config_request":{"description":"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"},"oneOf":[{"$ref":"#/components/schemas/teams-devices_workspace_one_config_request"},{"$ref":"#/components/schemas/teams-devices_crowdstrike_config_request"},{"$ref":"#/components/schemas/teams-devices_uptycs_config_request"},{"$ref":"#/components/schemas/teams-devices_intune_config_request"},{"$ref":"#/components/schemas/teams-devices_kolide_config_request"},{"$ref":"#/components/schemas/teams-devices_tanium_config_request"},{"$ref":"#/components/schemas/teams-devices_sentinelone_s2s_config_request"},{"$ref":"#/components/schemas/teams-devices_custom_s2s_config_request"}],"type":"object"},"teams-devices_config_response":{"description":"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"},"oneOf":[{"$ref":"#/components/schemas/teams-devices_workspace_one_config_response"}],"type":"object"},"teams-devices_created":{"description":"When the device was created.","example":"2017-06-14T00:00:00Z","format":"date-time","type":"string"},"teams-devices_crowdstrike_config_request":{"properties":{"api_url":{"description":"The Crowdstrike API URL.","example":"https://api.us-2.crowdstrike.com","type":"string"},"client_id":{"description":"The Crowdstrike client ID.","example":"example client id","type":"string"},"client_secret":{"description":"The Crowdstrike client secret.","example":"example client secret","type":"string"},"customer_id":{"description":"The Crowdstrike customer ID.","example":"example customer id","type":"string"}},"required":["api_url","customer_id","client_id","client_secret"],"title":"Crowdstrike Config","type":"object"},"teams-devices_crowdstrike_input_request":{"properties":{"connection_id":{"description":"Posture Integration ID.","example":"bc7cbfbb-600a-42e4-8a23-45b5e85f804f","type":"string"},"last_seen":{"description":"For more details on last seen, please refer to the Crowdstrike documentation.","example":"15d3h20m4s","type":"string"},"operator":{"description":"Operator","enum":["\u003c","\u003c=","\u003e","\u003e=","=="],"example":"\u003e","type":"string"},"os":{"description":"Os Version","example":"13.3.0","type":"string"},"overall":{"description":"overall","example":90,"type":"string"},"sensor_config":{"description":"SensorConfig","example":90,"type":"string"},"state":{"description":"For more details on state, please refer to the Crowdstrike documentation.","enum":["online","offline","unknown"],"example":"online","type":"string"},"version":{"description":"Version","example":"13.3.0","type":"string"},"versionOperator":{"description":"Version Operator","enum":["\u003c","\u003c=","\u003e","\u003e=","=="],"example":"\u003e","type":"string"}},"required":["connection_id"],"title":"Crowdstrike S2S Input","type":"object"},"teams-devices_custom_s2s_config_request":{"properties":{"access_client_id":{"description":"This id will be passed in the `CF-Access-Client-ID` header when hitting the `api_url`","example":"88bf3b6d86161464f6509f7219099e57.access","type":"string"},"access_client_secret":{"description":"This secret will be passed in the `CF-Access-Client-Secret` header when hitting the `api_url`","example":"bdd31cbc4dec990953e39163fbbb194c93313ca9f0a6e420346af9d326b1d2a5","type":"string"},"api_url":{"description":"The Custom Device Posture Integration API URL.","example":"https://example.custom-s2s.com","type":"string"}},"required":["api_url","access_client_id","access_client_secret"],"title":"Custom Device Posture Integration Config","type":"object"},"teams-devices_custom_s2s_input_request":{"properties":{"connection_id":{"description":"Posture Integration ID.","example":"bc7cbfbb-600a-42e4-8a23-45b5e85f804f","type":"string"},"operator":{"description":"operator","enum":["\u003c","\u003c=","\u003e","\u003e=","=="],"example":"\u003e","type":"string"},"score":{"description":"A value between 0-100 assigned to devices set by the 3rd party posture provider.","example":100,"type":"number"}},"required":["connection_id","score","operator"],"title":"Custom Device Posture Integration Input","type":"object"},"teams-devices_default":{"description":"Whether the policy is the default policy for an account.","example":false,"type":"boolean"},"teams-devices_default_device_settings_policy":{"properties":{"allow_mode_switch":{"$ref":"#/components/schemas/teams-devices_allow_mode_switch"},"allow_updates":{"$ref":"#/components/schemas/teams-devices_allow_updates"},"allowed_to_leave":{"$ref":"#/components/schemas/teams-devices_allowed_to_leave"},"auto_connect":{"$ref":"#/components/schemas/teams-devices_auto_connect"},"captive_portal":{"$ref":"#/components/schemas/teams-devices_captive_portal"},"default":{"description":"Whether the policy will be applied to matching devices.","example":true,"type":"boolean"},"disable_auto_fallback":{"$ref":"#/components/schemas/teams-devices_disable_auto_fallback"},"enabled":{"description":"Whether the policy will be applied to matching devices.","example":true,"type":"boolean"},"exclude":{"$ref":"#/components/schemas/teams-devices_exclude"},"exclude_office_ips":{"$ref":"#/components/schemas/teams-devices_exclude_office_ips"},"fallback_domains":{"$ref":"#/components/schemas/teams-devices_fallback_domains"},"gateway_unique_id":{"$ref":"#/components/schemas/teams-devices_gateway_unique_id"},"include":{"$ref":"#/components/schemas/teams-devices_include"},"service_mode_v2":{"$ref":"#/components/schemas/teams-devices_service_mode_v2"},"support_url":{"$ref":"#/components/schemas/teams-devices_support_url"},"switch_locked":{"$ref":"#/components/schemas/teams-devices_switch_locked"},"tunnel_protocol":{"$ref":"#/components/schemas/teams-devices_tunnel_protocol"}},"type":"object"},"teams-devices_default_device_settings_response":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/teams-devices_default_device_settings_policy"}}}]},"teams-devices_deleted":{"description":"True if the device was deleted.","example":true,"type":"boolean"},"teams-devices_description":{"description":"The description of the device posture rule.","example":"The rule for admin serial numbers","type":"string"},"teams-devices_device-dex-test-schemas-data":{"description":"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"},"properties":{"host":{"description":"The desired endpoint to test.","example":"https://dash.cloudflare.com","type":"string"},"kind":{"description":"The type of test.","example":"http","type":"string"},"method":{"description":"The HTTP request method type.","example":"GET","type":"string"}},"type":"object"},"teams-devices_device-dex-test-schemas-description":{"description":"Additional details about the test.","example":"Checks the dash endpoint every 30 minutes","type":"string"},"teams-devices_device-dex-test-schemas-enabled":{"description":"Determines whether or not the test is active.","example":true,"type":"boolean"},"teams-devices_device-dex-test-schemas-http":{"properties":{"data":{"$ref":"#/components/schemas/teams-devices_device-dex-test-schemas-data"},"description":{"$ref":"#/components/schemas/teams-devices_device-dex-test-schemas-description"},"enabled":{"$ref":"#/components/schemas/teams-devices_device-dex-test-schemas-enabled"},"interval":{"$ref":"#/components/schemas/teams-devices_device-dex-test-schemas-interval"},"name":{"$ref":"#/components/schemas/teams-devices_device-dex-test-schemas-name"},"target_policies":{"$ref":"#/components/schemas/teams-devices_device-dex-test-target-policies"},"targeted":{"type":"boolean"}},"required":["name","interval","enabled","data"],"type":"object"},"teams-devices_device-dex-test-schemas-interval":{"description":"How often the test will run.","example":"30m","type":"string"},"teams-devices_device-dex-test-schemas-name":{"description":"The name of the DEX test. Must be unique.","example":"HTTP dash health check","type":"string"},"teams-devices_device-dex-test-target-policies":{"description":"Device settings profiles targeted by this test","items":{"$ref":"#/components/schemas/teams-devices_dex_target_policy"},"type":"array"},"teams-devices_device-managed-networks":{"properties":{"config":{"$ref":"#/components/schemas/teams-devices_schemas-config_response"},"name":{"$ref":"#/components/schemas/teams-devices_device-managed-networks_components-schemas-name"},"network_id":{"$ref":"#/components/schemas/teams-devices_uuid"},"type":{"$ref":"#/components/schemas/teams-devices_components-schemas-type"}},"type":"object"},"teams-devices_device-managed-networks_components-schemas-name":{"description":"The name of the device managed network. This name must be unique.","example":"managed-network-1","type":"string"},"teams-devices_device-posture-integrations":{"properties":{"config":{"$ref":"#/components/schemas/teams-devices_config_response"},"id":{"$ref":"#/components/schemas/teams-devices_uuid"},"interval":{"$ref":"#/components/schemas/teams-devices_interval"},"name":{"$ref":"#/components/schemas/teams-devices_components-schemas-name"},"type":{"$ref":"#/components/schemas/teams-devices_schemas-type"}},"type":"object"},"teams-devices_device-posture-rules":{"properties":{"description":{"$ref":"#/components/schemas/teams-devices_description"},"expiration":{"$ref":"#/components/schemas/teams-devices_expiration"},"id":{"$ref":"#/components/schemas/teams-devices_uuid"},"input":{"$ref":"#/components/schemas/teams-devices_input"},"match":{"$ref":"#/components/schemas/teams-devices_match"},"name":{"$ref":"#/components/schemas/teams-devices_name"},"schedule":{"$ref":"#/components/schemas/teams-devices_schedule"},"type":{"$ref":"#/components/schemas/teams-devices_type"}},"type":"object"},"teams-devices_device_response":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-single"},{"properties":{"result":{"type":"object"}}}]},"teams-devices_device_settings_policy":{"properties":{"allow_mode_switch":{"$ref":"#/components/schemas/teams-devices_allow_mode_switch"},"allow_updates":{"$ref":"#/components/schemas/teams-devices_allow_updates"},"allowed_to_leave":{"$ref":"#/components/schemas/teams-devices_allowed_to_leave"},"auto_connect":{"$ref":"#/components/schemas/teams-devices_auto_connect"},"captive_portal":{"$ref":"#/components/schemas/teams-devices_captive_portal"},"default":{"$ref":"#/components/schemas/teams-devices_default"},"description":{"$ref":"#/components/schemas/teams-devices_schemas-description"},"disable_auto_fallback":{"$ref":"#/components/schemas/teams-devices_disable_auto_fallback"},"enabled":{"description":"Whether the policy will be applied to matching devices.","example":true,"type":"boolean"},"exclude":{"$ref":"#/components/schemas/teams-devices_exclude"},"exclude_office_ips":{"$ref":"#/components/schemas/teams-devices_exclude_office_ips"},"fallback_domains":{"$ref":"#/components/schemas/teams-devices_fallback_domains"},"gateway_unique_id":{"$ref":"#/components/schemas/teams-devices_gateway_unique_id"},"include":{"$ref":"#/components/schemas/teams-devices_include"},"lan_allow_minutes":{"$ref":"#/components/schemas/teams-devices_lan_allow_minutes"},"lan_allow_subnet_size":{"$ref":"#/components/schemas/teams-devices_lan_allow_subnet_size"},"match":{"$ref":"#/components/schemas/teams-devices_schemas-match"},"name":{"description":"The name of the device settings profile.","example":"Allow Developers","maxLength":100,"type":"string"},"policy_id":{"$ref":"#/components/schemas/teams-devices_schemas-uuid"},"precedence":{"$ref":"#/components/schemas/teams-devices_precedence"},"service_mode_v2":{"$ref":"#/components/schemas/teams-devices_service_mode_v2"},"support_url":{"$ref":"#/components/schemas/teams-devices_support_url"},"switch_locked":{"$ref":"#/components/schemas/teams-devices_switch_locked"},"target_tests":{"items":{"$ref":"#/components/schemas/teams-devices_target_dex_test"},"type":"array"},"tunnel_protocol":{"$ref":"#/components/schemas/teams-devices_tunnel_protocol"}},"type":"object"},"teams-devices_device_settings_response":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/teams-devices_device_settings_policy"}}}]},"teams-devices_device_settings_response_collection":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/teams-devices_device_settings_policy"},"type":"array"}}}]},"teams-devices_devices":{"properties":{"created":{"$ref":"#/components/schemas/teams-devices_created"},"deleted":{"$ref":"#/components/schemas/teams-devices_deleted"},"device_type":{"$ref":"#/components/schemas/teams-devices_platform"},"id":{"$ref":"#/components/schemas/teams-devices_schemas-uuid"},"ip":{"$ref":"#/components/schemas/teams-devices_ip"},"key":{"$ref":"#/components/schemas/teams-devices_key"},"last_seen":{"$ref":"#/components/schemas/teams-devices_last_seen"},"mac_address":{"$ref":"#/components/schemas/teams-devices_mac_address"},"manufacturer":{"$ref":"#/components/schemas/teams-devices_manufacturer"},"model":{"$ref":"#/components/schemas/teams-devices_model"},"name":{"$ref":"#/components/schemas/teams-devices_schemas-name"},"os_distro_name":{"$ref":"#/components/schemas/teams-devices_os_distro_name"},"os_distro_revision":{"$ref":"#/components/schemas/teams-devices_os_distro_revision"},"os_version":{"$ref":"#/components/schemas/teams-devices_os_version"},"os_version_extra":{"$ref":"#/components/schemas/teams-devices_os_version_extra"},"revoked_at":{"$ref":"#/components/schemas/teams-devices_revoked_at"},"serial_number":{"$ref":"#/components/schemas/teams-devices_serial_number"},"updated":{"$ref":"#/components/schemas/teams-devices_updated"},"user":{"$ref":"#/components/schemas/teams-devices_user"},"version":{"$ref":"#/components/schemas/teams-devices_version"}},"type":"object"},"teams-devices_devices_policy_certificates":{"properties":{"enabled":{"description":"The current status of the device policy certificate provisioning feature for WARP clients.","example":true,"type":"boolean"}},"required":["enabled"],"type":"object"},"teams-devices_devices_policy_certificates_single":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-single"}]},"teams-devices_devices_response":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/teams-devices_devices"},"type":"array"}}}]},"teams-devices_dex-response_collection":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-collection-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/teams-devices_device-dex-test-schemas-http"},"type":"array"}}}]},"teams-devices_dex-single_response":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/teams-devices_device-dex-test-schemas-http"}}}]},"teams-devices_dex_target_policy":{"properties":{"default":{"description":"Whether the profile is the account default","type":"boolean"},"id":{"description":"The id of the device settings profile","type":"string"},"name":{"description":"The name of the device settings profile","type":"string"}},"type":"object"},"teams-devices_disable_auto_fallback":{"description":"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 to `true`.","example":true,"type":"boolean"},"teams-devices_disable_for_time":{"properties":{"1":{"description":"Override code that is valid for 1 hour.","example":"9106681"},"12":{"description":"Override code that is valid for 12 hour2.","example":"3424359"},"24":{"description":"Override code that is valid for 24 hour.2.","example":"2887634"},"3":{"description":"Override code that is valid for 3 hours.","example":"5356247"},"6":{"description":"Override code that is valid for 6 hours.","example":"9478972"}},"type":"object"},"teams-devices_disk_encryption_input_request":{"properties":{"checkDisks":{"$ref":"#/components/schemas/teams-devices_checkDisks"},"requireAll":{"$ref":"#/components/schemas/teams-devices_requireAll"}},"title":"Disk Encryption","type":"object"},"teams-devices_domain_joined_input_request":{"properties":{"domain":{"description":"Domain","example":"example.com","type":"string"},"operating_system":{"description":"Operating System","enum":["windows"],"example":"windows","type":"string"}},"required":["operating_system"],"title":"Domain Joined","type":"object"},"teams-devices_email":{"description":"The contact email address of the user.","example":"user@example.com","maxLength":90,"type":"string"},"teams-devices_exclude":{"items":{"$ref":"#/components/schemas/teams-devices_split_tunnel"},"type":"array"},"teams-devices_exclude_office_ips":{"description":"Whether to add Microsoft IPs to Split Tunnel exclusions.","example":true,"type":"boolean"},"teams-devices_expiration":{"description":"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","type":"string"},"teams-devices_extended_key_usage_enum":{"enum":["clientAuth","emailProtection"],"type":"string"},"teams-devices_fallback_domain":{"properties":{"description":{"description":"A description of the fallback domain, displayed in the client UI.","example":"Domain bypass for local development","maxLength":100,"type":"string"},"dns_server":{"description":"A list of IP addresses to handle domain resolution.","items":{"$ref":"#/components/schemas/teams-devices_ip"},"type":"array"},"suffix":{"description":"The domain suffix to match when resolving locally.","example":"example.com","type":"string"}},"required":["suffix"],"type":"object"},"teams-devices_fallback_domain_response_collection":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/teams-devices_fallback_domain"},"type":"array"}}}]},"teams-devices_fallback_domains":{"items":{"$ref":"#/components/schemas/teams-devices_fallback_domain"},"type":"array"},"teams-devices_file_input_request":{"properties":{"exists":{"description":"Whether or not file exists","example":true,"type":"boolean"},"operating_system":{"description":"Operating system","enum":["windows","linux","mac"],"example":"mac","type":"string"},"path":{"description":"File path.","example":"/bin/cat","type":"string"},"sha256":{"description":"SHA-256.","example":"https://api.us-2.crowdstrike.com","type":"string"},"thumbprint":{"description":"Signing certificate thumbprint.","example":"0aabab210bdb998e9cf45da2c9ce352977ab531c681b74cf1e487be1bbe9fe6e","type":"string"}},"required":["path","operating_system"],"title":"File Check","type":"object"},"teams-devices_firewall_input_request":{"properties":{"enabled":{"description":"Enabled","example":true,"type":"boolean"},"operating_system":{"description":"Operating System","enum":["windows","mac"],"example":"windows","type":"string"}},"required":["operating_system","enabled"],"title":"Firewall","type":"object"},"teams-devices_gateway_unique_id":{"example":"699d98642c564d2e855e9661899b7252","type":"string"},"teams-devices_id_response":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/teams-devices_uuid"}},"type":"object"}}}]},"teams-devices_identifier":{"example":"699d98642c564d2e855e9661899b7252"},"teams-devices_include":{"items":{"$ref":"#/components/schemas/teams-devices_split_tunnel_include"},"type":"array"},"teams-devices_input":{"description":"The value to be checked against.","example":{"operating_system":"linux","path":"/bin/cat","thumbprint":"0aabab210bdb998e9cf45da2c9ce352977ab531c681b74cf1e487be1bbe9fe6e"},"oneOf":[{"$ref":"#/components/schemas/teams-devices_file_input_request"},{"$ref":"#/components/schemas/teams-devices_unique_client_id_input_request"},{"$ref":"#/components/schemas/teams-devices_domain_joined_input_request"},{"$ref":"#/components/schemas/teams-devices_os_version_input_request"},{"$ref":"#/components/schemas/teams-devices_firewall_input_request"},{"$ref":"#/components/schemas/teams-devices_sentinelone_input_request"},{"$ref":"#/components/schemas/teams-devices_carbonblack_input_request"},{"$ref":"#/components/schemas/teams-devices_disk_encryption_input_request"},{"$ref":"#/components/schemas/teams-devices_application_input_request"},{"$ref":"#/components/schemas/teams-devices_client_certificate_input_request"},{"$ref":"#/components/schemas/teams-devices_client_certificate_v2_input_request"},{"$ref":"#/components/schemas/teams-devices_workspace_one_input_request"},{"$ref":"#/components/schemas/teams-devices_crowdstrike_input_request"},{"$ref":"#/components/schemas/teams-devices_intune_input_request"},{"$ref":"#/components/schemas/teams-devices_kolide_input_request"},{"$ref":"#/components/schemas/teams-devices_tanium_input_request"},{"$ref":"#/components/schemas/teams-devices_sentinelone_s2s_input_request"},{"$ref":"#/components/schemas/teams-devices_custom_s2s_input_request"}],"type":"object"},"teams-devices_interval":{"description":"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","type":"string"},"teams-devices_intune_config_request":{"properties":{"client_id":{"description":"The Intune client ID.","example":"example client id","type":"string"},"client_secret":{"description":"The Intune client secret.","example":"example client secret","type":"string"},"customer_id":{"description":"The Intune customer ID.","example":"example customer id","type":"string"}},"required":["customer_id","client_id","client_secret"],"title":"Intune Config","type":"object"},"teams-devices_intune_input_request":{"properties":{"compliance_status":{"description":"Compliance Status","enum":["compliant","noncompliant","unknown","notapplicable","ingraceperiod","error"],"example":"compliant","type":"string"},"connection_id":{"description":"Posture Integration ID.","example":"bc7cbfbb-600a-42e4-8a23-45b5e85f804f","type":"string"}},"required":["connection_id","compliance_status"],"title":"Intune S2S Input","type":"object"},"teams-devices_ip":{"description":"IPv4 or IPv6 address.","example":"1.1.1.1","type":"string"},"teams-devices_key":{"description":"The device's public key.","example":"yek0SUYoOQ10vMGsIYAevozXUQpQtNFJFfFGqER/BGc=","type":"string"},"teams-devices_kolide_config_request":{"properties":{"client_id":{"description":"The Kolide client ID.","example":"example client id","type":"string"},"client_secret":{"description":"The Kolide client secret.","example":"example client secret","type":"string"}},"required":["client_id","client_secret"],"title":"Kolide Config","type":"object"},"teams-devices_kolide_input_request":{"properties":{"connection_id":{"description":"Posture Integration ID.","example":"bc7cbfbb-600a-42e4-8a23-45b5e85f804f","type":"string"},"countOperator":{"description":"Count Operator","enum":["\u003c","\u003c=","\u003e","\u003e=","=="],"example":"\u003e","type":"string"},"issue_count":{"description":"The Number of Issues.","example":1,"type":"string"}},"required":["connection_id","countOperator","issue_count"],"title":"Kolide S2S Input","type":"object"},"teams-devices_lan_allow_minutes":{"description":"The amount of time in minutes a user is allowed access to their LAN. A value of 0 will allow LAN access until the next WARP reconnection, such as a reboot or a laptop waking from sleep. Note that this field is omitted from the response if null or unset.","example":30,"type":"number"},"teams-devices_lan_allow_subnet_size":{"description":"The size of the subnet for the local access network. Note that this field is omitted from the response if null or unset.","example":24,"type":"number"},"teams-devices_last_seen":{"description":"When the device last connected to Cloudflare services.","example":"2017-06-14T00:00:00Z","format":"date-time","type":"string"},"teams-devices_mac_address":{"description":"The device mac address.","example":"00-00-5E-00-53-00","type":"string"},"teams-devices_manufacturer":{"description":"The device manufacturer name.","example":"My phone corp","type":"string"},"teams-devices_match":{"description":"The conditions that the client must match to run the rule.","items":{"$ref":"#/components/schemas/teams-devices_match_item"},"type":"array"},"teams-devices_match_item":{"properties":{"platform":{"$ref":"#/components/schemas/teams-devices_platform"}},"type":"object"},"teams-devices_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"teams-devices_model":{"description":"The device model name.","example":"MyPhone(pro-X)","type":"string"},"teams-devices_name":{"description":"The name of the device posture rule.","example":"Admin Serial Numbers","type":"string"},"teams-devices_os_distro_name":{"description":"The Linux distro name.","example":"ubuntu","type":"string"},"teams-devices_os_distro_revision":{"description":"The Linux distro revision.","example":"1.0.0","type":"string"},"teams-devices_os_version":{"description":"The operating system version.","example":"10.0.0","type":"string"},"teams-devices_os_version_extra":{"description":"The operating system version extra parameter.","example":"(a)","type":"string"},"teams-devices_os_version_input_request":{"properties":{"operating_system":{"description":"Operating System","enum":["windows"],"example":"windows","type":"string"},"operator":{"description":"Operator","enum":["\u003c","\u003c=","\u003e","\u003e=","=="],"example":"13.3.0","type":"string"},"os_distro_name":{"description":"Operating System Distribution Name (linux only)","example":"ubuntu","type":"string"},"os_distro_revision":{"description":"Version of OS Distribution (linux only)","example":"11.3.1","type":"string"},"os_version_extra":{"description":"Additional version data. For Mac or iOS, the Product Verison Extra. For Linux, the kernel release version. (Mac, iOS, and Linux only)","example":"(a) or -1007","type":"string"},"version":{"description":"Version of OS","example":"13.3.0","type":"string"}},"required":["operating_system","version","operator"],"title":"OS Version","type":"object"},"teams-devices_override_codes_response":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-collection"},{"properties":{"result":{"properties":{"disable_for_time":{"$ref":"#/components/schemas/teams-devices_disable_for_time"}},"type":"object"}}}]},"teams-devices_paths":{"description":"List of paths to check for client certificate on linux.","example":["/path1","/path2"],"items":{"type":"string"},"type":"array"},"teams-devices_platform":{"enum":["windows","mac","linux","android","ios"],"example":"windows","type":"string"},"teams-devices_precedence":{"description":"The precedence of the policy. Lower values indicate higher precedence. Policies will be evaluated in ascending order of this field.","example":100,"type":"number"},"teams-devices_requireAll":{"description":"Whether to check all disks for encryption.","example":true,"type":"boolean"},"teams-devices_response_collection":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/teams-devices_device-posture-rules"},"type":"array"}}}]},"teams-devices_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"teams-devices_revoke_devices_request":{"description":"A list of device ids to revoke.","items":{"$ref":"#/components/schemas/teams-devices_schemas-uuid"},"maxLength":200,"type":"array"},"teams-devices_revoked_at":{"description":"When the device was revoked.","example":"2017-06-14T00:00:00Z","format":"date-time","type":"string"},"teams-devices_schedule":{"description":"Polling frequency for the WARP client posture check. Default: `5m` (poll every five minutes). Minimum: `1m`.","example":"1h","type":"string"},"teams-devices_schemas-config_request":{"description":"The configuration object containing information for the WARP client to detect the managed network.","example":{"sha256":"b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c","tls_sockaddr":"foo.bar:1234"},"oneOf":[{"$ref":"#/components/schemas/teams-devices_tls_config_request"}],"type":"object"},"teams-devices_schemas-config_response":{"description":"The configuration object containing information for the WARP client to detect the managed network.","example":{"sha256":"b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c","tls_sockaddr":"foo.bar:1234"},"oneOf":[{"$ref":"#/components/schemas/teams-devices_tls_config_response"}],"type":"object"},"teams-devices_schemas-description":{"description":"A description of the policy.","example":"Policy for test teams.","maxLength":500,"type":"string"},"teams-devices_schemas-id_response":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}}}]},"teams-devices_schemas-match":{"description":"The wirefilter expression to match devices.","example":"user.identity == \"test@cloudflare.com\"","maxLength":500,"type":"string"},"teams-devices_schemas-name":{"description":"The device name.","example":"My mobile device","type":"string"},"teams-devices_schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/teams-devices_device-posture-integrations"},"type":"array"}}}]},"teams-devices_schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/teams-devices_device-posture-integrations"}}}]},"teams-devices_schemas-type":{"description":"The type of device posture integration.","enum":["workspace_one","crowdstrike_s2s","uptycs","intune","kolide","tanium","sentinelone_s2s","custom_s2s"],"example":"workspace_one","type":"string"},"teams-devices_schemas-uuid":{"description":"Device ID.","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","maxLength":36,"type":"string"},"teams-devices_sentinelone_input_request":{"properties":{"operating_system":{"description":"Operating system","enum":["windows","linux","mac"],"example":"mac","type":"string"},"path":{"description":"File path.","example":"/bin/cat","type":"string"},"sha256":{"description":"SHA-256.","example":"b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c","type":"string"},"thumbprint":{"description":"Signing certificate thumbprint.","example":"0aabab210bdb998e9cf45da2c9ce352977ab531c681b74cf1e487be1bbe9fe6e","type":"string"}},"required":["path","operating_system"],"title":"Sentinelone","type":"object"},"teams-devices_sentinelone_s2s_config_request":{"properties":{"api_url":{"description":"The SentinelOne S2S API URL.","example":"https://example.sentinelone.net","type":"string"},"client_secret":{"description":"The SentinelOne S2S client secret.","example":"example client secret","type":"string"}},"required":["api_url","client_secret"],"title":"SentinelOne S2S Config","type":"object"},"teams-devices_sentinelone_s2s_input_request":{"properties":{"active_threats":{"description":"The Number of active threats.","example":1,"type":"number"},"connection_id":{"description":"Posture Integration ID.","example":"bc7cbfbb-600a-42e4-8a23-45b5e85f804f","type":"string"},"infected":{"description":"Whether device is infected.","example":true,"type":"boolean"},"is_active":{"description":"Whether device is active.","example":true,"type":"boolean"},"network_status":{"description":"Network status of device.","enum":["connected","disconnected","disconnecting","connecting"],"example":"connected","type":"string"},"operational_state":{"description":"Agent operational state.","enum":["na","partially_disabled","auto_fully_disabled","fully_disabled","auto_partially_disabled","disabled_error","db_corruption"],"type":"string"},"operator":{"description":"operator","enum":["\u003c","\u003c=","\u003e","\u003e=","=="],"example":"\u003e","type":"string"}},"required":["connection_id"],"title":"SentinelOne S2S Input","type":"object"},"teams-devices_serial_number":{"description":"The device serial number.","example":"EXAMPLEHMD6R","type":"string"},"teams-devices_service_mode_v2":{"properties":{"mode":{"description":"The mode to run the WARP client under.","example":"proxy","type":"string"},"port":{"description":"The port number when used with proxy mode.","example":3000,"type":"number"}},"type":"object"},"teams-devices_single_response":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/teams-devices_device-posture-rules"}}}]},"teams-devices_split_tunnel":{"properties":{"address":{"description":"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","type":"string"},"description":{"description":"A description of the Split Tunnel item, displayed in the client UI.","example":"Exclude testing domains from the tunnel","maxLength":100,"type":"string"},"host":{"description":"The domain name to exclude from the tunnel. If `host` is present, `address` must not be present.","example":"*.example.com","type":"string"}},"required":["address","description"],"type":"object"},"teams-devices_split_tunnel_include":{"properties":{"address":{"description":"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","type":"string"},"description":{"description":"A description of the split tunnel item, displayed in the client UI.","example":"Include testing domains from the tunnel","maxLength":100,"type":"string"},"host":{"description":"The domain name to include in the tunnel. If host is present, address must not be present.","example":"*.example.com","type":"string"}},"required":["address","description"],"type":"object"},"teams-devices_split_tunnel_include_response_collection":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/teams-devices_split_tunnel_include"},"type":"array"}}}]},"teams-devices_split_tunnel_response_collection":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/teams-devices_split_tunnel"},"type":"array"}}}]},"teams-devices_support_url":{"description":"The URL to launch when the Send Feedback button is clicked.","example":"https://1.1.1.1/help","type":"string"},"teams-devices_switch_locked":{"description":"Whether to allow the user to turn off the WARP switch and disconnect the client.","example":true,"type":"boolean"},"teams-devices_tanium_config_request":{"properties":{"access_client_id":{"description":"If present, this id will be passed in the `CF-Access-Client-ID` header when hitting the `api_url`","example":"88bf3b6d86161464f6509f7219099e57.access","type":"string"},"access_client_secret":{"description":"If present, this secret will be passed in the `CF-Access-Client-Secret` header when hitting the `api_url`","example":"bdd31cbc4dec990953e39163fbbb194c93313ca9f0a6e420346af9d326b1d2a5","type":"string"},"api_url":{"description":"The Tanium API URL.","example":"https://dummy-tanium-api.cloudflare.com/plugin/products/gateway/graphql","type":"string"},"client_secret":{"description":"The Tanium client secret.","example":"example client secret","type":"string"}},"required":["api_url","client_secret"],"title":"Tanium Config","type":"object"},"teams-devices_tanium_input_request":{"properties":{"connection_id":{"description":"Posture Integration ID.","example":"bc7cbfbb-600a-42e4-8a23-45b5e85f804f","type":"string"},"eid_last_seen":{"description":"For more details on eid last seen, refer to the Tanium documentation.","example":"2023-07-20T23:16:32Z","type":"string"},"operator":{"description":"Operator to evaluate risk_level or eid_last_seen.","enum":["\u003c","\u003c=","\u003e","\u003e=","=="],"example":"\u003e","type":"string"},"risk_level":{"description":"For more details on risk level, refer to the Tanium documentation.","enum":["low","medium","high","critical"],"example":"low","type":"string"},"scoreOperator":{"description":"Score Operator","enum":["\u003c","\u003c=","\u003e","\u003e=","=="],"example":"\u003e","type":"string"},"total_score":{"description":"For more details on total score, refer to the Tanium documentation.","example":1,"type":"number"}},"required":["connection_id"],"title":"Tanium S2S Input","type":"object"},"teams-devices_target_dex_test":{"properties":{"id":{"description":"The id of the DEX test targeting this policy","type":"string"},"name":{"description":"The name of the DEX test targeting this policy","type":"string"}},"type":"object"},"teams-devices_tls_config_request":{"properties":{"sha256":{"description":"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","type":"string"},"tls_sockaddr":{"description":"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","type":"string"}},"required":["tls_sockaddr"],"type":"object"},"teams-devices_tls_config_response":{"description":"The Managed Network TLS Config Response.","properties":{"sha256":{"description":"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","type":"string"},"tls_sockaddr":{"description":"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","type":"string"}},"required":["tls_sockaddr"],"type":"object"},"teams-devices_trust_stores":{"description":"List of trust stores to check for client certificate.","example":["system","user"],"items":{"$ref":"#/components/schemas/teams-devices_trust_stores_enum"},"type":"array"},"teams-devices_trust_stores_enum":{"enum":["system","user"],"type":"string"},"teams-devices_tunnel_protocol":{"description":"Determines which tunnel protocol to use.","example":"wireguard","type":"string"},"teams-devices_type":{"description":"The type of device posture rule.","enum":["file","application","tanium","gateway","warp","disk_encryption","sentinelone","carbonblack","firewall","os_version","domain_joined","client_certificate","client_certificate_v2","unique_client_id","kolide","tanium_s2s","crowdstrike_s2s","intune","workspace_one","sentinelone_s2s","custom_s2s"],"example":"file","type":"string"},"teams-devices_unique_client_id_input_request":{"properties":{"id":{"description":"List ID.","example":"da3de859-8f6e-47ea-a2b5-b2433858471f","type":"string"},"operating_system":{"description":"Operating System","enum":["android","ios","chromeos"],"example":"android","type":"string"}},"required":["operating_system","id"],"title":"Unique Client ID","type":"object"},"teams-devices_unrevoke_devices_request":{"description":"A list of device ids to unrevoke.","items":{"$ref":"#/components/schemas/teams-devices_schemas-uuid"},"maxLength":200,"type":"array"},"teams-devices_updated":{"description":"When the device was updated.","example":"2017-06-14T00:00:00Z","format":"date-time","type":"string"},"teams-devices_uptycs_config_request":{"properties":{"api_url":{"description":"The Uptycs API URL.","example":"rnd.uptycs.io","type":"string"},"client_key":{"description":"The Uptycs client secret.","example":"example client key","type":"string"},"client_secret":{"description":"The Uptycs client secret.","example":"example client secret","type":"string"},"customer_id":{"description":"The Uptycs customer ID.","example":"example customer id","type":"string"}},"required":["api_url","client_key","customer_id","client_secret"],"title":"Uptycs Config","type":"object"},"teams-devices_user":{"properties":{"email":{"$ref":"#/components/schemas/teams-devices_email"},"id":{"$ref":"#/components/schemas/teams-devices_components-schemas-uuid"},"name":{"description":"The enrolled device user's name.","example":"John Appleseed","type":"string"}},"type":"object"},"teams-devices_uuid":{"description":"API UUID.","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","maxLength":36,"type":"string"},"teams-devices_version":{"description":"The WARP client version.","example":"1.0.0","type":"string"},"teams-devices_workspace_one_config_request":{"properties":{"api_url":{"description":"The Workspace One API URL provided in the Workspace One Admin Dashboard.","example":"https://as123.awmdm.com/API","type":"string"},"auth_url":{"description":"The Workspace One Authorization URL depending on your region.","example":"https://na.uemauth.vmwservices.com/connect/token","type":"string"},"client_id":{"description":"The Workspace One client ID provided in the Workspace One Admin Dashboard.","example":"example client id","type":"string"},"client_secret":{"description":"The Workspace One client secret provided in the Workspace One Admin Dashboard.","example":"example client secret","type":"string"}},"required":["api_url","auth_url","client_id","client_secret"],"title":"Workspace One Config","type":"object"},"teams-devices_workspace_one_config_response":{"description":"The Workspace One Config Response.","properties":{"api_url":{"description":"The Workspace One API URL provided in the Workspace One Admin Dashboard.","example":"https://as123.awmdm.com/API","type":"string"},"auth_url":{"description":"The Workspace One Authorization URL depending on your region.","example":"https://na.uemauth.vmwservices.com/connect/token","type":"string"},"client_id":{"description":"The Workspace One client ID provided in the Workspace One Admin Dashboard.","example":"example client id","type":"string"}},"required":["api_url","auth_url","client_id"],"type":"object"},"teams-devices_workspace_one_input_request":{"properties":{"compliance_status":{"description":"Compliance Status","enum":["compliant","noncompliant","unknown"],"example":"compliant","type":"string"},"connection_id":{"description":"Posture Integration ID.","example":"bc7cbfbb-600a-42e4-8a23-45b5e85f804f","type":"string"}},"required":["connection_id","compliance_status"],"title":"Workspace One S2S Input","type":"object"},"teams-devices_zero-trust-account-device-settings":{"properties":{"disable_for_time":{"description":"Sets the time limit, in seconds, that a user can use an override code to bypass WARP.","type":"number"},"gateway_proxy_enabled":{"description":"Enable gateway proxy filtering on TCP.","example":true,"type":"boolean"},"gateway_udp_proxy_enabled":{"description":"Enable gateway proxy filtering on UDP.","example":true,"type":"boolean"},"root_certificate_installation_enabled":{"description":"Enable installation of cloudflare managed root certificate.","example":true,"type":"boolean"},"use_zt_virtual_ip":{"description":"Enable using CGNAT virtual IPv4.","example":true,"type":"boolean"}},"type":"object"},"teams-devices_zero-trust-account-device-settings-response":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/teams-devices_zero-trust-account-device-settings"}}}],"type":"object"},"tls-certificates-and-hostnames_advanced_certificate_pack_response_single":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"properties":{"certificate_authority":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-certificate_authority"},"cloudflare_branding":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_cloudflare_branding"},"hosts":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-hosts"},"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"},"status":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate-packs_components-schemas-status"},"type":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_advanced_type"},"validation_method":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_validation_method"},"validity_days":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_validity_days"}},"type":"object"}},"type":"object"}]},"tls-certificates-and-hostnames_advanced_type":{"description":"Type of certificate pack.","enum":["advanced"],"example":"advanced","type":"string"},"tls-certificates-and-hostnames_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_result_info"}}}],"type":"object"},"tls-certificates-and-hostnames_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_messages"},"messages":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"tls-certificates-and-hostnames_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"tls-certificates-and-hostnames_api-response-single":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common"}],"type":"object"},"tls-certificates-and-hostnames_associationObject":{"properties":{"service":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_service"},"status":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_mtls-management_components-schemas-status"}}},"tls-certificates-and-hostnames_association_response_collection":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_associationObject"},"type":"array"}}}]},"tls-certificates-and-hostnames_base":{"properties":{"created_on":{"description":"When the Keyless SSL was created.","example":"2014-01-01T05:20:00Z","format":"date-time","readOnly":true,"type":"string"},"enabled":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_enabled"},"host":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_host"},"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-identifier"},"modified_on":{"description":"When the Keyless SSL was last modified.","example":"2014-01-01T05:20:00Z","format":"date-time","readOnly":true,"type":"string"},"name":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_name"},"permissions":{"description":"Available permissions for the Keyless SSL for the current user requesting the item.","example":["#ssl:read","#ssl:edit"],"items":{"type":"string"},"readOnly":true,"type":"array"},"port":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_port"},"status":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-status"},"tunnel":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_keyless_tunnel"}},"required":["id","name","host","port","status","enabled","permissions","created_on","modified_on"],"type":"object"},"tls-certificates-and-hostnames_brand_check":{"description":"Certificate Authority is manually reviewing the order.","example":false,"type":"boolean"},"tls-certificates-and-hostnames_bundle_method":{"default":"ubiquitous","description":"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.","enum":["ubiquitous","optimal","force"],"example":"ubiquitous","type":"string"},"tls-certificates-and-hostnames_ca":{"description":"Indicates whether the certificate is a CA or leaf certificate.","example":true,"type":"boolean"},"tls-certificates-and-hostnames_cert_id":{"description":"Certificate identifier tag.","example":"2458ce5a-0c35-4c7f-82c7-8e9487d3ff60","maxLength":36,"type":"string"},"tls-certificates-and-hostnames_cert_pack_uuid":{"description":"Certificate Pack UUID.","example":"a77f8bd7-3b47-46b4-a6f1-75cf98109948","type":"string"},"tls-certificates-and-hostnames_certificate":{"description":"The zone's SSL certificate or certificate and the intermediate(s).","example":"-----BEGIN CERTIFICATE-----\nMIIDtTCCAp2gAwIBAgIJAMHAwfXZ5/PWMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTYwODI0MTY0MzAxWhcNMTYxMTIyMTY0MzAxWjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEAwQHoetcl9+5ikGzV6cMzWtWPJHqXT3wpbEkRU9Yz7lgvddmGdtcGbg/1\nCGZu0jJGkMoppoUo4c3dts3iwqRYmBikUP77wwY2QGmDZw2FvkJCJlKnabIRuGvB\nKwzESIXgKk2016aTP6/dAjEHyo6SeoK8lkIySUvK0fyOVlsiEsCmOpidtnKX/a+5\n0GjB79CJH4ER2lLVZnhePFR/zUOyPxZQQ4naHf7yu/b5jhO0f8fwt+pyFxIXjbEI\ndZliWRkRMtzrHOJIhrmJ2A1J7iOrirbbwillwjjNVUWPf3IJ3M12S9pEewooaeO2\nizNTERcG9HzAacbVRn2Y2SWIyT/18QIDAQABo4GnMIGkMB0GA1UdDgQWBBT/LbE4\n9rWf288N6sJA5BRb6FJIGDB1BgNVHSMEbjBsgBT/LbE49rWf288N6sJA5BRb6FJI\nGKFJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV\nBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAMHAwfXZ5/PWMAwGA1UdEwQF\nMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAHHFwl0tH0quUYZYO0dZYt4R7SJ0pCm2\n2satiyzHl4OnXcHDpekAo7/a09c6Lz6AU83cKy/+x3/djYHXWba7HpEu0dR3ugQP\nMlr4zrhd9xKZ0KZKiYmtJH+ak4OM4L3FbT0owUZPyjLSlhMtJVcoRp5CJsjAMBUG\nSvD8RX+T01wzox/Qb+lnnNnOlaWpqu8eoOenybxKp1a9ULzIVvN/LAcc+14vioFq\n2swRWtmocBAs8QR9n4uvbpiYvS8eYueDCWMM4fvFfBhaDZ3N9IbtySh3SpFdQDhw\nYbjM2rxXiyLGxB4Bol7QTv4zHif7Zt89FReT/NBy4rzaskDJY5L6xmY=\n-----END CERTIFICATE-----\n","type":"string"},"tls-certificates-and-hostnames_certificate-packs_components-schemas-status":{"description":"Status of certificate pack.","enum":["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"],"example":"initializing","type":"string"},"tls-certificates-and-hostnames_certificateObject":{"properties":{"certificate":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_zone-authenticated-origin-pull_components-schemas-certificate"},"expires_on":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-expires_on"},"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"},"issuer":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_issuer"},"signature":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_signature"},"status":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_zone-authenticated-origin-pull_components-schemas-status"},"uploaded_on":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-uploaded_on"}}},"tls-certificates-and-hostnames_certificateObjectPost":{"properties":{"ca":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_ca"},"certificates":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-certificates"},"expires_on":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_mtls-management_components-schemas-expires_on"},"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"},"issuer":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-issuer"},"name":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-name"},"serial_number":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-serial_number"},"signature":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_signature"},"updated_at":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-updated_at"},"uploaded_on":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_mtls-management_components-schemas-uploaded_on"}}},"tls-certificates-and-hostnames_certificate_analyze_response":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"type":"object"}}}]},"tls-certificates-and-hostnames_certificate_authority":{"description":"The Certificate Authority that will issue the certificate","enum":["digicert","google","lets_encrypt","ssl_com"],"example":"google","type":"string"},"tls-certificates-and-hostnames_certificate_pack_quota_response":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"properties":{"advanced":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_quota"}},"type":"object"}},"type":"object"}]},"tls-certificates-and-hostnames_certificate_pack_response_collection":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-collection"},{"properties":{"result":{"items":{"type":"object"},"type":"array"}}}]},"tls-certificates-and-hostnames_certificate_pack_response_single":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"type":"object"}},"type":"object"}]},"tls-certificates-and-hostnames_certificate_response_collection":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom-certificate"},"type":"array"}}}]},"tls-certificates-and-hostnames_certificate_response_id_only":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},"type":"object"}}}]},"tls-certificates-and-hostnames_certificate_response_single":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom-certificate"}}}]},"tls-certificates-and-hostnames_certificate_response_single_post":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificateObjectPost"}],"type":"object"}}}]},"tls-certificates-and-hostnames_certificate_revoke_response":{"allOf":[{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"},"revoked_at":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_revoked_at"}}}},"type":"object"}]},"tls-certificates-and-hostnames_certificate_status":{"description":"Current status of certificate.","enum":["initializing","authorizing","active","expired","issuing","timing_out","pending_deployment"],"example":"active","type":"string"},"tls-certificates-and-hostnames_certificates":{"properties":{"certificate":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-certificate"},"csr":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_csr"},"expires_on":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-expires_on"},"hostnames":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostnames"},"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"},"request_type":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_request_type"},"requested_validity":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_requested_validity"}},"required":["hostnames","csr","requested_validity","request_type"],"type":"object"},"tls-certificates-and-hostnames_client-certificates_components-schemas-certificate":{"description":"The Client Certificate PEM","example":"-----BEGIN CERTIFICATE-----\\nMIIDmDCCAoC...dhDDE\\n-----END CERTIFICATE-----","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_client-certificates_components-schemas-certificate_authority":{"description":"Certificate Authority used to issue the Client Certificate","properties":{"id":{"example":"568b6b74-7b0c-4755-8840-4e3b8c24adeb","type":"string"},"name":{"example":"Cloudflare Managed CA for account","type":"string"}},"type":"object"},"tls-certificates-and-hostnames_client-certificates_components-schemas-status":{"description":"Client Certificates may be active or revoked, and the pending_reactivation or pending_revocation represent in-progress asynchronous transitions","enum":["active","pending_reactivation","pending_revocation","revoked"],"example":"active"},"tls-certificates-and-hostnames_client_certificate":{"properties":{"certificate":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_client-certificates_components-schemas-certificate"},"certificate_authority":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_client-certificates_components-schemas-certificate_authority"},"common_name":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_common_name"},"country":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_country"},"csr":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-csr"},"expires_on":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_expired_on"},"fingerprint_sha256":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_fingerprint_sha256"},"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"},"issued_on":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_issued_on"},"location":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_location"},"organization":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_organization"},"organizational_unit":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_organizational_unit"},"serial_number":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-serial_number"},"signature":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-signature"},"ski":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_ski"},"state":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_state"},"status":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_client-certificates_components-schemas-status"},"validity_days":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-validity_days"}}},"tls-certificates-and-hostnames_client_certificate_response_collection":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_client_certificate"},"type":"array"}}}]},"tls-certificates-and-hostnames_client_certificate_response_single":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_client_certificate"}}}]},"tls-certificates-and-hostnames_cloudflare_branding":{"description":"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,"type":"boolean"},"tls-certificates-and-hostnames_common_name":{"description":"Common Name of the Client Certificate","example":"Cloudflare","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_components-schemas-certificate":{"description":"The Origin CA certificate. Will be newline-encoded.","example":"-----BEGIN CERTIFICATE-----\nMIICvDCCAaQCAQAwdzELMAkGA1UEBhMCVVMxDTALBgNVBAgMBFV0YWgxDzANBgNV\nBAcMBkxpbmRvbjEWMBQGA1UECgwNRGlnaUNlcnQgSW5jLjERMA8GA1UECwwIRGln\naUNlcnQxHTAbBgNVBAMMFGV4YW1wbGUuZGlnaWNlcnQuY29tMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8+To7d+2kPWeBv/orU3LVbJwDrSQbeKamCmo\nwp5bqDxIwV20zqRb7APUOKYoVEFFOEQs6T6gImnIolhbiH6m4zgZ/CPvWBOkZc+c\n1Po2EmvBz+AD5sBdT5kzGQA6NbWyZGldxRthNLOs1efOhdnWFuhI162qmcflgpiI\nWDuwq4C9f+YkeJhNn9dF5+owm8cOQmDrV8NNdiTqin8q3qYAHHJRW28glJUCZkTZ\nwIaSR6crBQ8TbYNE0dc+Caa3DOIkz1EOsHWzTx+n0zKfqcbgXi4DJx+C1bjptYPR\nBPZL8DAeWuA8ebudVT44yEp82G96/Ggcf7F33xMxe0yc+Xa6owIDAQABoAAwDQYJ\nKoZIhvcNAQEFBQADggEBAB0kcrFccSmFDmxox0Ne01UIqSsDqHgL+XmHTXJwre6D\nhJSZwbvEtOK0G3+dr4Fs11WuUNt5qcLsx5a8uk4G6AKHMzuhLsJ7XZjgmQXGECpY\nQ4mC3yT3ZoCGpIXbw+iP3lmEEXgaQL0Tx5LFl/okKbKYwIqNiyKWOMj7ZR/wxWg/\nZDGRs55xuoeLDJ/ZRFf9bI+IaCUd1YrfYcHIl3G87Av+r49YVwqRDT0VDV7uLgqn\n29XI1PpVUNCPQGn9p/eX6Qo7vpDaPybRtA2R7XLKjQaF9oXWeCUqy1hvJac9QFO2\n97Ob1alpHPoZ7mWiEuJwjBPii6a9M9G30nUo39lBi1w=\n-----END CERTIFICATE-----","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_components-schemas-certificateObject":{"properties":{"ca":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_ca"},"certificates":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-certificates"},"expires_on":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_mtls-management_components-schemas-expires_on"},"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"},"issuer":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-issuer"},"name":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-name"},"serial_number":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-serial_number"},"signature":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_signature"},"uploaded_on":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_mtls-management_components-schemas-uploaded_on"}}},"tls-certificates-and-hostnames_components-schemas-certificate_authority":{"description":"The Certificate Authority that Total TLS certificates will be issued through.","enum":["google","lets_encrypt","ssl_com"],"example":"google","type":"string"},"tls-certificates-and-hostnames_components-schemas-certificate_response_collection":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_zone-authenticated-origin-pull"},"type":"array"}}}]},"tls-certificates-and-hostnames_components-schemas-certificate_response_single":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_zone-authenticated-origin-pull"}}}]},"tls-certificates-and-hostnames_components-schemas-created_at":{"description":"The time when the certificate was created.","example":"2100-01-01T05:20:00Z","format":"date-time","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_components-schemas-enabled":{"description":"If enabled, Total TLS will order a hostname specific TLS certificate for any proxied A, AAAA, or CNAME record in your zone.","example":true,"type":"boolean"},"tls-certificates-and-hostnames_components-schemas-expires_on":{"description":"When the certificate from the authority expires.","example":"2100-01-01T05:20:00Z","format":"date-time","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_components-schemas-hostname":{"description":"The hostname for which the tls settings are set.","example":"app.example.com","type":"string"},"tls-certificates-and-hostnames_components-schemas-private_key":{"description":"The private key for the certificate","example":"-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDEXDkcICRU3XBv9hiiPnBWIjgTQyowmVFxDr11mONgZB/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=\n-----END PRIVATE KEY-----","type":"string"},"tls-certificates-and-hostnames_components-schemas-serial_number":{"description":"The serial number on the created Client Certificate.","example":"3bb94ff144ac567b9f75ad664b6c55f8d5e48182","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_components-schemas-signature":{"description":"The type of hash used for the Client Certificate..","example":"SHA256WithRSA","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_components-schemas-status":{"description":"Status of the hostname's activation.","enum":["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"],"example":"pending"},"tls-certificates-and-hostnames_components-schemas-updated_at":{"description":"This is the time the certificate was updated.","example":"2022-11-22T17:32:30.467938Z","format":"date-time","type":"string"},"tls-certificates-and-hostnames_components-schemas-uploaded_on":{"description":"The time when the certificate was uploaded.","example":"2019-10-28T18:11:23.37411Z","format":"date-time","type":"string"},"tls-certificates-and-hostnames_components-schemas-validation_method":{"properties":{"validation_method":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_validation_method_definition"}},"required":["validation_method"],"type":"object"},"tls-certificates-and-hostnames_config":{"items":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname_certid_input"},"type":"array"},"tls-certificates-and-hostnames_country":{"description":"Country, provided by the CSR","example":"US","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_created_at":{"description":"This is the time the hostname was created.","example":"2020-02-06T18:11:23.531995Z","format":"date-time","type":"string"},"tls-certificates-and-hostnames_csr":{"description":"The Certificate Signing Request (CSR). Must be newline-encoded.","example":"-----BEGIN CERTIFICATE REQUEST-----\nMIICxzCCAa8CAQAwSDELMAkGA1UEBhMCVVMxFjAUBgNVBAgTDVNhbiBGcmFuY2lz\nY28xCzAJBgNVBAcTAkNBMRQwEgYDVQQDEwtleGFtcGxlLm5ldDCCASIwDQYJKoZI\nhvcNAQEBBQADggEPADCCAQoCggEBALxejtu4b+jPdFeFi6OUsye8TYJQBm3WfCvL\nHu5EvijMO/4Z2TImwASbwUF7Ir8OLgH+mGlQZeqyNvGoSOMEaZVXcYfpR1hlVak8\n4GGVr+04IGfOCqaBokaBFIwzclGZbzKmLGwIQioNxGfqFm6RGYGA3be2Je2iseBc\nN8GV1wYmvYE0RR+yWweJCTJ157exyRzu7sVxaEW9F87zBQLyOnwXc64rflXslRqi\ng7F7w5IaQYOl8yvmk/jEPCAha7fkiUfEpj4N12+oPRiMvleJF98chxjD4MH39c5I\nuOslULhrWunfh7GB1jwWNA9y44H0snrf+xvoy2TcHmxvma9Eln8CAwEAAaA6MDgG\nCSqGSIb3DQEJDjErMCkwJwYDVR0RBCAwHoILZXhhbXBsZS5uZXSCD3d3dy5leGFt\ncGxlLm5ldDANBgkqhkiG9w0BAQsFAAOCAQEAcBaX6dOnI8ncARrI9ZSF2AJX+8mx\npTHY2+Y2C0VvrVDGMtbBRH8R9yMbqWtlxeeNGf//LeMkSKSFa4kbpdx226lfui8/\nauRDBTJGx2R1ccUxmLZXx4my0W5iIMxunu+kez+BDlu7bTT2io0uXMRHue4i6quH\nyc5ibxvbJMjR7dqbcanVE10/34oprzXQsJ/VmSuZNXtjbtSKDlmcpw6To/eeAJ+J\nhXykcUihvHyG4A1m2R6qpANBjnA0pHexfwM/SgfzvpbvUg0T1ubmer8BgTwCKIWs\ndcWYTthM51JIqRBfNqy4QcBnX+GY05yltEEswQI55wdiS3CjTTA67sdbcQ==\n-----END CERTIFICATE REQUEST-----","type":"string"},"tls-certificates-and-hostnames_custom-certificate":{"properties":{"bundle_method":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_bundle_method"},"expires_on":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_expires_on"},"geo_restrictions":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_geo_restrictions"},"hosts":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hosts"},"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"},"issuer":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_issuer"},"keyless_server":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_keyless-certificate"},"modified_on":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_modified_on"},"policy":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_policy"},"priority":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_priority"},"signature":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_signature"},"status":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_status"},"uploaded_on":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_uploaded_on"},"zone_id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},"required":["id","hosts","issuer","signature","status","bundle_method","zone_id","uploaded_on","modified_on","expires_on","priority"],"type":"object"},"tls-certificates-and-hostnames_custom-hostname":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_customhostname"}],"properties":{"hostname":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname"},"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"},"ssl":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_ssl"}},"required":["id","hostname","ssl"],"type":"object"},"tls-certificates-and-hostnames_custom-hostname-fallback-origin_components-schemas-status":{"description":"Status of the fallback origin's activation.","enum":["initializing","pending_deployment","pending_deletion","active","deployment_timed_out","deletion_timed_out"],"example":"pending_deployment"},"tls-certificates-and-hostnames_custom_hostname_response_collection":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom-hostname"},"type":"array"}}}]},"tls-certificates-and-hostnames_custom_hostname_response_single":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom-hostname"}],"type":"object"}}}]},"tls-certificates-and-hostnames_custom_metadata":{"additionalProperties":{"type":"string"},"description":"Unique key/value metadata for this hostname. These are per-hostname (customer) settings.","type":"object"},"tls-certificates-and-hostnames_custom_origin_server":{"description":"a valid hostname that’s been added to your DNS zone as an A, AAAA, or CNAME record.","example":"origin2.example.com","type":"string"},"tls-certificates-and-hostnames_custom_origin_sni":{"description":"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","type":"string"},"tls-certificates-and-hostnames_customhostname":{"properties":{"created_at":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_created_at"},"custom_metadata":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom_metadata"},"custom_origin_server":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom_origin_server"},"custom_origin_sni":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom_origin_sni"},"hostname":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname"},"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"},"ownership_verification":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_ownership_verification"},"ownership_verification_http":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_ownership_verification_http"},"ssl":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_ssl"},"status":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-status"},"verification_errors":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_verification_errors"}}},"tls-certificates-and-hostnames_dcv_delegation_response":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_uuidObject"}],"type":"object"}}}]},"tls-certificates-and-hostnames_delete_advanced_certificate_pack_response_single":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},"type":"object"}},"type":"object"}]},"tls-certificates-and-hostnames_enabled":{"description":"Whether or not the Keyless SSL is on or off.","example":false,"readOnly":true,"type":"boolean"},"tls-certificates-and-hostnames_enabled_response":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"properties":{"enabled":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_zone-authenticated-origin-pull_components-schemas-enabled"}}}}}]},"tls-certificates-and-hostnames_enabled_write":{"deprecated":true,"description":"Whether or not the Keyless SSL is on or off.","example":false,"type":"boolean"},"tls-certificates-and-hostnames_errors":{"description":"These are errors that were encountered while trying to activate a fallback origin.","example":["DNS records are not setup correctly. Origin should be a proxied A/AAAA/CNAME dns record"],"items":{"type":"string"},"type":"array"},"tls-certificates-and-hostnames_expired_on":{"description":"Date that the Client Certificate expires","example":"2033-02-20T23:18:00Z","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_expires_on":{"description":"When the certificate from the authority expires.","example":"2016-01-01T05:20:00Z","format":"date-time","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_fallback_origin_response":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_fallbackorigin"}}}]},"tls-certificates-and-hostnames_fallbackorigin":{"properties":{"created_at":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-created_at"},"errors":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_errors"},"origin":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_origin"},"status":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom-hostname-fallback-origin_components-schemas-status"},"updated_at":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_updated_at"}}},"tls-certificates-and-hostnames_fingerprint_sha256":{"description":"Unique identifier of the Client Certificate","example":"256c24690243359fb8cf139a125bd05ebf1d968b71e4caf330718e9f5c8a89ea","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_geo_restrictions":{"description":"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.","properties":{"label":{"enum":["us","eu","highest_security"],"example":"us"}},"type":"object"},"tls-certificates-and-hostnames_host":{"description":"The keyless SSL name.","example":"example.com","format":"hostname","maxLength":253,"type":"string"},"tls-certificates-and-hostnames_hostname":{"description":"The custom hostname that will point to your hostname via CNAME.","example":"app.example.com","maxLength":255,"readOnly":true,"type":"string"},"tls-certificates-and-hostnames_hostname-authenticated-origin-pull":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname_certid_object"}],"properties":{"cert_id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"},"certificate":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-certificate"},"enabled":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-enabled"},"hostname":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-hostname"},"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"},"private_key":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-private_key"}},"type":"object"},"tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-certificate":{"description":"The hostname certificate.","example":"-----BEGIN CERTIFICATE-----\nMIIDtTCCAp2gAwIBAgIJAMHAwfXZ5/PWMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTYwODI0MTY0MzAxWhcNMTYxMTIyMTY0MzAxWjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEAwQHoetcl9+5ikGzV6cMzWtWPJHqXT3wpbEkRU9Yz7lgvddmGdtcGbg/1\nCGZu0jJGkMoppoUo4c3dts3iwqRYmBikUP77wwY2QGmDZw2FvkJCJlKnabIRuGvB\nKwzESIXgKk2016aTP6/dAjEHyo6SeoK8lkIySUvK0fyOVlsiEsCmOpidtnKX/a+5\n0GjB79CJH4ER2lLVZnhePFR/zUOyPxZQQ4naHf7yu/b5jhO0f8fwt+pyFxIXjbEI\ndZliWRkRMtzrHOJIhrmJ2A1J7iOrirbbwillwjjNVUWPf3IJ3M12S9pEewooaeO2\nizNTERcG9HzAacbVRn2Y2SWIyT/18QIDAQABo4GnMIGkMB0GA1UdDgQWBBT/LbE4\n9rWf288N6sJA5BRb6FJIGDB1BgNVHSMEbjBsgBT/LbE49rWf288N6sJA5BRb6FJI\nGKFJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV\nBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAMHAwfXZ5/PWMAwGA1UdEwQF\nMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAHHFwl0tH0quUYZYO0dZYt4R7SJ0pCm2\n2satiyzHl4OnXcHDpekAo7/a09c6Lz6AU83cKy/+x3/djYHXWba7HpEu0dR3ugQP\nMlr4zrhd9xKZ0KZKiYmtJH+ak4OM4L3FbT0owUZPyjLSlhMtJVcoRp5CJsjAMBUG\nSvD8RX+T01wzox/Qb+lnnNnOlaWpqu8eoOenybxKp1a9ULzIVvN/LAcc+14vioFq\n2swRWtmocBAs8QR9n4uvbpiYvS8eYueDCWMM4fvFfBhaDZ3N9IbtySh3SpFdQDhw\nYbjM2rxXiyLGxB4Bol7QTv4zHif7Zt89FReT/NBy4rzaskDJY5L6xmY=\n-----END CERTIFICATE-----\n","type":"string"},"tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-certificate_response_collection":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull"},"type":"array"}}}]},"tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-certificate_response_single":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-certificateObject"}}}]},"tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-enabled":{"description":"Indicates whether hostname-level authenticated origin pulls is enabled. A null value voids the association.","example":true,"nullable":true,"type":"boolean"},"tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-expires_on":{"description":"The date when the certificate expires.","example":"2100-01-01T05:20:00Z","format":"date-time","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-status":{"description":"Status of the certificate or the association.","enum":["initializing","pending_deployment","pending_deletion","active","deleted","deployment_timed_out","deletion_timed_out"],"example":"active","readOnly":true},"tls-certificates-and-hostnames_hostname-tls-settings_components-schemas-created_at":{"description":"This is the time the tls setting was originally created for this hostname.","example":"2023-07-10T20:01:50.219171Z","format":"date-time","type":"string"},"tls-certificates-and-hostnames_hostname-tls-settings_components-schemas-status":{"description":"Deployment status for the given tls setting.","example":"pending_deployment","type":"string"},"tls-certificates-and-hostnames_hostname-tls-settings_components-schemas-updated_at":{"description":"This is the time the tls setting was updated.","example":"2023-07-10T20:01:50.219171Z","format":"date-time","type":"string"},"tls-certificates-and-hostnames_hostname_aop_response_collection":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull"},"type":"array"}}}]},"tls-certificates-and-hostnames_hostname_aop_single_response":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname_certid_object"}}}]},"tls-certificates-and-hostnames_hostname_association":{"properties":{"hostnames":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-hostnames"},"mtls_certificate_id":{"description":"The UUID for a certificate that was uploaded to the mTLS Certificate Management endpoint. If no mtls_certificate_id is given, the hostnames will be associated to your active Cloudflare Managed CA.","maxLength":36,"minLength":36,"type":"string"}},"type":"object"},"tls-certificates-and-hostnames_hostname_associations_response":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"properties":{"hostnames":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-hostnames"}},"type":"object"}}}]},"tls-certificates-and-hostnames_hostname_certid_input":{"properties":{"cert_id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_cert_id"},"enabled":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-enabled"},"hostname":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-hostname"}},"type":"object"},"tls-certificates-and-hostnames_hostname_certid_object":{"properties":{"cert_id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"},"cert_status":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-status"},"cert_updated_at":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-updated_at"},"cert_uploaded_on":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-uploaded_on"},"certificate":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-certificate"},"created_at":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-created_at"},"enabled":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-enabled"},"expires_on":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-expires_on"},"hostname":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-hostname"},"issuer":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_issuer"},"serial_number":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_serial_number"},"signature":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_signature"},"status":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-status"},"updated_at":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-updated_at"}}},"tls-certificates-and-hostnames_hostname_post":{"description":"The custom hostname that will point to your hostname via CNAME.","example":"app.example.com","maxLength":255,"type":"string"},"tls-certificates-and-hostnames_hostnames":{"description":"Array of hostnames or wildcard names (e.g., *.example.com) bound to the certificate.","example":["example.com","*.example.com"],"items":{"type":"string"},"type":"array"},"tls-certificates-and-hostnames_hosts":{"items":{"description":"The valid hosts for the certificates.","example":"example.com","maxLength":253,"readOnly":true,"type":"string"},"type":"array"},"tls-certificates-and-hostnames_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"tls-certificates-and-hostnames_issued_on":{"description":"Date that the Client Certificate was issued by the Certificate Authority","example":"2023-02-23T23:18:00Z","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_issuer":{"description":"The certificate authority that issued the certificate.","example":"GlobalSign","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_keyless-certificate":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_base"}],"type":"object"},"tls-certificates-and-hostnames_keyless_private_ip":{"description":"Private IP of the Key Server Host","example":"10.0.0.1","type":"string"},"tls-certificates-and-hostnames_keyless_response_collection":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_keyless-certificate"},"type":"array"}}}]},"tls-certificates-and-hostnames_keyless_response_single":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_base"}],"type":"object"}}}]},"tls-certificates-and-hostnames_keyless_response_single_id":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},"type":"object"}}}]},"tls-certificates-and-hostnames_keyless_tunnel":{"description":"Configuration for using Keyless SSL through a Cloudflare Tunnel","properties":{"private_ip":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_keyless_private_ip"},"vnet_id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_keyless_vnet_id"}},"required":["private_ip","vnet_id"],"type":"object"},"tls-certificates-and-hostnames_keyless_vnet_id":{"description":"Cloudflare Tunnel Virtual Network ID","example":"7365377a-85a4-4390-9480-531ef7dc7a3c","type":"string"},"tls-certificates-and-hostnames_location":{"description":"Location, provided by the CSR","example":"Somewhere","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"tls-certificates-and-hostnames_modified_on":{"description":"When the certificate was last modified.","example":"2014-01-01T05:20:00Z","format":"date-time","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_mtls-management_components-schemas-certificate_response_collection":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-certificateObject"},"type":"array"}}},{"properties":{"result_info":{"properties":{"count":{"example":1},"page":{"example":1},"per_page":{"example":50},"total_count":{"example":1},"total_pages":{"description":"Total pages available of results","example":1,"type":"number"}},"type":"object"}}}]},"tls-certificates-and-hostnames_mtls-management_components-schemas-certificate_response_single":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-certificateObject"}],"type":"object"}}}]},"tls-certificates-and-hostnames_mtls-management_components-schemas-expires_on":{"description":"When the certificate expires.","example":"2122-10-29T16:59:47Z","format":"date-time","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_mtls-management_components-schemas-status":{"description":"Certificate deployment status for the given service.","example":"pending_deployment","type":"string"},"tls-certificates-and-hostnames_mtls-management_components-schemas-uploaded_on":{"description":"This is the time the certificate was uploaded.","example":"2022-11-22T17:32:30.467938Z","format":"date-time","type":"string"},"tls-certificates-and-hostnames_name":{"description":"The keyless SSL name.","example":"example.com Keyless SSL","maxLength":180,"readOnly":true,"type":"string"},"tls-certificates-and-hostnames_name_write":{"description":"The keyless SSL name.","example":"example.com Keyless SSL","maxLength":180,"type":"string"},"tls-certificates-and-hostnames_organization":{"description":"Organization, provided by the CSR","example":"Organization","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_organizational_unit":{"description":"Organizational Unit, provided by the CSR","example":"Organizational Unit","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_origin":{"description":"Your origin hostname that requests to your custom hostnames will be sent to.","example":"fallback.example.com","maxLength":255,"type":"string"},"tls-certificates-and-hostnames_ownership_verification":{"description":"This is a record which can be placed to activate a hostname.","oneOf":[{"properties":{"name":{"description":"DNS Name for record.","example":"_cf-custom-hostname.app.example.com","type":"string"},"type":{"description":"DNS Record type.","enum":["txt"],"example":"txt"},"value":{"description":"Content for the record.","example":"5cc07c04-ea62-4a5a-95f0-419334a875a4","type":"string"}},"type":"object"}],"type":"object"},"tls-certificates-and-hostnames_ownership_verification_http":{"description":"This presents the token to be served by the given http url to activate a hostname.","oneOf":[{"properties":{"http_body":{"description":"Token to be served.","example":"5cc07c04-ea62-4a5a-95f0-419334a875a4","type":"string"},"http_url":{"description":"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","type":"string"}},"type":"object"}],"type":"object"},"tls-certificates-and-hostnames_per_hostname_settings_response":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_settingObject"}],"type":"object"}}}]},"tls-certificates-and-hostnames_per_hostname_settings_response_collection":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-collection"},{"properties":{"result":{"items":{"properties":{"created_at":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-tls-settings_components-schemas-created_at"},"hostname":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-hostname"},"status":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-tls-settings_components-schemas-status"},"updated_at":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-tls-settings_components-schemas-updated_at"},"value":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_value"}}},"type":"array"}}},{"properties":{"result_info":{"properties":{"count":{"example":1},"page":{"example":1},"per_page":{"example":50},"total_count":{"example":1},"total_pages":{"description":"Total pages available of results","example":1,"type":"number"}},"type":"object"}}}]},"tls-certificates-and-hostnames_per_hostname_settings_response_delete":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_settingObjectDelete"}],"type":"object"}}}]},"tls-certificates-and-hostnames_policy":{"description":"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)","type":"string"},"tls-certificates-and-hostnames_port":{"default":24008,"description":"The keyless SSL port used to communicate between Cloudflare and the client's Keyless SSL server.","example":24008,"maxLength":65535,"type":"number"},"tls-certificates-and-hostnames_priority":{"default":0,"description":"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.","example":1,"type":"number"},"tls-certificates-and-hostnames_private_key":{"description":"The zone's private key.","example":"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwQHoetcl9+5ikGzV6cMzWtWPJHqXT3wpbEkRU9Yz7lgvddmG\ndtcGbg/1CGZu0jJGkMoppoUo4c3dts3iwqRYmBikUP77wwY2QGmDZw2FvkJCJlKn\nabIRuGvBKwzESIXgKk2016aTP6/dAjEHyo6SeoK8lkIySUvK0fyOVlsiEsCmOpid\ntnKX/a+50GjB79CJH4ER2lLVZnhePFR/zUOyPxZQQ4naHf7yu/b5jhO0f8fwt+py\nFxIXjbEIdZliWRkRMtzrHOJIhrmJ2A1J7iOrirbbwillwjjNVUWPf3IJ3M12S9pE\newooaeO2izNTERcG9HzAacbVRn2Y2SWIyT/18QIDAQABAoIBACbhTYXBZYKmYPCb\nHBR1IBlCQA2nLGf0qRuJNJZg5iEzXows/6tc8YymZkQE7nolapWsQ+upk2y5Xdp/\naxiuprIs9JzkYK8Ox0r+dlwCG1kSW+UAbX0bQ/qUqlsTvU6muVuMP8vZYHxJ3wmb\n+ufRBKztPTQ/rYWaYQcgC0RWI20HTFBMxlTAyNxYNWzX7RKFkGVVyB9RsAtmcc8g\n+j4OdosbfNoJPS0HeIfNpAznDfHKdxDk2Yc1tV6RHBrC1ynyLE9+TaflIAdo2MVv\nKLMLq51GqYKtgJFIlBRPQqKoyXdz3fGvXrTkf/WY9QNq0J1Vk5ERePZ54mN8iZB7\n9lwy/AkCgYEA6FXzosxswaJ2wQLeoYc7ceaweX/SwTvxHgXzRyJIIT0eJWgx13Wo\n/WA3Iziimsjf6qE+SI/8laxPp2A86VMaIt3Z3mJN/CqSVGw8LK2AQst+OwdPyDMu\niacE8lj/IFGC8mwNUAb9CzGU3JpU4PxxGFjS/eMtGeRXCWkK4NE+G08CgYEA1Kp9\nN2JrVlqUz+gAX+LPmE9OEMAS9WQSQsfCHGogIFDGGcNf7+uwBM7GAaSJIP01zcoe\nVAgWdzXCv3FLhsaZoJ6RyLOLay5phbu1iaTr4UNYm5WtYTzMzqh8l1+MFFDl9xDB\nvULuCIIrglM5MeS/qnSg1uMoH2oVPj9TVst/ir8CgYEAxrI7Ws9Zc4Bt70N1As+U\nlySjaEVZCMkqvHJ6TCuVZFfQoE0r0whdLdRLU2PsLFP+q7qaeZQqgBaNSKeVcDYR\n9B+nY/jOmQoPewPVsp/vQTCnE/R81spu0mp0YI6cIheT1Z9zAy322svcc43JaWB7\nmEbeqyLOP4Z4qSOcmghZBSECgYACvR9Xs0DGn+wCsW4vze/2ei77MD4OQvepPIFX\ndFZtlBy5ADcgE9z0cuVB6CiL8DbdK5kwY9pGNr8HUCI03iHkW6Zs+0L0YmihfEVe\nPG19PSzK9CaDdhD9KFZSbLyVFmWfxOt50H7YRTTiPMgjyFpfi5j2q348yVT0tEQS\nfhRqaQKBgAcWPokmJ7EbYQGeMbS7HC8eWO/RyamlnSffdCdSc7ue3zdVJxpAkQ8W\nqu80pEIF6raIQfAf8MXiiZ7auFOSnHQTXUbhCpvDLKi0Mwq3G8Pl07l+2s6dQG6T\nlv6XTQaMyf6n1yjzL+fzDrH3qXMxHMO/b13EePXpDMpY7HQpoLDi\n-----END RSA PRIVATE KEY-----\n","type":"string"},"tls-certificates-and-hostnames_quota":{"properties":{"allocated":{"description":"Quantity Allocated.","type":"integer"},"used":{"description":"Quantity Used.","type":"integer"}},"type":"object"},"tls-certificates-and-hostnames_request_type":{"description":"Signature type desired on certificate (\"origin-rsa\" (rsa), \"origin-ecc\" (ecdsa), or \"keyless-certificate\" (for Keyless SSL servers).","enum":["origin-rsa","origin-ecc","keyless-certificate"],"example":"origin-rsa","type":"string"},"tls-certificates-and-hostnames_requested_validity":{"default":5475,"description":"The number of days for which the certificate should be valid.","enum":[7,30,90,365,730,1095,5475],"example":5475,"type":"number"},"tls-certificates-and-hostnames_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"tls-certificates-and-hostnames_revoked_at":{"description":"When the certificate was revoked.","example":"2024-09-06T18:43:47.928893Z","format":"date-time","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_schemas-certificate":{"description":"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-----","type":"string"},"tls-certificates-and-hostnames_schemas-certificateObject":{"properties":{"certificate":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-certificate"},"expires_on":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-expires_on"},"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"},"issuer":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_issuer"},"serial_number":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_serial_number"},"signature":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_signature"},"status":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-status"},"uploaded_on":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-uploaded_on"}}},"tls-certificates-and-hostnames_schemas-certificate_authority":{"description":"Certificate Authority selected for the order. For information on any certificate authority specific details or restrictions [see this page for more details.](https://developers.cloudflare.com/ssl/reference/certificate-authorities)","enum":["google","lets_encrypt","ssl_com"],"example":"lets_encrypt","type":"string"},"tls-certificates-and-hostnames_schemas-certificate_response_collection":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificates"},"type":"array"}},"type":"object"}]},"tls-certificates-and-hostnames_schemas-certificate_response_single":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificates"}},"type":"object"}]},"tls-certificates-and-hostnames_schemas-certificates":{"description":"The uploaded root CA certificate.","example":"-----BEGIN CERTIFICATE-----\nMIIDmDCCAoCgAwIBAgIUKTOAZNjcXVZRj4oQt0SHsl1c1vMwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVVMxFjAUBgNVBAgMDVNhbiBGcmFuY2lzY28xEzARBgNVBAcMCkNhbGlmb3JuaWExFTATBgNVBAoMDEV4YW1wbGUgSW5jLjAgFw0yMjExMjIxNjU5NDdaGA8yMTIyMTAyOTE2NTk0N1owUTELMAkGA1UEBhMCVVMxFjAUBgNVBAgMDVNhbiBGcmFuY2lzY28xEzARBgNVBAcMCkNhbGlmb3JuaWExFTATBgNVBAoMDEV4YW1wbGUgSW5jLjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMRcORwgJFTdcG/2GKI+cFYiOBNDKjCZUXEOvXWY42BkH9wxiMT869CO+enA1w5pIrXow6kCM1sQspHHaVmJUlotEMJxyoLFfA/8Kt1EKFyobOjuZs2SwyVyJ2sStvQuUQEosULZCNGZEqoH5g6zhMPxaxm7ZLrrsDZ9maNGVqo7EWLWHrZ57Q/5MtTrbxQL+eXjUmJ9K3kS+3uEwMdqR6Z3BluU1ivanpPc1CN2GNhdO0/hSY4YkGEnuLsqJyDd3cIiB1MxuCBJ4ZaqOd2viV1WcP3oU3dxVPm4MWyfYIldMWB14FahScxLhWdRnM9YZ/i9IFcLypXsuz7DjrJPtPUCAwEAAaNmMGQwHQYDVR0OBBYEFP5JzLUawNF+c3AXsYTEWHh7z2czMB8GA1UdIwQYMBaAFP5JzLUawNF+c3AXsYTEWHh7z2czMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQBc+Be7NDhpE09y7hLPZGRPl1cSKBw4RI0XIv6rlbSTFs5EebpTGjhx/whNxwEZhB9HZ7111Oa1YlT8xkI9DshB78mjAHCKBAJ76moK8tkG0aqdYpJ4ZcJTVBB7l98Rvgc7zfTii7WemTy72deBbSeiEtXavm4EF0mWjHhQ5Nxpnp00Bqn5g1x8CyTDypgmugnep+xG+iFzNmTdsz7WI9T/7kDMXqB7M/FPWBORyS98OJqNDswCLF8bIZYwUBEe+bRHFomoShMzaC3tvim7WCb16noDkSTMlfKO4pnvKhpcVdSgwcruATV7y+W+Lvmz2OT/Gui4JhqeoTewsxndhDDE\n-----END CERTIFICATE-----","type":"string"},"tls-certificates-and-hostnames_schemas-created_at":{"description":"This is the time the fallback origin was created.","example":"2019-10-28T18:11:23.37411Z","format":"date-time","type":"string"},"tls-certificates-and-hostnames_schemas-csr":{"description":"The Certificate Signing Request (CSR). Must be newline-encoded.","example":"-----BEGIN CERTIFICATE REQUEST-----\\nMIICY....\\n-----END CERTIFICATE REQUEST-----\\n","type":"string"},"tls-certificates-and-hostnames_schemas-enabled":{"description":"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.\n\nBy 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.\n\n* HSTS\n* Always Use HTTPS\n* Opportunistic Encryption\n* Onion Routing\n* Any Page Rules redirecting traffic to HTTPS\n\nSimilarly, 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.\n\nIf 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,"type":"boolean"},"tls-certificates-and-hostnames_schemas-expires_on":{"description":"When the certificate will expire.","example":"2014-01-01 05:20:00 +0000 UTC","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_schemas-hostname":{"description":"The hostname on the origin for which the client certificate uploaded will be used.","example":"app.example.com","maxLength":255,"type":"string"},"tls-certificates-and-hostnames_schemas-hostnames":{"items":{"example":"api.example.com","type":"string"},"type":"array"},"tls-certificates-and-hostnames_schemas-hosts":{"description":"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.com","www.example.com"],"items":{"type":"string"},"type":"array"},"tls-certificates-and-hostnames_schemas-identifier":{"description":"Keyless certificate identifier tag.","example":"4d2844d2ce78891c34d0b6c0535a291e","maxLength":32,"readOnly":true,"type":"string"},"tls-certificates-and-hostnames_schemas-issuer":{"description":"The certificate authority that issued the certificate.","example":"O=Example Inc.,L=California,ST=San Francisco,C=US","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_schemas-name":{"description":"Optional unique name for the certificate. Only used for human readability.","example":"example_ca_cert","type":"string"},"tls-certificates-and-hostnames_schemas-private_key":{"description":"The hostname certificate's private key.","example":"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwQHoetcl9+5ikGzV6cMzWtWPJHqXT3wpbEkRU9Yz7lgvddmG\ndtcGbg/1CGZu0jJGkMoppoUo4c3dts3iwqRYmBikUP77wwY2QGmDZw2FvkJCJlKn\nabIRuGvBKwzESIXgKk2016aTP6/dAjEHyo6SeoK8lkIySUvK0fyOVlsiEsCmOpid\ntnKX/a+50GjB79CJH4ER2lLVZnhePFR/zUOyPxZQQ4naHf7yu/b5jhO0f8fwt+py\nFxIXjbEIdZliWRkRMtzrHOJIhrmJ2A1J7iOrirbbwillwjjNVUWPf3IJ3M12S9pE\newooaeO2izNTERcG9HzAacbVRn2Y2SWIyT/18QIDAQABAoIBACbhTYXBZYKmYPCb\nHBR1IBlCQA2nLGf0qRuJNJZg5iEzXows/6tc8YymZkQE7nolapWsQ+upk2y5Xdp/\naxiuprIs9JzkYK8Ox0r+dlwCG1kSW+UAbX0bQ/qUqlsTvU6muVuMP8vZYHxJ3wmb\n+ufRBKztPTQ/rYWaYQcgC0RWI20HTFBMxlTAyNxYNWzX7RKFkGVVyB9RsAtmcc8g\n+j4OdosbfNoJPS0HeIfNpAznDfHKdxDk2Yc1tV6RHBrC1ynyLE9+TaflIAdo2MVv\nKLMLq51GqYKtgJFIlBRPQqKoyXdz3fGvXrTkf/WY9QNq0J1Vk5ERePZ54mN8iZB7\n9lwy/AkCgYEA6FXzosxswaJ2wQLeoYc7ceaweX/SwTvxHgXzRyJIIT0eJWgx13Wo\n/WA3Iziimsjf6qE+SI/8laxPp2A86VMaIt3Z3mJN/CqSVGw8LK2AQst+OwdPyDMu\niacE8lj/IFGC8mwNUAb9CzGU3JpU4PxxGFjS/eMtGeRXCWkK4NE+G08CgYEA1Kp9\nN2JrVlqUz+gAX+LPmE9OEMAS9WQSQsfCHGogIFDGGcNf7+uwBM7GAaSJIP01zcoe\nVAgWdzXCv3FLhsaZoJ6RyLOLay5phbu1iaTr4UNYm5WtYTzMzqh8l1+MFFDl9xDB\nvULuCIIrglM5MeS/qnSg1uMoH2oVPj9TVst/ir8CgYEAxrI7Ws9Zc4Bt70N1As+U\nlySjaEVZCMkqvHJ6TCuVZFfQoE0r0whdLdRLU2PsLFP+q7qaeZQqgBaNSKeVcDYR\n9B+nY/jOmQoPewPVsp/vQTCnE/R81spu0mp0YI6cIheT1Z9zAy322svcc43JaWB7\nmEbeqyLOP4Z4qSOcmghZBSECgYACvR9Xs0DGn+wCsW4vze/2ei77MD4OQvepPIFX\ndFZtlBy5ADcgE9z0cuVB6CiL8DbdK5kwY9pGNr8HUCI03iHkW6Zs+0L0YmihfEVe\nPG19PSzK9CaDdhD9KFZSbLyVFmWfxOt50H7YRTTiPMgjyFpfi5j2q348yVT0tEQS\nfhRqaQKBgAcWPokmJ7EbYQGeMbS7HC8eWO/RyamlnSffdCdSc7ue3zdVJxpAkQ8W\nqu80pEIF6raIQfAf8MXiiZ7auFOSnHQTXUbhCpvDLKi0Mwq3G8Pl07l+2s6dQG6T\nlv6XTQaMyf6n1yjzL+fzDrH3qXMxHMO/b13EePXpDMpY7HQpoLDi\n-----END RSA PRIVATE KEY-----\n","type":"string"},"tls-certificates-and-hostnames_schemas-serial_number":{"description":"The certificate serial number.","example":"235217144297995885180570755458463043449861756659","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_schemas-signature":{"description":"Certificate's signature algorithm.","enum":["ECDSAWithSHA256","SHA1WithRSA","SHA256WithRSA"],"type":"string"},"tls-certificates-and-hostnames_schemas-status":{"description":"Status of the Keyless SSL.","enum":["active","deleted"],"example":"active","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_schemas-updated_at":{"description":"The time when the certificate was updated.","example":"2100-01-01T05:20:00Z","format":"date-time","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_schemas-uploaded_on":{"description":"This is the time the certificate was uploaded.","example":"2019-10-28T18:11:23.37411Z","format":"date-time","type":"string"},"tls-certificates-and-hostnames_schemas-validation_method":{"description":"Validation method in use for a certificate pack order.","enum":["http","cname","txt"],"example":"txt","type":"string"},"tls-certificates-and-hostnames_schemas-validity_days":{"description":"The number of days the Client Certificate will be valid after the issued_on date","example":3650,"type":"integer"},"tls-certificates-and-hostnames_serial_number":{"description":"The serial number on the uploaded certificate.","example":"6743787633689793699141714808227354901","type":"string"},"tls-certificates-and-hostnames_service":{"description":"The service using the certificate.","example":"gateway","type":"string"},"tls-certificates-and-hostnames_settingObject":{"properties":{"created_at":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-tls-settings_components-schemas-created_at"},"hostname":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-hostname"},"status":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-tls-settings_components-schemas-status"},"updated_at":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-tls-settings_components-schemas-updated_at"},"value":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_value"}}},"tls-certificates-and-hostnames_settingObjectDelete":{"properties":{"created_at":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-tls-settings_components-schemas-created_at"},"hostname":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-hostname"},"status":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-tls-settings_components-schemas-status"},"updated_at":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-tls-settings_components-schemas-updated_at"},"value":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_value"}}},"tls-certificates-and-hostnames_setting_id":{"description":"The TLS Setting name.","enum":["ciphers","min_tls_version","http2"],"type":"string"},"tls-certificates-and-hostnames_signature":{"description":"The type of hash used for the certificate.","example":"SHA256WithRSA","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_ski":{"description":"Subject Key Identifier","example":"8e375af1389a069a0f921f8cc8e1eb12d784b949","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_ssl":{"description":"SSL properties for the custom hostname.","oneOf":[{"properties":{"bundle_method":{"default":"ubiquitous","description":"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.","enum":["ubiquitous","optimal","force"],"example":"ubiquitous","type":"string"},"certificate_authority":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_authority"},"custom_certificate":{"description":"If a custom uploaded certificate is used.","example":"-----BEGIN CERTIFICATE-----\\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\\n-----END CERTIFICATE-----\\n","type":"string"},"custom_csr_id":{"description":"The identifier for the Custom CSR that was used.","example":"7b163417-1d2b-4c84-a38a-2fb7a0cd7752","type":"string"},"custom_key":{"description":"The key for a custom uploaded certificate.","example":"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwQHoetcl9+5ikGzV6cMzWtWPJHqXT3wpbEkRU9Yz7lgvddmG\ndtcGbg/1CGZu0jJGkMoppoUo4c3dts3iwqRYmBikUP77wwY2QGmDZw2FvkJCJlKn\nabIRuGvBKwzESIXgKk2016aTP6/dAjEHyo6SeoK8lkIySUvK0fyOVlsiEsCmOpid\ntnKX/a+50GjB79CJH4ER2lLVZnhePFR/zUOyPxZQQ4naHf7yu/b5jhO0f8fwt+py\nFxIXjbEIdZliWRkRMtzrHOJIhrmJ2A1J7iOrirbbwillwjjNVUWPf3IJ3M12S9pE\newooaeO2izNTERcG9HzAacbVRn2Y2SWIyT/18QIDAQABAoIBACbhTYXBZYKmYPCb\nHBR1IBlCQA2nLGf0qRuJNJZg5iEzXows/6tc8YymZkQE7nolapWsQ+upk2y5Xdp/\naxiuprIs9JzkYK8Ox0r+dlwCG1kSW+UAbX0bQ/qUqlsTvU6muVuMP8vZYHxJ3wmb\n+ufRBKztPTQ/rYWaYQcgC0RWI20HTFBMxlTAyNxYNWzX7RKFkGVVyB9RsAtmcc8g\n+j4OdosbfNoJPS0HeIfNpAznDfHKdxDk2Yc1tV6RHBrC1ynyLE9+TaflIAdo2MVv\nKLMLq51GqYKtgJFIlBRPQqKoyXdz3fGvXrTkf/WY9QNq0J1Vk5ERePZ54mN8iZB7\n9lwy/AkCgYEA6FXzosxswaJ2wQLeoYc7ceaweX/SwTvxHgXzRyJIIT0eJWgx13Wo\n/WA3Iziimsjf6qE+SI/8laxPp2A86VMaIt3Z3mJN/CqSVGw8LK2AQst+OwdPyDMu\niacE8lj/IFGC8mwNUAb9CzGU3JpU4PxxGFjS/eMtGeRXCWkK4NE+G08CgYEA1Kp9\nN2JrVlqUz+gAX+LPmE9OEMAS9WQSQsfCHGogIFDGGcNf7+uwBM7GAaSJIP01zcoe\nVAgWdzXCv3FLhsaZoJ6RyLOLay5phbu1iaTr4UNYm5WtYTzMzqh8l1+MFFDl9xDB\nvULuCIIrglM5MeS/qnSg1uMoH2oVPj9TVst/ir8CgYEAxrI7Ws9Zc4Bt70N1As+U\nlySjaEVZCMkqvHJ6TCuVZFfQoE0r0whdLdRLU2PsLFP+q7qaeZQqgBaNSKeVcDYR\n9B+nY/jOmQoPewPVsp/vQTCnE/R81spu0mp0YI6cIheT1Z9zAy322svcc43JaWB7\nmEbeqyLOP4Z4qSOcmghZBSECgYACvR9Xs0DGn+wCsW4vze/2ei77MD4OQvepPIFX\ndFZtlBy5ADcgE9z0cuVB6CiL8DbdK5kwY9pGNr8HUCI03iHkW6Zs+0L0YmihfEVe\nPG19PSzK9CaDdhD9KFZSbLyVFmWfxOt50H7YRTTiPMgjyFpfi5j2q348yVT0tEQS\nfhRqaQKBgAcWPokmJ7EbYQGeMbS7HC8eWO/RyamlnSffdCdSc7ue3zdVJxpAkQ8W\nqu80pEIF6raIQfAf8MXiiZ7auFOSnHQTXUbhCpvDLKi0Mwq3G8Pl07l+2s6dQG6T\nlv6XTQaMyf6n1yjzL+fzDrH3qXMxHMO/b13EePXpDMpY7HQpoLDi\n-----END RSA PRIVATE KEY-----\n","type":"string"},"expires_on":{"description":"The time the custom certificate expires on.","example":"2021-02-06T18:11:23.531995Z","format":"date-time","type":"string"},"hosts":{"description":"A list of Hostnames on a custom uploaded certificate.","example":["app.example.com","*.app.example.com"],"items":{"type":"string"},"type":"array"},"id":{"description":"Custom hostname SSL identifier tag.","example":"0d89c70d-ad9f-4843-b99f-6cc0252067e9","maxLength":36,"minLength":36,"type":"string"},"issuer":{"description":"The issuer on a custom uploaded certificate.","example":"DigiCertInc","type":"string"},"method":{"description":"Domain control validation (DCV) method used for this hostname.","enum":["http","txt","email"],"example":"txt"},"serial_number":{"description":"The serial number on a custom uploaded certificate.","example":"6743787633689793699141714808227354901","type":"string"},"settings":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_sslsettings"},"signature":{"description":"The signature on a custom uploaded certificate.","example":"SHA256WithRSA","type":"string"},"status":{"description":"Status of the hostname's SSL certificates.","enum":["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"],"example":"pending_validation","readOnly":true},"type":{"description":"Level of validation to be used for this hostname. Domain validation (dv) must be used.","enum":["dv"],"example":"dv"},"uploaded_on":{"description":"The time the custom certificate was uploaded.","example":"2020-02-06T18:11:23.531995Z","format":"date-time","type":"string"},"validation_errors":{"description":"Domain validation errors that have been received by the certificate authority (CA).","items":{"properties":{"message":{"description":"A domain validation error.","example":"SERVFAIL looking up CAA for app.example.com","type":"string"}},"type":"object"},"type":"array"},"validation_records":{"items":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_validation_record"},"type":"array"},"wildcard":{"description":"Indicates whether the certificate covers a wildcard.","example":false,"type":"boolean"}},"type":"object"}],"type":"object"},"tls-certificates-and-hostnames_ssl_universal_settings_response":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_universal"}}}]},"tls-certificates-and-hostnames_ssl_validation_method_response_collection":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"properties":{"status":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_validation_method_components-schemas-status"},"validation_method":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_validation_method_definition"}}}}}]},"tls-certificates-and-hostnames_ssl_verification_response_collection":{"allOf":[{"properties":{"result":{"items":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_verification"},"type":"array"}}}]},"tls-certificates-and-hostnames_sslpost":{"description":"SSL properties used when creating the custom hostname.","oneOf":[{"properties":{"bundle_method":{"default":"ubiquitous","description":"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.","enum":["ubiquitous","optimal","force"],"example":"ubiquitous","type":"string"},"certificate_authority":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_authority"},"custom_certificate":{"description":"If a custom uploaded certificate is used.","example":"-----BEGIN CERTIFICATE-----\\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\\n-----END CERTIFICATE-----\\n","type":"string"},"custom_key":{"description":"The key for a custom uploaded certificate.","example":"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwQHoetcl9+5ikGzV6cMzWtWPJHqXT3wpbEkRU9Yz7lgvddmG\ndtcGbg/1CGZu0jJGkMoppoUo4c3dts3iwqRYmBikUP77wwY2QGmDZw2FvkJCJlKn\nabIRuGvBKwzESIXgKk2016aTP6/dAjEHyo6SeoK8lkIySUvK0fyOVlsiEsCmOpid\ntnKX/a+50GjB79CJH4ER2lLVZnhePFR/zUOyPxZQQ4naHf7yu/b5jhO0f8fwt+py\nFxIXjbEIdZliWRkRMtzrHOJIhrmJ2A1J7iOrirbbwillwjjNVUWPf3IJ3M12S9pE\newooaeO2izNTERcG9HzAacbVRn2Y2SWIyT/18QIDAQABAoIBACbhTYXBZYKmYPCb\nHBR1IBlCQA2nLGf0qRuJNJZg5iEzXows/6tc8YymZkQE7nolapWsQ+upk2y5Xdp/\naxiuprIs9JzkYK8Ox0r+dlwCG1kSW+UAbX0bQ/qUqlsTvU6muVuMP8vZYHxJ3wmb\n+ufRBKztPTQ/rYWaYQcgC0RWI20HTFBMxlTAyNxYNWzX7RKFkGVVyB9RsAtmcc8g\n+j4OdosbfNoJPS0HeIfNpAznDfHKdxDk2Yc1tV6RHBrC1ynyLE9+TaflIAdo2MVv\nKLMLq51GqYKtgJFIlBRPQqKoyXdz3fGvXrTkf/WY9QNq0J1Vk5ERePZ54mN8iZB7\n9lwy/AkCgYEA6FXzosxswaJ2wQLeoYc7ceaweX/SwTvxHgXzRyJIIT0eJWgx13Wo\n/WA3Iziimsjf6qE+SI/8laxPp2A86VMaIt3Z3mJN/CqSVGw8LK2AQst+OwdPyDMu\niacE8lj/IFGC8mwNUAb9CzGU3JpU4PxxGFjS/eMtGeRXCWkK4NE+G08CgYEA1Kp9\nN2JrVlqUz+gAX+LPmE9OEMAS9WQSQsfCHGogIFDGGcNf7+uwBM7GAaSJIP01zcoe\nVAgWdzXCv3FLhsaZoJ6RyLOLay5phbu1iaTr4UNYm5WtYTzMzqh8l1+MFFDl9xDB\nvULuCIIrglM5MeS/qnSg1uMoH2oVPj9TVst/ir8CgYEAxrI7Ws9Zc4Bt70N1As+U\nlySjaEVZCMkqvHJ6TCuVZFfQoE0r0whdLdRLU2PsLFP+q7qaeZQqgBaNSKeVcDYR\n9B+nY/jOmQoPewPVsp/vQTCnE/R81spu0mp0YI6cIheT1Z9zAy322svcc43JaWB7\nmEbeqyLOP4Z4qSOcmghZBSECgYACvR9Xs0DGn+wCsW4vze/2ei77MD4OQvepPIFX\ndFZtlBy5ADcgE9z0cuVB6CiL8DbdK5kwY9pGNr8HUCI03iHkW6Zs+0L0YmihfEVe\nPG19PSzK9CaDdhD9KFZSbLyVFmWfxOt50H7YRTTiPMgjyFpfi5j2q348yVT0tEQS\nfhRqaQKBgAcWPokmJ7EbYQGeMbS7HC8eWO/RyamlnSffdCdSc7ue3zdVJxpAkQ8W\nqu80pEIF6raIQfAf8MXiiZ7auFOSnHQTXUbhCpvDLKi0Mwq3G8Pl07l+2s6dQG6T\nlv6XTQaMyf6n1yjzL+fzDrH3qXMxHMO/b13EePXpDMpY7HQpoLDi\n-----END RSA PRIVATE KEY-----\n","type":"string"},"method":{"description":"Domain control validation (DCV) method used for this hostname.","enum":["http","txt","email"],"example":"http"},"settings":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_sslsettings"},"type":{"description":"Level of validation to be used for this hostname. Domain validation (dv) must be used.","enum":["dv"],"example":"dv"},"wildcard":{"description":"Indicates whether the certificate covers a wildcard.","example":false,"type":"boolean"}},"type":"object"}],"type":"object"},"tls-certificates-and-hostnames_sslsettings":{"description":"SSL specific settings.","properties":{"ciphers":{"description":"An allowlist of ciphers for TLS termination. These ciphers must be in the BoringSSL format.","example":["ECDHE-RSA-AES128-GCM-SHA256","AES128-SHA"],"items":{"type":"string"},"type":"array","uniqueItems":true},"early_hints":{"description":"Whether or not Early Hints is enabled.","enum":["on","off"],"example":"on"},"http2":{"description":"Whether or not HTTP2 is enabled.","enum":["on","off"],"example":"on"},"min_tls_version":{"description":"The minimum TLS version supported.","enum":["1.0","1.1","1.2","1.3"],"example":"1.2"},"tls_1_3":{"description":"Whether or not TLS 1.3 is enabled.","enum":["on","off"],"example":"on"}},"type":"object"},"tls-certificates-and-hostnames_state":{"description":"State, provided by the CSR","example":"CA","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_status":{"description":"Status of the zone's custom SSL.","enum":["active","expired","deleted","pending","initializing"],"example":"active","readOnly":true},"tls-certificates-and-hostnames_total_tls_settings_response":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-single"},{"properties":{"result":{"properties":{"certificate_authority":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-certificate_authority"},"enabled":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-enabled"},"validity_period":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_validity_period"}}}}}]},"tls-certificates-and-hostnames_type":{"default":"legacy_custom","description":"The type 'legacy_custom' enables support for legacy clients which do not include SNI in the TLS handshake.","enum":["legacy_custom","sni_custom"],"example":"sni_custom","type":"string"},"tls-certificates-and-hostnames_universal":{"properties":{"enabled":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-enabled"}},"type":"object"},"tls-certificates-and-hostnames_updated_at":{"description":"This is the time the fallback origin was updated.","example":"2020-03-16T18:11:23.531995Z","format":"date-time","type":"string"},"tls-certificates-and-hostnames_uploaded_on":{"description":"When the certificate was uploaded to Cloudflare.","example":"2014-01-01T05:20:00Z","format":"date-time","readOnly":true,"type":"string"},"tls-certificates-and-hostnames_uuid":{"description":"The DCV Delegation unique identifier.","example":"abc123def456ghi7","type":"string"},"tls-certificates-and-hostnames_uuidObject":{"properties":{"uuid":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_uuid"}}},"tls-certificates-and-hostnames_validation_method":{"description":"Validation Method selected for the order.","enum":["txt","http","email"],"example":"txt","type":"string"},"tls-certificates-and-hostnames_validation_method_components-schemas-status":{"description":"Result status.","example":"pending_validation","type":"string"},"tls-certificates-and-hostnames_validation_method_definition":{"description":"Desired validation method.","enum":["http","cname","txt","email"],"example":"txt","type":"string"},"tls-certificates-and-hostnames_validation_record":{"description":"Certificate's required validation record.","properties":{"emails":{"description":"The set of email addresses that the certificate authority (CA) will use to complete domain validation.","example":["administrator@example.com","webmaster@example.com"],"items":{"type":"string"},"type":"array"},"http_body":{"description":"The content that the certificate authority (CA) will expect to find at the http_url during the domain validation.","example":"ca3-574923932a82475cb8592200f1a2a23d","type":"string"},"http_url":{"description":"The url that will be checked during domain validation.","example":"http://app.example.com/.well-known/pki-validation/ca3-da12a1c25e7b48cf80408c6c1763b8a2.txt","type":"string"},"txt_name":{"description":"The hostname that the certificate authority (CA) will check for a TXT record during domain validation .","example":"_acme-challenge.app.example.com","type":"string"},"txt_value":{"description":"The TXT record that the certificate authority (CA) will check during domain validation.","example":"810b7d5f01154524b961ba0cd578acc2","type":"string"}},"type":"object"},"tls-certificates-and-hostnames_validity_days":{"description":"Validity Days selected for the order.","enum":[14,30,90,365],"type":"integer"},"tls-certificates-and-hostnames_validity_period":{"description":"The validity period in days for the certificates ordered via Total TLS.","enum":[90],"type":"integer"},"tls-certificates-and-hostnames_value":{"description":"The tls setting value.","example":["ECDHE-RSA-AES128-GCM-SHA256","AES128-GCM-SHA256"],"oneOf":[{"type":"number"},{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"tls-certificates-and-hostnames_verification":{"properties":{"brand_check":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_brand_check"},"cert_pack_uuid":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_cert_pack_uuid"},"certificate_status":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_status"},"signature":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-signature"},"validation_method":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-validation_method"},"verification_info":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_verification_info"},"verification_status":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_verification_status"},"verification_type":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_verification_type"}},"required":["certificate_status"],"type":"object"},"tls-certificates-and-hostnames_verification_errors":{"description":"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."],"items":{"type":"string"},"type":"array"},"tls-certificates-and-hostnames_verification_info":{"description":"Certificate's required verification information.","properties":{"record_name":{"description":"Name of CNAME record.","enum":["record_name","http_url","cname","txt_name"],"example":"b3b90cfedd89a3e487d3e383c56c4267.example.com","format":"hostname","type":"string"},"record_target":{"description":"Target of CNAME record.","enum":["record_value","http_body","cname_target","txt_value"],"example":"6979be7e4cfc9e5c603e31df7efac9cc60fee82d.comodoca.com","format":"hostname","type":"string"}},"type":"object"},"tls-certificates-and-hostnames_verification_status":{"description":"Status of the required verification information, omitted if verification status is unknown.","example":true,"type":"boolean"},"tls-certificates-and-hostnames_verification_type":{"description":"Method of verification.","enum":["cname","meta tag"],"example":"cname","type":"string"},"tls-certificates-and-hostnames_zone-authenticated-origin-pull":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificateObject"}],"properties":{"certificate":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_zone-authenticated-origin-pull_components-schemas-certificate"},"enabled":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_zone-authenticated-origin-pull_components-schemas-enabled"},"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"},"private_key":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_private_key"}},"type":"object"},"tls-certificates-and-hostnames_zone-authenticated-origin-pull_components-schemas-certificate":{"description":"The zone's leaf certificate.","example":"-----BEGIN CERTIFICATE-----\nMIIDtTCCAp2gAwIBAgIJAMHAwfXZ5/PWMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTYwODI0MTY0MzAxWhcNMTYxMTIyMTY0MzAxWjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEAwQHoetcl9+5ikGzV6cMzWtWPJHqXT3wpbEkRU9Yz7lgvddmGdtcGbg/1\nCGZu0jJGkMoppoUo4c3dts3iwqRYmBikUP77wwY2QGmDZw2FvkJCJlKnabIRuGvB\nKwzESIXgKk2016aTP6/dAjEHyo6SeoK8lkIySUvK0fyOVlsiEsCmOpidtnKX/a+5\n0GjB79CJH4ER2lLVZnhePFR/zUOyPxZQQ4naHf7yu/b5jhO0f8fwt+pyFxIXjbEI\ndZliWRkRMtzrHOJIhrmJ2A1J7iOrirbbwillwjjNVUWPf3IJ3M12S9pEewooaeO2\nizNTERcG9HzAacbVRn2Y2SWIyT/18QIDAQABo4GnMIGkMB0GA1UdDgQWBBT/LbE4\n9rWf288N6sJA5BRb6FJIGDB1BgNVHSMEbjBsgBT/LbE49rWf288N6sJA5BRb6FJI\nGKFJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV\nBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAMHAwfXZ5/PWMAwGA1UdEwQF\nMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAHHFwl0tH0quUYZYO0dZYt4R7SJ0pCm2\n2satiyzHl4OnXcHDpekAo7/a09c6Lz6AU83cKy/+x3/djYHXWba7HpEu0dR3ugQP\nMlr4zrhd9xKZ0KZKiYmtJH+ak4OM4L3FbT0owUZPyjLSlhMtJVcoRp5CJsjAMBUG\nSvD8RX+T01wzox/Qb+lnnNnOlaWpqu8eoOenybxKp1a9ULzIVvN/LAcc+14vioFq\n2swRWtmocBAs8QR9n4uvbpiYvS8eYueDCWMM4fvFfBhaDZ3N9IbtySh3SpFdQDhw\nYbjM2rxXiyLGxB4Bol7QTv4zHif7Zt89FReT/NBy4rzaskDJY5L6xmY=\n-----END CERTIFICATE-----\n","type":"string"},"tls-certificates-and-hostnames_zone-authenticated-origin-pull_components-schemas-enabled":{"description":"Indicates whether zone-level authenticated origin pulls is enabled.","example":true,"type":"boolean"},"tls-certificates-and-hostnames_zone-authenticated-origin-pull_components-schemas-status":{"description":"Status of the certificate activation.","enum":["initializing","pending_deployment","pending_deletion","active","deleted","deployment_timed_out","deletion_timed_out"],"example":"active"},"tunnel_account_id":{"description":"Cloudflare account ID","example":"699d98642c564d2e855e9661899b7252","maxLength":32,"type":"string"},"tunnel_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/tunnel_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"},"result_info":{"$ref":"#/components/schemas/tunnel_result_info"}}}],"type":"object"},"tunnel_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/tunnel_messages"},"messages":{"$ref":"#/components/schemas/tunnel_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"tunnel_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/tunnel_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/tunnel_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"tunnel_api-response-single":{"$ref":"#/components/schemas/tunnel_api-response-common"},"tunnel_arch":{"description":"The cloudflared OS architecture used to establish this connection.","example":"linux_amd64","type":"string"},"tunnel_argo-tunnel":{"properties":{"connections":{"description":"The tunnel connections between your origin and Cloudflare's edge.","items":{"$ref":"#/components/schemas/tunnel_connection"},"type":"array"},"created_at":{"$ref":"#/components/schemas/tunnel_created_at"},"deleted_at":{"$ref":"#/components/schemas/tunnel_deleted_at"},"id":{"$ref":"#/components/schemas/tunnel_tunnel_id"},"name":{"$ref":"#/components/schemas/tunnel_tunnel_name"}},"required":["id","name","created_at","connections"],"type":"object"},"tunnel_cfd_tunnel":{"description":"A Cloudflare Tunnel that connects your origin to Cloudflare's edge.","properties":{"account_tag":{"$ref":"#/components/schemas/tunnel_account_id"},"connections":{"$ref":"#/components/schemas/tunnel_connections"},"conns_active_at":{"$ref":"#/components/schemas/tunnel_conns_active_at"},"conns_inactive_at":{"$ref":"#/components/schemas/tunnel_conns_inactive_at"},"created_at":{"$ref":"#/components/schemas/tunnel_created_at"},"deleted_at":{"$ref":"#/components/schemas/tunnel_deleted_at"},"id":{"$ref":"#/components/schemas/tunnel_tunnel_id"},"metadata":{"$ref":"#/components/schemas/tunnel_metadata"},"name":{"$ref":"#/components/schemas/tunnel_tunnel_name"},"remote_config":{"$ref":"#/components/schemas/tunnel_remote_config"},"status":{"$ref":"#/components/schemas/tunnel_status"},"tun_type":{"$ref":"#/components/schemas/tunnel_tunnel_type"}},"type":"object"},"tunnel_client_id":{"description":"UUID of the Cloudflare Tunnel connector.","example":"1bedc50d-42b3-473c-b108-ff3d10c0d925","format":"uuid","maxLength":36,"readOnly":true,"type":"string"},"tunnel_colo_name":{"description":"The Cloudflare data center used for this connection.","example":"DFW","type":"string"},"tunnel_comment":{"description":"Optional remark describing the route.","example":"Example comment for this route.","type":"string"},"tunnel_config":{"description":"The tunnel configuration and ingress rules.","properties":{"ingress":{"description":"List of public hostname definitions. At least one ingress rule needs to be defined for the tunnel.","items":{"$ref":"#/components/schemas/tunnel_ingressRule"},"minItems":1,"type":"array"},"originRequest":{"$ref":"#/components/schemas/tunnel_originRequest"},"warp-routing":{"description":"Enable private network access from WARP users to private network routes. This is enabled if the tunnel has an assigned route.","properties":{"enabled":{"default":false,"type":"boolean"}},"readOnly":true,"type":"object"}},"type":"object"},"tunnel_config_src":{"default":"local","description":"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.","enum":["local","cloudflare"],"example":"cloudflare","type":"string"},"tunnel_config_version":{"description":"The version of the remote tunnel configuration. Used internally to sync cloudflared with the Zero Trust dashboard.","type":"integer"},"tunnel_configuration":{"description":"Cloudflare Tunnel configuration","properties":{"account_id":{"$ref":"#/components/schemas/tunnel_identifier"},"config":{"$ref":"#/components/schemas/tunnel_config"},"created_at":{"$ref":"#/components/schemas/tunnel_timestamp"},"source":{"$ref":"#/components/schemas/tunnel_schemas-config_src"},"tunnel_id":{"$ref":"#/components/schemas/tunnel_tunnel_id"},"version":{"$ref":"#/components/schemas/tunnel_schemas-config_version"}},"type":"object"},"tunnel_configuration_response":{"allOf":[{"$ref":"#/components/schemas/tunnel_schemas-api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/tunnel_configuration"}}}]},"tunnel_connection":{"properties":{"colo_name":{"$ref":"#/components/schemas/tunnel_colo_name"},"is_pending_reconnect":{"$ref":"#/components/schemas/tunnel_is_pending_reconnect"},"uuid":{"$ref":"#/components/schemas/tunnel_connection_id"}}},"tunnel_connection_id":{"description":"UUID of the Cloudflare Tunnel connection.","example":"1bedc50d-42b3-473c-b108-ff3d10c0d925","format":"uuid","maxLength":36,"readOnly":true,"type":"string"},"tunnel_connections":{"description":"The Cloudflare Tunnel connections between your origin and Cloudflare's edge.","items":{"$ref":"#/components/schemas/tunnel_schemas-connection"},"type":"array"},"tunnel_conns_active_at":{"description":"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","type":"string"},"tunnel_conns_inactive_at":{"description":"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","type":"string"},"tunnel_created_at":{"description":"Timestamp of when the resource was created.","example":"2021-01-25T18:22:34.317854Z","format":"date-time","type":"string"},"tunnel_deleted_at":{"description":"Timestamp of when the resource was deleted. If `null`, the resource has not been deleted.","example":"2009-11-10T23:00:00Z","format":"date-time","type":"string"},"tunnel_empty_response":{"allOf":[{"$ref":"#/components/schemas/tunnel_api-response-common"},{"properties":{"result":{"enum":[null],"nullable":true,"type":"object"}},"type":"object"}]},"tunnel_existed_at":{"description":"If provided, include only tunnels that were created (and not deleted) before this time.","example":"2019-10-12T07:20:50.52Z","format":"date-time","type":"string"},"tunnel_features":{"description":"Features enabled for the Cloudflare Tunnel.","items":{"example":"ha-origin","type":"string"},"type":"array"},"tunnel_icmp_proxy_enabled":{"description":"A flag to enable the ICMP proxy for the account network.","example":true,"type":"boolean"},"tunnel_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"tunnel_ingressRule":{"description":"Public hostname","properties":{"hostname":{"description":"Public hostname for this service.","example":"tunnel.example.com","type":"string"},"originRequest":{"$ref":"#/components/schemas/tunnel_originRequest"},"path":{"default":"","description":"Requests with this path route to this public hostname.","example":"subpath","type":"string"},"service":{"description":"Protocol and address of destination server. Supported protocols: http://, https://, unix://, tcp://, ssh://, rdp://, unix+tls://, smb://. Alternatively can return a HTTP status code http_status:[code] e.g. 'http_status:404'.\n","example":"https://localhost:8001","type":"string"}},"required":["hostname","service"],"type":"object"},"tunnel_ip":{"example":"10.1.0.137","type":"string"},"tunnel_ip_network":{"description":"The private IPv4 or IPv6 range connected by the route, in CIDR notation.","example":"172.16.0.0/16","type":"string"},"tunnel_ip_network_encoded":{"description":"IP/CIDR range in URL-encoded format","example":"172.16.0.0%2F16","type":"string"},"tunnel_is_default_network":{"description":"If `true`, this virtual network is the default for the account.","example":true,"type":"boolean"},"tunnel_is_pending_reconnect":{"description":"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,"type":"boolean"},"tunnel_legacy-tunnel-response-collection":{"allOf":[{"$ref":"#/components/schemas/tunnel_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/tunnel_argo-tunnel"},"type":"array"}},"type":"object"}]},"tunnel_legacy-tunnel-response-single":{"allOf":[{"$ref":"#/components/schemas/tunnel_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/tunnel_argo-tunnel"}},"type":"object"}]},"tunnel_management-resources":{"description":"Management resources the token will have access to.","enum":["logs"],"example":"logs","type":"string"},"tunnel_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"tunnel_metadata":{"description":"Metadata associated with the tunnel.","example":{},"type":"object"},"tunnel_offramp_warp_enabled":{"description":"A flag to enable WARP to WARP traffic.","example":true,"type":"boolean"},"tunnel_originRequest":{"description":"Configuration parameters for the public hostname specific connection settings between cloudflared and origin server.","properties":{"access":{"description":"For all L7 requests to this hostname, cloudflared will validate each request's Cf-Access-Jwt-Assertion request header.","properties":{"audTag":{"description":"Access applications that are allowed to reach this hostname for this Tunnel. Audience tags can be identified in the dashboard or via the List Access policies API.","items":{"type":"string"},"type":"array"},"required":{"default":false,"description":"Deny traffic that has not fulfilled Access authorization.","type":"boolean"},"teamName":{"default":"Your Zero Trust organization name.","type":"string"}},"required":["audTag","teamName"],"type":"object"},"caPool":{"default":"","description":"Path to the certificate authority (CA) for the certificate of your origin. This option should be used only if your certificate is not signed by Cloudflare.","type":"string"},"connectTimeout":{"default":10,"description":"Timeout for establishing a new TCP connection to your origin server. This excludes the time taken to establish TLS, which is controlled by tlsTimeout.","type":"integer"},"disableChunkedEncoding":{"description":"Disables chunked transfer encoding. Useful if you are running a WSGI server.","type":"boolean"},"http2Origin":{"description":"Attempt to connect to origin using HTTP2. Origin must be configured as https.","type":"boolean"},"httpHostHeader":{"description":"Sets the HTTP Host header on requests sent to the local service.","type":"string"},"keepAliveConnections":{"default":100,"description":"Maximum number of idle keepalive connections between Tunnel and your origin. This does not restrict the total number of concurrent connections.","type":"integer"},"keepAliveTimeout":{"default":90,"description":"Timeout after which an idle keepalive connection can be discarded.","type":"integer"},"noHappyEyeballs":{"default":false,"description":"Disable the “happy eyeballs” algorithm for IPv4/IPv6 fallback if your local network has misconfigured one of the protocols.","type":"boolean"},"noTLSVerify":{"default":false,"description":"Disables TLS verification of the certificate presented by your origin. Will allow any certificate from the origin to be accepted.","type":"boolean"},"originServerName":{"default":"","description":"Hostname that cloudflared should expect from your origin server certificate.","type":"string"},"proxyType":{"default":"","description":"cloudflared starts a proxy server to translate HTTP traffic into TCP when proxying, for example, SSH or RDP. This configures what type of proxy will be started. Valid options are: \"\" for the regular proxy and \"socks\" for a SOCKS5 proxy.\n","type":"string"},"tcpKeepAlive":{"default":30,"description":"The timeout after which a TCP keepalive packet is sent on a connection between Tunnel and the origin server.","type":"integer"},"tlsTimeout":{"default":10,"description":"Timeout for completing a TLS handshake to your origin server, if you have chosen to connect Tunnel to an HTTPS server.","type":"integer"}},"type":"object"},"tunnel_per_page":{"description":"Number of results to display.","maximum":1000,"minimum":1,"type":"number"},"tunnel_remote_config":{"description":"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,"type":"boolean"},"tunnel_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"tunnel_route":{"properties":{"comment":{"$ref":"#/components/schemas/tunnel_comment"},"created_at":{"$ref":"#/components/schemas/tunnel_created_at"},"deleted_at":{"$ref":"#/components/schemas/tunnel_deleted_at"},"id":{"$ref":"#/components/schemas/tunnel_route_id"},"network":{"$ref":"#/components/schemas/tunnel_ip_network"},"tunnel_id":{"$ref":"#/components/schemas/tunnel_tunnel_id"},"virtual_network_id":{"$ref":"#/components/schemas/tunnel_virtual_network_id"}},"type":"object"},"tunnel_route_id":{"description":"UUID of the route.","example":"f70ff985-a4ef-4643-bbbc-4a0ed4fc8415","maxLength":36,"readOnly":true,"type":"string"},"tunnel_route_response_single":{"allOf":[{"$ref":"#/components/schemas/tunnel_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/tunnel_route"}},"type":"object"}]},"tunnel_run_at":{"description":"Timestamp of when the tunnel connection was started.","example":"2009-11-10T23:00:00Z","format":"date-time","type":"string"},"tunnel_schemas-api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/tunnel_messages"},"messages":{"$ref":"#/components/schemas/tunnel_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"tunnel_schemas-api-response-single":{"allOf":[{"$ref":"#/components/schemas/tunnel_schemas-api-response-common"}],"type":"object"},"tunnel_schemas-config_src":{"default":"local","description":"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's configuration on the Zero Trust dashboard.","enum":["local","cloudflare"],"example":"cloudflare","type":"string"},"tunnel_schemas-config_version":{"description":"The version of the Tunnel Configuration.","type":"integer"},"tunnel_schemas-connection":{"properties":{"client_id":{"$ref":"#/components/schemas/tunnel_client_id"},"client_version":{"$ref":"#/components/schemas/tunnel_version"},"colo_name":{"$ref":"#/components/schemas/tunnel_colo_name"},"id":{"$ref":"#/components/schemas/tunnel_connection_id"},"is_pending_reconnect":{"$ref":"#/components/schemas/tunnel_is_pending_reconnect"},"opened_at":{"description":"Timestamp of when the connection was established.","example":"2021-01-25T18:22:34.317854Z","format":"date-time","type":"string"},"origin_ip":{"allOf":[{"$ref":"#/components/schemas/tunnel_ip"}],"description":"The public IP address of the host running cloudflared."},"uuid":{"$ref":"#/components/schemas/tunnel_connection_id"}}},"tunnel_status":{"description":"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).","enum":["inactive","degraded","healthy","down"],"example":"healthy","type":"string"},"tunnel_teamnet":{"properties":{"comment":{"$ref":"#/components/schemas/tunnel_comment"},"created_at":{"$ref":"#/components/schemas/tunnel_created_at"},"deleted_at":{"$ref":"#/components/schemas/tunnel_deleted_at"},"id":{"$ref":"#/components/schemas/tunnel_route_id"},"network":{"$ref":"#/components/schemas/tunnel_ip_network"},"tun_type":{"$ref":"#/components/schemas/tunnel_tunnel_type"},"tunnel_id":{"$ref":"#/components/schemas/tunnel_tunnel_id"},"tunnel_name":{"$ref":"#/components/schemas/tunnel_tunnel_name"},"virtual_network_id":{"$ref":"#/components/schemas/tunnel_virtual_network_id"},"virtual_network_name":{"$ref":"#/components/schemas/tunnel_virtual_network_name"}},"type":"object"},"tunnel_teamnet_response_collection":{"allOf":[{"$ref":"#/components/schemas/tunnel_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/tunnel_teamnet"},"type":"array"}},"type":"object"}]},"tunnel_teamnet_response_single":{"allOf":[{"$ref":"#/components/schemas/tunnel_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/tunnel_teamnet"}},"type":"object"}]},"tunnel_timestamp":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","type":"string"},"tunnel_tunnel-response-collection":{"allOf":[{"$ref":"#/components/schemas/tunnel_api-response-collection"},{"properties":{"result":{"items":{"anyOf":[{"$ref":"#/components/schemas/tunnel_cfd_tunnel"},{"$ref":"#/components/schemas/tunnel_warp_connector_tunnel"}]},"type":"array"}},"type":"object"}]},"tunnel_tunnel-response-single":{"allOf":[{"$ref":"#/components/schemas/tunnel_api-response-single"},{"properties":{"result":{"anyOf":[{"$ref":"#/components/schemas/tunnel_cfd_tunnel"},{"$ref":"#/components/schemas/tunnel_warp_connector_tunnel"}]}},"type":"object"}]},"tunnel_tunnel_client":{"description":"A client (typically cloudflared) that maintains connections to a Cloudflare data center.","properties":{"arch":{"$ref":"#/components/schemas/tunnel_arch"},"config_version":{"$ref":"#/components/schemas/tunnel_config_version"},"conns":{"$ref":"#/components/schemas/tunnel_connections"},"features":{"$ref":"#/components/schemas/tunnel_features"},"id":{"$ref":"#/components/schemas/tunnel_connection_id"},"run_at":{"$ref":"#/components/schemas/tunnel_run_at"},"version":{"$ref":"#/components/schemas/tunnel_version"}},"type":"object"},"tunnel_tunnel_client_response":{"allOf":[{"$ref":"#/components/schemas/tunnel_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/tunnel_tunnel_client"}},"type":"object"}]},"tunnel_tunnel_connections_response":{"allOf":[{"$ref":"#/components/schemas/tunnel_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/tunnel_tunnel_client"},"type":"array"}},"type":"object"}]},"tunnel_tunnel_id":{"description":"UUID of the tunnel.","example":"f70ff985-a4ef-4643-bbbc-4a0ed4fc8415","format":"uuid","maxLength":36,"readOnly":true,"type":"string"},"tunnel_tunnel_link":{"description":"The id of the tunnel linked and the date that link was created.","properties":{"created_at":{"$ref":"#/components/schemas/tunnel_created_at"},"linked_tunnel_id":{"$ref":"#/components/schemas/tunnel_tunnel_id"}},"type":"object"},"tunnel_tunnel_links_response":{"allOf":[{"$ref":"#/components/schemas/tunnel_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/tunnel_tunnel_link"},"type":"array"}},"type":"object"}]},"tunnel_tunnel_name":{"description":"A user-friendly name for a tunnel.","example":"blog","type":"string"},"tunnel_tunnel_response_token":{"allOf":[{"$ref":"#/components/schemas/tunnel_api-response-single"},{"properties":{"result":{"example":"eyJhIjoiNWFiNGU5Z...","type":"string"}},"type":"object"}]},"tunnel_tunnel_secret":{"description":"Sets the password required to run a locally-managed tunnel. Must be at least 32 bytes and encoded as a base64 string.","example":"AQIDBAUGBwgBAgMEBQYHCAECAwQFBgcIAQIDBAUGBwg=","type":"string"},"tunnel_tunnel_type":{"description":"The type of tunnel.","enum":["cfd_tunnel","warp_connector","ip_sec","gre","cni"],"example":"cfd_tunnel","type":"string"},"tunnel_tunnel_types":{"description":"The types of tunnels to filter separated by a comma.","example":"cfd_tunnel,warp_connector","type":"string"},"tunnel_version":{"description":"The cloudflared version used to establish this connection.","example":"2022.7.1","type":"string"},"tunnel_virtual-network":{"properties":{"comment":{"$ref":"#/components/schemas/tunnel_virtual_network_comment"},"created_at":{"$ref":"#/components/schemas/tunnel_created_at"},"deleted_at":{"$ref":"#/components/schemas/tunnel_deleted_at"},"id":{"$ref":"#/components/schemas/tunnel_virtual_network_id"},"is_default_network":{"$ref":"#/components/schemas/tunnel_is_default_network"},"name":{"$ref":"#/components/schemas/tunnel_virtual_network_name"}},"required":["id","name","is_default_network","comment","created_at"],"type":"object"},"tunnel_virtual_network_comment":{"description":"Optional remark describing the virtual network.","example":"Staging VPC for data science","maxLength":256,"type":"string"},"tunnel_virtual_network_id":{"description":"UUID of the virtual network.","example":"f70ff985-a4ef-4643-bbbc-4a0ed4fc8415","format":"uuid","type":"string"},"tunnel_virtual_network_name":{"description":"A user-friendly name for the virtual network.","example":"us-east-1-vpc","maxLength":256,"type":"string"},"tunnel_vnet_response_collection":{"allOf":[{"$ref":"#/components/schemas/tunnel_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/tunnel_virtual-network"},"type":"array"}},"type":"object"}]},"tunnel_vnet_response_single":{"allOf":[{"$ref":"#/components/schemas/tunnel_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/tunnel_virtual-network"}},"type":"object"}]},"tunnel_warp_connector_tunnel":{"description":"A Warp Connector Tunnel that connects your origin to Cloudflare's edge.","properties":{"account_tag":{"$ref":"#/components/schemas/tunnel_account_id"},"connections":{"$ref":"#/components/schemas/tunnel_connections"},"conns_active_at":{"$ref":"#/components/schemas/tunnel_conns_active_at"},"conns_inactive_at":{"$ref":"#/components/schemas/tunnel_conns_inactive_at"},"created_at":{"$ref":"#/components/schemas/tunnel_created_at"},"deleted_at":{"$ref":"#/components/schemas/tunnel_deleted_at"},"id":{"$ref":"#/components/schemas/tunnel_tunnel_id"},"metadata":{"$ref":"#/components/schemas/tunnel_metadata"},"name":{"$ref":"#/components/schemas/tunnel_tunnel_name"},"status":{"$ref":"#/components/schemas/tunnel_status"},"tun_type":{"$ref":"#/components/schemas/tunnel_tunnel_type"}},"type":"object"},"tunnel_zero_trust_connectivity_settings_response":{"allOf":[{"$ref":"#/components/schemas/tunnel_api-response-single"},{"properties":{"result":{"properties":{"icmp_proxy_enabled":{"$ref":"#/components/schemas/tunnel_icmp_proxy_enabled"},"offramp_warp_enabled":{"$ref":"#/components/schemas/tunnel_offramp_warp_enabled"}},"type":"object"}},"type":"object"}]},"turnstile_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/turnstile_messages"},"messages":{"$ref":"#/components/schemas/turnstile_messages"},"success":{"description":"Whether the API call was successful","example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"turnstile_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/turnstile_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/turnstile_messages"}],"example":[]},"result":{"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"turnstile_bot_fight_mode":{"description":"If bot_fight_mode is set to `true`, Cloudflare issues computationally\nexpensive challenges in response to malicious bots (ENT only).\n","example":false,"type":"boolean"},"turnstile_clearance_level":{"description":"If Turnstile is embedded on a Cloudflare site and the widget should grant challenge clearance,\nthis setting can determine the clearance level to be set\n","enum":["no_clearance","jschallenge","managed","interactive"],"example":"interactive","type":"string"},"turnstile_created_on":{"description":"When the widget was created.","example":"2014-01-01T05:20:00.123123Z","format":"date-time","readOnly":true,"type":"string"},"turnstile_domains":{"example":["203.0.113.1","cloudflare.com","blog.example.com"],"items":{"description":"Hosts as a hostname or IPv4/IPv6 address represented by strings. The\nwidget will only work on these domains, and their subdomains.\n","example":"203.0.113.1","type":"string"},"maxLength":10,"type":"array"},"turnstile_ephemeral_id":{"description":"Return the Ephemeral ID in /siteverify (ENT only).\n","example":false,"type":"boolean"},"turnstile_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"turnstile_invalidate_immediately":{"default":false,"description":"If `invalidate_immediately` is set to `false`, the previous secret will\nremain valid for two hours. Otherwise, the secret is immediately\ninvalidated, and requests using it will be rejected.\n","type":"boolean"},"turnstile_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"turnstile_mode":{"description":"Widget Mode","enum":["non-interactive","invisible","managed"],"example":"invisible","type":"string"},"turnstile_modified_on":{"description":"When the widget was modified.","example":"2014-01-01T05:20:00.123123Z","format":"date-time","readOnly":true,"type":"string"},"turnstile_name":{"description":"Human readable widget name. Not unique. Cloudflare suggests that you\nset this to a meaningful string to make it easier to identify your\nwidget, and where it is used.\n","example":"blog.cloudflare.com login form","maxLength":254,"minLength":1,"type":"string"},"turnstile_offlabel":{"description":"Do not show any Cloudflare branding on the widget (ENT only).\n","example":false,"type":"boolean"},"turnstile_region":{"default":"world","description":"Region where this widget can be used.","enum":["world"],"type":"string"},"turnstile_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"required":["page","per_page","count","total_count"],"type":"object"},"turnstile_secret":{"description":"Secret key for this widget.","example":"0x4AAF00AAAABn0R22HWm098HVBjhdsYUc","type":"string"},"turnstile_sitekey":{"description":"Widget item identifier tag.","example":"0x4AAF00AAAABn0R22HWm-YUc","maxLength":32,"type":"string"},"turnstile_widget_detail":{"description":"A Turnstile widget's detailed configuration","properties":{"bot_fight_mode":{"$ref":"#/components/schemas/turnstile_bot_fight_mode"},"clearance_level":{"$ref":"#/components/schemas/turnstile_clearance_level"},"created_on":{"$ref":"#/components/schemas/turnstile_created_on"},"domains":{"$ref":"#/components/schemas/turnstile_domains"},"ephemeral_id":{"$ref":"#/components/schemas/turnstile_ephemeral_id"},"mode":{"$ref":"#/components/schemas/turnstile_mode"},"modified_on":{"$ref":"#/components/schemas/turnstile_modified_on"},"name":{"$ref":"#/components/schemas/turnstile_name"},"offlabel":{"$ref":"#/components/schemas/turnstile_offlabel"},"region":{"$ref":"#/components/schemas/turnstile_region"},"secret":{"$ref":"#/components/schemas/turnstile_secret"},"sitekey":{"$ref":"#/components/schemas/turnstile_sitekey"}},"required":["sitekey","secret","created_on","modified_on","name","domains","mode","region","bot_fight_mode","offlabel","clearance_level","ephemeral_id"],"type":"object"},"turnstile_widget_list":{"description":"A Turnstile Widgets configuration as it appears in listings","properties":{"bot_fight_mode":{"$ref":"#/components/schemas/turnstile_bot_fight_mode"},"clearance_level":{"$ref":"#/components/schemas/turnstile_clearance_level"},"created_on":{"$ref":"#/components/schemas/turnstile_created_on"},"domains":{"$ref":"#/components/schemas/turnstile_domains"},"ephemeral_id":{"$ref":"#/components/schemas/turnstile_ephemeral_id"},"mode":{"$ref":"#/components/schemas/turnstile_mode"},"modified_on":{"$ref":"#/components/schemas/turnstile_modified_on"},"name":{"$ref":"#/components/schemas/turnstile_name"},"offlabel":{"$ref":"#/components/schemas/turnstile_offlabel"},"region":{"$ref":"#/components/schemas/turnstile_region"},"sitekey":{"$ref":"#/components/schemas/turnstile_sitekey"}},"required":["sitekey","created_on","modified_on","name","domains","mode","region","bot_fight_mode","offlabel","clearance_level","ephemeral_id"],"type":"object"},"vectorize_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"},"result_info":{"$ref":"#/components/schemas/vectorize_result_info"}}}],"type":"object"},"vectorize_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/vectorize_messages"},"messages":{"$ref":"#/components/schemas/vectorize_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"vectorize_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/vectorize_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/vectorize_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"vectorize_api-response-single":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-common"},{"properties":{"result":{"anyOf":[{"type":"object"},{"type":"string"}],"nullable":true,"type":"object"}}}],"type":"object"},"vectorize_create-index-request":{"properties":{"config":{"allOf":[{"$ref":"#/components/schemas/vectorize_index-configuration"}]},"description":{"$ref":"#/components/schemas/vectorize_index-description"},"name":{"$ref":"#/components/schemas/vectorize_index-name"}},"required":["name","config"],"type":"object"},"vectorize_create-index-response":{"properties":{"config":{"$ref":"#/components/schemas/vectorize_index-dimension-configuration"},"created_on":{"description":"Specifies the timestamp the resource was created as an ISO8601 string.","example":"2022-11-15T18:25:44.442097Z","format":"date-time","readOnly":true,"type":"string"},"description":{"$ref":"#/components/schemas/vectorize_index-description"},"modified_on":{"description":"Specifies the timestamp the resource was modified as an ISO8601 string.","example":"2022-11-15T18:25:44.442097Z","format":"date-time","readOnly":true,"type":"string"},"name":{"$ref":"#/components/schemas/vectorize_index-name"}},"type":"object"},"vectorize_create-metadata-index-request":{"properties":{"indexType":{"description":"Specifies the type of metadata property to index.","enum":["string","number","boolean"],"type":"string"},"propertyName":{"description":"Specifies the metadata property to index.","example":"random_metadata_property","type":"string"}},"required":["propertyName","indexType"],"type":"object"},"vectorize_create-metadata-index-response":{"properties":{"mutationId":{"$ref":"#/components/schemas/vectorize_mutation-uuid"}},"type":"object"},"vectorize_delete-metadata-index-request":{"properties":{"propertyName":{"description":"Specifies the metadata property for which the index must be deleted.","example":"random_metadata_property","type":"string"}},"required":["propertyName"],"type":"object"},"vectorize_delete-metadata-index-response":{"properties":{"mutationId":{"$ref":"#/components/schemas/vectorize_mutation-uuid"}},"type":"object"},"vectorize_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"vectorize_index-configuration":{"description":"Specifies the type of configuration to use for the index.","oneOf":[{"$ref":"#/components/schemas/vectorize_index-dimension-configuration"},{"$ref":"#/components/schemas/vectorize_index-preset-configuration"}]},"vectorize_index-delete-vectors-by-id-request":{"properties":{"ids":{"description":"A list of vector identifiers to delete from the index indicated by the path.","example":["5121db81354a40c6aedc3fe1ace51c59","f90eb49c2107486abdfd78c67e853430"],"items":{"$ref":"#/components/schemas/vectorize_vector-identifier"},"type":"array"}},"type":"object"},"vectorize_index-delete-vectors-by-id-response":{"properties":{"count":{"description":"The count of the vectors successfully deleted.","example":42,"type":"integer"},"ids":{"description":"Array of vector identifiers of the vectors that were successfully processed for deletion.","items":{"$ref":"#/components/schemas/vectorize_vector-identifier"},"type":"array"}},"type":"object"},"vectorize_index-delete-vectors-by-id-v2-response":{"properties":{"mutationId":{"$ref":"#/components/schemas/vectorize_mutation-uuid"}},"type":"object"},"vectorize_index-description":{"description":"Specifies the description of the index.","example":"This is my example index.","type":"string"},"vectorize_index-dimension-configuration":{"properties":{"dimensions":{"$ref":"#/components/schemas/vectorize_index-dimensions"},"metric":{"$ref":"#/components/schemas/vectorize_index-metric"}},"required":["dimensions","metric"],"type":"object"},"vectorize_index-dimensions":{"description":"Specifies the number of dimensions for the index","example":768,"maximum":1536,"minimum":1,"type":"integer"},"vectorize_index-get-vectors-by-id-request":{"properties":{"ids":{"description":"A list of vector identifiers to retrieve from the index indicated by the path.","example":["5121db81354a40c6aedc3fe1ace51c59","f90eb49c2107486abdfd78c67e853430"],"items":{"$ref":"#/components/schemas/vectorize_vector-identifier"},"type":"array"}},"type":"object"},"vectorize_index-get-vectors-by-id-response":{"description":"Array of vectors with matching ids.","example":[{"id":"some-vector-id","metadata":{"another-key":"another-value","customer-id":442},"values":[0.812,0.621,0.261]},{"id":"other-vector-id","metadata":{"another-key":"with-a-value","customer-id":2151},"namespace":"namespaced","values":[0.961,0.751,0.661]}],"items":{"properties":{"id":{"$ref":"#/components/schemas/vectorize_vector-identifier"},"metadata":{"type":"object"},"namespace":{"nullable":true,"type":"string"},"values":{"items":{"type":"number"},"type":"array"}},"type":"object"},"type":"array"},"vectorize_index-info-response":{"properties":{"dimensions":{"$ref":"#/components/schemas/vectorize_index-dimensions"},"processedUpToDatetime":{"description":"Specifies the timestamp the last mutation batch was processed as an ISO8601 string.","example":"2024-07-22T18:25:44.442097Z","format":"date-time","nullable":true,"readOnly":true,"type":"string"},"processedUpToMutation":{"$ref":"#/components/schemas/vectorize_mutation-uuid"},"vectorCount":{"description":"Specifies the number of vectors present in the index","example":300000,"type":"integer"}},"type":"object"},"vectorize_index-insert-response":{"properties":{"count":{"description":"Specifies the count of the vectors successfully inserted.","example":768,"type":"integer"},"ids":{"description":"Array of vector identifiers of the vectors successfully inserted.","items":{"$ref":"#/components/schemas/vectorize_vector-identifier"},"type":"array"}},"type":"object"},"vectorize_index-insert-v2-response":{"properties":{"mutationId":{"$ref":"#/components/schemas/vectorize_mutation-uuid"}},"type":"object"},"vectorize_index-metric":{"description":"Specifies the type of metric to use calculating distance.","enum":["cosine","euclidean","dot-product"],"type":"string"},"vectorize_index-name":{"example":"example-index","pattern":"^([a-z]+[a-z0-9_-]*[a-z0-9]+)$","type":"string"},"vectorize_index-preset":{"description":"Specifies the preset to use for the index.","enum":["@cf/baai/bge-small-en-v1.5","@cf/baai/bge-base-en-v1.5","@cf/baai/bge-large-en-v1.5","openai/text-embedding-ada-002","cohere/embed-multilingual-v2.0"],"example":"@cf/baai/bge-small-en-v1.5","type":"string"},"vectorize_index-preset-configuration":{"properties":{"preset":{"$ref":"#/components/schemas/vectorize_index-preset"}},"required":["preset"],"type":"object"},"vectorize_index-query-request":{"properties":{"filter":{"description":"A metadata filter expression used to limit nearest neighbor results.","example":{"has_viewed":{"$ne":true},"streaming_platform":"netflix"},"type":"object"},"returnMetadata":{"default":false,"description":"Whether to return the metadata associated with the closest vectors.","type":"boolean"},"returnValues":{"default":false,"description":"Whether to return the values associated with the closest vectors.","type":"boolean"},"topK":{"default":5,"description":"The number of nearest neighbors to find.","example":5,"type":"number"},"vector":{"description":"The search vector that will be used to find the nearest neighbors.","example":[0.5,0.5,0.5],"items":{"type":"number"},"type":"array"}},"required":["vector"],"type":"object"},"vectorize_index-query-response":{"properties":{"count":{"description":"Specifies the count of vectors returned by the search","type":"integer"},"matches":{"description":"Array of vectors matched by the search","items":{"properties":{"id":{"$ref":"#/components/schemas/vectorize_vector-identifier"},"metadata":{"nullable":true,"type":"object"},"score":{"description":"The score of the vector according to the index's distance metric","type":"number"},"values":{"items":{"type":"number"},"nullable":true,"type":"array"}},"type":"object"},"type":"array"}},"type":"object"},"vectorize_index-query-v2-request":{"properties":{"filter":{"description":"A metadata filter expression used to limit nearest neighbor results.","example":{"has_viewed":{"$ne":true},"streaming_platform":"netflix"},"type":"object"},"returnMetadata":{"default":"none","description":"Whether to return no metadata, indexed metadata or all metadata associated with the closest vectors.","enum":["none","indexed","all"],"type":"string"},"returnValues":{"default":false,"description":"Whether to return the values associated with the closest vectors.","type":"boolean"},"topK":{"default":5,"description":"The number of nearest neighbors to find.","example":5,"type":"number"},"vector":{"description":"The search vector that will be used to find the nearest neighbors.","example":[0.5,0.5,0.5],"items":{"type":"number"},"type":"array"}},"required":["vector"],"type":"object"},"vectorize_index-query-v2-response":{"properties":{"count":{"description":"Specifies the count of vectors returned by the search","type":"integer"},"matches":{"description":"Array of vectors matched by the search","items":{"properties":{"id":{"$ref":"#/components/schemas/vectorize_vector-identifier"},"metadata":{"nullable":true,"type":"object"},"namespace":{"nullable":true,"type":"string"},"score":{"description":"The score of the vector according to the index's distance metric","type":"number"},"values":{"items":{"type":"number"},"nullable":true,"type":"array"}},"type":"object"},"type":"array"}},"type":"object"},"vectorize_index-upsert-response":{"properties":{"count":{"description":"Specifies the count of the vectors successfully inserted.","example":768,"type":"integer"},"ids":{"description":"Array of vector identifiers of the vectors successfully inserted.","items":{"$ref":"#/components/schemas/vectorize_vector-identifier"},"type":"array"}},"type":"object"},"vectorize_index-upsert-v2-response":{"properties":{"mutationId":{"$ref":"#/components/schemas/vectorize_mutation-uuid"}},"type":"object"},"vectorize_list-metadata-index-response":{"example":{"metadataIndexes":[{"indexType":"number","propertyName":"some-num-prop"},{"indexType":"string","propertyName":"some-str-prop"},{"indexType":"boolean","propertyName":"some-bool-prop"}]},"properties":{"metadataIndexes":{"description":"Array of indexed metadata properties.","items":{"properties":{"indexType":{"description":"Specifies the type of indexed metadata property.","enum":["string","number","boolean"],"type":"string"},"propertyName":{"description":"Specifies the indexed metadata property.","example":"random_metadata_property","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"vectorize_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"vectorize_mutation-uuid":{"description":"The unique identifier for the async mutation operation containing the changeset.","example":"0000aaaa-11bb-22cc-33dd-444444eeeeee","maxLength":36},"vectorize_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"vectorize_update-index-request":{"properties":{"description":{"$ref":"#/components/schemas/vectorize_index-description"}},"required":["description"],"type":"object"},"vectorize_vector-identifier":{"description":"Identifier for a Vector","example":"some-vector-id-023e105f4ecef8ad9ca31a8372d0c353","maxLength":64,"readOnly":true,"type":"string"},"waf-managed-rules_allowed_modes":{"description":"The available states for the rule group.","example":["on","off"],"items":{"$ref":"#/components/schemas/waf-managed-rules_mode"},"readOnly":true,"type":"array"},"waf-managed-rules_allowed_modes_allow_traditional":{"description":"Defines the available modes for the current WAF rule.","example":["on","off"],"items":{"$ref":"#/components/schemas/waf-managed-rules_mode_allow_traditional"},"readOnly":true,"type":"array"},"waf-managed-rules_allowed_modes_anomaly":{"description":"Defines the available modes for the current WAF rule. Applies to anomaly detection WAF rules.","example":["on","off"],"items":{"$ref":"#/components/schemas/waf-managed-rules_mode_anomaly"},"readOnly":true,"type":"array"},"waf-managed-rules_allowed_modes_deny_traditional":{"description":"The list of possible actions of the WAF rule when it is triggered.","example":["default","disable","simulate","block","challenge"],"items":{"$ref":"#/components/schemas/waf-managed-rules_mode_deny_traditional"},"readOnly":true,"type":"array"},"waf-managed-rules_anomaly_rule":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_schemas-base"},{"properties":{"allowed_modes":{"$ref":"#/components/schemas/waf-managed-rules_allowed_modes_anomaly"},"mode":{"$ref":"#/components/schemas/waf-managed-rules_mode_anomaly"}}}],"description":"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.","required":["id","description","priority","allowed_modes","mode","group","package_id"],"title":"Anomaly detection WAF rule"},"waf-managed-rules_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"},"result_info":{"$ref":"#/components/schemas/waf-managed-rules_result_info"}}}],"type":"object"},"waf-managed-rules_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/waf-managed-rules_messages"},"messages":{"$ref":"#/components/schemas/waf-managed-rules_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"waf-managed-rules_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"waf-managed-rules_api-response-single":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_api-response-common"},{"properties":{"result":{"oneOf":[{"nullable":true,"type":"object"},{"nullable":true,"type":"string"}]}}}],"type":"object"},"waf-managed-rules_base":{"properties":{"description":{"$ref":"#/components/schemas/waf-managed-rules_schemas-description"},"group":{"description":"The rule group to which the current WAF rule belongs.","properties":{"id":{"$ref":"#/components/schemas/waf-managed-rules_components-schemas-identifier"},"name":{"$ref":"#/components/schemas/waf-managed-rules_name"}},"readOnly":true,"type":"object"},"id":{"$ref":"#/components/schemas/waf-managed-rules_rule_components-schemas-identifier"},"package_id":{"$ref":"#/components/schemas/waf-managed-rules_identifier"},"priority":{"$ref":"#/components/schemas/waf-managed-rules_priority"}}},"waf-managed-rules_components-schemas-identifier":{"description":"The unique identifier of the rule group.","example":"de677e5818985db1285d0e80225f06e5","maxLength":32,"readOnly":true,"type":"string"},"waf-managed-rules_default_mode":{"description":"The default action/mode of a rule.","enum":["disable","simulate","block","challenge"],"example":"block","readOnly":true},"waf-managed-rules_description":{"description":"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","nullable":true,"readOnly":true,"type":"string"},"waf-managed-rules_group":{"properties":{"description":{"$ref":"#/components/schemas/waf-managed-rules_description"},"id":{"$ref":"#/components/schemas/waf-managed-rules_components-schemas-identifier"},"modified_rules_count":{"$ref":"#/components/schemas/waf-managed-rules_modified_rules_count"},"name":{"$ref":"#/components/schemas/waf-managed-rules_name"},"package_id":{"$ref":"#/components/schemas/waf-managed-rules_identifier"},"rules_count":{"$ref":"#/components/schemas/waf-managed-rules_rules_count"}},"type":"object"},"waf-managed-rules_identifier":{"description":"The unique identifier of a WAF package.","example":"a25a9a7e9c00afc1fb2e0245519d725b","maxLength":32,"readOnly":true,"type":"string"},"waf-managed-rules_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"waf-managed-rules_mode":{"default":"on","description":"The state of the rules contained in the rule group. When `on`, the rules in the group are configurable/usable.","enum":["on","off"],"type":"string"},"waf-managed-rules_mode_allow_traditional":{"description":"When set to `on`, the current rule will be used when evaluating the request. Applies to traditional (allow) WAF rules.","enum":["on","off"],"example":"on","type":"string"},"waf-managed-rules_mode_anomaly":{"description":"When set to `on`, the current WAF rule will be used when evaluating the request. Applies to anomaly detection WAF rules.","enum":["on","off"],"example":"on","type":"string"},"waf-managed-rules_mode_deny_traditional":{"description":"The action that the current WAF rule will perform when triggered. Applies to traditional (deny) WAF rules.","enum":["default","disable","simulate","block","challenge"],"example":"block","type":"string"},"waf-managed-rules_modified_rules_count":{"default":0,"description":"The number of rules within the group that have been modified from their default configuration.","example":2,"readOnly":true,"type":"number"},"waf-managed-rules_name":{"description":"The name of the rule group.","example":"Project Honey Pot","readOnly":true,"type":"string"},"waf-managed-rules_priority":{"description":"The order in which the individual WAF rule is executed within its rule group.","readOnly":true,"type":"string"},"waf-managed-rules_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"waf-managed-rules_rule":{"oneOf":[{"$ref":"#/components/schemas/waf-managed-rules_anomaly_rule"},{"$ref":"#/components/schemas/waf-managed-rules_traditional_deny_rule"},{"$ref":"#/components/schemas/waf-managed-rules_traditional_allow_rule"}],"type":"object"},"waf-managed-rules_rule_components-schemas-identifier":{"description":"The unique identifier of the WAF rule.","example":"f939de3be84e66e757adcdcb87908023","maxLength":32,"readOnly":true,"type":"string"},"waf-managed-rules_rule_group_response_collection":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/waf-managed-rules_schemas-group"},"type":"array"}}}]},"waf-managed-rules_rule_group_response_single":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_api-response-single"},{"properties":{"result":{"type":"object"}}}]},"waf-managed-rules_rule_response_collection":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/waf-managed-rules_rule"},"type":"array"}}}]},"waf-managed-rules_rule_response_single":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_api-response-single"},{"properties":{"result":{"type":"object"}}}]},"waf-managed-rules_rules_count":{"default":0,"description":"The number of rules in the current rule group.","example":10,"readOnly":true,"type":"number"},"waf-managed-rules_schemas-base":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_base"}]},"waf-managed-rules_schemas-description":{"description":"The public description of the WAF rule.","example":"SQL injection prevention for SELECT statements","readOnly":true,"type":"string"},"waf-managed-rules_schemas-group":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_group"},{"properties":{"allowed_modes":{"$ref":"#/components/schemas/waf-managed-rules_allowed_modes"},"mode":{"$ref":"#/components/schemas/waf-managed-rules_mode"}}}],"required":["id","name","description","mode","rules_count"],"type":"object"},"waf-managed-rules_schemas-identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"waf-managed-rules_traditional_allow_rule":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_base"},{"properties":{"allowed_modes":{"$ref":"#/components/schemas/waf-managed-rules_allowed_modes_allow_traditional"},"mode":{"$ref":"#/components/schemas/waf-managed-rules_mode_allow_traditional"}}}],"description":"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.","required":["id","description","priority","allowed_modes","default_mode","mode","group","package_id"],"title":"Traditional (allow) WAF rule"},"waf-managed-rules_traditional_deny_rule":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_base"},{"properties":{"allowed_modes":{"$ref":"#/components/schemas/waf-managed-rules_allowed_modes_deny_traditional"},"default_mode":{"$ref":"#/components/schemas/waf-managed-rules_default_mode"},"mode":{"$ref":"#/components/schemas/waf-managed-rules_mode_deny_traditional"}}}],"description":"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.","required":["id","description","priority","allowed_modes","default_mode","mode","group","package_id"],"title":"Traditional (deny) WAF rule"},"waitingroom_additional_routes":{"description":"Only available for the Waiting Room Advanced subscription. Additional hostname and path combinations to which this waiting room will be applied. There is an implied wildcard at the end of the path. The hostname and path combination must be unique to this and all other waiting rooms.","items":{"properties":{"host":{"description":"The hostname to which this waiting room will be applied (no wildcards). The hostname must be the primary domain, subdomain, or custom hostname (if using SSL for SaaS) of this zone. Please do not include the scheme (http:// or https://).","example":"shop2.example.com","type":"string"},"path":{"default":"/","description":"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.","example":"/shop2/checkout","type":"string"}},"type":"object"},"type":"array"},"waitingroom_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/waitingroom_schemas-api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/waitingroom_result_info"}}}],"type":"object"},"waitingroom_api-response-common":{"required":["success","errors","messages","result"],"type":"object"},"waitingroom_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/waitingroom_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/waitingroom_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"waitingroom_api-response-single":{"allOf":[{"$ref":"#/components/schemas/waitingroom_api-response-common"},{"properties":{"result":{"oneOf":[{"type":"object"},{"type":"string"}]}}}],"type":"object"},"waitingroom_cookie_attributes":{"description":"Configures cookie attributes for the waiting room cookie. This encrypted cookie stores a user's status in the waiting room, such as queue position.","properties":{"samesite":{"default":"auto","description":"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`.","enum":["auto","lax","none","strict"],"example":"auto","type":"string"},"secure":{"default":"auto","description":"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.","enum":["auto","always","never"],"example":"auto","type":"string"}},"type":"object"},"waitingroom_cookie_suffix":{"description":"Appends a '_' + a custom suffix to the end of Cloudflare Waiting Room's cookie name(__cf_waitingroom). If `cookie_suffix` is \"abcd\", the cookie name will be `__cf_waitingroom_abcd`. This field is required if using `additional_routes`.","example":"abcd","type":"string"},"waitingroom_create_rule":{"properties":{"action":{"$ref":"#/components/schemas/waitingroom_rule_action"},"description":{"$ref":"#/components/schemas/waitingroom_rule_description"},"enabled":{"$ref":"#/components/schemas/waitingroom_rule_enabled"},"expression":{"$ref":"#/components/schemas/waitingroom_rule_expression"}},"required":["action","expression"]},"waitingroom_custom_page_html":{"default":"","description":"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:\n1. {{`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**.\n2. {{`waitTimeFormatted`}} Estimated wait time for the user. For example, five minutes. Alternatively, you can use:\n3. {{`waitTime`}} Number of minutes of estimated wait for a user.\n4. {{`waitTimeHours`}} Number of hours of estimated wait for a user (`Math.floor(waitTime/60)`).\n5. {{`waitTimeHourMinutes`}} Number of minutes above the `waitTimeHours` value (`waitTime%60`).\n6. {{`queueIsFull`}} Changes to **true** when no more people can be added to the queue.\n\nTo view the full list of variables, look at the `cfWaitingRoom` object described under the `json_response_enabled` property in other Waiting Room API calls.","example":"{{#waitTimeKnown}} {{waitTime}} mins {{/waitTimeKnown}} {{^waitTimeKnown}} Queue all enabled {{/waitTimeKnown}}","type":"string"},"waitingroom_default_template_language":{"default":"en-US","description":"The language of the default page template. If no default_template_language is provided, then `en-US` (English) will be used.","enum":["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"],"example":"es-ES","type":"string"},"waitingroom_description":{"default":"","description":"A note that you can use to add more details about the waiting room.","example":"Production - DO NOT MODIFY","type":"string"},"waitingroom_disable_session_renewal":{"default":false,"description":"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.","example":false,"type":"boolean"},"waitingroom_enabled_origin_commands":{"default":[],"description":"A list of enabled origin commands.","items":{"enum":["revoke"],"type":"string","uniqueItems":true},"type":"array"},"waitingroom_estimated_queued_users":{"type":"integer"},"waitingroom_estimated_total_active_users":{"type":"integer"},"waitingroom_event_custom_page_html":{"description":"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}}","nullable":true,"type":"string"},"waitingroom_event_description":{"default":"","description":"A note that you can use to add more details about the event.","example":"Production event - DO NOT MODIFY","type":"string"},"waitingroom_event_details_custom_page_html":{"example":"{{#waitTimeKnown}} {{waitTime}} mins {{/waitTimeKnown}} {{^waitTimeKnown}} Event is prequeueing / Queue all enabled {{/waitTimeKnown}}","type":"string"},"waitingroom_event_details_disable_session_renewal":{"example":false,"type":"boolean"},"waitingroom_event_details_new_users_per_minute":{"type":"integer"},"waitingroom_event_details_queueing_method":{"example":"random","type":"string"},"waitingroom_event_details_response":{"allOf":[{"$ref":"#/components/schemas/waitingroom_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/waitingroom_event_details_result"}}}]},"waitingroom_event_details_result":{"properties":{"created_on":{"$ref":"#/components/schemas/waitingroom_timestamp"},"custom_page_html":{"$ref":"#/components/schemas/waitingroom_event_details_custom_page_html"},"description":{"$ref":"#/components/schemas/waitingroom_event_description"},"disable_session_renewal":{"$ref":"#/components/schemas/waitingroom_event_details_disable_session_renewal"},"event_end_time":{"$ref":"#/components/schemas/waitingroom_event_end_time"},"event_start_time":{"$ref":"#/components/schemas/waitingroom_event_start_time"},"id":{"$ref":"#/components/schemas/waitingroom_event_id"},"modified_on":{"$ref":"#/components/schemas/waitingroom_timestamp"},"name":{"$ref":"#/components/schemas/waitingroom_event_name"},"new_users_per_minute":{"$ref":"#/components/schemas/waitingroom_event_details_new_users_per_minute"},"prequeue_start_time":{"$ref":"#/components/schemas/waitingroom_event_prequeue_start_time"},"queueing_method":{"$ref":"#/components/schemas/waitingroom_event_details_queueing_method"},"session_duration":{"$ref":"#/components/schemas/waitingroom_event_details_session_duration"},"shuffle_at_event_start":{"$ref":"#/components/schemas/waitingroom_event_shuffle_at_event_start"},"suspended":{"$ref":"#/components/schemas/waitingroom_event_suspended"},"total_active_users":{"$ref":"#/components/schemas/waitingroom_event_details_total_active_users"}},"type":"object"},"waitingroom_event_details_session_duration":{"type":"integer"},"waitingroom_event_details_total_active_users":{"type":"integer"},"waitingroom_event_disable_session_renewal":{"description":"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.","nullable":true,"type":"boolean"},"waitingroom_event_end_time":{"description":"An ISO 8601 timestamp that marks the end of the event.","example":"2021-09-28T17:00:00.000Z","type":"string"},"waitingroom_event_id":{"example":"25756b2dfe6e378a06b033b670413757","type":"string"},"waitingroom_event_id_response":{"allOf":[{"$ref":"#/components/schemas/waitingroom_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/waitingroom_event_id"}},"type":"object"}}}]},"waitingroom_event_name":{"description":"A unique name to identify the event. Only alphanumeric characters, hyphens and underscores are allowed.","example":"production_webinar_event","type":"string"},"waitingroom_event_new_users_per_minute":{"description":"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,"nullable":true,"type":"integer"},"waitingroom_event_prequeue_start_time":{"description":"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","nullable":true,"type":"string"},"waitingroom_event_queueing_method":{"description":"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","nullable":true,"type":"string"},"waitingroom_event_response":{"allOf":[{"$ref":"#/components/schemas/waitingroom_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/waitingroom_event_result"}}}]},"waitingroom_event_response_collection":{"allOf":[{"$ref":"#/components/schemas/waitingroom_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/waitingroom_event_result"},"type":"array"}}}]},"waitingroom_event_result":{"properties":{"created_on":{"$ref":"#/components/schemas/waitingroom_timestamp"},"custom_page_html":{"$ref":"#/components/schemas/waitingroom_event_custom_page_html"},"description":{"$ref":"#/components/schemas/waitingroom_event_description"},"disable_session_renewal":{"$ref":"#/components/schemas/waitingroom_event_disable_session_renewal"},"event_end_time":{"$ref":"#/components/schemas/waitingroom_event_end_time"},"event_start_time":{"$ref":"#/components/schemas/waitingroom_event_start_time"},"id":{"$ref":"#/components/schemas/waitingroom_event_id"},"modified_on":{"$ref":"#/components/schemas/waitingroom_timestamp"},"name":{"$ref":"#/components/schemas/waitingroom_event_name"},"new_users_per_minute":{"$ref":"#/components/schemas/waitingroom_event_new_users_per_minute"},"prequeue_start_time":{"$ref":"#/components/schemas/waitingroom_event_prequeue_start_time"},"queueing_method":{"$ref":"#/components/schemas/waitingroom_event_queueing_method"},"session_duration":{"$ref":"#/components/schemas/waitingroom_event_session_duration"},"shuffle_at_event_start":{"$ref":"#/components/schemas/waitingroom_event_shuffle_at_event_start"},"suspended":{"$ref":"#/components/schemas/waitingroom_event_suspended"},"total_active_users":{"$ref":"#/components/schemas/waitingroom_event_total_active_users"}},"type":"object"},"waitingroom_event_session_duration":{"description":"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,"nullable":true,"type":"integer"},"waitingroom_event_shuffle_at_event_start":{"default":false,"description":"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.","type":"boolean"},"waitingroom_event_start_time":{"description":"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","type":"string"},"waitingroom_event_suspended":{"default":false,"description":"Suspends or allows an event. If set to `true`, the event is ignored and traffic will be handled based on the waiting room configuration.","type":"boolean"},"waitingroom_event_total_active_users":{"description":"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,"nullable":true,"type":"integer"},"waitingroom_host":{"description":"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","type":"string"},"waitingroom_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"waitingroom_json_response_enabled":{"default":false,"description":"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:\n1. `inWaitingRoom`: Boolean indicating if the user is in the waiting room (always **true**).\n2. `waitTimeKnown`: Boolean indicating if the current estimated wait times are accurate. If **false**, they are not available.\n3. `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`.\n4. `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).\n5. `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.\n6. `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).\n7. `waitTimeFormatted`: String displaying the `waitTime` formatted in English for users. If `waitTimeKnown` is **false**, `waitTimeFormatted` will display **unavailable**.\n8. `queueIsFull`: Boolean indicating if the waiting room's queue is currently full and not accepting new users at the moment.\n9. `queueAll`: Boolean indicating if all users will be queued in the waiting room and no one will be let into the origin website.\n10. `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.\n11. `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**.\n12. `queueingMethod`: The queueing method currently used by the waiting room. It is either **fifo**, **random**, **passthrough**, or **reject**.\n13. `isFIFOQueue`: Boolean indicating if the waiting room uses a FIFO (First-In-First-Out) queue.\n14. `isRandomQueue`: Boolean indicating if the waiting room uses a Random queue where users gain access randomly.\n15. `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.\n16. `isRejectQueue`: Boolean indicating if the waiting room uses a reject queue.\n17. `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.\n18. `isEventPrequeueing`: Valid only when `isEventActive` is **true**. Boolean indicating if an event is currently prequeueing users before it starts.\n19. `timeUntilEventStart`: Valid only when `isEventPrequeueing` is **true**. Integer indicating the number of minutes until the event starts.\n20. `timeUntilEventStartFormatted`: String displaying the `timeUntilEventStart` formatted in English for users. If `isEventPrequeueing` is **false**, `timeUntilEventStartFormatted` will display **unavailable**.\n21. `timeUntilEventEnd`: Valid only when `isEventActive` is **true**. Integer indicating the number of minutes until the event ends.\n22. `timeUntilEventEndFormatted`: String displaying the `timeUntilEventEnd` formatted in English for users. If `isEventActive` is **false**, `timeUntilEventEndFormatted` will display **unavailable**.\n23. `shuffleAtEventStart`: Valid only when `isEventActive` is **true**. Boolean indicating if the users in the prequeue are shuffled randomly when the event starts.\n\nAn example cURL to a waiting room could be:\n\n\tcurl -X GET \"https://example.com/waitingroom\" \\\n\t\t-H \"Accept: application/json\"\n\nIf `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:\n\n\t{\n\t\t\"cfWaitingRoom\": {\n\t\t\t\"inWaitingRoom\": true,\n\t\t\t\"waitTimeKnown\": true,\n\t\t\t\"waitTime\": 10,\n\t\t\t\"waitTime25Percentile\": 0,\n\t\t\t\"waitTime50Percentile\": 0,\n\t\t\t\"waitTime75Percentile\": 0,\n\t\t\t\"waitTimeFormatted\": \"10 minutes\",\n\t\t\t\"queueIsFull\": false,\n\t\t\t\"queueAll\": false,\n\t\t\t\"lastUpdated\": \"2020-08-03T23:46:00.000Z\",\n\t\t\t\"refreshIntervalSeconds\": 20,\n\t\t\t\"queueingMethod\": \"fifo\",\n\t\t\t\"isFIFOQueue\": true,\n\t\t\t\"isRandomQueue\": false,\n\t\t\t\"isPassthroughQueue\": false,\n\t\t\t\"isRejectQueue\": false,\n\t\t\t\"isEventActive\": false,\n\t\t\t\"isEventPrequeueing\": false,\n\t\t\t\"timeUntilEventStart\": 0,\n\t\t\t\"timeUntilEventStartFormatted\": \"unavailable\",\n\t\t\t\"timeUntilEventEnd\": 0,\n\t\t\t\"timeUntilEventEndFormatted\": \"unavailable\",\n\t\t\t\"shuffleAtEventStart\": false\n\t\t}\n\t}\n\nIf `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:\n\n\t{\n\t\t\"cfWaitingRoom\": {\n\t\t\t\"inWaitingRoom\": true,\n\t\t\t\"waitTimeKnown\": true,\n\t\t\t\"waitTime\": 10,\n\t\t\t\"waitTime25Percentile\": 5,\n\t\t\t\"waitTime50Percentile\": 10,\n\t\t\t\"waitTime75Percentile\": 15,\n\t\t\t\"waitTimeFormatted\": \"5 minutes to 15 minutes\",\n\t\t\t\"queueIsFull\": false,\n\t\t\t\"queueAll\": false,\n\t\t\t\"lastUpdated\": \"2020-08-03T23:46:00.000Z\",\n\t\t\t\"refreshIntervalSeconds\": 20,\n\t\t\t\"queueingMethod\": \"random\",\n\t\t\t\"isFIFOQueue\": false,\n\t\t\t\"isRandomQueue\": true,\n\t\t\t\"isPassthroughQueue\": false,\n\t\t\t\"isRejectQueue\": false,\n\t\t\t\"isEventActive\": true,\n\t\t\t\"isEventPrequeueing\": false,\n\t\t\t\"timeUntilEventStart\": 0,\n\t\t\t\"timeUntilEventStartFormatted\": \"unavailable\",\n\t\t\t\"timeUntilEventEnd\": 15,\n\t\t\t\"timeUntilEventEndFormatted\": \"15 minutes\",\n\t\t\t\"shuffleAtEventStart\": true\n\t\t}\n\t}.","example":false,"type":"boolean"},"waitingroom_max_estimated_time_minutes":{"type":"integer"},"waitingroom_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"waitingroom_name":{"description":"A unique name to identify the waiting room. Only alphanumeric characters, hyphens and underscores are allowed.","example":"production_webinar","type":"string"},"waitingroom_new_users_per_minute":{"description":"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,"type":"integer"},"waitingroom_next_event_prequeue_start_time":{"description":"An ISO 8601 timestamp that marks when the next event will begin queueing.","example":"2021-09-28T15:00:00.000Z","nullable":true,"type":"string"},"waitingroom_next_event_start_time":{"description":"An ISO 8601 timestamp that marks when the next event will start.","example":"2021-09-28T15:00:00.000Z","nullable":true,"type":"string"},"waitingroom_patch_rule":{"properties":{"action":{"$ref":"#/components/schemas/waitingroom_rule_action"},"description":{"$ref":"#/components/schemas/waitingroom_rule_description"},"enabled":{"$ref":"#/components/schemas/waitingroom_rule_enabled"},"expression":{"$ref":"#/components/schemas/waitingroom_rule_expression"},"position":{"$ref":"#/components/schemas/waitingroom_rule_position"}},"required":["action","expression"]},"waitingroom_path":{"default":"/","description":"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.","example":"/shop/checkout","type":"string"},"waitingroom_preview_response":{"allOf":[{"$ref":"#/components/schemas/waitingroom_api-response-single"},{"properties":{"result":{"properties":{"preview_url":{"$ref":"#/components/schemas/waitingroom_preview_url"}},"type":"object"}}}]},"waitingroom_preview_url":{"description":"URL where the custom waiting room page can temporarily be previewed.","example":"http://waitingrooms.dev/preview/35af8c12-6d68-4608-babb-b53435a5ddfb","type":"string"},"waitingroom_query_event":{"properties":{"custom_page_html":{"$ref":"#/components/schemas/waitingroom_event_custom_page_html"},"description":{"$ref":"#/components/schemas/waitingroom_event_description"},"disable_session_renewal":{"$ref":"#/components/schemas/waitingroom_event_disable_session_renewal"},"event_end_time":{"$ref":"#/components/schemas/waitingroom_event_end_time"},"event_start_time":{"$ref":"#/components/schemas/waitingroom_event_start_time"},"name":{"$ref":"#/components/schemas/waitingroom_event_name"},"new_users_per_minute":{"$ref":"#/components/schemas/waitingroom_event_new_users_per_minute"},"prequeue_start_time":{"$ref":"#/components/schemas/waitingroom_event_prequeue_start_time"},"queueing_method":{"$ref":"#/components/schemas/waitingroom_event_queueing_method"},"session_duration":{"$ref":"#/components/schemas/waitingroom_event_session_duration"},"shuffle_at_event_start":{"$ref":"#/components/schemas/waitingroom_event_shuffle_at_event_start"},"suspended":{"$ref":"#/components/schemas/waitingroom_event_suspended"},"total_active_users":{"$ref":"#/components/schemas/waitingroom_event_total_active_users"}},"required":["name","event_start_time","event_end_time"],"type":"object"},"waitingroom_query_preview":{"properties":{"custom_html":{"$ref":"#/components/schemas/waitingroom_custom_page_html"}},"required":["custom_html"],"type":"object"},"waitingroom_query_waitingroom":{"properties":{"additional_routes":{"$ref":"#/components/schemas/waitingroom_additional_routes"},"cookie_attributes":{"$ref":"#/components/schemas/waitingroom_cookie_attributes"},"cookie_suffix":{"$ref":"#/components/schemas/waitingroom_cookie_suffix"},"custom_page_html":{"$ref":"#/components/schemas/waitingroom_custom_page_html"},"default_template_language":{"$ref":"#/components/schemas/waitingroom_default_template_language"},"description":{"$ref":"#/components/schemas/waitingroom_description"},"disable_session_renewal":{"$ref":"#/components/schemas/waitingroom_disable_session_renewal"},"enabled_origin_commands":{"$ref":"#/components/schemas/waitingroom_enabled_origin_commands"},"host":{"$ref":"#/components/schemas/waitingroom_host"},"json_response_enabled":{"$ref":"#/components/schemas/waitingroom_json_response_enabled"},"name":{"$ref":"#/components/schemas/waitingroom_name"},"new_users_per_minute":{"$ref":"#/components/schemas/waitingroom_new_users_per_minute"},"path":{"$ref":"#/components/schemas/waitingroom_path"},"queue_all":{"$ref":"#/components/schemas/waitingroom_queue_all"},"queueing_method":{"$ref":"#/components/schemas/waitingroom_queueing_method"},"queueing_status_code":{"$ref":"#/components/schemas/waitingroom_queueing_status_code"},"session_duration":{"$ref":"#/components/schemas/waitingroom_session_duration"},"suspended":{"$ref":"#/components/schemas/waitingroom_suspended"},"total_active_users":{"$ref":"#/components/schemas/waitingroom_total_active_users"}},"required":["name","host","new_users_per_minute","total_active_users"],"type":"object"},"waitingroom_queue_all":{"default":false,"description":"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.","example":true,"type":"boolean"},"waitingroom_queueing_method":{"default":"fifo","description":"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:\n1. `fifo` **(default)**: First-In-First-Out queue where customers gain access in the order they arrived.\n2. `random`: Random queue where customers gain access randomly, regardless of arrival time.\n3. `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.\n4. `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**.","enum":["fifo","random","passthrough","reject"],"example":"fifo","type":"string"},"waitingroom_queueing_status_code":{"default":200,"description":"HTTP status code returned to a user while in the queue.","enum":[200,202,429],"example":202,"type":"integer"},"waitingroom_response_collection":{"allOf":[{"$ref":"#/components/schemas/waitingroom_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/waitingroom_waitingroom"},"type":"array"}}}]},"waitingroom_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"waitingroom_rule_action":{"description":"The action to take when the expression matches.","enum":["bypass_waiting_room"],"example":"bypass_waiting_room","type":"string"},"waitingroom_rule_description":{"default":"","description":"The description of the rule.","example":"allow all traffic from 10.20.30.40","type":"string"},"waitingroom_rule_enabled":{"default":true,"description":"When set to true, the rule is enabled.","example":true,"type":"boolean"},"waitingroom_rule_expression":{"description":"Criteria defining when there is a match for the current rule.","example":"ip.src in {10.20.30.40}","type":"string"},"waitingroom_rule_id":{"description":"The ID of the rule.","example":"25756b2dfe6e378a06b033b670413757","type":"string"},"waitingroom_rule_position":{"description":"Reorder the position of a rule","oneOf":[{"properties":{"index":{"description":" Places the rule in the exact position specified by the integer number \u003cPOSITION_NUMBER\u003e. Position numbers start with 1. Existing rules in the ruleset from the specified position number onward are shifted one position (no rule is overwritten).","type":"integer"}},"type":"object"},{"properties":{"before":{"description":" Places the rule before rule \u003cRULE_ID\u003e. Use this argument with an empty rule ID value (\"\") to set the rule as the first rule in the ruleset.","example":"\u003cRULE_ID\u003e","type":"string"}},"type":"object"},{"properties":{"after":{"description":"Places the rule after rule \u003cRULE_ID\u003e. Use this argument with an empty rule ID value (\"\") to set the rule as the last rule in the ruleset.","example":"\u003cRULE_ID\u003e","type":"string"}},"type":"object"}],"type":"object"},"waitingroom_rule_result":{"properties":{"action":{"$ref":"#/components/schemas/waitingroom_rule_action"},"description":{"$ref":"#/components/schemas/waitingroom_rule_description"},"enabled":{"$ref":"#/components/schemas/waitingroom_rule_enabled"},"expression":{"$ref":"#/components/schemas/waitingroom_rule_expression"},"id":{"$ref":"#/components/schemas/waitingroom_rule_id"},"last_updated":{"$ref":"#/components/schemas/waitingroom_timestamp"},"version":{"$ref":"#/components/schemas/waitingroom_rule_version"}},"type":"object"},"waitingroom_rule_version":{"description":"The version of the rule.","example":"1","type":"string"},"waitingroom_rules_response_collection":{"allOf":[{"$ref":"#/components/schemas/waitingroom_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/waitingroom_rule_result"},"type":"array"}}}]},"waitingroom_schemas-api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/waitingroom_messages"},"messages":{"$ref":"#/components/schemas/waitingroom_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"waitingroom_search_engine_crawler_bypass":{"default":false,"description":"Whether to allow verified search engine crawlers to bypass all waiting rooms on this zone.\nVerified search engine crawlers will not be tracked or counted by the waiting room system,\nand will not appear in waiting room analytics.\n","example":true,"type":"boolean"},"waitingroom_session_duration":{"default":5,"description":"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.","maximum":30,"minimum":1,"type":"integer"},"waitingroom_single_response":{"allOf":[{"$ref":"#/components/schemas/waitingroom_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/waitingroom_waitingroom"}}}]},"waitingroom_status":{"enum":["event_prequeueing","not_queueing","queueing"],"example":"queueing","type":"string"},"waitingroom_status_event_id":{"example":"25756b2dfe6e378a06b033b670413757","type":"string"},"waitingroom_status_response":{"allOf":[{"$ref":"#/components/schemas/waitingroom_api-response-single"},{"properties":{"result":{"properties":{"estimated_queued_users":{"$ref":"#/components/schemas/waitingroom_estimated_queued_users"},"estimated_total_active_users":{"$ref":"#/components/schemas/waitingroom_estimated_total_active_users"},"event_id":{"$ref":"#/components/schemas/waitingroom_status_event_id"},"max_estimated_time_minutes":{"$ref":"#/components/schemas/waitingroom_max_estimated_time_minutes"},"status":{"$ref":"#/components/schemas/waitingroom_status"}},"type":"object"}}}]},"waitingroom_suspended":{"default":false,"description":"Suspends or allows traffic going to the waiting room. If set to `true`, the traffic will not go to the waiting room.","type":"boolean"},"waitingroom_timestamp":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"waitingroom_total_active_users":{"description":"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,"type":"integer"},"waitingroom_update_rules":{"items":{"$ref":"#/components/schemas/waitingroom_create_rule"},"type":"array"},"waitingroom_waiting_room_id":{"example":"699d98642c564d2e855e9661899b7252","type":"string"},"waitingroom_waiting_room_id_response":{"allOf":[{"$ref":"#/components/schemas/waitingroom_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/waitingroom_waiting_room_id"}},"type":"object"}}}]},"waitingroom_waitingroom":{"properties":{"additional_routes":{"$ref":"#/components/schemas/waitingroom_additional_routes"},"cookie_attributes":{"$ref":"#/components/schemas/waitingroom_cookie_attributes"},"cookie_suffix":{"$ref":"#/components/schemas/waitingroom_cookie_suffix"},"created_on":{"$ref":"#/components/schemas/waitingroom_timestamp"},"custom_page_html":{"$ref":"#/components/schemas/waitingroom_custom_page_html"},"default_template_language":{"$ref":"#/components/schemas/waitingroom_default_template_language"},"description":{"$ref":"#/components/schemas/waitingroom_description"},"disable_session_renewal":{"$ref":"#/components/schemas/waitingroom_disable_session_renewal"},"enabled_origin_commands":{"$ref":"#/components/schemas/waitingroom_enabled_origin_commands"},"host":{"$ref":"#/components/schemas/waitingroom_host"},"id":{"$ref":"#/components/schemas/waitingroom_waiting_room_id"},"json_response_enabled":{"$ref":"#/components/schemas/waitingroom_json_response_enabled"},"modified_on":{"$ref":"#/components/schemas/waitingroom_timestamp"},"name":{"$ref":"#/components/schemas/waitingroom_name"},"new_users_per_minute":{"$ref":"#/components/schemas/waitingroom_new_users_per_minute"},"next_event_prequeue_start_time":{"$ref":"#/components/schemas/waitingroom_next_event_prequeue_start_time"},"next_event_start_time":{"$ref":"#/components/schemas/waitingroom_next_event_start_time"},"path":{"$ref":"#/components/schemas/waitingroom_path"},"queue_all":{"$ref":"#/components/schemas/waitingroom_queue_all"},"queueing_method":{"$ref":"#/components/schemas/waitingroom_queueing_method"},"queueing_status_code":{"$ref":"#/components/schemas/waitingroom_queueing_status_code"},"session_duration":{"$ref":"#/components/schemas/waitingroom_session_duration"},"suspended":{"$ref":"#/components/schemas/waitingroom_suspended"},"total_active_users":{"$ref":"#/components/schemas/waitingroom_total_active_users"}},"type":"object"},"waitingroom_zone_settings":{"properties":{"search_engine_crawler_bypass":{"$ref":"#/components/schemas/waitingroom_search_engine_crawler_bypass"}},"type":"object"},"waitingroom_zone_settings_response":{"allOf":[{"$ref":"#/components/schemas/waitingroom_api-response-single"},{"properties":{"result":{"properties":{"search_engine_crawler_bypass":{"$ref":"#/components/schemas/waitingroom_search_engine_crawler_bypass"}},"required":["search_engine_crawler_bypass"],"type":"object"}},"required":["result"]}]},"web3_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/web3_api-response-common"},{"properties":{"result":{"items":{},"nullable":true,"type":"array"},"result_info":{"$ref":"#/components/schemas/web3_result_info"}}}],"type":"object"},"web3_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/web3_messages"},"messages":{"$ref":"#/components/schemas/web3_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"web3_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/web3_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/web3_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"web3_api-response-single":{"allOf":[{"$ref":"#/components/schemas/web3_api-response-common"},{"properties":{"result":{"anyOf":[{"nullable":true,"type":"object"},{"nullable":true,"type":"string"}]}}}],"type":"object"},"web3_api-response-single-id":{"allOf":[{"$ref":"#/components/schemas/web3_api-response-common"},{"properties":{"result":{"nullable":true,"properties":{"id":{"$ref":"#/components/schemas/web3_identifier"}},"required":["id"],"type":"object"}}}],"type":"object"},"web3_collection_response":{"allOf":[{"$ref":"#/components/schemas/web3_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/web3_web3-hostname"},"type":"array"}}}]},"web3_content_list_action":{"description":"Behavior of the content list.","enum":["block"],"example":"block","type":"string"},"web3_content_list_details":{"properties":{"action":{"$ref":"#/components/schemas/web3_content_list_action"}},"type":"object"},"web3_content_list_details_response":{"allOf":[{"$ref":"#/components/schemas/web3_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/web3_content_list_details"}}}]},"web3_content_list_entries":{"description":"Content list entries.","items":{"$ref":"#/components/schemas/web3_content_list_entry"},"type":"array"},"web3_content_list_entry":{"description":"Content list entry to be blocked.","properties":{"content":{"$ref":"#/components/schemas/web3_content_list_entry_content"},"created_on":{"$ref":"#/components/schemas/web3_timestamp"},"description":{"$ref":"#/components/schemas/web3_content_list_entry_description"},"id":{"$ref":"#/components/schemas/web3_identifier"},"modified_on":{"$ref":"#/components/schemas/web3_timestamp"},"type":{"$ref":"#/components/schemas/web3_content_list_entry_type"}},"type":"object"},"web3_content_list_entry_collection_response":{"allOf":[{"$ref":"#/components/schemas/web3_api-response-collection"},{"properties":{"result":{"properties":{"entries":{"$ref":"#/components/schemas/web3_content_list_entries"}},"type":"object"}}}]},"web3_content_list_entry_content":{"description":"CID or content path of content to block.","example":"QmPZ9gcCEpqKTo6aq61g2nXGUhM4iCL3ewB6LDXZCtioEB","maxLength":500,"type":"string"},"web3_content_list_entry_create_request":{"properties":{"content":{"$ref":"#/components/schemas/web3_content_list_entry_content"},"description":{"$ref":"#/components/schemas/web3_content_list_entry_description"},"type":{"$ref":"#/components/schemas/web3_content_list_entry_type"}},"required":["type","content"],"type":"object"},"web3_content_list_entry_description":{"description":"An optional description of the content list entry.","example":"this is my content list entry","maxLength":500,"type":"string"},"web3_content_list_entry_single_response":{"allOf":[{"$ref":"#/components/schemas/web3_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/web3_content_list_entry"}}}]},"web3_content_list_entry_type":{"description":"Type of content list entry to block.","enum":["cid","content_path"],"example":"cid","type":"string"},"web3_content_list_update_request":{"properties":{"action":{"$ref":"#/components/schemas/web3_content_list_action"},"entries":{"$ref":"#/components/schemas/web3_content_list_entries"}},"required":["action","entries"],"type":"object"},"web3_create_request":{"properties":{"description":{"$ref":"#/components/schemas/web3_description"},"dnslink":{"$ref":"#/components/schemas/web3_dnslink"},"name":{"$ref":"#/components/schemas/web3_name"},"target":{"$ref":"#/components/schemas/web3_target"}},"required":["name","target"],"type":"object"},"web3_description":{"description":"An optional description of the hostname.","example":"This is my IPFS gateway.","maxLength":500,"type":"string"},"web3_dnslink":{"description":"DNSLink value used if the target is ipfs.","example":"/ipns/onboarding.ipfs.cloudflare.com","type":"string"},"web3_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"web3_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"web3_modify_request":{"properties":{"description":{"$ref":"#/components/schemas/web3_description"},"dnslink":{"$ref":"#/components/schemas/web3_dnslink"}},"type":"object"},"web3_name":{"description":"The hostname that will point to the target gateway via CNAME.","example":"gateway.example.com","maxLength":255,"readOnly":true,"type":"string"},"web3_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"web3_single_response":{"allOf":[{"$ref":"#/components/schemas/web3_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/web3_web3-hostname"}}}]},"web3_status":{"description":"Status of the hostname's activation.","enum":["active","pending","deleting","error"],"example":"active","readOnly":true,"type":"string"},"web3_target":{"description":"Target gateway of the hostname.","enum":["ethereum","ipfs","ipfs_universal_path"],"example":"ipfs","type":"string"},"web3_timestamp":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"web3_web3-hostname":{"properties":{"created_on":{"$ref":"#/components/schemas/web3_timestamp"},"description":{"$ref":"#/components/schemas/web3_description"},"dnslink":{"$ref":"#/components/schemas/web3_dnslink"},"id":{"$ref":"#/components/schemas/web3_identifier"},"modified_on":{"$ref":"#/components/schemas/web3_timestamp"},"name":{"$ref":"#/components/schemas/web3_name"},"status":{"$ref":"#/components/schemas/web3_status"},"target":{"$ref":"#/components/schemas/web3_target"}},"type":"object"},"workers-kv_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/workers-kv_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/workers-kv_result_info"}},"type":"object"}],"type":"object"},"workers-kv_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/workers-kv_messages"},"messages":{"$ref":"#/components/schemas/workers-kv_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"workers-kv_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/workers-kv_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/workers-kv_messages"}],"example":[]},"result":{"nullable":true,"type":"object","x-stainless-empty-object":true},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"workers-kv_api-response-common-no-result":{"allOf":[{"$ref":"#/components/schemas/workers-kv_api-response-common"},{"properties":{"result":{"nullable":true,"type":"object","x-stainless-empty-object":true}},"type":"object"}]},"workers-kv_bulk_delete":{"items":{"$ref":"#/components/schemas/workers-kv_key_name_bulk"},"type":"array"},"workers-kv_bulk_write":{"items":{"properties":{"base64":{"default":false,"description":"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.","type":"boolean"},"expiration":{"$ref":"#/components/schemas/workers-kv_expiration"},"expiration_ttl":{"$ref":"#/components/schemas/workers-kv_expiration_ttl"},"key":{"$ref":"#/components/schemas/workers-kv_key_name_bulk"},"metadata":{"$ref":"#/components/schemas/workers-kv_list_metadata"},"value":{"description":"A UTF-8 encoded string to be stored, up to 25 MiB in length.","example":"Some string","maxLength":26214400,"type":"string"}},"type":"object"},"required":["key","value"],"type":"array"},"workers-kv_components-schemas-result":{"allOf":[{"$ref":"#/components/schemas/workers-kv_result"},{"properties":{"data":{"example":[{"metrics":[[2,4],[16,32]]}]},"max":{"example":{"storedBytes":32,"storedKeys":4}},"min":{"example":{"storedBytes":16,"storedKeys":2}},"query":{"$ref":"#/components/schemas/workers-kv_query"},"totals":{"example":{"storedBytes":48,"storedKeys":6}}}}]},"workers-kv_create_rename_namespace_body":{"properties":{"title":{"$ref":"#/components/schemas/workers-kv_namespace_title"}},"required":["title"],"type":"object"},"workers-kv_cursor":{"description":"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","type":"string"},"workers-kv_expiration":{"description":"The time, measured in number of seconds since the UNIX epoch, at which the key should expire.","example":1578435000,"type":"number"},"workers-kv_expiration_ttl":{"description":"The number of seconds for which the key should be visible before it expires. At least 60.","example":300,"type":"number"},"workers-kv_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"workers-kv_key":{"description":"A name for a value. A value stored under a given key may be retrieved via the same key.","properties":{"expiration":{"description":"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,"type":"number"},"metadata":{"$ref":"#/components/schemas/workers-kv_list_metadata"},"name":{"$ref":"#/components/schemas/workers-kv_key_name"}},"required":["name"],"type":"object"},"workers-kv_key_name":{"description":"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,"type":"string"},"workers-kv_key_name_bulk":{"description":"A key's name. The name may be at most 512 bytes. All printable, non-whitespace characters are valid.","example":"My-Key","maxLength":512,"type":"string"},"workers-kv_list_metadata":{"additionalProperties":true,"description":"Arbitrary JSON that is associated with a key.","example":{"someMetadataKey":"someMetadataValue"},"type":"object"},"workers-kv_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"workers-kv_metadata":{"description":"Arbitrary JSON to be associated with a key/value pair.","example":"{\"someMetadataKey\": \"someMetadataValue\"}","type":"string"},"workers-kv_namespace":{"properties":{"id":{"$ref":"#/components/schemas/workers-kv_namespace_identifier"},"supports_url_encoding":{"description":"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,"readOnly":true,"type":"boolean"},"title":{"$ref":"#/components/schemas/workers-kv_namespace_title"}},"required":["id","title"],"type":"object"},"workers-kv_namespace_identifier":{"description":"Namespace identifier tag.","example":"0f2ac74b498b48028cb68387c421e279","maxLength":32,"readOnly":true,"type":"string"},"workers-kv_namespace_title":{"description":"A human-readable string name for a Namespace.","example":"My Own Namespace","type":"string"},"workers-kv_query":{"description":"For specifying result metrics.","properties":{"dimensions":{"default":"[]","description":"Can be used to break down the data by given attributes.","items":{"description":"For drilling down on metrics.","type":"string"},"type":"array"},"filters":{"default":"\"\"","description":"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:\n\nOperator | Name | URL Encoded\n--------------------------|---------------------------------|--------------------------\n== | Equals | %3D%3D\n!= | Does not equals | !%3D\n\u003e | Greater Than | %3E\n\u003c | Less Than | %3C\n\u003e= | Greater than or equal to | %3E%3D\n\u003c= | Less than or equal to | %3C%3D .","type":"string"},"limit":{"default":10000,"description":"Limit number of returned metrics.","type":"integer"},"metrics":{"description":"One or more metrics to compute.","items":{"description":"A quantitative measurement of KV usage.","type":"string"},"type":"array"},"since":{"default":"\u003c6 hours ago\u003e","description":"Start of time interval to query, defaults to 6 hours before request received.","example":"2019-01-02T02:20:00Z","format":"date-time","type":"string"},"sort":{"default":"[]","description":"Array of dimensions or metrics to sort by, each dimension/metric may be prefixed by - (descending) or + (ascending).","items":{"type":"string"},"type":"array"},"until":{"default":"\u003cnow\u003e","description":"End of time interval to query, defaults to current time.","example":"2019-01-02T03:20:00Z","format":"date-time","type":"string"}},"type":"object"},"workers-kv_result":{"description":"Metrics on Workers KV requests.","properties":{"data":{"items":{"properties":{"dimensions":{"items":{"type":"string"},"type":"array"},"metrics":{"description":"List of metrics returned by the query.","items":{"items":{"format":"float","type":"number"},"type":"array"},"type":"array"}},"required":["metrics"],"type":"object"},"nullable":true,"type":"array"},"data_lag":{"description":"Number of seconds between current time and last processed event, i.e. how many seconds of data could be missing.","example":0,"minimum":0,"type":"number"},"max":{"additionalProperties":{"type":"number"},"description":"Maximum results for each metric.","type":"object"},"min":{"additionalProperties":{"type":"number"},"description":"Minimum results for each metric.","type":"object"},"query":{"$ref":"#/components/schemas/workers-kv_query"},"rows":{"description":"Total number of rows in the result.","example":2,"minimum":0,"type":"number"},"time_intervals":{"description":"Time interval buckets by beginning and ending","items":{"items":{"example":"2019-01-02T02:20:00Z","format":"date-time","maxItems":2,"minItems":2,"type":"string"},"type":"array"},"type":"array"},"totals":{"additionalProperties":{"type":"number"},"description":"Total results for metrics across all data.","type":"object"}},"required":["rows","data","data_lag","min","max","totals","query"],"type":"object"},"workers-kv_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"workers-kv_schemas-result":{"allOf":[{"$ref":"#/components/schemas/workers-kv_result"},{"properties":{"data":{"example":[{"metrics":[[2,4],[16,32]]}]},"max":{"example":{"readKiB":32,"requests":4}},"min":{"example":{"readKiB":16,"requests":2}},"query":{"$ref":"#/components/schemas/workers-kv_query"},"totals":{"example":{"readKiB":48,"requests":6}}}}]},"workers-kv_value":{"description":"A byte sequence to be stored, up to 25 MiB in length.","example":"Some Value","type":"string"},"workers_account-settings":{"properties":{"default_usage_model":{"type":"string"},"green_compute":{"type":"boolean"}},"type":"object"},"workers_account-settings-response":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers_account-settings"}}}]},"workers_account_identifier":{"description":"Identifer of the account.","example":"9a7806061c88ada191ed06f989cc3dac","type":"string"},"workers_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/workers_result_info"}}}],"type":"object"},"workers_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/workers_messages"},"messages":{"$ref":"#/components/schemas/workers_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"workers_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/workers_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/workers_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"workers_api-response-single":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"}],"type":"object"},"workers_api-response-single-id":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"nullable":true,"properties":{"id":{"$ref":"#/components/schemas/workers_identifier"}},"required":["id"],"type":"object"}}}],"type":"object"},"workers_assets_binding":{"properties":{"name":{"$ref":"#/components/schemas/workers_binding_name"},"type":{"description":"The class of resource that the binding provides.","enum":["assets"],"example":"assets","type":"string"}},"required":["name","type"],"type":"object"},"workers_binding":{"description":"A binding to allow the Worker to communicate with resources","oneOf":[{"$ref":"#/components/schemas/workers_kv_namespace_binding"},{"$ref":"#/components/schemas/workers_service_binding"},{"$ref":"#/components/schemas/workers_do_binding"},{"$ref":"#/components/schemas/workers_r2_binding"},{"$ref":"#/components/schemas/workers_queue_binding"},{"$ref":"#/components/schemas/workers_d1_binding"},{"$ref":"#/components/schemas/workers_dispatch_namespace_binding"},{"$ref":"#/components/schemas/workers_mtls_cert_binding"},{"$ref":"#/components/schemas/workers_assets_binding"}],"type":"object"},"workers_binding_name":{"description":"A JavaScript variable name for the binding.","example":"myBinding","readOnly":true,"type":"string"},"workers_bindings":{"description":"List of bindings attached to this Worker","items":{"$ref":"#/components/schemas/workers_binding"},"type":"array"},"workers_compatibility_date":{"description":"Opt your Worker into changes after this date","example":"2022-04-05","type":"string"},"workers_compatibility_flag":{"description":"A flag to opt into a specific change","example":"formdata_parser_supports_files","type":"string"},"workers_compatibility_flags":{"description":"Opt your Worker into specific changes","items":{"$ref":"#/components/schemas/workers_compatibility_flag"},"type":"array"},"workers_created_on":{"description":"When the script was created.","example":"2017-01-01T00:00:00Z","format":"date-time","readOnly":true,"type":"string"},"workers_cron-object":{"properties":{"created_on":{"readOnly":true,"type":"string"},"cron":{"example":"*/30 * * * *","type":"string"},"modified_on":{"readOnly":true,"type":"string"}},"type":"object"},"workers_cron-trigger-response-collection":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"properties":{"schedules":{"items":{"$ref":"#/components/schemas/workers_cron-object"},"type":"array"}},"type":"object"}}}]},"workers_cursor":{"description":"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","type":"string"},"workers_d1_binding":{"properties":{"binding":{"$ref":"#/components/schemas/workers_binding_name"},"id":{"description":"ID of the D1 database to bind to","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","type":"string"},"name":{"description":"The name of the D1 database associated with the 'id' provided.","example":"prod-database-auth","type":"string"},"type":{"description":"The class of resource that the binding provides.","enum":["d1"],"example":"d1","type":"string"}},"required":["id","name","type","binding"],"type":"object"},"workers_deployment_identifier":{"example":"bcf48806-b317-4351-9ee7-36e7d557d4de","maxLength":36,"readOnly":true,"type":"string"},"workers_deployments-base":{"properties":{"annotations":{"properties":{"workers/message":{"description":"Human-readable message about the deployment.","example":"Deploy bug fix.","maxLength":50,"type":"string"}},"type":"object"},"author_email":{"example":"user@example.com","readOnly":true,"type":"string"},"created_on":{"example":"2022-11-08T17:19:29.176266Z","readOnly":true,"type":"string"},"id":{"allOf":[{"$ref":"#/components/schemas/workers_schemas-deployment_identifier"}],"readOnly":true},"source":{"example":"api","readOnly":true,"type":"string"},"strategy":{"type":"string"}},"type":"object"},"workers_deployments-create-body":{"allOf":[{"$ref":"#/components/schemas/workers_deployments-base"},{"oneOf":[{"$ref":"#/components/schemas/workers_deployments-strategy-percentage"}]}]},"workers_deployments-list-response":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"properties":{"items":{"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},{"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":{"$ref":"#/components/schemas/workers_version-item-short"},"type":"array"},"latest":{"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"}}},"type":"object"}},"type":"object"}}}]},"workers_deployments-single-response":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"properties":{"id":{"example":"18f97339-c287-4872-9bdd-e2135c07ec12","type":"string"},"metadata":{"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"},"type":"object"},"number":{"example":1,"type":"number"},"resources":{"example":{"bindings":[{"json":"example_binding","name":"JSON_VAR","type":"json"}],"script":{"etag":"13a3240e8fb414561b0366813b0b8f42b3e6cfa0d9e70e99835dae83d0d8a794","handlers":["fetch"],"last_deployed_from":"api"},"script_runtime":{"usage_model":"bundled"}},"type":"object"}},"type":"object"}}}]},"workers_deployments-strategy-percentage":{"properties":{"strategy":{"enum":["percentage"],"type":"string"},"versions":{"items":{"properties":{"percentage":{"example":100,"maximum":100,"minimum":0.01,"type":"number"},"version_id":{"$ref":"#/components/schemas/workers_schemas-version_identifier"}},"required":["version_id","percentage"],"type":"object"},"type":"array"}},"required":["strategy","versions"],"type":"object"},"workers_dispatch_namespace_binding":{"properties":{"name":{"$ref":"#/components/schemas/workers_binding_name"},"namespace":{"description":"Namespace to bind to","example":"my-namespace","type":"string"},"outbound":{"description":"Outbound worker","properties":{"params":{"description":"Pass information from the Dispatch Worker to the Outbound Worker through the parameters","items":{"example":"url","type":"string"},"type":"array"},"worker":{"description":"Outbound worker","properties":{"environment":{"description":"Environment of the outbound worker","type":"string"},"service":{"description":"Name of the outbound worker","type":"string"}},"type":"object"}},"type":"object"},"type":{"description":"The class of resource that the binding provides.","enum":["dispatch_namespace"],"example":"dispatch_namespace","type":"string"}},"required":["name","type","namespace"],"type":"object"},"workers_dispatch_namespace_name":{"description":"Name of the Workers for Platforms dispatch namespace.","example":"my-dispatch-namespace","pattern":"^.+$","type":"string"},"workers_do_binding":{"properties":{"class_name":{"description":"The exported class name of the Durable Object","example":"MyDurableObject","type":"string"},"environment":{"description":"The environment of the script_name to bind to","example":"production","type":"string"},"name":{"$ref":"#/components/schemas/workers_binding_name"},"namespace_id":{"$ref":"#/components/schemas/workers_namespace_identifier"},"script_name":{"description":"The script where the Durable Object is defined, if it is external to this Worker","example":"my-other-worker","type":"string"},"type":{"description":"The class of resource that the binding provides.","enum":["durable_object_namespace"],"example":"durable_object_namespace","type":"string"}},"required":["name","type","class_name"],"type":"object"},"workers_domain":{"properties":{"environment":{"$ref":"#/components/schemas/workers_schemas-environment"},"hostname":{"$ref":"#/components/schemas/workers_hostname"},"id":{"$ref":"#/components/schemas/workers_domain_identifier"},"service":{"$ref":"#/components/schemas/workers_schemas-service"},"zone_id":{"$ref":"#/components/schemas/workers_zone_identifier"},"zone_name":{"$ref":"#/components/schemas/workers_zone_name"}},"type":"object"},"workers_domain-response-collection":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/workers_domain"},"type":"array"}},"type":"object"}]},"workers_domain-response-single":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers_domain"}},"type":"object"}]},"workers_domain_identifier":{"description":"Identifer of the Worker Domain.","example":"dbe10b4bc17c295377eabd600e1787fd","type":"string"},"workers_enabled":{"example":true,"title":"Whether or not this filter will run a script","type":"boolean"},"workers_environment":{"description":"Optional environment if the Worker utilizes one.","example":"production","type":"string"},"workers_etag":{"description":"Hashed script content, can be used in a If-None-Match header when updating.","example":"ea95132c15732412d22c1476fa83f27a","readOnly":true,"type":"string"},"workers_filter-no-id":{"properties":{"enabled":{"$ref":"#/components/schemas/workers_enabled"},"pattern":{"$ref":"#/components/schemas/workers_schemas-pattern"}},"required":["pattern","enabled"]},"workers_filter-response-collection":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/workers_filters"},"type":"array"}}}]},"workers_filter-response-single":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/workers_filters"}}}]},"workers_filters":{"properties":{"enabled":{"$ref":"#/components/schemas/workers_enabled"},"id":{"$ref":"#/components/schemas/workers_identifier"},"pattern":{"$ref":"#/components/schemas/workers_schemas-pattern"}},"required":["id","pattern","enabled"],"type":"object"},"workers_hostname":{"description":"Hostname of the Worker Domain.","example":"foo.example.com","type":"string"},"workers_id":{"description":"Identifier for the tail.","example":"03dc9f77817b488fb26c5861ec18f791","type":"string"},"workers_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"workers_kv_namespace_binding":{"properties":{"name":{"$ref":"#/components/schemas/workers_binding_name"},"namespace_id":{"$ref":"#/components/schemas/workers_namespace_identifier"},"type":{"description":"The class of resource that the binding provides.","enum":["kv_namespace"],"example":"kv_namespace","type":"string"}},"required":["name","type","namespace_id"],"type":"object"},"workers_limits":{"description":"Limits to apply for this Worker.","properties":{"cpu_ms":{"description":"The amount of CPU time this Worker can use in milliseconds.","example":50,"type":"integer"}},"type":"object"},"workers_logpush":{"description":"Whether Logpush is turned on for the Worker.","example":false,"type":"boolean"},"workers_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"workers_migration_step":{"properties":{"deleted_classes":{"description":"A list of classes to delete Durable Object namespaces from.","items":{"type":"string"},"type":"array"},"new_classes":{"description":"A list of classes to create Durable Object namespaces from.","items":{"type":"string"},"type":"array"},"new_sqlite_classes":{"description":"A list of classes to create Durable Object namespaces with SQLite from.","items":{"type":"string"},"type":"array"},"renamed_classes":{"description":"A list of classes with Durable Object namespaces that were renamed.","items":{"properties":{"from":{"type":"string"},"to":{"type":"string"}},"type":"object"},"type":"array"},"transferred_classes":{"description":"A list of transfers for Durable Object namespaces from a different Worker and class to a class defined in this Worker.","items":{"properties":{"from":{"type":"string"},"from_script":{"type":"string"},"to":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"workers_migration_tag_conditions":{"properties":{"new_tag":{"description":"Tag to set as the latest migration tag.","example":"v2","type":"string"},"old_tag":{"description":"Tag used to verify against the latest migration tag for this Worker. If they don't match, the upload is rejected.","example":"v1","type":"string"}},"type":"object"},"workers_modified_on":{"description":"When the script was last modified.","example":"2017-01-01T00:00:00Z","format":"date-time","readOnly":true,"type":"string"},"workers_mtls_cert_binding":{"properties":{"certificate_id":{"description":"ID of the certificate to bind to","example":"efwu2n6s-q69d-2kr9-184j-4913e8h391k6","type":"string"},"name":{"$ref":"#/components/schemas/workers_binding_name"},"type":{"description":"The class of resource that the binding provides.","enum":["mtls_certificate"],"example":"mtls_certificate","type":"string"}},"required":["name","type","certificate_id"],"type":"object"},"workers_namespace":{"properties":{"class":{"type":"string"},"id":{"readOnly":true,"type":"string"},"name":{"type":"string"},"script":{"type":"string"},"use_sqlite":{"type":"boolean"}},"type":"object"},"workers_namespace-delete-response":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"enum":[null],"nullable":true,"type":"object"}}}]},"workers_namespace-list-response":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/workers_namespace-response"},"type":"array"}}}]},"workers_namespace-response":{"properties":{"created_by":{"$ref":"#/components/schemas/workers_identifier"},"created_on":{"$ref":"#/components/schemas/workers_created_on"},"modified_by":{"$ref":"#/components/schemas/workers_identifier"},"modified_on":{"$ref":"#/components/schemas/workers_modified_on"},"namespace_id":{"$ref":"#/components/schemas/workers_uuid"},"namespace_name":{"$ref":"#/components/schemas/workers_dispatch_namespace_name"},"script_count":{"$ref":"#/components/schemas/workers_script_count"}}},"workers_namespace-script-response":{"description":"Details about a worker uploaded to a Workers for Platforms namespace.","properties":{"created_on":{"$ref":"#/components/schemas/workers_created_on"},"dispatch_namespace":{"$ref":"#/components/schemas/workers_dispatch_namespace_name"},"modified_on":{"$ref":"#/components/schemas/workers_modified_on"},"script":{"$ref":"#/components/schemas/workers_script-response"}},"type":"object"},"workers_namespace-script-response-single":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers_namespace-script-response"}}}]},"workers_namespace-single-response":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers_namespace-response"}}}]},"workers_namespace_identifier":{"description":"Namespace identifier tag.","example":"0f2ac74b498b48028cb68387c421e279","maxLength":32,"readOnly":true,"type":"string"},"workers_object":{"properties":{"hasStoredData":{"description":"Whether the Durable Object has stored data.","example":true,"readOnly":true,"type":"boolean"},"id":{"description":"ID of the Durable Object.","example":"fe7803fc55b964e09d94666545aab688d360c6bda69ba349ced1e5f28d2fc2c8","readOnly":true,"type":"string"}},"type":"object"},"workers_observability":{"description":"Observability settings for the Worker","properties":{"enabled":{"description":"Whether observability is enabled for the Worker","example":true,"type":"boolean"},"head_sampling_rate":{"description":"The sampling rate for incoming requests. From 0 to 1 (1 = 100%, 0.1 = 10%). Default is 1.","example":0.1,"nullable":true,"type":"number"}},"required":["enabled"],"type":"object"},"workers_pattern":{"example":"example.net/*","title":"Route pattern","type":"string"},"workers_placement_config":{"properties":{"mode":{"description":"Enables [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). Only `\"smart\"` is currently supported","enum":["smart"],"type":"string"}},"type":"object"},"workers_placement_mode":{"description":"Specifies the placement mode for the Worker (e.g. 'smart').","example":"smart","type":"string"},"workers_queue_binding":{"properties":{"name":{"$ref":"#/components/schemas/workers_binding_name"},"queue_name":{"description":"Name of the Queue to bind to","example":"my-queue","type":"string"},"type":{"description":"The class of resource that the binding provides.","enum":["queue"],"example":"queue","type":"string"}},"required":["name","type","queue_name"],"type":"object"},"workers_r2_binding":{"properties":{"bucket_name":{"description":"R2 bucket to bind to","example":"my-r2-bucket","type":"string"},"name":{"$ref":"#/components/schemas/workers_binding_name"},"type":{"description":"The class of resource that the binding provides.","enum":["r2_bucket"],"example":"r2_bucket","type":"string"}},"required":["name","type","bucket_name"],"type":"object"},"workers_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"workers_route-no-id":{"properties":{"pattern":{"$ref":"#/components/schemas/workers_pattern"},"script":{"$ref":"#/components/schemas/workers_script_name"}},"required":["pattern"]},"workers_route-response-collection":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/workers_routes"},"type":"array"}}}]},"workers_route-response-single":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/workers_routes"}}}]},"workers_routes":{"properties":{"id":{"$ref":"#/components/schemas/workers_identifier"},"pattern":{"$ref":"#/components/schemas/workers_pattern"},"script":{"$ref":"#/components/schemas/workers_script_name"}},"required":["id","pattern","script"],"type":"object"},"workers_schemas-binding":{"oneOf":[{"$ref":"#/components/schemas/workers_kv_namespace_binding"},{"$ref":"#/components/schemas/workers_wasm_module_binding"}]},"workers_schemas-deployment_identifier":{"example":"dc78f0bc-05c5-46b7-bb4e-137f55930378","maxLength":36,"type":"string"},"workers_schemas-deployments-list-response":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"properties":{"deployments":{"items":{"allOf":[{"$ref":"#/components/schemas/workers_deployments-base"},{"oneOf":[{"$ref":"#/components/schemas/workers_deployments-strategy-percentage"}]}]},"type":"array"}},"type":"object"}},"type":"object"}]},"workers_schemas-deployments-single-response":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/workers_deployments-base"},{"oneOf":[{"$ref":"#/components/schemas/workers_deployments-strategy-percentage"}]}]}},"type":"object"}]},"workers_schemas-environment":{"description":"Worker environment associated with the zone and hostname.","example":"production","type":"string"},"workers_schemas-id":{"description":"ID of the namespace.","example":"5fd1cafff895419c8bcc647fc64ab8f0","type":"string"},"workers_schemas-pattern":{"example":"example.net/*","title":"Filter pattern","type":"string"},"workers_schemas-script-response-single":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-single"},{"properties":{"result":{"type":"object"}}}]},"workers_schemas-script_name":{"description":"Name of the script.","example":"this-is_my_script-01","pattern":"^[a-z0-9_][a-z0-9-_]*$","type":"string"},"workers_schemas-service":{"description":"Worker service associated with the zone and hostname.","example":"foo","type":"string"},"workers_schemas-version_identifier":{"example":"bcf48806-b317-4351-9ee7-36e7d557d4de","maxLength":36,"type":"string"},"workers_script-and-version-settings-item":{"properties":{"bindings":{"$ref":"#/components/schemas/workers_bindings"},"compatibility_date":{"$ref":"#/components/schemas/workers_compatibility_date"},"compatibility_flags":{"$ref":"#/components/schemas/workers_compatibility_flags"},"limits":{"$ref":"#/components/schemas/workers_limits"},"logpush":{"$ref":"#/components/schemas/workers_logpush"},"migrations":{"description":"Migrations to apply for Durable Objects associated with this Worker.\n","oneOf":[{"$ref":"#/components/schemas/workers_single_step_migrations"},{"$ref":"#/components/schemas/workers_stepped_migrations"}]},"observability":{"$ref":"#/components/schemas/workers_observability"},"placement":{"$ref":"#/components/schemas/workers_placement_config"},"tags":{"$ref":"#/components/schemas/workers_tags"},"tail_consumers":{"$ref":"#/components/schemas/workers_tail_consumers"},"usage_model":{"$ref":"#/components/schemas/workers_usage_model"}},"type":"object"},"workers_script-and-version-settings-response":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers_script-and-version-settings-item"}}}]},"workers_script-response":{"properties":{"created_on":{"$ref":"#/components/schemas/workers_created_on"},"etag":{"$ref":"#/components/schemas/workers_etag"},"id":{"description":"The id of the script in the Workers system. Usually the script name.","example":"my-workers-script","readOnly":true,"type":"string"},"logpush":{"$ref":"#/components/schemas/workers_logpush"},"modified_on":{"$ref":"#/components/schemas/workers_modified_on"},"placement_mode":{"$ref":"#/components/schemas/workers_placement_mode"},"tail_consumers":{"$ref":"#/components/schemas/workers_tail_consumers"},"usage_model":{"$ref":"#/components/schemas/workers_usage_model"}}},"workers_script-response-collection":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/workers_script-response"},"type":"array"}}}]},"workers_script-response-single":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/workers_script-response"}},"x-cfLinkErrors":{"10001":"Unsupported or unexpected Content Type","10002":"Unexpected internal server error","10003":"Missing required URL parameter","10004":"Malformed URL parameter","10006":"Unparseable script body","10007":"Resource not found (similar to HTTP 404)","10014":"Internal error while attempting authorization checks","10015":"The current account is not authorized to use workers","10018":"Attempted to update a script where the e-tag does not match","10021":"Script content failed validation checks, but was otherwise parseable","10023":"Unauthorized access attempt","10027":"Script body was too large","10075":"Requires a Workers Paid plan"}}]},"workers_script-response-upload":{"allOf":[{"$ref":"#/components/schemas/workers_script-response"},{"properties":{"startup_time_ms":{"example":10,"type":"integer"}}}]},"workers_script-response-upload-single":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/workers_script-response-upload"}},"x-cfLinkErrors":{"10001":"Unsupported or unexpected Content Type","10002":"Unexpected internal server error","10003":"Missing required URL parameter","10004":"Malformed URL parameter","10006":"Unparseable script body","10007":"Resource not found (similar to HTTP 404)","10014":"Internal error while attempting authorization checks","10015":"The current account is not authorized to use workers","10018":"Attempted to update a script where the e-tag does not match","10021":"Script content failed validation checks, but was otherwise parseable","10023":"Unauthorized access attempt","10027":"Script body was too large","10075":"Requires a Workers Paid plan"}}]},"workers_script-settings-item":{"properties":{"logpush":{"$ref":"#/components/schemas/workers_logpush"},"observability":{"$ref":"#/components/schemas/workers_observability"},"tail_consumers":{"$ref":"#/components/schemas/workers_tail_consumers"}},"type":"object"},"workers_script-settings-response":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers_script-settings-item"}}}]},"workers_script_count":{"description":"The current number of scripts in this Dispatch Namespace","example":800,"type":"integer"},"workers_script_identifier":{"example":"8ee82b3a2c0f42928b8f14dae4a97121","maxLength":32,"readOnly":true,"type":"string"},"workers_script_name":{"description":"Name of the script, used in URLs and route configuration.","example":"this-is_my_script-01","pattern":"^[a-z0-9_][a-z0-9-_]*$","type":"string"},"workers_secret":{"properties":{"name":{"description":"The name of this secret, this is what will be used to access it inside the Worker.","example":"MY_SECRET","type":"string"},"text":{"description":"The value of the secret.","example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9","type":"string"},"type":{"description":"The type of secret to put.","enum":["secret_text"],"example":"secret_text","type":"string"}},"type":"object"},"workers_secret-response":{"properties":{"name":{"description":"The name of this secret, this is what will be used to access it inside the Worker.","example":"MY_SECRET","type":"string"},"type":{"description":"The type of secret.","enum":["secret_text"],"example":"secret_text","type":"string"}},"type":"object"},"workers_secret_name":{"description":"A JavaScript variable name for the secret binding.","example":"mySecret","readOnly":true,"type":"string"},"workers_service":{"description":"Name of Worker to bind to","example":"my-worker","type":"string"},"workers_service_binding":{"properties":{"environment":{"description":"Optional environment if the Worker utilizes one.","example":"production","type":"string"},"name":{"$ref":"#/components/schemas/workers_binding_name"},"service":{"description":"Name of Worker to bind to","example":"my-worker","type":"string"},"type":{"description":"The class of resource that the binding provides.","enum":["service"],"example":"service","type":"string"}},"required":["name","type","service","environment"],"type":"object"},"workers_single_step_migrations":{"allOf":[{"$ref":"#/components/schemas/workers_migration_tag_conditions"},{"$ref":"#/components/schemas/workers_migration_step"}],"description":"A single set of migrations to apply."},"workers_stepped_migrations":{"allOf":[{"$ref":"#/components/schemas/workers_migration_tag_conditions"},{"properties":{"steps":{"description":"Migrations to apply in order.","items":{"$ref":"#/components/schemas/workers_migration_step"},"type":"array"}},"type":"object"}]},"workers_subdomain-object":{"properties":{"subdomain":{"example":"example-subdomain","type":"string"}},"type":"object"},"workers_subdomain-response":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers_subdomain-object"}}}]},"workers_tag":{"description":"Tag to help you manage your Worker","example":"my-tag","type":"string"},"workers_tags":{"description":"Tags to help you manage your Workers","items":{"$ref":"#/components/schemas/workers_tag"},"type":"array"},"workers_tail-response":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"properties":{"expires_at":{"readOnly":true,"type":"string"},"id":{"readOnly":true,"type":"string"},"url":{"readOnly":true,"type":"string"}},"type":"object"}}}]},"workers_tail_consumers":{"description":"List of Workers that will consume logs from the attached Worker.","items":{"$ref":"#/components/schemas/workers_tail_consumers_script"},"type":"array"},"workers_tail_consumers_script":{"description":"A reference to a script that will consume logs from the attached Worker.","properties":{"environment":{"description":"Optional environment if the Worker utilizes one.","example":"production","type":"string"},"namespace":{"description":"Optional dispatch namespace the script belongs to.","example":"my-namespace","type":"string"},"service":{"description":"Name of Worker that is to be the consumer.","example":"my-log-consumer","type":"string"}},"required":["service"],"type":"object"},"workers_usage-model-object":{"properties":{"usage_model":{"type":"string"}},"type":"object"},"workers_usage-model-response":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers_usage-model-object"}}}]},"workers_usage_model":{"description":"Specifies the usage model for the Worker (e.g. 'bundled' or 'unbound').","example":"unbound","pattern":"^(bundled|unbound)$","type":"string"},"workers_uuid":{"description":"API Resource UUID tag.","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","maxLength":36,"type":"string"},"workers_version-item-full":{"allOf":[{"$ref":"#/components/schemas/workers_version-item-short"},{"properties":{"resources":{"example":{"bindings":[{"json":"example_binding","name":"JSON_VAR","type":"json"}],"script":{"etag":"13a3240e8fb414561b0366813b0b8f42b3e6cfa0d9e70e99835dae83d0d8a794","handlers":["fetch"],"last_deployed_from":"api"},"script_runtime":{"usage_model":"bundled"}},"readOnly":true,"type":"object"}},"required":["resources"],"type":"object"}]},"workers_version-item-short":{"properties":{"id":{"example":"18f97339-c287-4872-9bdd-e2135c07ec12","readOnly":true,"type":"string"},"metadata":{"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"},"readOnly":true,"type":"object"},"number":{"example":1,"readOnly":true,"type":"number"}},"type":"object"},"workers_version-item-uploaded":{"allOf":[{"$ref":"#/components/schemas/workers_version-item-full"},{"properties":{"startup_time_ms":{"example":10,"type":"integer"}},"required":["resources"],"type":"object"}]},"workers_version_identifier":{"example":"bcf48806-b317-4351-9ee7-36e7d557d4de","maxLength":36,"readOnly":true,"type":"string"},"workers_versions-list-response":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"properties":{"items":{"items":{"$ref":"#/components/schemas/workers_version-item-short"},"type":"array"}},"type":"object"}}}]},"workers_versions-single-response":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers_version-item-full"}}}]},"workers_versions-upload-response":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers_version-item-uploaded"}}}]},"workers_wasm_module_binding":{"properties":{"name":{"$ref":"#/components/schemas/workers_binding_name"},"type":{"description":"The class of resource that the binding provides.","enum":["wasm_module"],"example":"wasm_module","type":"string"}},"required":["name","type"],"type":"object"},"workers_zone_identifier":{"description":"Identifier of the zone.","example":"593c9c94de529bbbfaac7c53ced0447d","type":"string"},"workers_zone_name":{"description":"Name of the zone.","example":"example.com","type":"string"},"zaraz_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/zaraz_messages"},"messages":{"$ref":"#/components/schemas/zaraz_messages"},"success":{"description":"Whether the API call was successful","example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"zaraz_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/zaraz_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/zaraz_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"zaraz_base-mc":{"allOf":[{"$ref":"#/components/schemas/zaraz_base-tool"},{"properties":{"actions":{"additionalProperties":{"properties":{"actionType":{"description":"Tool event type","type":"string"},"blockingTriggers":{"description":"List of blocking triggers IDs","items":{"type":"string"},"type":"array"},"data":{"description":"Event payload","type":"object"},"firingTriggers":{"description":"List of firing triggers IDs","items":{"type":"string"},"minItems":1,"type":"array"}},"required":["actionType","blockingTriggers","firingTriggers","data"],"type":"object"},"description":"Actions configured on a tool. Either this or neoEvents field is required.","type":"object"},"component":{"description":"Tool's internal name","type":"string"},"neoEvents":{"description":"DEPRECATED - List of actions configured on a tool. Either this or actions field is required. If both are present, actions field will take precedence.","items":{"properties":{"actionType":{"description":"Tool event type","type":"string"},"blockingTriggers":{"description":"List of blocking triggers IDs","items":{"type":"string"},"type":"array"},"data":{"description":"Event payload","type":"object"},"firingTriggers":{"description":"List of firing triggers IDs","items":{"type":"string"},"minItems":1,"type":"array"}},"required":["actionType","blockingTriggers","firingTriggers","data"],"type":"object"},"type":"array"},"permissions":{"description":"List of permissions granted to the component","items":{"type":"string"},"type":"array"},"settings":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"boolean"}]},"description":"Tool's settings","type":"object"}},"required":["component","settings","permissions"]}]},"zaraz_base-tool":{"properties":{"blockingTriggers":{"description":"List of blocking trigger IDs","items":{"type":"string"},"type":"array"},"defaultFields":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"boolean"}]},"description":"Default fields for tool's actions","type":"object"},"defaultPurpose":{"description":"Default consent purpose ID","type":"string"},"enabled":{"description":"Whether tool is enabled","type":"boolean"},"name":{"description":"Tool's name defined by the user","type":"string"},"vendorName":{"description":"Vendor name for TCF compliant consent modal, required for Custom Managed Components and Custom HTML tool with a defaultPurpose assigned","type":"string"},"vendorPolicyUrl":{"description":"Vendor's Privacy Policy URL for TCF compliant consent modal, required for Custom Managed Components and Custom HTML tool with a defaultPurpose assigned","type":"string"}},"required":["enabled","blockingTriggers","name","defaultFields"],"type":"object"},"zaraz_click-listener-rule":{"properties":{"action":{"enum":["clickListener"],"type":"string"},"id":{"type":"string"},"settings":{"properties":{"selector":{"type":"string"},"type":{"enum":["xpath","css"],"type":"string"},"waitForTags":{"minimum":0,"type":"integer"}},"required":["type","selector","waitForTags"],"type":"object"}},"required":["id","action","settings"],"type":"object"},"zaraz_custom-managed-component":{"allOf":[{"$ref":"#/components/schemas/zaraz_base-mc"},{"properties":{"type":{"enum":["custom-mc"],"type":"string"},"worker":{"description":"Cloudflare worker that acts as a managed component","properties":{"escapedWorkerName":{"type":"string"},"workerTag":{"type":"string"}},"required":["workerTag","escapedWorkerName"],"type":"object"}},"required":["worker","type"]}]},"zaraz_element-visibility-rule":{"properties":{"action":{"enum":["elementVisibility"],"type":"string"},"id":{"type":"string"},"settings":{"properties":{"selector":{"type":"string"}},"required":["selector"],"type":"object"}},"required":["id","action","settings"],"type":"object"},"zaraz_form-submission-rule":{"properties":{"action":{"enum":["formSubmission"],"type":"string"},"id":{"type":"string"},"settings":{"properties":{"selector":{"type":"string"},"validate":{"type":"boolean"}},"required":["selector","validate"],"type":"object"}},"required":["id","action","settings"],"type":"object"},"zaraz_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"zaraz_legacy-tool":{"allOf":[{"$ref":"#/components/schemas/zaraz_base-tool"},{"properties":{"library":{"description":"Tool's internal name","type":"string"},"neoEvents":{"description":"List of actions configured on a tool","items":{"properties":{"blockingTriggers":{"description":"List of blocking triggers IDs","items":{"type":"string"},"type":"array"},"data":{"description":"Event payload","type":"object"},"firingTriggers":{"description":"List of firing triggers IDs","items":{"type":"string"},"minItems":1,"type":"array"}},"required":["blockingTriggers","firingTriggers","data"],"type":"object"},"type":"array"},"type":{"enum":["library"],"type":"string"}},"required":["library","neoEvents","type"]}]},"zaraz_load-rule":{"properties":{"id":{"type":"string"},"match":{"type":"string"},"op":{"enum":["CONTAINS","EQUALS","STARTS_WITH","ENDS_WITH","MATCH_REGEX","NOT_MATCH_REGEX","GREATER_THAN","GREATER_THAN_OR_EQUAL","LESS_THAN","LESS_THAN_OR_EQUAL"],"type":"string"},"value":{"type":"string"}},"required":["id","match","op","value"],"type":"object"},"zaraz_managed-component":{"allOf":[{"$ref":"#/components/schemas/zaraz_base-mc"},{"properties":{"type":{"enum":["component"],"type":"string"}},"required":["type"]}]},"zaraz_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"zaraz_scroll-depth-rule":{"properties":{"action":{"enum":["scrollDepth"],"type":"string"},"id":{"type":"string"},"settings":{"properties":{"positions":{"type":"string"}},"required":["positions"],"type":"object"}},"required":["id","action","settings"],"type":"object"},"zaraz_timer-rule":{"properties":{"action":{"enum":["timer"],"type":"string"},"id":{"type":"string"},"settings":{"properties":{"interval":{"minimum":50,"type":"integer"},"limit":{"minimum":0,"type":"integer"}},"required":["interval","limit"],"type":"object"}},"required":["id","action","settings"],"type":"object"},"zaraz_variable-match-rule":{"properties":{"action":{"enum":["variableMatch"],"type":"string"},"id":{"type":"string"},"settings":{"properties":{"match":{"type":"string"},"variable":{"type":"string"}},"required":["variable","match"],"type":"object"}},"required":["id","action","settings"],"type":"object"},"zaraz_zaraz-config-base":{"description":"Zaraz configuration","example":{"consent":{"cookieName":"zaraz-consent","customIntroDisclaimerDismissed":true,"enabled":false},"dataLayer":true,"debugKey":"my-debug-key","settings":{"autoInjectScript":true,"ecommerce":true,"initPath":"/i"},"tools":{"aJvt":{"actions":{"hrnc":{"actionType":"pageview","blockingTriggers":[],"data":{"__zaraz_setting_name":"Page view","ev":"PageView"},"firingTriggers":["Pageview"]}},"component":"facebook-pixel","defaultFields":{"testKey":"TEST123456"},"enabled":true,"name":"Facebook Pixel","permissions":["access_client_kv"],"settings":{"accessToken":"ABcdEFg","ecommerce":true,"property":"12345"},"type":"component"}},"triggers":{"ktBn":{"Pageview":{"clientRules":[],"description":"All page loads","excludeRules":[],"loadRules":[{"match":"{{ client.__zarazTrack }}","op":"EQUALS","value":"Pageview"}],"name":"Pageview","system":"pageload"}}},"variables":{"Autd":{"name":"ip","type":"string","value":"{{ system.device.ip }}"}},"zarazVersion":43},"properties":{"consent":{"description":"Consent management configuration.","properties":{"buttonTextTranslations":{"properties":{"accept_all":{"additionalProperties":{"type":"string"},"description":"Object where keys are language codes","type":"object"},"confirm_my_choices":{"additionalProperties":{"type":"string"},"description":"Object where keys are language codes","type":"object"},"reject_all":{"additionalProperties":{"type":"string"},"description":"Object where keys are language codes","type":"object"}},"required":["accept_all","reject_all","confirm_my_choices"],"type":"object"},"companyEmail":{"type":"string"},"companyName":{"type":"string"},"companyStreetAddress":{"type":"string"},"consentModalIntroHTML":{"type":"string"},"consentModalIntroHTMLWithTranslations":{"additionalProperties":{"type":"string"},"description":"Object where keys are language codes","type":"object"},"cookieName":{"type":"string"},"customCSS":{"type":"string"},"customIntroDisclaimerDismissed":{"type":"boolean"},"defaultLanguage":{"type":"string"},"enabled":{"type":"boolean"},"hideModal":{"type":"boolean"},"purposes":{"additionalProperties":{"properties":{"description":{"type":"string"},"name":{"type":"string"}},"required":["name","description"],"type":"object"},"description":"Object where keys are purpose alpha-numeric IDs","type":"object"},"purposesWithTranslations":{"additionalProperties":{"properties":{"description":{"additionalProperties":{"type":"string"},"description":"Object where keys are language codes","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Object where keys are language codes","type":"object"},"order":{"type":"integer"}},"required":["name","description","order"],"type":"object"},"description":"Object where keys are purpose alpha-numeric IDs","type":"object"},"tcfCompliant":{"type":"boolean"}},"required":["enabled"],"type":"object"},"dataLayer":{"description":"Data layer compatibility mode enabled.","type":"boolean"},"debugKey":{"description":"The key for Zaraz debug mode.","type":"string"},"historyChange":{"description":"Single Page Application support enabled.","type":"boolean"},"settings":{"description":"General Zaraz settings.","properties":{"autoInjectScript":{"description":"Automatic injection of Zaraz scripts enabled.","type":"boolean"},"contextEnricher":{"description":"Details of the worker that receives and edits Zaraz Context object.","properties":{"escapedWorkerName":{"type":"string"},"workerTag":{"type":"string"}},"required":["escapedWorkerName","workerTag"],"type":"object"},"cookieDomain":{"description":"The domain Zaraz will use for writing and reading its cookies.","type":"string"},"ecommerce":{"description":"Ecommerce API enabled.","type":"boolean"},"eventsApiPath":{"description":"Custom endpoint for server-side track events.","type":"string"},"hideExternalReferer":{"description":"Hiding external referrer URL enabled.","type":"boolean"},"hideIPAddress":{"description":"Trimming IP address enabled.","type":"boolean"},"hideQueryParams":{"description":"Removing URL query params enabled.","type":"boolean"},"hideUserAgent":{"description":"Removing sensitive data from User Aagent string enabled.","type":"boolean"},"initPath":{"description":"Custom endpoint for Zaraz init script.","type":"string"},"injectIframes":{"description":"Injection of Zaraz scripts into iframes enabled.","type":"boolean"},"mcRootPath":{"description":"Custom path for Managed Components server functionalities.","type":"string"},"scriptPath":{"description":"Custom endpoint for Zaraz main script.","type":"string"},"trackPath":{"description":"Custom endpoint for Zaraz tracking requests.","type":"string"}},"required":["autoInjectScript"],"type":"object"},"triggers":{"additionalProperties":{"properties":{"description":{"description":"Trigger description.","type":"string"},"excludeRules":{"description":"Rules defining when the trigger is not fired.","items":{"anyOf":[{"$ref":"#/components/schemas/zaraz_load-rule"},{"$ref":"#/components/schemas/zaraz_click-listener-rule"},{"$ref":"#/components/schemas/zaraz_timer-rule"},{"$ref":"#/components/schemas/zaraz_form-submission-rule"},{"$ref":"#/components/schemas/zaraz_variable-match-rule"},{"$ref":"#/components/schemas/zaraz_scroll-depth-rule"},{"$ref":"#/components/schemas/zaraz_element-visibility-rule"}]},"type":"array"},"loadRules":{"description":"Rules defining when the trigger is fired.","items":{"anyOf":[{"$ref":"#/components/schemas/zaraz_load-rule"},{"$ref":"#/components/schemas/zaraz_click-listener-rule"},{"$ref":"#/components/schemas/zaraz_timer-rule"},{"$ref":"#/components/schemas/zaraz_form-submission-rule"},{"$ref":"#/components/schemas/zaraz_variable-match-rule"},{"$ref":"#/components/schemas/zaraz_scroll-depth-rule"},{"$ref":"#/components/schemas/zaraz_element-visibility-rule"}]},"type":"array"},"name":{"description":"Trigger name.","type":"string"},"system":{"enum":["pageload"],"type":"string"}},"required":["name","loadRules","excludeRules"],"type":"object"},"description":"Triggers set up under Zaraz configuration, where key is the trigger alpha-numeric ID and value is the trigger configuration.","type":"object"},"variables":{"additionalProperties":{"anyOf":[{"properties":{"name":{"type":"string"},"type":{"enum":["string","secret"],"type":"string"},"value":{"type":"string"}},"required":["name","type","value"],"type":"object"},{"properties":{"name":{"type":"string"},"type":{"enum":["worker"],"type":"string"},"value":{"properties":{"escapedWorkerName":{"type":"string"},"workerTag":{"type":"string"}},"required":["escapedWorkerName","workerTag"],"type":"object"}},"required":["name","type","value"],"type":"object"}]},"description":"Variables set up under Zaraz configuration, where key is the variable alpha-numeric ID and value is the variable configuration. Values of variables of type secret are not included.","type":"object"},"zarazVersion":{"description":"Zaraz internal version of the config.","type":"integer"}},"required":["tools","triggers","variables","settings","dataLayer","debugKey","zarazVersion"],"type":"object"},"zaraz_zaraz-config-body":{"allOf":[{"$ref":"#/components/schemas/zaraz_zaraz-config-base"},{"properties":{"tools":{"additionalProperties":{"anyOf":[{"$ref":"#/components/schemas/zaraz_legacy-tool"},{"$ref":"#/components/schemas/zaraz_managed-component"},{"$ref":"#/components/schemas/zaraz_custom-managed-component"}]},"description":"Tools set up under Zaraz configuration, where key is the alpha-numeric tool ID and value is the tool configuration object.","type":"object"}}}]},"zaraz_zaraz-config-history-response":{"allOf":[{"$ref":"#/components/schemas/zaraz_api-response-common"},{"properties":{"result":{"additionalProperties":{"allOf":[{"$ref":"#/components/schemas/zaraz_zaraz-config-row-base"},{"description":"Configuration record correspoding to an ID provided in query params","nullable":true,"properties":{"config":{"$ref":"#/components/schemas/zaraz_zaraz-config-return"}},"required":["config"],"type":"object"}]},"description":"Object where keys are numericc onfiguration IDs","example":{"12345":{"config":{"consent":{"cookieName":"zaraz-consent","customIntroDisclaimerDismissed":true,"enabled":false},"dataLayer":true,"debugKey":"my-debug-key","settings":{"autoInjectScript":true},"tools":{"aJvt":{"component":"facebook-pixel","defaultFields":{"testKey":"TEST123456"},"enabled":true,"name":"Facebook Pixel","neoEvents":[{"actionType":"pageview","blockingTriggers":[],"data":{"__zaraz_setting_name":"Page view","ev":"PageView"},"firingTriggers":["Pageview"]}],"permissions":["access_client_kv"],"settings":{"accessToken":"ABcdEFg","ecommerce":true,"property":"12345"},"type":"component"}},"triggers":{"ktBn":{"Pageview":{"clientRules":[],"description":"All page loads","excludeRules":[],"loadRules":[{"match":"{{ client.__zarazTrack }}","op":"EQUALS","value":"Pageview"}],"name":"Pageview","system":"pageload"}}},"variables":{"Autd":{"name":"ip","type":"string","value":"{{ system.device.ip }}"}},"zarazVersion":43},"createdAt":"2023-02-23T05:05:55.155273Z","id":12345,"updatedAt":"2023-02-23T05:05:55.155273Z","userId":"278d0d0g123cd8e49d45ea64f12faa37"},"23456":null},"type":"object"}}}]},"zaraz_zaraz-config-response":{"allOf":[{"$ref":"#/components/schemas/zaraz_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/zaraz_zaraz-config-return"}}}]},"zaraz_zaraz-config-return":{"allOf":[{"$ref":"#/components/schemas/zaraz_zaraz-config-base"},{"properties":{"tools":{"additionalProperties":{"anyOf":[{"$ref":"#/components/schemas/zaraz_managed-component"},{"$ref":"#/components/schemas/zaraz_custom-managed-component"}]},"description":"Tools set up under Zaraz configuration, where key is the alpha-numeric tool ID and value is the tool configuration object.","type":"object"}}}]},"zaraz_zaraz-config-row-base":{"properties":{"createdAt":{"description":"Date and time the configuration was created","format":"date-time","type":"string"},"id":{"description":"ID of the configuration","type":"integer"},"updatedAt":{"description":"Date and time the configuration was last updated","format":"date-time","type":"string"},"userId":{"description":"Alpha-numeric ID of the account user who published the configuration","type":"string"}},"required":["id","createdAt","updatedAt","userId"]},"zaraz_zaraz-history-response":{"allOf":[{"$ref":"#/components/schemas/zaraz_api-response-common"},{"properties":{"result":{"items":{"allOf":[{"$ref":"#/components/schemas/zaraz_zaraz-config-row-base"},{"example":{"createdAt":"2023-02-23T05:05:55.155273Z","description":"Config with enabled ecommerce tracking","id":12345,"updatedAt":"2023-02-23T05:05:55.155273Z","userId":"278d0d0g123cd8e49d45ea64f12faa37"},"properties":{"description":{"description":"Configuration description provided by the user who published this configuration","type":"string"}},"required":["description"],"type":"object"}]},"type":"array"}}}]},"zaraz_zaraz-workflow":{"description":"Zaraz workflow","enum":["realtime","preview"],"type":"string"},"zaraz_zaraz-workflow-response":{"allOf":[{"$ref":"#/components/schemas/zaraz_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/zaraz_zaraz-workflow"}}}]},"zaraz_zone-identifier":{"$ref":"#/components/schemas/zaraz_identifier"},"zero-trust-gateway_action":{"description":"The action to preform when the associated traffic, identity, and device posture expressions are either absent or evaluate to `true`.","enum":["on","off","allow","block","scan","noscan","safesearch","ytrestricted","isolate","noisolate","override","l4_override","egress","audit_ssh","resolve","quarantine"],"example":"allow","type":"string"},"zero-trust-gateway_activity-log-settings":{"description":"Activity log settings.","properties":{"enabled":{"description":"Enable activity logging.","example":true,"type":"boolean"}},"type":"object"},"zero-trust-gateway_anti-virus-settings":{"description":"Anti-virus settings.","properties":{"enabled_download_phase":{"$ref":"#/components/schemas/zero-trust-gateway_enabled_download_phase"},"enabled_upload_phase":{"$ref":"#/components/schemas/zero-trust-gateway_enabled_upload_phase"},"fail_closed":{"$ref":"#/components/schemas/zero-trust-gateway_fail_closed"},"notification_settings":{"$ref":"#/components/schemas/zero-trust-gateway_notification_settings"}},"type":"object"},"zero-trust-gateway_api-response-collection":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/zero-trust-gateway_result_info"}}}],"type":"object"},"zero-trust-gateway_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/zero-trust-gateway_messages"},"messages":{"$ref":"#/components/schemas/zero-trust-gateway_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"zero-trust-gateway_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"zero-trust-gateway_api-response-single":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common"}],"type":"object"},"zero-trust-gateway_app-types":{"oneOf":[{"$ref":"#/components/schemas/zero-trust-gateway_application"},{"$ref":"#/components/schemas/zero-trust-gateway_application_type"}],"readOnly":true,"type":"object"},"zero-trust-gateway_app-types_components-schemas-name":{"description":"The name of the application or application type.","example":"Facebook","type":"string"},"zero-trust-gateway_app-types_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/zero-trust-gateway_app-types"},"type":"array"}}}]},"zero-trust-gateway_app_id":{"description":"The identifier for this application. There is only one application per ID.","type":"integer"},"zero-trust-gateway_app_type_id":{"description":"The identifier for the type of this application. There can be many applications with the same type. This refers to the `id` of a returned application type.","type":"integer"},"zero-trust-gateway_application":{"properties":{"application_type_id":{"$ref":"#/components/schemas/zero-trust-gateway_app_type_id"},"created_at":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"},"id":{"$ref":"#/components/schemas/zero-trust-gateway_app_id"},"name":{"$ref":"#/components/schemas/zero-trust-gateway_app-types_components-schemas-name"}},"type":"object"},"zero-trust-gateway_application_type":{"properties":{"created_at":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"},"description":{"description":"A short summary of applications with this type.","example":"Applications used to communicate or collaborate in a business setting.","type":"string"},"id":{"$ref":"#/components/schemas/zero-trust-gateway_app_type_id"},"name":{"$ref":"#/components/schemas/zero-trust-gateway_app-types_components-schemas-name"}},"type":"object"},"zero-trust-gateway_audit_ssh_settings_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/zero-trust-gateway_settings"}}}]},"zero-trust-gateway_audit_ssh_settings_components-schemas-uuid":{"description":"Seed ID","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","maxLength":36,"type":"string"},"zero-trust-gateway_beta":{"description":"True if the category is in beta and subject to change.","example":false,"type":"boolean"},"zero-trust-gateway_binding_status":{"description":"The deployment status of the certificate on Cloudflare's edge. Certificates in the 'active' state may be used for Gateway TLS interception.","enum":["pending_deployment","active","pending_deletion","inactive"],"type":"string"},"zero-trust-gateway_block-page-settings":{"description":"Block page layout settings.","properties":{"background_color":{"description":"Block page background color in #rrggbb format.","type":"string"},"enabled":{"description":"Enable only cipher suites and TLS versions compliant with FIPS 140-2.","example":true,"type":"boolean"},"footer_text":{"description":"Block page footer text.","example":"--footer--","type":"string"},"header_text":{"description":"Block page header text.","example":"--header--","type":"string"},"logo_path":{"description":"Full URL to the logo file.","example":"https://logos.com/a.png","type":"string"},"mailto_address":{"description":"Admin email for users to contact.","example":"admin@example.com","type":"string"},"mailto_subject":{"description":"Subject line for emails created from block page.","example":"Blocked User Inquiry","type":"string"},"name":{"description":"Block page title.","example":"Cloudflare","type":"string"},"suppress_footer":{"description":"Suppress detailed info at the bottom of the block page.","example":false,"type":"boolean"}},"type":"object"},"zero-trust-gateway_body-scanning-settings":{"description":"DLP body scanning settings.","properties":{"inspection_mode":{"description":"Set the inspection mode to either `deep` or `shallow`.","example":"deep","type":"string"}},"type":"object"},"zero-trust-gateway_browser-isolation-settings":{"description":"Browser isolation settings.","properties":{"non_identity_enabled":{"description":"Enable non-identity onramp support for Browser Isolation.","example":true,"type":"boolean"},"url_browser_isolation_enabled":{"description":"Enable Clientless Browser Isolation.","example":true,"type":"boolean"}},"type":"object"},"zero-trust-gateway_categories":{"properties":{"beta":{"$ref":"#/components/schemas/zero-trust-gateway_beta"},"class":{"$ref":"#/components/schemas/zero-trust-gateway_class"},"description":{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-description"},"id":{"$ref":"#/components/schemas/zero-trust-gateway_id"},"name":{"$ref":"#/components/schemas/zero-trust-gateway_categories_components-schemas-name"},"subcategories":{"description":"All subcategories for this category.","items":{"$ref":"#/components/schemas/zero-trust-gateway_subcategory"},"type":"array"}},"readOnly":true,"type":"object"},"zero-trust-gateway_categories_components-schemas-name":{"description":"The name of the category.","example":"Education","type":"string"},"zero-trust-gateway_categories_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/zero-trust-gateway_categories"},"type":"array"}}}]},"zero-trust-gateway_certificate-settings":{"description":"Certificate settings for Gateway TLS interception. If not specified, the Cloudflare Root CA will be used.","properties":{"id":{"description":"UUID of certificate to be used for interception. Certificate must be active on the edge. A nil UUID will indicate the Cloudflare Root CA should be used.","example":"d1b364c5-1311-466e-a194-f0e943e0799f","type":"string"}},"required":["id"],"type":"object"},"zero-trust-gateway_certificates":{"properties":{"binding_status":{"$ref":"#/components/schemas/zero-trust-gateway_binding_status"},"certificate":{"description":"The CA certificate","example":"-----BEGIN CERTIFICATE-----\\nMIIDmDCCAoCgAwIBAgIUKTOAZNjcXVZRj4oQt0SHsl1c1vMwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVVMxFjAUBgNVBAgMDVNhbiBGcmFuY2lzY28xEzARBgNVBAcMCkNhbGlmb3JuaWExFTATBgNVBAoMDEV4YW1wbGUgSW5jLjAgFw0yMjExMjIxNjU5NDdaGA8yMTIyMTAyOTE2NTk0N1owUTELMAkGA1UEBhMCVVMxFjAUBgNVBAgMDVNhbiBGcmFuY2lzY28xEzARBgNVBAcMCkNhbGlmb3JuaWExFTATBgNVBAoMDEV4YW1wbGUgSW5jLjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMRcORwgJFTdcG/2GKI+cFYiOBNDKjCZUXEOvXWY42BkH9wxiMT869CO+enA1w5pIrXow6kCM1sQspHHaVmJUlotEMJxyoLFfA/8Kt1EKFyobOjuZs2SwyVyJ2sStvQuUQEosULZCNGZEqoH5g6zhMPxaxm7ZLrrsDZ9maNGVqo7EWLWHrZ57Q/5MtTrbxQL+eXjUmJ9K3kS+3uEwMdqR6Z3BluU1ivanpPc1CN2GNhdO0/hSY4YkGEnuLsqJyDd3cIiB1MxuCBJ4ZaqOd2viV1WcP3oU3dxVPm4MWyfYIldMWB14FahScxLhWdRnM9YZ/i9IFcLypXsuz7DjrJPtPUCAwEAAaNmMGQwHQYDVR0OBBYEFP5JzLUawNF+c3AXsYTEWHh7z2czMB8GA1UdIwQYMBaAFP5JzLUawNF+c3AXsYTEWHh7z2czMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQBc+Be7NDhpE09y7hLPZGRPl1cSKBw4RI0XIv6rlbSTFs5EebpTGjhx/whNxwEZhB9HZ7111Oa1YlT8xkI9DshB78mjAHCKBAJ76moK8tkG0aqdYpJ4ZcJTVBB7l98Rvgc7zfTii7WemTy72deBbSeiEtXavm4EF0mWjHhQ5Nxpnp00Bqn5g1x8CyTDypgmugnep+xG+iFzNmTdsz7WI9T/7kDMXqB7M/FPWBORyS98OJqNDswCLF8bIZYwUBEe+bRHFomoShMzaC3tvim7WCb16noDkSTMlfKO4pnvKhpcVdSgwcruATV7y+W+Lvmz2OT/Gui4JhqeoTewsxndhDDE\\n-----END CERTIFICATE-----\\n","type":"string"},"created_at":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"},"expires_on":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"},"fingerprint":{"description":"The SHA256 fingerprint of the certificate.","example":"E9:19:49:AA:DD:D8:1E:C1:20:2A:D8:22:BF:A5:F8:FC:1A:F7:10:9F:C7:5B:69:AB:0:31:91:8B:61:B4:BF:1C","type":"string"},"id":{"$ref":"#/components/schemas/zero-trust-gateway_uuid"},"in_use":{"description":"Use this certificate for Gateway TLS interception","type":"boolean"},"issuer_org":{"description":"The organization that issued the certificate.","example":"Example Inc.","type":"string"},"issuer_raw":{"description":"The entire issuer field of the certificate.","example":"O=Example Inc.,L=California,ST=San Francisco,C=US","type":"string"},"type":{"$ref":"#/components/schemas/zero-trust-gateway_type"},"updated_at":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"},"uploaded_on":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"}},"type":"object"},"zero-trust-gateway_cf_account_id":{"description":"Cloudflare account ID.","example":"699d98642c564d2e855e9661899b7252","maxLength":32,"type":"string"},"zero-trust-gateway_class":{"description":"Which account types are allowed to create policies based on this category. `blocked` categories are blocked unconditionally for all accounts. `removalPending` categories can be removed from policies but not added. `noBlock` categories cannot be blocked.","enum":["free","premium","blocked","removalPending","noBlock"],"example":"premium","type":"string"},"zero-trust-gateway_client-default":{"description":"True if the location is the default location.","example":false,"type":"boolean"},"zero-trust-gateway_components-schemas-description":{"description":"A short summary of domains in the category.","example":"Sites related to educational content that are not included in other categories such as Science, Technology or Educational institutions.","type":"string"},"zero-trust-gateway_components-schemas-name":{"description":"The name of the rule.","example":"block bad websites","type":"string"},"zero-trust-gateway_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/zero-trust-gateway_locations"},"type":"array"}}}]},"zero-trust-gateway_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/zero-trust-gateway_locations"}}}]},"zero-trust-gateway_components-schemas-uuid":{"example":"ed35569b41ce4d1facfe683550f54086","type":"string"},"zero-trust-gateway_count":{"description":"The number of items in the list.","example":20,"readOnly":true,"type":"number"},"zero-trust-gateway_custom-certificate-settings":{"deprecated":true,"description":"Custom certificate settings for BYO-PKI. (deprecated and replaced by `certificate`)","properties":{"binding_status":{"description":"Certificate status (internal).","example":"pending_deployment","readOnly":true,"type":"string"},"enabled":{"description":"Enable use of custom certificate authority for signing Gateway traffic.","example":true,"type":"boolean"},"id":{"description":"UUID of certificate (ID from MTLS certificate store).","example":"d1b364c5-1311-466e-a194-f0e943e0799f","type":"string"},"updated_at":{"format":"date-time","readOnly":true,"type":"string"}},"required":["enabled"],"type":"object"},"zero-trust-gateway_deleted_at":{"description":"Date of deletion, if any.","format":"date-time","nullable":true,"readOnly":true,"type":"string"},"zero-trust-gateway_description":{"description":"The description of the list.","example":"The serial numbers for administrators","type":"string"},"zero-trust-gateway_description_item":{"description":"The description of the list item, if present","example":"Austin office IP","minimum":0,"type":"string"},"zero-trust-gateway_device_posture":{"description":"The wirefilter expression used for device posture check matching.","example":"any(device_posture.checks.passed[*] in {\"1308749e-fcfb-4ebc-b051-fe022b632644\"})","type":"string"},"zero-trust-gateway_dns-destination-ips-id-read":{"description":"The identifier of the pair of IPv4 addresses assigned to this location.","example":"0e4a32c6-6fb8-4858-9296-98f51631e8e6","type":"string"},"zero-trust-gateway_dns-destination-ips-id-write":{"description":"The identifier of the pair of IPv4 addresses assigned to this location. When creating a location, if this field is absent or set with null, the pair of shared IPv4 addresses (0e4a32c6-6fb8-4858-9296-98f51631e8e6) is auto-assigned. When updating a location, if the field is absent or set with null, the pre-assigned pair remains unchanged.","example":"0e4a32c6-6fb8-4858-9296-98f51631e8e6","type":"string"},"zero-trust-gateway_dns_resolver_settings_v4":{"properties":{"ip":{"description":"IPv4 address of upstream resolver.","example":"2.2.2.2","type":"string"},"port":{"description":"A port number to use for upstream resolver. Defaults to 53 if unspecified.","example":5053,"type":"integer"},"route_through_private_network":{"description":"Whether to connect to this resolver over a private network. Must be set when vnet_id is set.","example":true,"type":"boolean"},"vnet_id":{"description":"Optionally specify a virtual network for this resolver. Uses default virtual network id if omitted.","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","type":"string"}},"required":["ip"],"type":"object"},"zero-trust-gateway_dns_resolver_settings_v6":{"properties":{"ip":{"description":"IPv6 address of upstream resolver.","example":"2001:DB8::","type":"string"},"port":{"description":"A port number to use for upstream resolver. Defaults to 53 if unspecified.","example":5053,"type":"integer"},"route_through_private_network":{"description":"Whether to connect to this resolver over a private network. Must be set when vnet_id is set.","example":true,"type":"boolean"},"vnet_id":{"description":"Optionally specify a virtual network for this resolver. Uses default virtual network id if omitted.","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","type":"string"}},"required":["ip"],"type":"object"},"zero-trust-gateway_doh_endpoint":{"properties":{"enabled":{"description":"True if the endpoint is enabled for this location.","example":true,"type":"boolean"},"networks":{"$ref":"#/components/schemas/zero-trust-gateway_ip_networks"},"require_token":{"description":"True if the endpoint requires [user identity](https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/agentless/dns/dns-over-https/#filter-doh-requests-by-user) authentication.","example":true,"type":"boolean"}},"type":"object"},"zero-trust-gateway_dot_endpoint":{"properties":{"enabled":{"description":"True if the endpoint is enabled for this location.","example":true,"type":"boolean"},"networks":{"$ref":"#/components/schemas/zero-trust-gateway_ip_networks"}},"type":"object"},"zero-trust-gateway_ecs-support":{"description":"True if the location needs to resolve EDNS queries.","example":false,"type":"boolean"},"zero-trust-gateway_empty_response":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-single"},{"properties":{"result":{"type":"object"}}}]},"zero-trust-gateway_enabled":{"description":"True if the rule is enabled.","example":true,"type":"boolean"},"zero-trust-gateway_enabled_download_phase":{"description":"Enable anti-virus scanning on downloads.","example":false,"type":"boolean"},"zero-trust-gateway_enabled_upload_phase":{"description":"Enable anti-virus scanning on uploads.","example":false,"type":"boolean"},"zero-trust-gateway_endpoints":{"description":"The destination endpoints configured for this location. When updating a location, if this field is absent or set with null, the endpoints configuration remains unchanged.","properties":{"doh":{"$ref":"#/components/schemas/zero-trust-gateway_doh_endpoint"},"dot":{"$ref":"#/components/schemas/zero-trust-gateway_dot_endpoint"},"ipv4":{"$ref":"#/components/schemas/zero-trust-gateway_ipv4_endpoint"},"ipv6":{"$ref":"#/components/schemas/zero-trust-gateway_ipv6_endpoint"}},"type":"object"},"zero-trust-gateway_expiration":{"description":"The expiration time stamp and default duration of a DNS policy. Takes\nprecedence over the policy's `schedule` configuration, if any.\n\nThis does not apply to HTTP or network policies.\n","properties":{"duration":{"description":"The default duration a policy will be active in minutes. Must be set in order to use the `reset_expiration` endpoint on this rule.","example":10,"minimum":5,"type":"integer"},"expires_at":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"},{"description":"The time stamp at which the policy will expire and cease to be\napplied.\n\nMust adhere to RFC 3339 and include a UTC offset. Non-zero\noffsets are accepted but will be converted to the equivalent\nvalue with offset zero (UTC+00:00) and will be returned as time\nstamps with offset zero denoted by a trailing 'Z'.\n\nPolicies with an expiration do not consider the timezone of\nclients they are applied to, and expire \"globally\" at the point\ngiven by their `expires_at` value.\n","example":"2014-01-01T05:20:20Z","type":"string"}]}},"required":["expires_at"],"type":"object"},"zero-trust-gateway_extended-email-matching":{"description":"Extended e-mail matching settings.","properties":{"enabled":{"description":"Enable matching all variants of user emails (with + or . modifiers) used as criteria in Firewall policies.","example":true,"type":"boolean"}},"type":"object"},"zero-trust-gateway_fail_closed":{"description":"Block requests for files that cannot be scanned.","example":false,"type":"boolean"},"zero-trust-gateway_filters":{"description":"The protocol or layer to evaluate the traffic, identity, and device posture expressions.","example":["http"],"items":{"description":"The protocol or layer to use.","enum":["http","dns","l4","egress"],"example":"http","type":"string"},"type":"array"},"zero-trust-gateway_fips-settings":{"description":"FIPS settings.","properties":{"tls":{"description":"Enable only cipher suites and TLS versions compliant with FIPS 140-2.","example":true,"type":"boolean"}},"type":"object"},"zero-trust-gateway_gateway-account-logging-settings":{"properties":{"redact_pii":{"description":"Redact personally identifiable information from activity logging (PII fields are: source IP, user email, user ID, device ID, URL, referrer, user agent).","example":true,"type":"boolean"},"settings_by_rule_type":{"description":"Logging settings by rule type.","properties":{"dns":{"description":"Logging settings for DNS firewall.","type":"object"},"http":{"description":"Logging settings for HTTP/HTTPS firewall.","type":"object"},"l4":{"description":"Logging settings for Network firewall.","type":"object"}},"type":"object"}},"type":"object"},"zero-trust-gateway_gateway-account-logging-settings-response":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/zero-trust-gateway_gateway-account-logging-settings"}}}],"type":"object"},"zero-trust-gateway_gateway-account-settings":{"description":"account settings.","properties":{"settings":{"description":"account settings.","properties":{"activity_log":{"$ref":"#/components/schemas/zero-trust-gateway_activity-log-settings"},"antivirus":{"$ref":"#/components/schemas/zero-trust-gateway_anti-virus-settings"},"block_page":{"$ref":"#/components/schemas/zero-trust-gateway_block-page-settings"},"body_scanning":{"$ref":"#/components/schemas/zero-trust-gateway_body-scanning-settings"},"browser_isolation":{"$ref":"#/components/schemas/zero-trust-gateway_browser-isolation-settings"},"certificate":{"$ref":"#/components/schemas/zero-trust-gateway_certificate-settings"},"custom_certificate":{"$ref":"#/components/schemas/zero-trust-gateway_custom-certificate-settings"},"extended_email_matching":{"$ref":"#/components/schemas/zero-trust-gateway_extended-email-matching"},"fips":{"$ref":"#/components/schemas/zero-trust-gateway_fips-settings"},"protocol_detection":{"$ref":"#/components/schemas/zero-trust-gateway_protocol-detection"},"sandbox":{"$ref":"#/components/schemas/zero-trust-gateway_sandbox"},"tls_decrypt":{"$ref":"#/components/schemas/zero-trust-gateway_tls-settings"}},"type":"object"}},"type":"object"},"zero-trust-gateway_gateway_account":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-single"},{"properties":{"result":{"properties":{"gateway_tag":{"$ref":"#/components/schemas/zero-trust-gateway_gateway_tag"},"id":{"$ref":"#/components/schemas/zero-trust-gateway_cf_account_id"},"provider_name":{"$ref":"#/components/schemas/zero-trust-gateway_provider_name"}},"type":"object"}}}],"type":"object"},"zero-trust-gateway_gateway_account_config":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-single"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_gateway-account-settings"},{"properties":{"created_at":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"},"updated_at":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"}}}],"type":"object"}}}],"type":"object"},"zero-trust-gateway_gateway_tag":{"description":"Gateway internal ID.","example":"f174e90afafe4643bbbc4a0ed4fc8415","maxLength":32,"type":"string"},"zero-trust-gateway_generate-cert-request":{"properties":{"validity_period_days":{"description":"Number of days the generated certificate will be valid, minimum 1 day and maximum 30 years. Defaults to 5 years.","example":1826,"type":"integer"}},"type":"object"},"zero-trust-gateway_id":{"description":"The identifier for this category. There is only one category per ID.","type":"integer"},"zero-trust-gateway_identifier":{"example":"699d98642c564d2e855e9661899b7252","type":"string"},"zero-trust-gateway_identity":{"description":"The wirefilter expression used for identity matching.","example":"any(identity.groups.name[*] in {\"finance\"})","type":"string"},"zero-trust-gateway_ip":{"description":"IPV6 destination ip assigned to this location. DNS requests sent to this IP will counted as the request under this location. This field is auto-generated by Gateway.","example":"2001:0db8:85a3:0000:0000:8a2e:0370:7334","type":"string"},"zero-trust-gateway_ip_network":{"properties":{"network":{"description":"The IP address or IP CIDR.","example":"2001:85a3::/64","type":"string"}},"required":["network"],"type":"object"},"zero-trust-gateway_ip_networks":{"description":"A list of allowed source IP network ranges for this endpoint. When empty, all source IPs are allowed. A non-empty list is only effective if the endpoint is enabled for this location.","items":{"$ref":"#/components/schemas/zero-trust-gateway_ip_network"},"type":"array"},"zero-trust-gateway_ips":{"description":"A list of CIDRs to restrict ingress connections.","items":{"description":"The IPv4 CIDR or IPv6 CIDR. IPv6 CIDRs are limited to a maximum of /109. IPv4 CIDRs are limited to a maximum of /25.","example":"192.0.2.1/32","type":"string"},"type":"array"},"zero-trust-gateway_ipv4_endpoint":{"properties":{"enabled":{"description":"True if the endpoint is enabled for this location.","example":true,"type":"boolean"}},"type":"object"},"zero-trust-gateway_ipv4_network":{"properties":{"network":{"description":"The IPv4 address or IPv4 CIDR. IPv4 CIDRs are limited to a maximum of /24.","example":"192.0.2.1/32","type":"string"}},"required":["network"],"type":"object"},"zero-trust-gateway_ipv4_networks":{"description":"A list of network ranges that requests from this location would originate from. A non-empty list is only effective if the ipv4 endpoint is enabled for this location.","items":{"$ref":"#/components/schemas/zero-trust-gateway_ipv4_network"},"type":"array"},"zero-trust-gateway_ipv6_endpoint":{"properties":{"enabled":{"description":"True if the endpoint is enabled for this location.","example":true,"type":"boolean"},"networks":{"$ref":"#/components/schemas/zero-trust-gateway_ipv6_networks"}},"type":"object"},"zero-trust-gateway_ipv6_network":{"properties":{"network":{"description":"The IPv6 address or IPv6 CIDR.","example":"2001:85a3::/64","type":"string"}},"required":["network"],"type":"object"},"zero-trust-gateway_ipv6_networks":{"description":"A list of allowed source IPv6 network ranges for this endpoint. When empty, all source IPs are allowed. A non-empty list is only effective if the endpoint is enabled for this location.","items":{"$ref":"#/components/schemas/zero-trust-gateway_ipv6_network"},"type":"array"},"zero-trust-gateway_items":{"description":"The items in the list.","items":{"properties":{"created_at":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"},"description":{"$ref":"#/components/schemas/zero-trust-gateway_description_item"},"value":{"$ref":"#/components/schemas/zero-trust-gateway_value"}},"type":"object"},"type":"array"},"zero-trust-gateway_list_item_response_collection":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/zero-trust-gateway_items"},"type":"array"}}},{"properties":{"result_info":{"properties":{"count":{"description":"Total results returned based on your search parameters.","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results.","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results.","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters.","example":2000,"type":"number"}},"type":"object"}}}]},"zero-trust-gateway_lists":{"properties":{"count":{"$ref":"#/components/schemas/zero-trust-gateway_count"},"created_at":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"},"description":{"$ref":"#/components/schemas/zero-trust-gateway_description"},"id":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-uuid"},"name":{"$ref":"#/components/schemas/zero-trust-gateway_name"},"type":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-type"},"updated_at":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"}},"type":"object"},"zero-trust-gateway_locations":{"properties":{"client_default":{"$ref":"#/components/schemas/zero-trust-gateway_client-default"},"created_at":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"},"dns_destination_ips_id":{"$ref":"#/components/schemas/zero-trust-gateway_dns-destination-ips-id-read"},"doh_subdomain":{"$ref":"#/components/schemas/zero-trust-gateway_subdomain"},"ecs_support":{"$ref":"#/components/schemas/zero-trust-gateway_ecs-support"},"endpoints":{"$ref":"#/components/schemas/zero-trust-gateway_endpoints"},"id":{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-uuid"},"ip":{"$ref":"#/components/schemas/zero-trust-gateway_ip"},"ipv4_destination":{"description":"The primary destination IPv4 address from the pair identified by the dns_destination_ips_id. This field is read-only.","example":"172.64.36.1","type":"string"},"ipv4_destination_backup":{"description":"The backup destination IPv4 address from the pair identified by the dns_destination_ips_id. This field is read-only.","example":"172.64.36.2","type":"string"},"name":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-name"},"networks":{"$ref":"#/components/schemas/zero-trust-gateway_ipv4_networks"},"updated_at":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"}},"type":"object"},"zero-trust-gateway_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"zero-trust-gateway_name":{"description":"The name of the list.","example":"Admin Serial Numbers","type":"string"},"zero-trust-gateway_notification_settings":{"description":"Configure a message to display on the user's device when an antivirus search is performed.","properties":{"enabled":{"description":"Set notification on","type":"boolean"},"msg":{"description":"Customize the message shown in the notification.","type":"string"},"support_url":{"description":"Optional URL to direct users to additional information. If not set, the notification will open a block page.","type":"string"}},"type":"object"},"zero-trust-gateway_precedence":{"description":"Precedence sets the order of your rules. Lower values indicate higher precedence. At each processing phase, applicable rules are evaluated in ascending order of this value.","type":"integer"},"zero-trust-gateway_protocol-detection":{"description":"Protocol Detection settings.","properties":{"enabled":{"description":"Enable detecting protocol on initial bytes of client traffic.","example":true,"type":"boolean"}},"type":"object"},"zero-trust-gateway_provider_name":{"description":"The name of the provider. Usually Cloudflare.","example":"Cloudflare","type":"string"},"zero-trust-gateway_proxy-endpoints":{"properties":{"created_at":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"},"id":{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-uuid"},"ips":{"$ref":"#/components/schemas/zero-trust-gateway_ips"},"name":{"$ref":"#/components/schemas/zero-trust-gateway_proxy-endpoints_components-schemas-name"},"subdomain":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-subdomain"},"updated_at":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"}},"type":"object"},"zero-trust-gateway_proxy-endpoints_components-schemas-name":{"description":"The name of the proxy endpoint.","example":"Devops team","type":"string"},"zero-trust-gateway_proxy-endpoints_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/zero-trust-gateway_proxy-endpoints"},"type":"array"}}}]},"zero-trust-gateway_proxy-endpoints_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/zero-trust-gateway_proxy-endpoints"}}}]},"zero-trust-gateway_public_key":{"description":"SSH encryption public key","example":"1pyl6I1tL7xfJuFYVzXlUW8uXXlpxegHXBzGCBKaSFA=","type":"string"},"zero-trust-gateway_response_collection":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/zero-trust-gateway_certificates"},"type":"array"}}}]},"zero-trust-gateway_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"zero-trust-gateway_rule-settings":{"description":"Additional settings that modify the rule's action.","properties":{"add_headers":{"additionalProperties":{"type":"string"},"description":"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"]},"type":"object"},"allow_child_bypass":{"description":"Set by parent MSP accounts to enable their children to bypass this rule.","example":false,"type":"boolean"},"audit_ssh":{"description":"Settings for the Audit SSH action.","properties":{"command_logging":{"description":"Enable to turn on SSH command logging.","example":false,"type":"boolean"}},"type":"object"},"biso_admin_controls":{"description":"Configure how browser isolation behaves.","properties":{"dcp":{"description":"Set to false to enable copy-pasting.","example":false,"type":"boolean"},"dd":{"description":"Set to false to enable downloading.","example":false,"type":"boolean"},"dk":{"description":"Set to false to enable keyboard usage.","example":false,"type":"boolean"},"dp":{"description":"Set to false to enable printing.","example":false,"type":"boolean"},"du":{"description":"Set to false to enable uploading.","example":false,"type":"boolean"}},"type":"object"},"block_page_enabled":{"description":"Enable the custom block page.","example":true,"type":"boolean"},"block_reason":{"description":"The text describing why this block occurred, displayed on the custom block page (if enabled).","example":"This website is a security risk","type":"string"},"bypass_parent_rule":{"description":"Set by children MSP accounts to bypass their parent's rules.","example":false,"type":"boolean"},"check_session":{"description":"Configure how session check behaves.","properties":{"duration":{"description":"Configure how fresh the session needs to be to be considered valid.","example":"300s","type":"string"},"enforce":{"description":"Set to true to enable session enforcement.","example":true,"type":"boolean"}},"type":"object"},"dns_resolvers":{"description":"Add your own custom resolvers to route queries that match the resolver policy. Cannot be used when resolve_dns_through_cloudflare is set. DNS queries will route to the address closest to their origin. Only valid when a rule's action is set to 'resolve'.","properties":{"ipv4":{"items":{"$ref":"#/components/schemas/zero-trust-gateway_dns_resolver_settings_v4"},"type":"array"},"ipv6":{"items":{"$ref":"#/components/schemas/zero-trust-gateway_dns_resolver_settings_v6"},"type":"array"}},"type":"object"},"egress":{"description":"Configure how Gateway Proxy traffic egresses. You can enable this setting for rules with Egress actions and filters, or omit it to indicate local egress via WARP IPs.","properties":{"ipv4":{"description":"The IPv4 address to be used for egress.","example":"192.0.2.2","type":"string"},"ipv4_fallback":{"description":"The fallback 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 egress via WARP IPs.","example":"192.0.2.3","type":"string"},"ipv6":{"description":"The IPv6 range to be used for egress.","example":"2001:DB8::/64","type":"string"}},"type":"object"},"ignore_cname_category_matches":{"description":"Set to true, to ignore the category matches at CNAME domains in a response. If unchecked, the categories in this rule will be checked against all the CNAME domain categories in a response.","example":true,"type":"boolean"},"insecure_disable_dnssec_validation":{"description":"INSECURE - disable DNSSEC validation (for Allow actions).","example":false,"type":"boolean"},"ip_categories":{"description":"Set to true to enable IPs in DNS resolver category blocks. By default categories only block based on domain names.","example":true,"type":"boolean"},"ip_indicator_feeds":{"description":"Set to true to include IPs in DNS resolver indicator feed blocks. By default indicator feeds only block based on domain names.","example":true,"type":"boolean"},"l4override":{"description":"Send matching traffic to the supplied destination IP address and port.","properties":{"ip":{"description":"IPv4 or IPv6 address.","example":"1.1.1.1","type":"string"},"port":{"description":"A port number to use for TCP/UDP overrides.","type":"integer"}},"type":"object"},"notification_settings":{"description":"Configure a notification to display on the user's device when this rule is matched.","properties":{"enabled":{"description":"Set notification on","type":"boolean"},"msg":{"description":"Customize the message shown in the notification.","type":"string"},"support_url":{"description":"Optional URL to direct users to additional information. If not set, the notification will open a block page.","type":"string"}},"type":"object"},"override_host":{"description":"Override matching DNS queries with a hostname.","example":"example.com","type":"string"},"override_ips":{"description":"Override matching DNS queries with an IP or set of IPs.","example":["1.1.1.1","2.2.2.2"],"items":{"description":"IPv4 or IPv6 address.","example":"1.1.1.1","type":"string"},"type":"array"},"payload_log":{"description":"Configure DLP payload logging.","properties":{"enabled":{"description":"Set to true to enable DLP payload logging for this rule.","example":true,"type":"boolean"}},"type":"object"},"quarantine":{"description":"Settings that apply to quarantine rules","properties":{"file_types":{"description":"Types of files to sandbox.","items":{"enum":["exe","pdf","doc","docm","docx","rtf","ppt","pptx","xls","xlsm","xlsx","zip","rar"],"type":"string"},"type":"array"}},"type":"object"},"resolve_dns_through_cloudflare":{"description":"Enable to send queries that match the policy to Cloudflare's default 1.1.1.1 DNS resolver. Cannot be set when dns_resolvers are specified. Only valid when a rule's action is set to 'resolve'.","example":true,"type":"boolean"},"untrusted_cert":{"description":"Configure behavior when an upstream cert is invalid or an SSL error occurs.","properties":{"action":{"description":"The action performed when an untrusted certificate is seen. The default action is an error with HTTP code 526.","enum":["pass_through","block","error"],"example":"error","type":"string"}},"type":"object"}},"type":"object"},"zero-trust-gateway_rules":{"properties":{"action":{"$ref":"#/components/schemas/zero-trust-gateway_action"},"created_at":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"},"deleted_at":{"$ref":"#/components/schemas/zero-trust-gateway_deleted_at"},"description":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-description"},"device_posture":{"$ref":"#/components/schemas/zero-trust-gateway_device_posture"},"enabled":{"$ref":"#/components/schemas/zero-trust-gateway_enabled"},"expiration":{"$ref":"#/components/schemas/zero-trust-gateway_expiration"},"filters":{"$ref":"#/components/schemas/zero-trust-gateway_filters"},"id":{"$ref":"#/components/schemas/zero-trust-gateway_rules_components-schemas-uuid"},"identity":{"$ref":"#/components/schemas/zero-trust-gateway_identity"},"name":{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-name"},"precedence":{"$ref":"#/components/schemas/zero-trust-gateway_precedence"},"rule_settings":{"$ref":"#/components/schemas/zero-trust-gateway_rule-settings"},"schedule":{"$ref":"#/components/schemas/zero-trust-gateway_schedule"},"traffic":{"$ref":"#/components/schemas/zero-trust-gateway_traffic"},"updated_at":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"}},"type":"object"},"zero-trust-gateway_rules_components-schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/zero-trust-gateway_rules"},"type":"array"}}}]},"zero-trust-gateway_rules_components-schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/zero-trust-gateway_rules"}}}]},"zero-trust-gateway_rules_components-schemas-uuid":{"description":"The API resource UUID.","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","maxLength":36,"type":"string"},"zero-trust-gateway_sandbox":{"description":"Sandbox settings.","properties":{"enabled":{"description":"Enable sandbox.","example":true,"type":"boolean"},"fallback_action":{"description":"Action to take when the file cannot be scanned.","enum":["allow","block"],"type":"string"}},"type":"object"},"zero-trust-gateway_schedule":{"description":"The schedule for activating DNS policies. This does not apply to HTTP or network policies.","properties":{"fri":{"description":"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","type":"string"},"mon":{"description":"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","type":"string"},"sat":{"description":"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","type":"string"},"sun":{"description":"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","type":"string"},"thu":{"description":"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","type":"string"},"time_zone":{"description":"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 Gateway will use the time zone inferred from the user's source IP 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","type":"string"},"tue":{"description":"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","type":"string"},"wed":{"description":"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","type":"string"}},"type":"object"},"zero-trust-gateway_schemas-description":{"description":"The description of the rule.","example":"Block bad websites based on their host name.","type":"string"},"zero-trust-gateway_schemas-identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"zero-trust-gateway_schemas-name":{"description":"The name of the location.","example":"Austin Office Location","type":"string"},"zero-trust-gateway_schemas-response_collection":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/zero-trust-gateway_lists"},"type":"array"}}}]},"zero-trust-gateway_schemas-single_response":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/zero-trust-gateway_lists"}}}]},"zero-trust-gateway_schemas-subdomain":{"description":"The subdomain to be used as the destination in the proxy client.","example":"oli3n9zkz5.proxy.cloudflare-gateway.com","type":"string"},"zero-trust-gateway_schemas-type":{"description":"The type of list.","enum":["SERIAL","URL","DOMAIN","EMAIL","IP"],"example":"SERIAL","type":"string"},"zero-trust-gateway_schemas-uuid":{"description":"API Resource UUID tag.","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","maxLength":36,"type":"string"},"zero-trust-gateway_settings":{"properties":{"created_at":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"},"public_key":{"$ref":"#/components/schemas/zero-trust-gateway_public_key"},"seed_id":{"$ref":"#/components/schemas/zero-trust-gateway_audit_ssh_settings_components-schemas-uuid"},"updated_at":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"}},"type":"object"},"zero-trust-gateway_single_response":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/zero-trust-gateway_certificates"}}}]},"zero-trust-gateway_single_response_with_list_items":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_api-response-single"},{"properties":{"result":{"properties":{"created_at":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"},"description":{"$ref":"#/components/schemas/zero-trust-gateway_description"},"id":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-uuid"},"items":{"$ref":"#/components/schemas/zero-trust-gateway_items"},"name":{"$ref":"#/components/schemas/zero-trust-gateway_name"},"type":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-type"},"updated_at":{"$ref":"#/components/schemas/zero-trust-gateway_timestamp"}}}}}]},"zero-trust-gateway_subcategory":{"properties":{"beta":{"$ref":"#/components/schemas/zero-trust-gateway_beta"},"class":{"$ref":"#/components/schemas/zero-trust-gateway_class"},"description":{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-description"},"id":{"$ref":"#/components/schemas/zero-trust-gateway_id"},"name":{"$ref":"#/components/schemas/zero-trust-gateway_categories_components-schemas-name"}},"type":"object"},"zero-trust-gateway_subdomain":{"description":"The DNS over HTTPS domain to send DNS requests to. This field is auto-generated by Gateway.","example":"oli3n9zkz5","type":"string"},"zero-trust-gateway_timestamp":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","type":"string"},"zero-trust-gateway_tls-settings":{"description":"TLS interception settings.","properties":{"enabled":{"description":"Enable inspecting encrypted HTTP traffic.","example":true,"type":"boolean"}},"type":"object"},"zero-trust-gateway_traffic":{"description":"The wirefilter expression used for traffic matching.","example":"http.request.uri matches \".*a/partial/uri.*\" and http.request.host in $01302951-49f9-47c9-a400-0297e60b6a10","type":"string"},"zero-trust-gateway_type":{"description":"The type of certificate, either BYO-PKI (custom) or Gateway-managed.","enum":["custom","gateway_managed"],"example":"gateway_managed","type":"string"},"zero-trust-gateway_uuid":{"description":"Certificate UUID tag.","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","maxLength":36,"type":"string"},"zero-trust-gateway_value":{"description":"The value of the item in a list.","example":"8GE8721REF","type":"string"},"zone-activation_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/zone-activation_messages"},"messages":{"$ref":"#/components/schemas/zone-activation_messages"},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"zone-activation_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/zone-activation_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/zone-activation_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"zone-activation_api-response-single":{"allOf":[{"$ref":"#/components/schemas/zone-activation_api-response-common"}],"type":"object"},"zone-activation_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"zone-activation_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"zone-analytics-api_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/zone-analytics-api_messages"},"messages":{"$ref":"#/components/schemas/zone-analytics-api_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"zone-analytics-api_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/zone-analytics-api_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/zone-analytics-api_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"zone-analytics-api_api-response-single":{"allOf":[{"$ref":"#/components/schemas/zone-analytics-api_api-response-common"},{"properties":{"result":{"anyOf":[{"nullable":true,"type":"object"},{"nullable":true,"type":"string"}]}}}],"type":"object"},"zone-analytics-api_bandwidth":{"description":"Breakdown of totals for bandwidth in the form of bytes.","properties":{"all":{"description":"The total number of bytes served within the time frame.","type":"integer"},"cached":{"description":"The number of bytes that were cached (and served) by Cloudflare.","type":"integer"},"content_type":{"description":"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},"type":"object"},"country":{"description":"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},"type":"object"},"ssl":{"description":"A break down of bytes served over HTTPS.","properties":{"encrypted":{"description":"The number of bytes served over HTTPS.","type":"integer"},"unencrypted":{"description":"The number of bytes served over HTTP.","type":"integer"}},"type":"object"},"ssl_protocols":{"description":"A breakdown of requests by their SSL protocol.","properties":{"TLSv1":{"description":"The number of requests served over TLS v1.0.","type":"integer"},"TLSv1.1":{"description":"The number of requests served over TLS v1.1.","type":"integer"},"TLSv1.2":{"description":"The number of requests served over TLS v1.2.","type":"integer"},"TLSv1.3":{"description":"The number of requests served over TLS v1.3.","type":"integer"},"none":{"description":"The number of requests served over HTTP.","type":"integer"}},"type":"object"},"uncached":{"description":"The number of bytes that were fetched and served from the origin server.","type":"integer"}},"type":"object"},"zone-analytics-api_bandwidth_by_colo":{"description":"Breakdown of totals for bandwidth in the form of bytes.","properties":{"all":{"description":"The total number of bytes served within the time frame.","type":"integer"},"cached":{"description":"The number of bytes that were cached (and served) by Cloudflare.","type":"integer"},"uncached":{"description":"The number of bytes that were fetched and served from the origin server.","type":"integer"}},"type":"object"},"zone-analytics-api_colo_response":{"allOf":[{"$ref":"#/components/schemas/zone-analytics-api_api-response-single"},{"properties":{"query":{"$ref":"#/components/schemas/zone-analytics-api_query_response"},"result":{"$ref":"#/components/schemas/zone-analytics-api_datacenters"}}}]},"zone-analytics-api_dashboard":{"description":"Totals and timeseries data.","properties":{"timeseries":{"$ref":"#/components/schemas/zone-analytics-api_timeseries"},"totals":{"$ref":"#/components/schemas/zone-analytics-api_totals"}},"title":"Dashboard response","type":"object"},"zone-analytics-api_dashboard_response":{"allOf":[{"$ref":"#/components/schemas/zone-analytics-api_api-response-single"},{"properties":{"query":{"$ref":"#/components/schemas/zone-analytics-api_query_response"},"result":{"$ref":"#/components/schemas/zone-analytics-api_dashboard"}}}]},"zone-analytics-api_datacenters":{"description":"A breakdown of all dashboard analytics data by co-locations. This is limited to Enterprise zones only.","items":{"properties":{"colo_id":{"description":"The airport code identifer for the co-location.","example":"SFO","type":"string"},"timeseries":{"$ref":"#/components/schemas/zone-analytics-api_timeseries_by_colo"},"totals":{"$ref":"#/components/schemas/zone-analytics-api_totals_by_colo"}},"type":"object"},"title":"Analytics data by datacenter","type":"array"},"zone-analytics-api_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"zone-analytics-api_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"zone-analytics-api_pageviews":{"description":"Breakdown of totals for pageviews.","properties":{"all":{"description":"The total number of pageviews served within the time range.","type":"integer"},"search_engine":{"description":"A variable list of key/value pairs representing the search engine and number of hits.","example":{"baidubot":1345,"bingbot":5372,"googlebot":35272,"pingdom":13435},"type":"object"}},"type":"object"},"zone-analytics-api_query_response":{"description":"The exact parameters/timestamps the analytics service used to return data.","properties":{"since":{"$ref":"#/components/schemas/zone-analytics-api_since"},"time_delta":{"description":"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.","type":"integer"},"until":{"$ref":"#/components/schemas/zone-analytics-api_until"}},"readOnly":true,"type":"object"},"zone-analytics-api_requests":{"description":"Breakdown of totals for requests.","properties":{"all":{"description":"Total number of requests served.","type":"integer"},"cached":{"description":"Total number of cached requests served.","type":"integer"},"content_type":{"description":"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},"type":"object"},"country":{"description":"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},"type":"object"},"http_status":{"additionalProperties":true,"description":"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},"type":"object"},"ssl":{"description":"A break down of requests served over HTTPS.","properties":{"encrypted":{"description":"The number of requests served over HTTPS.","type":"integer"},"unencrypted":{"description":"The number of requests served over HTTP.","type":"integer"}},"type":"object"},"ssl_protocols":{"description":"A breakdown of requests by their SSL protocol.","properties":{"TLSv1":{"description":"The number of requests served over TLS v1.0.","type":"integer"},"TLSv1.1":{"description":"The number of requests served over TLS v1.1.","type":"integer"},"TLSv1.2":{"description":"The number of requests served over TLS v1.2.","type":"integer"},"TLSv1.3":{"description":"The number of requests served over TLS v1.3.","type":"integer"},"none":{"description":"The number of requests served over HTTP.","type":"integer"}},"type":"object"},"uncached":{"description":"Total number of requests served from the origin.","type":"integer"}},"type":"object"},"zone-analytics-api_requests_by_colo":{"description":"Breakdown of totals for requests.","properties":{"all":{"description":"Total number of requests served.","type":"integer"},"cached":{"description":"Total number of cached requests served.","type":"integer"},"country":{"additionalProperties":true,"description":"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},"type":"object"},"http_status":{"description":"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},"type":"object"},"uncached":{"description":"Total number of requests served from the origin.","type":"integer"}},"type":"object"},"zone-analytics-api_since":{"anyOf":[{"type":"string"},{"type":"integer"}],"default":-10080,"description":"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.\n\nRanges that the Cloudflare web application provides will provide the following period length for each point:\n- Last 60 minutes (from -59 to -1): 1 minute resolution\n- Last 7 hours (from -419 to -60): 15 minutes resolution\n- Last 15 hours (from -899 to -420): 30 minutes resolution\n- Last 72 hours (from -4320 to -900): 1 hour resolution\n- Older than 3 days (-525600 to -4320): 1 day resolution.","example":"2015-01-01T12:23:00Z"},"zone-analytics-api_threats":{"description":"Breakdown of totals for threats.","properties":{"all":{"description":"The total number of identifiable threats received over the time frame.","type":"integer"},"country":{"description":"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},"type":"object"},"type":{"description":"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":"object"}},"type":"object"},"zone-analytics-api_timeseries":{"description":"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.","items":{"properties":{"bandwidth":{"$ref":"#/components/schemas/zone-analytics-api_bandwidth"},"pageviews":{"$ref":"#/components/schemas/zone-analytics-api_pageviews"},"requests":{"$ref":"#/components/schemas/zone-analytics-api_requests"},"since":{"$ref":"#/components/schemas/zone-analytics-api_since"},"threats":{"$ref":"#/components/schemas/zone-analytics-api_threats"},"uniques":{"$ref":"#/components/schemas/zone-analytics-api_uniques"},"until":{"$ref":"#/components/schemas/zone-analytics-api_until"}},"type":"object"},"type":"array"},"zone-analytics-api_timeseries_by_colo":{"description":"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.","items":{"properties":{"bandwidth":{"$ref":"#/components/schemas/zone-analytics-api_bandwidth_by_colo"},"requests":{"$ref":"#/components/schemas/zone-analytics-api_requests_by_colo"},"since":{"$ref":"#/components/schemas/zone-analytics-api_since"},"threats":{"$ref":"#/components/schemas/zone-analytics-api_threats"},"until":{"$ref":"#/components/schemas/zone-analytics-api_until"}},"type":"object"},"type":"array"},"zone-analytics-api_totals":{"description":"Breakdown of totals by data type.","properties":{"bandwidth":{"$ref":"#/components/schemas/zone-analytics-api_bandwidth"},"pageviews":{"$ref":"#/components/schemas/zone-analytics-api_pageviews"},"requests":{"$ref":"#/components/schemas/zone-analytics-api_requests"},"since":{"$ref":"#/components/schemas/zone-analytics-api_since"},"threats":{"$ref":"#/components/schemas/zone-analytics-api_threats"},"uniques":{"$ref":"#/components/schemas/zone-analytics-api_uniques"},"until":{"$ref":"#/components/schemas/zone-analytics-api_until"}},"type":"object"},"zone-analytics-api_totals_by_colo":{"description":"Breakdown of totals by data type.","properties":{"bandwidth":{"$ref":"#/components/schemas/zone-analytics-api_bandwidth_by_colo"},"requests":{"$ref":"#/components/schemas/zone-analytics-api_requests_by_colo"},"since":{"$ref":"#/components/schemas/zone-analytics-api_since"},"threats":{"$ref":"#/components/schemas/zone-analytics-api_threats"},"until":{"$ref":"#/components/schemas/zone-analytics-api_until"}},"type":"object"},"zone-analytics-api_uniques":{"properties":{"all":{"description":"Total number of unique IP addresses within the time range.","type":"integer"}},"type":"object"},"zone-analytics-api_until":{"anyOf":[{"type":"string"},{"type":"integer"}],"default":0,"description":"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.","example":"2015-01-02T12:23:00Z"},"zones_0rtt":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["0rtt"],"example":"0rtt"},"value":{"$ref":"#/components/schemas/zones_0rtt_value"}}}],"description":"0-RTT session resumption enabled for this zone.","title":"0-RTT Value"},"zones_0rtt_value":{"default":"off","description":"Value of the 0-RTT setting.","enum":["on","off"],"type":"string"},"zones_actions":{"description":"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"}],"items":{"oneOf":[{"$ref":"#/components/schemas/zones_route"}]},"type":"array"},"zones_advanced_ddos":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["advanced_ddos"],"example":"advanced_ddos"},"value":{"$ref":"#/components/schemas/zones_advanced_ddos_value"}}}],"description":"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.","title":"Advanced DDoS Protection"},"zones_advanced_ddos_value":{"default":"off","description":"Value of the zone setting.\nNotes: Defaults to on for Business+ plans","enum":["on","off"],"type":"string"},"zones_always_online":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["always_online"],"example":"always_online"},"value":{"$ref":"#/components/schemas/zones_always_online_value"}}}],"description":"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.","title":"Always Online Mode"},"zones_always_online_value":{"default":"on","description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_always_use_https":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["always_use_https"],"example":"always_use_https"},"value":{"$ref":"#/components/schemas/zones_always_use_https_value"}}}],"default":"off","description":"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.","title":"Zone Enable Always Use HTTPS"},"zones_always_use_https_value":{"default":"off","description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/zones_messages"},"messages":{"$ref":"#/components/schemas/zones_messages"},"success":{"description":"Whether the API call was successful","example":true,"type":"boolean"}},"required":["success","errors","messages"],"type":"object"},"zones_api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/zones_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/zones_messages"}],"example":[]},"result":{"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"zones_api-response-single":{"allOf":[{"$ref":"#/components/schemas/zones_schemas-api-response-common"},{"properties":{"result":{"anyOf":[{"type":"object"},{"type":"string"}]}}}],"type":"object"},"zones_api-response-single-id":{"allOf":[{"$ref":"#/components/schemas/zones_api-response-common"},{"properties":{"result":{"nullable":true,"properties":{"id":{"$ref":"#/components/schemas/zones_identifier"}},"required":["id"],"type":"object"}}}],"type":"object"},"zones_automatic_https_rewrites":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["automatic_https_rewrites"],"example":"automatic_https_rewrites"},"value":{"$ref":"#/components/schemas/zones_automatic_https_rewrites_value"}}}],"default":"off","description":"Enable the Automatic HTTPS Rewrites feature for this zone.","title":"Zone Enable Automatic HTTPS Rewrites"},"zones_automatic_https_rewrites_value":{"default":"on","description":"Value of the zone setting.\nNotes: Default value depends on the zone's plan level.","enum":["on","off"],"type":"string"},"zones_automatic_platform_optimization":{"properties":{"cache_by_device_type":{"description":"Indicates whether or not [cache by device type](https://developers.cloudflare.com/automatic-platform-optimization/reference/cache-device-type/) is enabled.","example":false,"type":"boolean"},"cf":{"default":false,"description":"Indicates whether or not Cloudflare proxy is enabled.","example":true,"type":"boolean"},"enabled":{"default":false,"description":"Indicates whether or not Automatic Platform Optimization is enabled.","example":true,"type":"boolean"},"hostnames":{"description":"An array of hostnames where Automatic Platform Optimization for WordPress is activated.","example":["www.example.com","example.com","shop.example.com"],"items":{"format":"hostname","type":"string"},"type":"array"},"wordpress":{"default":false,"description":"Indicates whether or not site is powered by WordPress.","example":true,"type":"boolean"},"wp_plugin":{"default":false,"description":"Indicates whether or not [Cloudflare for WordPress plugin](https://wordpress.org/plugins/cloudflare/) is installed.","example":true,"type":"boolean"}},"required":["enabled","cf","wordpress","wp_plugin","hostnames","cache_by_device_type"],"type":"object"},"zones_base":{"properties":{"editable":{"default":true,"description":"Whether or not this setting can be modified for this zone (based on your Cloudflare plan level).","enum":[true,false],"readOnly":true,"type":"boolean"},"id":{"description":"Identifier of the zone setting.","example":"development_mode","type":"string"},"modified_on":{"description":"last time this setting was modified.","example":"2014-01-01T05:20:00.12345Z","format":"date-time","nullable":true,"readOnly":true,"type":"string"},"value":{"description":"Current value of the zone setting.","example":"on"}},"required":["id","value"]},"zones_brotli":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["brotli"],"example":"brotli"},"value":{"$ref":"#/components/schemas/zones_brotli_value"}}}],"description":"When the client requesting an asset supports the Brotli compression algorithm, Cloudflare will serve a Brotli compressed version of the asset.","title":"Brotli Compression"},"zones_brotli_value":{"default":"off","description":"Value of the zone setting.","enum":["off","on"],"type":"string"},"zones_browser_cache_ttl":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["browser_cache_ttl"],"example":"browser_cache_ttl"},"value":{"$ref":"#/components/schemas/zones_browser_cache_ttl_value"}}}],"description":"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).","title":"Browser Cache TTL"},"zones_browser_cache_ttl_value":{"default":14400,"description":"Value of the zone setting.\nNotes: Setting a TTL of 0 is equivalent to selecting `Respect Existing Headers`","enum":[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],"type":"number"},"zones_browser_check":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["browser_check"],"example":"browser_check"},"value":{"$ref":"#/components/schemas/zones_browser_check_value"}}}],"description":"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).","title":"Browser Check"},"zones_browser_check_value":{"default":"on","description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_cache_level":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["cache_level"],"example":"cache_level"},"value":{"$ref":"#/components/schemas/zones_cache_level_value"}}}],"description":"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).","title":"Cloudflare Cache Level"},"zones_cache_level_value":{"default":"aggressive","description":"Value of the zone setting.","enum":["aggressive","basic","simplified"],"type":"string"},"zones_challenge_ttl":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["challenge_ttl"],"example":"challenge_ttl"},"value":{"$ref":"#/components/schemas/zones_challenge_ttl_value"}}}],"description":"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).","title":"Challenge Page TTL"},"zones_challenge_ttl_value":{"default":1800,"description":"Value of the zone setting.","enum":[300,900,1800,2700,3600,7200,10800,14400,28800,57600,86400,604800,2592000,31536000],"type":"number"},"zones_ciphers":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["ciphers"],"example":"ciphers"},"value":{"$ref":"#/components/schemas/zones_ciphers_value"}}}],"default":[],"description":"An allowlist of ciphers for TLS termination. These ciphers must be in the BoringSSL format.","title":"Zone ciphers allowed for TLS termination"},"zones_ciphers_value":{"default":[],"description":"Value of the zone setting.","example":["ECDHE-RSA-AES128-GCM-SHA256","AES128-SHA"],"items":{"type":"string"},"type":"array","uniqueItems":true},"zones_cname_flattening":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"How to flatten the cname destination.","enum":["cname_flattening"]},"value":{"$ref":"#/components/schemas/zones_cname_flattening_value"}}}],"description":"Whether or not cname flattening is on.","title":"Cloudflare CNAME Flattening"},"zones_cname_flattening_value":{"default":"flatten_at_root","description":"Value of the cname flattening setting.","enum":["flatten_at_root","flatten_all"],"type":"string"},"zones_created_on":{"description":"The timestamp of when the Page Rule was created.","example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"zones_development_mode":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["development_mode"],"example":"development_mode"},"time_remaining":{"description":"Value of the zone setting.\nNotes: 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,"readOnly":true,"type":"number"},"value":{"$ref":"#/components/schemas/zones_development_mode_value"}}}],"description":"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.","title":"Development Mode"},"zones_development_mode_value":{"default":"off","description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_early_hints":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["early_hints"],"example":"early_hints"},"value":{"$ref":"#/components/schemas/zones_early_hints_value"}}}],"description":"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.","title":"Early Hints"},"zones_early_hints_value":{"default":"off","description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_edge_cache_ttl":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["edge_cache_ttl"],"example":"edge_cache_ttl"},"value":{"$ref":"#/components/schemas/zones_edge_cache_ttl_value"}}}],"description":"Time (in seconds) that a resource will be ensured to remain on Cloudflare's cache servers.","title":"Edge Cache TTL"},"zones_edge_cache_ttl_value":{"default":7200,"description":"Value of the zone setting.\nNotes: The minimum TTL available depends on the plan level of the zone. (Enterprise = 30, Business = 1800, Pro = 3600, Free = 7200)","enum":[30,60,300,1200,1800,3600,7200,10800,14400,18000,28800,43200,57600,72000,86400,172800,259200,345600,432000,518400,604800],"type":"number"},"zones_email_obfuscation":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["email_obfuscation"],"example":"email_obfuscation"},"value":{"$ref":"#/components/schemas/zones_email_obfuscation_value"}}}],"description":"Encrypt email adresses on your web page from bots, while keeping them visible to humans. (https://support.cloudflare.com/hc/en-us/articles/200170016).","title":"Email Obfuscation"},"zones_email_obfuscation_value":{"default":"on","description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_h2_prioritization":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["h2_prioritization"],"example":"h2_prioritization"},"value":{"$ref":"#/components/schemas/zones_h2_prioritization_value"}}}],"description":"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.","title":"HTTP/2 Edge Prioritization"},"zones_h2_prioritization_value":{"default":"off","description":"Value of the zone setting.","enum":["on","off","custom"],"type":"string"},"zones_hotlink_protection":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["hotlink_protection"],"example":"hotlink_protection"},"value":{"$ref":"#/components/schemas/zones_hotlink_protection_value"}}}],"description":"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).","title":"Hotlink Protection"},"zones_hotlink_protection_value":{"default":"off","description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_http2":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["http2"],"example":"http2"},"value":{"$ref":"#/components/schemas/zones_http2_value"}}}],"description":"HTTP2 enabled for this zone.","title":"HTTP2 Value"},"zones_http2_value":{"default":"off","description":"Value of the HTTP2 setting.","enum":["on","off"],"type":"string"},"zones_http3":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["http3"],"example":"http3"},"value":{"$ref":"#/components/schemas/zones_http3_value"}}}],"description":"HTTP3 enabled for this zone.","title":"HTTP3 Value"},"zones_http3_value":{"default":"off","description":"Value of the HTTP3 setting.","enum":["on","off"],"type":"string"},"zones_identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"type":"string"},"zones_image_resizing":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["image_resizing"],"example":"image_resizing"},"value":{"$ref":"#/components/schemas/zones_image_resizing_value"}}}],"description":"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.","title":"Image Resizing"},"zones_image_resizing_value":{"default":"off","description":"Whether the feature is enabled, disabled, or enabled in `open proxy` mode.","enum":["on","off","open"],"type":"string"},"zones_ip_geolocation":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["ip_geolocation"],"example":"ip_geolocation"},"value":{"$ref":"#/components/schemas/zones_ip_geolocation_value"}}}],"description":"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).","title":"IP Geolocation"},"zones_ip_geolocation_value":{"default":"on","description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_ipv6":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["ipv6"],"example":"ipv6"},"value":{"$ref":"#/components/schemas/zones_ipv6_value"}}}],"description":"Enable IPv6 on all subdomains that are Cloudflare enabled. (https://support.cloudflare.com/hc/en-us/articles/200168586).","title":"IPv6"},"zones_ipv6_value":{"default":"off","description":"Value of the zone setting.","enum":["off","on"],"type":"string"},"zones_max_upload":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"identifier of the zone setting.","enum":["max_upload"],"example":"max_upload"},"value":{"$ref":"#/components/schemas/zones_max_upload_value"}}}],"description":"Maximum size of an allowable upload.","title":"Max Upload"},"zones_max_upload_value":{"default":100,"description":"Value of the zone setting.\nNotes: The size depends on the plan level of the zone. (Enterprise = 500, Business = 200, Pro = 100, Free = 100)","enum":[100,200,500],"type":"number"},"zones_messages":{"example":[],"items":{"properties":{"code":{"minimum":1000,"type":"integer"},"message":{"type":"string"}},"required":["code","message"],"type":"object","uniqueItems":true},"type":"array"},"zones_min_tls_version":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["min_tls_version"],"example":"min_tls_version"},"value":{"$ref":"#/components/schemas/zones_min_tls_version_value"}}}],"default":"1.0","description":"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.","title":"Zone Minimum TLS Version value"},"zones_min_tls_version_value":{"default":"1.0","description":"Value of the zone setting.","enum":["1.0","1.1","1.2","1.3"],"type":"string"},"zones_mirage":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["mirage"],"example":"mirage"},"value":{"$ref":"#/components/schemas/zones_mirage_value"}}}],"description":"Automatically optimize image loading for website visitors on mobile\ndevices. Refer to [our blog post](http://blog.cloudflare.com/mirage2-solving-mobile-speed)\nfor more information.\n","title":"Mirage Image Optimization"},"zones_mirage_value":{"default":"off","description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_multiple_settings":{"items":{"anyOf":[{"$ref":"#/components/schemas/zones_0rtt"},{"$ref":"#/components/schemas/zones_advanced_ddos"},{"$ref":"#/components/schemas/zones_always_online"},{"$ref":"#/components/schemas/zones_always_use_https"},{"$ref":"#/components/schemas/zones_automatic_https_rewrites"},{"$ref":"#/components/schemas/zones_brotli"},{"$ref":"#/components/schemas/zones_browser_cache_ttl"},{"$ref":"#/components/schemas/zones_browser_check"},{"$ref":"#/components/schemas/zones_cache_level"},{"$ref":"#/components/schemas/zones_challenge_ttl"},{"$ref":"#/components/schemas/zones_ciphers"},{"$ref":"#/components/schemas/zones_cname_flattening"},{"$ref":"#/components/schemas/zones_development_mode"},{"$ref":"#/components/schemas/zones_early_hints"},{"$ref":"#/components/schemas/zones_edge_cache_ttl"},{"$ref":"#/components/schemas/zones_email_obfuscation"},{"$ref":"#/components/schemas/zones_h2_prioritization"},{"$ref":"#/components/schemas/zones_hotlink_protection"},{"$ref":"#/components/schemas/zones_http2"},{"$ref":"#/components/schemas/zones_http3"},{"$ref":"#/components/schemas/zones_ip_geolocation"},{"$ref":"#/components/schemas/zones_ipv6"},{"$ref":"#/components/schemas/zones_max_upload"},{"$ref":"#/components/schemas/zones_min_tls_version"},{"$ref":"#/components/schemas/zones_mirage"},{"$ref":"#/components/schemas/zones_nel"},{"$ref":"#/components/schemas/zones_opportunistic_encryption"},{"$ref":"#/components/schemas/zones_opportunistic_onion"},{"$ref":"#/components/schemas/zones_orange_to_orange"},{"$ref":"#/components/schemas/zones_origin_error_page_pass_thru"},{"$ref":"#/components/schemas/zones_polish"},{"$ref":"#/components/schemas/zones_prefetch_preload"},{"$ref":"#/components/schemas/zones_proxy_read_timeout"},{"$ref":"#/components/schemas/zones_pseudo_ipv4"},{"$ref":"#/components/schemas/zones_replace_insecure_js"},{"$ref":"#/components/schemas/zones_response_buffering"},{"$ref":"#/components/schemas/zones_rocket_loader"},{"$ref":"#/components/schemas/zones_schemas-automatic_platform_optimization"},{"$ref":"#/components/schemas/zones_security_header"},{"$ref":"#/components/schemas/zones_security_level"},{"$ref":"#/components/schemas/zones_server_side_exclude"},{"$ref":"#/components/schemas/zones_sha1_support"},{"$ref":"#/components/schemas/zones_sort_query_string_for_cache"},{"$ref":"#/components/schemas/zones_ssl"},{"$ref":"#/components/schemas/zones_ssl_recommender"},{"$ref":"#/components/schemas/zones_tls_1_2_only"},{"$ref":"#/components/schemas/zones_tls_1_3"},{"$ref":"#/components/schemas/zones_tls_client_auth"},{"$ref":"#/components/schemas/zones_true_client_ip_header"},{"$ref":"#/components/schemas/zones_waf"},{"$ref":"#/components/schemas/zones_webp"},{"$ref":"#/components/schemas/zones_websockets"}]},"type":"array"},"zones_name":{"description":"The domain name","example":"example.com","maxLength":253,"pattern":"^([a-zA-Z0-9][\\-a-zA-Z0-9]*\\.)+[\\-a-zA-Z0-9]{2,20}$","type":"string"},"zones_nel":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"Zone setting identifier.","enum":["nel"],"example":"nel"},"value":{"$ref":"#/components/schemas/zones_nel_value"}}}],"description":"Enable Network Error Logging reporting on your zone. (Beta) ","title":"Network Error Logging"},"zones_nel_value":{"default":{"enabled":false},"description":"Value of the zone setting.","properties":{"enabled":{"default":false,"example":false,"type":"boolean"}},"type":"object"},"zones_opportunistic_encryption":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["opportunistic_encryption"],"example":"opportunistic_encryption"},"value":{"$ref":"#/components/schemas/zones_opportunistic_encryption_value"}}}],"description":"Enables the Opportunistic Encryption feature for a zone.","title":"Enable Opportunistic Encryption for a zone"},"zones_opportunistic_encryption_value":{"default":"on","description":"Value of the zone setting.\nNotes: Default value depends on the zone's plan level.","enum":["on","off"],"type":"string"},"zones_opportunistic_onion":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["opportunistic_onion"],"example":"opportunistic_onion"},"value":{"$ref":"#/components/schemas/zones_opportunistic_onion_value"}}}],"default":"off","description":"Add an Alt-Svc header to all legitimate requests from Tor, allowing the connection to use our onion services instead of exit nodes.","title":"Zone Enable Onion Routing"},"zones_opportunistic_onion_value":{"default":"off","description":"Value of the zone setting.\nNotes: Default value depends on the zone's plan level.","enum":["on","off"],"type":"string"},"zones_orange_to_orange":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["orange_to_orange"],"example":"orange_to_orange"},"value":{"$ref":"#/components/schemas/zones_orange_to_orange_value"}}}],"description":"Orange to Orange (O2O) allows zones on Cloudflare to CNAME to other zones also on Cloudflare.","title":"Orange to Orange"},"zones_orange_to_orange_value":{"default":"on","description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_origin_error_page_pass_thru":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["origin_error_page_pass_thru"],"example":"origin_error_page_pass_thru"},"value":{"$ref":"#/components/schemas/zones_origin_error_page_pass_thru_value"}}}],"default":"off","description":"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.","title":"Error Pages On"},"zones_origin_error_page_pass_thru_value":{"default":"off","description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_page-rule":{"properties":{"actions":{"$ref":"#/components/schemas/zones_actions"},"created_on":{"$ref":"#/components/schemas/zones_created_on"},"id":{"$ref":"#/components/schemas/zones_schemas-identifier"},"modified_on":{"$ref":"#/components/schemas/zones_schemas-modified_on"},"priority":{"$ref":"#/components/schemas/zones_priority"},"status":{"$ref":"#/components/schemas/zones_status"},"targets":{"$ref":"#/components/schemas/zones_targets"}},"required":["id","targets","actions","priority","status","modified_on","created_on"],"type":"object"},"zones_pagerule_response_collection":{"allOf":[{"$ref":"#/components/schemas/zones_schemas-api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/zones_page-rule"},"type":"array"}}}]},"zones_pagerule_response_single":{"allOf":[{"$ref":"#/components/schemas/zones_api-response-single"},{"properties":{"result":{"type":"object"}}}]},"zones_pagerule_settings_response_collection":{"allOf":[{"$ref":"#/components/schemas/zones_schemas-api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/zones_settings"}}}]},"zones_paused":{"default":false,"description":"Indicates whether the zone is only using Cloudflare DNS services. A\ntrue value means the zone will not receive security or performance\nbenefits.\n","readOnly":true,"type":"boolean"},"zones_polish":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["polish"],"example":"polish"},"value":{"$ref":"#/components/schemas/zones_polish_value"}}}],"description":"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.","title":"Polish Image Optimization"},"zones_polish_value":{"default":"off","description":"Value of the zone setting.","enum":["off","lossless","lossy"],"type":"string"},"zones_prefetch_preload":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["prefetch_preload"],"example":"prefetch_preload"},"value":{"$ref":"#/components/schemas/zones_prefetch_preload_value"}}}],"default":"off","description":"Cloudflare will prefetch any URLs that are included in the response headers. This is limited to Enterprise Zones.","title":"Prefetch preload"},"zones_prefetch_preload_value":{"default":"off","description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_priority":{"default":1,"description":"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.","type":"integer"},"zones_proxy_read_timeout":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["proxy_read_timeout"],"example":"proxy_read_timeout"},"value":{"$ref":"#/components/schemas/zones_proxy_read_timeout_value"}}}],"description":"Maximum time between two read operations from origin.","title":"Proxy Read Timeout"},"zones_proxy_read_timeout_value":{"default":100,"description":"Value of the zone setting.\nNotes: Value must be between 1 and 6000","type":"number"},"zones_pseudo_ipv4":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"default":"pseudo_ipv4","description":"Value of the Pseudo IPv4 setting.","enum":["pseudo_ipv4"]},"value":{"$ref":"#/components/schemas/zones_pseudo_ipv4_value"}}}],"description":"The value set for the Pseudo IPv4 setting.","title":"Pseudo IPv4 Value"},"zones_pseudo_ipv4_value":{"default":"off","description":"Value of the Pseudo IPv4 setting.","enum":["off","add_header","overwrite_header"],"type":"string"},"zones_replace_insecure_js":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["replace_insecure_js"],"example":"replace_insecure_js"},"value":{"$ref":"#/components/schemas/zones_replace_insecure_js_value"}}}],"description":"Automatically replace insecure JavaScript libraries with safer and faster alternatives provided under cdnjs and powered by Cloudflare. Currently supports the following libraries: Polyfill under polyfill.io.\n","title":"Replace insecure JavaScript libraries"},"zones_replace_insecure_js_value":{"default":"off","description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_response_buffering":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["response_buffering"],"example":"response_buffering"},"value":{"$ref":"#/components/schemas/zones_response_buffering_value"}}}],"default":"off","description":"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.","title":"Response Buffering"},"zones_response_buffering_value":{"default":"off","description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"},"zones_rocket_loader":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["rocket_loader"],"example":"rocket_loader"},"value":{"$ref":"#/components/schemas/zones_rocket_loader_value"}}}],"description":"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.","title":"Rocket Loader"},"zones_rocket_loader_value":{"default":"off","description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_route":{"properties":{"modified_on":{"description":"The timestamp of when the override was last modified.","example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"name":{"description":"The type of route.","enum":["forward_url"],"example":"forward_url"},"value":{"properties":{"type":{"description":"The response type for the URL redirect.","enum":["temporary","permanent"],"example":"temporary"},"url":{"description":"The URL to redirect the request to.\nNotes: ${num} refers to the position of '*' in the constraint value.","example":"http://www.example.com/somewhere/$1/astring/$2/anotherstring/$3","type":"string"}}}},"type":"object"},"zones_schemas-api-response-common":{"properties":{"errors":{"$ref":"#/components/schemas/zones_messages"},"messages":{"$ref":"#/components/schemas/zones_messages"},"result":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"string"}]},"success":{"description":"Whether the API call was successful","enum":[true],"example":true,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"zones_schemas-api-response-common-failure":{"properties":{"errors":{"allOf":[{"$ref":"#/components/schemas/zones_messages"}],"example":[{"code":7003,"message":"No route for the URI"}],"minLength":1},"messages":{"allOf":[{"$ref":"#/components/schemas/zones_messages"}],"example":[]},"result":{"enum":[null],"nullable":true,"type":"object"},"success":{"description":"Whether the API call was successful","enum":[false],"example":false,"type":"boolean"}},"required":["success","errors","messages","result"],"type":"object"},"zones_schemas-api-response-single-id":{"allOf":[{"$ref":"#/components/schemas/zones_schemas-api-response-common"},{"properties":{"result":{"nullable":true,"properties":{"id":{"$ref":"#/components/schemas/zones_schemas-identifier"}},"required":["id"],"type":"object"}}}],"type":"object"},"zones_schemas-automatic_platform_optimization":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["automatic_platform_optimization"],"example":"automatic_platform_optimization"},"value":{"$ref":"#/components/schemas/zones_automatic_platform_optimization"}}}],"description":"[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.","title":"Automatic Platform Optimization for WordPress"},"zones_schemas-identifier":{"description":"Identifier","example":"023e105f4ecef8ad9ca31a8372d0c353","maxLength":32,"readOnly":true,"type":"string"},"zones_schemas-modified_on":{"description":"The timestamp of when the Page Rule was last modified.","example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"zones_security_header":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone's security header.","enum":["security_header"],"example":"security_header"},"value":{"$ref":"#/components/schemas/zones_security_header_value"}}}],"description":"Cloudflare security header for a zone.","title":"Security Header"},"zones_security_header_value":{"default":{"strict_transport_security":{"enabled":true,"include_subdomains":true,"max_age":86400,"nosniff":true,"preload":false}},"properties":{"strict_transport_security":{"description":"Strict Transport Security.","properties":{"enabled":{"description":"Whether or not strict transport security is enabled.","example":true,"type":"boolean"},"include_subdomains":{"description":"Include all subdomains for strict transport security.","example":true,"type":"boolean"},"max_age":{"description":"Max age in seconds of the strict transport security.","example":86400,"type":"number"},"nosniff":{"description":"Whether or not to include 'X-Content-Type-Options: nosniff' header.","example":true,"type":"boolean"},"preload":{"description":"Enable automatic preload of the HSTS configuration.","example":true,"type":"boolean"}},"type":"object"}},"type":"object"},"zones_security_level":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["security_level"],"example":"security_level"},"value":{"$ref":"#/components/schemas/zones_security_level_value"}}}],"description":"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).","title":"Security Level"},"zones_security_level_value":{"default":"medium","description":"Value of the zone setting.","enum":["off","essentially_off","low","medium","high","under_attack"],"type":"string"},"zones_server_side_exclude":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["server_side_exclude"],"example":"server_side_exclude"},"value":{"$ref":"#/components/schemas/zones_server_side_exclude_value"}}}],"description":"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: \u003c!--sse--\u003e\u003c!--/sse--\u003e. For example: \u003c!--sse--\u003e Bad visitors won't see my phone number, 555-555-5555 \u003c!--/sse--\u003e. 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).","title":"Server Side Exclude"},"zones_server_side_exclude_value":{"default":"on","description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_setting":{"oneOf":[{"$ref":"#/components/schemas/zones_0rtt"},{"$ref":"#/components/schemas/zones_advanced_ddos"},{"$ref":"#/components/schemas/zones_always_online"},{"$ref":"#/components/schemas/zones_always_use_https"},{"$ref":"#/components/schemas/zones_automatic_https_rewrites"},{"$ref":"#/components/schemas/zones_brotli"},{"$ref":"#/components/schemas/zones_browser_cache_ttl"},{"$ref":"#/components/schemas/zones_browser_check"},{"$ref":"#/components/schemas/zones_cache_level"},{"$ref":"#/components/schemas/zones_challenge_ttl"},{"$ref":"#/components/schemas/zones_ciphers"},{"$ref":"#/components/schemas/zones_cname_flattening"},{"$ref":"#/components/schemas/zones_development_mode"},{"$ref":"#/components/schemas/zones_early_hints"},{"$ref":"#/components/schemas/zones_edge_cache_ttl"},{"$ref":"#/components/schemas/zones_email_obfuscation"},{"$ref":"#/components/schemas/zones_h2_prioritization"},{"$ref":"#/components/schemas/zones_hotlink_protection"},{"$ref":"#/components/schemas/zones_http2"},{"$ref":"#/components/schemas/zones_http3"},{"$ref":"#/components/schemas/zones_image_resizing"},{"$ref":"#/components/schemas/zones_ip_geolocation"},{"$ref":"#/components/schemas/zones_ipv6"},{"$ref":"#/components/schemas/zones_max_upload"},{"$ref":"#/components/schemas/zones_min_tls_version"},{"$ref":"#/components/schemas/zones_mirage"},{"$ref":"#/components/schemas/zones_nel"},{"$ref":"#/components/schemas/zones_opportunistic_encryption"},{"$ref":"#/components/schemas/zones_opportunistic_onion"},{"$ref":"#/components/schemas/zones_orange_to_orange"},{"$ref":"#/components/schemas/zones_origin_error_page_pass_thru"},{"$ref":"#/components/schemas/zones_polish"},{"$ref":"#/components/schemas/zones_prefetch_preload"},{"$ref":"#/components/schemas/zones_proxy_read_timeout"},{"$ref":"#/components/schemas/zones_pseudo_ipv4"},{"$ref":"#/components/schemas/zones_replace_insecure_js"},{"$ref":"#/components/schemas/zones_response_buffering"},{"$ref":"#/components/schemas/zones_rocket_loader"},{"$ref":"#/components/schemas/zones_schemas-automatic_platform_optimization"},{"$ref":"#/components/schemas/zones_security_header"},{"$ref":"#/components/schemas/zones_security_level"},{"$ref":"#/components/schemas/zones_server_side_exclude"},{"$ref":"#/components/schemas/zones_sha1_support"},{"$ref":"#/components/schemas/zones_sort_query_string_for_cache"},{"$ref":"#/components/schemas/zones_ssl"},{"$ref":"#/components/schemas/zones_ssl_recommender"},{"$ref":"#/components/schemas/zones_tls_1_2_only"},{"$ref":"#/components/schemas/zones_tls_1_3"},{"$ref":"#/components/schemas/zones_tls_client_auth"},{"$ref":"#/components/schemas/zones_true_client_ip_header"},{"$ref":"#/components/schemas/zones_waf"},{"$ref":"#/components/schemas/zones_webp"},{"$ref":"#/components/schemas/zones_websockets"}],"type":"object"},"zones_setting_name":{"description":"Setting name","example":"always_online","type":"string"},"zones_setting_readonly":{"enum":[false],"type":"boolean"},"zones_setting_toggle":{"description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_setting_writable":{"enum":[true],"type":"boolean"},"zones_settings":{"description":"Settings available for the zone.","example":[{"id":"browser_check","properties":[{"name":"value","type":"toggle"}]},{"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"}]},{"id":"browser_check","properties":[{"name":"value","type":"toggle"}]},{"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"}]},{"id":"cache_deception_armor","properties":[{"name":"value","type":"toggle"}]},{"id":"cache_level","properties":[{"choices":["bypass","basic","simplified","aggressive","cache_everything"],"multiple":false,"name":"value","type":"select"}]},{"id":"cache_ttl_by_status","properties":[{"allowEmpty":false,"name":"value","type":"object"}]},{"id":"disable_apps","properties":[]},{"id":"disable_performance","properties":[]},{"id":"disable_security","properties":[]},{"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"}]},{"id":"email_obfuscation","properties":[{"name":"value","type":"toggle"}]},{"id":"forwarding_url","properties":[{"choices":[301,302],"multiple":false,"name":"status_code","type":"choice"},{"name":"url","type":"forwardingUrl"}]},{"id":"ip_geolocation","properties":[{"name":"value","type":"toggle"}]},{"id":"explicit_cache_control","properties":[{"name":"value","type":"toggle"}]},{"id":"rocket_loader","properties":[{"name":"value","type":"toggle"}]},{"id":"security_level","properties":[{"choices":["essentially_off","low","medium","high","under_attack"],"multiple":false,"name":"value","type":"select"}]},{"id":"server_side_exclude","properties":[{"name":"value","type":"toggle"}]},{"id":"ssl","properties":[{"choices":["off","flexible","full","strict"],"multiple":false,"name":"value","type":"choice"}]}],"items":{"type":"object"},"type":"array"},"zones_sha1_support":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"Zone setting identifier.","enum":["sha1_support"],"example":"sha1_support"},"value":{"$ref":"#/components/schemas/zones_sha1_support_value"}}}],"description":"Allow SHA1 support.","title":"Toggle SHA1 support"},"zones_sha1_support_value":{"default":"off","description":"Value of the zone setting.","enum":["off","on"],"type":"string"},"zones_sort_query_string_for_cache":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["sort_query_string_for_cache"],"example":"sort_query_string_for_cache"},"value":{"$ref":"#/components/schemas/zones_sort_query_string_for_cache_value"}}}],"default":"off","description":"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.","title":"Get String Sort"},"zones_sort_query_string_for_cache_value":{"default":"off","description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_ssl":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["ssl"],"example":"ssl"},"value":{"$ref":"#/components/schemas/zones_ssl_value"}}}],"description":"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).","title":"SSL"},"zones_ssl_recommender":{"allOf":[{"properties":{"enabled":{"$ref":"#/components/schemas/zones_ssl_recommender_enabled"},"id":{"description":"Enrollment value for SSL/TLS Recommender.","enum":["ssl_recommender"],"example":"ssl_recommender"}}}],"description":"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.","title":"SSL/TLS Recommender"},"zones_ssl_recommender_enabled":{"default":false,"description":"ssl-recommender enrollment setting.","type":"boolean"},"zones_ssl_value":{"default":"off","description":"Value of the zone setting.\nNotes: Depends on the zone's plan level","enum":["off","flexible","full","strict"],"type":"string"},"zones_status":{"default":"disabled","description":"The status of the Page Rule.","enum":["active","disabled"],"example":"active","type":"string"},"zones_string_constraint":{"description":"String constraint.","properties":{"operator":{"default":"contains","description":"The matches operator can use asterisks and pipes as wildcard and 'or' operators.","enum":["matches","contains","equals","not_equal","not_contain"]},"value":{"description":"The value to apply the operator to.","type":"string"}},"required":["operator","value"],"type":"object"},"zones_target":{"description":"A request condition target.","oneOf":[{"$ref":"#/components/schemas/zones_url_target"}],"required":["target","constraint"]},"zones_targets":{"description":"The rule targets to evaluate on each request.","example":[{"constraint":{"operator":"matches","value":"*example.com/images/*"},"target":"url"}],"items":{"$ref":"#/components/schemas/zones_target"},"type":"array"},"zones_tls_1_2_only":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"Zone setting identifier.","enum":["tls_1_2_only"],"example":"tls_1_2_only"},"value":{"$ref":"#/components/schemas/zones_tls_1_2_only_value"}}}],"description":"Only allows TLS1.2.","title":"TLS1.2 only"},"zones_tls_1_2_only_value":{"default":"off","description":"Value of the zone setting.","enum":["off","on"],"type":"string"},"zones_tls_1_3":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["tls_1_3"],"example":"tls_1_3"},"value":{"$ref":"#/components/schemas/zones_tls_1_3_value"}}}],"default":"off","description":"Enables Crypto TLS 1.3 feature for a zone.","title":"Enable TLS 1.3 value for a zone"},"zones_tls_1_3_value":{"default":"off","description":"Value of the zone setting.\nNotes: Default value depends on the zone's plan level.","enum":["on","off","zrt"],"type":"string"},"zones_tls_client_auth":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["tls_client_auth"],"example":"tls_client_auth"},"value":{"$ref":"#/components/schemas/zones_tls_client_auth_value"}}}],"description":"TLS Client Auth requires Cloudflare to connect to your origin server using a client certificate (Enterprise Only).","title":"TLS Client Authentication"},"zones_tls_client_auth_value":{"default":"on","description":"value of the zone setting.","enum":["on","off"],"type":"string"},"zones_true_client_ip_header":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["true_client_ip_header"],"example":"true_client_ip_header"},"value":{"$ref":"#/components/schemas/zones_true_client_ip_header_value"}}}],"default":"off","description":"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.","title":"True Client IP Header"},"zones_true_client_ip_header_value":{"default":"off","description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_type":{"default":"full","description":"A full zone implies that DNS is hosted with Cloudflare. A partial zone is\ntypically a partner-hosted zone or a CNAME setup.\n","enum":["full","partial","secondary"],"example":"full","type":"string"},"zones_url_target":{"description":"URL target.","properties":{"constraint":{"allOf":[{"$ref":"#/components/schemas/zones_string_constraint"},{"properties":{"value":{"description":"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]+)?$","type":"string"}}}],"description":"The constraint of a target.","type":"object"},"target":{"description":"A target based on the URL of the request.","enum":["url"],"example":"url"}},"type":"object"},"zones_vanity_name_servers":{"description":"An array of domains used for custom name servers. This is only\navailable for Business and Enterprise plans.","example":["ns1.example.com","ns2.example.com"],"items":{"format":"hostname","maxLength":253,"type":"string"},"type":"array"},"zones_waf":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["waf"],"example":"waf"},"value":{"$ref":"#/components/schemas/zones_waf_value"}}}],"description":"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).","title":"Web Application Firewall"},"zones_waf_value":{"default":"off","description":"Value of the zone setting.","enum":["on","off"],"type":"string"},"zones_webp":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["webp"],"example":"webp"},"value":{"$ref":"#/components/schemas/zones_webp_value"}}}],"description":"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.","title":"Polish WebP Conversion"},"zones_webp_value":{"default":"off","description":"Value of the zone setting.","enum":["off","on"],"type":"string"},"zones_websockets":{"allOf":[{"$ref":"#/components/schemas/zones_base"},{"properties":{"id":{"description":"ID of the zone setting.","enum":["websockets"],"example":"websockets"},"value":{"$ref":"#/components/schemas/zones_websockets_value"}}}],"description":"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-).","title":"WebSockets"},"zones_websockets_value":{"default":"off","description":"Value of the zone setting.","enum":["off","on"],"type":"string"},"zones_zone":{"properties":{"account":{"description":"The account the zone belongs to","properties":{"id":{"$ref":"#/components/schemas/zones_identifier"},"name":{"description":"The name of the account","example":"Example Account Name","type":"string"}},"type":"object"},"activated_on":{"description":"The last time proof of ownership was detected and the zone was made\nactive","example":"2014-01-02T00:01:00.12345Z","format":"date-time","nullable":true,"readOnly":true,"type":"string"},"created_on":{"description":"When the zone was created","example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"development_mode":{"description":"The interval (in seconds) from when development mode expires\n(positive integer) or last expired (negative integer) for the\ndomain. If development mode has never been enabled, this value is 0.","example":7200,"readOnly":true,"type":"number"},"id":{"$ref":"#/components/schemas/zones_identifier"},"meta":{"description":"Metadata about the zone","properties":{"cdn_only":{"description":"The zone is only configured for CDN","example":true,"type":"boolean"},"custom_certificate_quota":{"description":"Number of Custom Certificates the zone can have","example":1,"type":"integer"},"dns_only":{"description":"The zone is only configured for DNS","example":true,"type":"boolean"},"foundation_dns":{"description":"The zone is setup with Foundation DNS","example":true,"type":"boolean"},"page_rule_quota":{"description":"Number of Page Rules a zone can have","example":100,"type":"integer"},"phishing_detected":{"description":"The zone has been flagged for phishing","example":false,"type":"boolean"},"step":{"example":2,"type":"integer"}},"type":"object"},"modified_on":{"description":"When the zone was last modified","example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"},"name":{"description":"The domain name","example":"example.com","maxLength":253,"pattern":"^([a-zA-Z0-9][\\-a-zA-Z0-9]*\\.)+[\\-a-zA-Z0-9]{2,20}$","type":"string"},"name_servers":{"description":"The name servers Cloudflare assigns to a zone","example":["bob.ns.cloudflare.com","lola.ns.cloudflare.com"],"items":{"format":"hostname","type":"string"},"readOnly":true,"type":"array"},"original_dnshost":{"description":"DNS host at the time of switching to Cloudflare","example":"NameCheap","maxLength":50,"nullable":true,"readOnly":true,"type":"string"},"original_name_servers":{"description":"Original name servers before moving to Cloudflare","example":["ns1.originaldnshost.com","ns2.originaldnshost.com"],"items":{"format":"hostname","type":"string"},"nullable":true,"readOnly":true,"type":"array"},"original_registrar":{"description":"Registrar for the domain at the time of switching to Cloudflare","example":"GoDaddy","nullable":true,"readOnly":true,"type":"string"},"owner":{"description":"The owner of the zone","properties":{"id":{"$ref":"#/components/schemas/zones_identifier"},"name":{"description":"Name of the owner","example":"Example Org","type":"string"},"type":{"description":"The type of owner","example":"organization","type":"string"}},"type":"object"},"paused":{"$ref":"#/components/schemas/zones_paused"},"status":{"description":"The zone status on Cloudflare.","enum":["initializing","pending","active","moved"],"example":"active","readOnly":true,"type":"string"},"type":{"$ref":"#/components/schemas/zones_type"},"vanity_name_servers":{"description":"An array of domains used for custom name servers. This is only available for Business and Enterprise plans.","example":["ns1.example.com","ns2.example.com"],"items":{"format":"hostname","maxLength":253,"type":"string"},"type":"array"}},"required":["id","name","development_mode","owner","account","meta","name_servers","original_name_servers","original_registrar","original_dnshost","created_on","modified_on","activated_on"],"type":"object"},"zones_zone_settings_response_collection":{"allOf":[{"$ref":"#/components/schemas/zones_api-response-common"},{"properties":{"result":{"items":{"anyOf":[{"$ref":"#/components/schemas/zones_0rtt"},{"$ref":"#/components/schemas/zones_advanced_ddos"},{"$ref":"#/components/schemas/zones_always_online"},{"$ref":"#/components/schemas/zones_always_use_https"},{"$ref":"#/components/schemas/zones_automatic_https_rewrites"},{"$ref":"#/components/schemas/zones_brotli"},{"$ref":"#/components/schemas/zones_browser_cache_ttl"},{"$ref":"#/components/schemas/zones_browser_check"},{"$ref":"#/components/schemas/zones_cache_level"},{"$ref":"#/components/schemas/zones_challenge_ttl"},{"$ref":"#/components/schemas/zones_ciphers"},{"$ref":"#/components/schemas/zones_cname_flattening"},{"$ref":"#/components/schemas/zones_development_mode"},{"$ref":"#/components/schemas/zones_early_hints"},{"$ref":"#/components/schemas/zones_edge_cache_ttl"},{"$ref":"#/components/schemas/zones_email_obfuscation"},{"$ref":"#/components/schemas/zones_h2_prioritization"},{"$ref":"#/components/schemas/zones_hotlink_protection"},{"$ref":"#/components/schemas/zones_http2"},{"$ref":"#/components/schemas/zones_http3"},{"$ref":"#/components/schemas/zones_image_resizing"},{"$ref":"#/components/schemas/zones_ip_geolocation"},{"$ref":"#/components/schemas/zones_ipv6"},{"$ref":"#/components/schemas/zones_max_upload"},{"$ref":"#/components/schemas/zones_min_tls_version"},{"$ref":"#/components/schemas/zones_mirage"},{"$ref":"#/components/schemas/zones_nel"},{"$ref":"#/components/schemas/zones_opportunistic_encryption"},{"$ref":"#/components/schemas/zones_opportunistic_onion"},{"$ref":"#/components/schemas/zones_orange_to_orange"},{"$ref":"#/components/schemas/zones_origin_error_page_pass_thru"},{"$ref":"#/components/schemas/zones_polish"},{"$ref":"#/components/schemas/zones_prefetch_preload"},{"$ref":"#/components/schemas/zones_proxy_read_timeout"},{"$ref":"#/components/schemas/zones_pseudo_ipv4"},{"$ref":"#/components/schemas/zones_replace_insecure_js"},{"$ref":"#/components/schemas/zones_response_buffering"},{"$ref":"#/components/schemas/zones_rocket_loader"},{"$ref":"#/components/schemas/zones_schemas-automatic_platform_optimization"},{"$ref":"#/components/schemas/zones_security_header"},{"$ref":"#/components/schemas/zones_security_level"},{"$ref":"#/components/schemas/zones_server_side_exclude"},{"$ref":"#/components/schemas/zones_sha1_support"},{"$ref":"#/components/schemas/zones_sort_query_string_for_cache"},{"$ref":"#/components/schemas/zones_ssl"},{"$ref":"#/components/schemas/zones_ssl_recommender"},{"$ref":"#/components/schemas/zones_tls_1_2_only"},{"$ref":"#/components/schemas/zones_tls_1_3"},{"$ref":"#/components/schemas/zones_tls_client_auth"},{"$ref":"#/components/schemas/zones_true_client_ip_header"},{"$ref":"#/components/schemas/zones_waf"},{"$ref":"#/components/schemas/zones_webp"},{"$ref":"#/components/schemas/zones_websockets"}]},"type":"array"}}}]}},"securitySchemes":{"api_email":{"in":"header","name":"X-Auth-Email","type":"apiKey"},"api_key":{"in":"header","name":"X-Auth-Key","type":"apiKey"},"api_token":{"scheme":"bearer","type":"http"},"user_service_key":{"in":"header","name":"X-Auth-User-Service-Key","type":"apiKey"}}},"info":{"description":"Welcome to Cloudflare's API documentation site. We are experimenting with an updated version of our API documentation - check out [developers.cloudflare.com/api-next/](https://developers.cloudflare.com/api-next/) to test out the new experience.\n\nTo get started using Cloudflare's products and services via the API, refer to [how to interact with Cloudflare](https://developers.cloudflare.com/fundamentals/basic-tasks/interact-with-cloudflare/), which covers using tools like [Terraform](https://developers.cloudflare.com/terraform/#cloudflare-terraform) and the [official SDKs](https://developers.cloudflare.com/fundamentals/api/reference/sdks/) to maintain your Cloudflare resources.\n\nUsing the Cloudflare API requires authentication so that Cloudflare knows who is making requests and what permissions you have. Create an API token to grant access to the API to perform actions. You can also authenticate with [API keys](https://developers.cloudflare.com/fundamentals/api/get-started/keys/), but these keys have [several limitations](https://developers.cloudflare.com/fundamentals/api/get-started/keys/#limitations) that make them less secure than API tokens. Whenever possible, use API tokens to interact with the Cloudflare API.\n\nTo create an API token, from the Cloudflare dashboard, go to My Profile \u003e API Tokens and select Create Token. For more information on how to create and troubleshoot API tokens, refer to\nour [API fundamentals](https://developers.cloudflare.com/fundamentals/api/).\n\nTotally new to Cloudflare? [Start here](https://developers.cloudflare.com/fundamentals/get-started/).","license":{"name":"BSD-3-Clause","url":"https://opensource.org/licenses/BSD-3-Clause"},"title":"Cloudflare API","version":"4.0.0"},"openapi":"3.0.3","paths":{"/accounts":{"get":{"description":"List all accounts you have ownership or verified access to.","operationId":"accounts-list-accounts","parameters":[{"in":"query","name":"name","schema":{"description":"Name of the account.","example":"example.com","readOnly":true,"type":"string"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":20,"description":"Maximum number of results per page.","maximum":50,"minimum":5,"type":"number"}},{"in":"query","name":"direction","schema":{"description":"Direction to order results.","enum":["asc","desc"],"example":"desc","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_response_collection_accounts"}}},"description":"List Accounts response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"List Accounts response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Accounts","tags":["Accounts"],"x-cfPermissionsRequired":{"enum":["#organization:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Create an account (only available for tenant admins at this time)","operationId":"account-creation","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_create-account"}}},"description":"Parameters for account creation","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_response_single_account"}}},"description":"Account Creation Success Response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Account Creation Failure Response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create an account","tags":["Accounts"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":false,"free":false,"pro":false}}},"/accounts/{accountId}/urlscanner/response/{responseId}":{"get":{"description":"Returns the plain response of the network request.","operationId":"urlscanner-get-response-text","parameters":[{"description":"Response hash.","in":"path","name":"responseId","required":true,"schema":{"description":"Response hash.","type":"string"}},{"description":"Account Id.","in":"path","name":"accountId","required":true,"schema":{"description":"Account Id.","type":"string"}}],"responses":{"200":{"content":{"text/plain or image":{"schema":{"description":"Web resource text/image.","type":"string"}}},"description":"When `har.log.entries[].response._cf.contentAvailable` is `true`, use `response._cf.hash` value to fetch the raw response."},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"example":"Scan ID is not a valid uuid.","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"messages":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"success":{"description":"Whether request was successful or not","type":"boolean"}},"required":["messages","errors","success"],"type":"object"}}},"description":"Invalid params."},"404":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"example":"Scan not found.","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"messages":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"success":{"description":"Whether request was successful or not","type":"boolean"}},"required":["messages","errors","success"],"type":"object"}}},"description":"Scan not found."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get raw response","tags":["URL Scanner"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.url-scanner.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{accountId}/urlscanner/scan":{"get":{"description":"Search scans by date and webpages' requests, including full URL (after redirects), hostname, and path. \u003cbr/\u003e A successful scan will appear in search results a few minutes after finishing but may take much longer if the system in under load. By default, only successfully completed scans will appear in search results, unless searching by `scanId`. Please take into account that older scans may be removed from the search index at an unspecified time.","operationId":"urlscanner-search-scans","parameters":[{"description":"Account Id.","in":"path","name":"accountId","required":true,"schema":{"description":"Account Id.","type":"string"}},{"description":"Scan uuid","in":"query","name":"scanId","schema":{"description":"Scan uuid","format":"uuid","type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":100,"type":"integer"}},{"description":"Pagination cursor to get the next set of results.","in":"query","name":"next_cursor","schema":{"description":"Pagination cursor to get the next set of results.","type":"string"}},{"description":"Filter scans requested after date (inclusive).","in":"query","name":"date_start","schema":{"description":"Filter scans requested after date (inclusive).","format":"date-time","type":"string"}},{"description":"Filter scans requested before date (inclusive).","in":"query","name":"date_end","schema":{"description":"Filter scans requested before date (inclusive).","format":"date-time","type":"string"}},{"description":"Filter scans by URL of _any_ request made by the webpage","in":"query","name":"url","schema":{"description":"Filter scans by URL of _any_ request made by the webpage","example":"https://example.com/?hello","type":"string"}},{"description":"Filter scans by hostname of _any_ request made by the webpage.","in":"query","name":"hostname","schema":{"description":"Filter scans by hostname of _any_ request made by the webpage.","example":"example.com","type":"string"}},{"description":"Filter scans by url path of _any_ request made by the webpage.","in":"query","name":"path","schema":{"description":"Filter scans by url path of _any_ request made by the webpage.","example":"/samples/subresource-integrity/","type":"string"}},{"description":"Filter scans by IP address (IPv4 or IPv6) of _any_ request made by the webpage.","in":"query","name":"ip","schema":{"description":"Filter scans by IP address (IPv4 or IPv6) of _any_ request made by the webpage.","example":"1.1.1.1","type":"string"}},{"description":"Filter scans by Autonomous System Number (ASN) of _any_ request made by the webpage.","in":"query","name":"asn","schema":{"description":"Filter scans by Autonomous System Number (ASN) of _any_ request made by the webpage.","example":"13335","type":"string"}},{"description":"Filter scans by hash of any html/js/css request made by the webpage.","in":"query","name":"hash","schema":{"description":"Filter scans by hash of any html/js/css request made by the webpage.","type":"string"}},{"description":"Filter scans by submitted or scanned URL","in":"query","name":"page_url","schema":{"description":"Filter scans by submitted or scanned URL","type":"string"}},{"description":"Filter scans by main page hostname (domain of effective URL).","in":"query","name":"page_hostname","schema":{"description":"Filter scans by main page hostname (domain of effective URL).","type":"string"}},{"description":"Filter scans by exact match of effective URL path (also supports suffix search).","in":"query","name":"page_path","schema":{"description":"Filter scans by exact match of effective URL path (also supports suffix search).","type":"string"}},{"description":"Filter scans by main page Autonomous System Number (ASN).","in":"query","name":"page_asn","schema":{"description":"Filter scans by main page Autonomous System Number (ASN).","type":"string"}},{"description":"Filter scans by main page IP address (IPv4 or IPv6).","in":"query","name":"page_ip","schema":{"description":"Filter scans by main page IP address (IPv4 or IPv6).","type":"string"}},{"description":"Return only scans created by account.","in":"query","name":"account_scans","schema":{"description":"Return only scans created by account.","type":"boolean"}},{"description":"Filter scans by malicious verdict.","in":"query","name":"is_malicious","schema":{"description":"Filter scans by malicious verdict.","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"example":"Error","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"messages":{"items":{"properties":{"message":{"example":"OK","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"properties":{"tasks":{"items":{"properties":{"country":{"description":"Alpha-2 country code","type":"string"},"success":{"description":"Whether scan was successful or not","type":"boolean"},"time":{"description":"When scan was submitted (UTC)","format":"date-time","type":"string"},"url":{"description":"Scan url (after redirects)","example":"https://www.example.com/","type":"string"},"uuid":{"description":"Scan id","format":"uuid","type":"string"},"visibility":{"description":"Visibility status.","example":"public","type":"string"}},"required":["uuid","url","success","time","country","visibility"],"type":"object"},"type":"array"}},"required":["tasks"],"type":"object"},"success":{"description":"Whether search request was successful or not","type":"boolean"}},"required":["messages","errors","success","result"],"type":"object"}}},"description":"Search results"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"example":"Scan ID is not a valid uuid.","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"messages":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"success":{"description":"Whether request was successful or not","type":"boolean"}},"required":["messages","errors","success"],"type":"object"}}},"description":"Invalid params."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Search URL scans","tags":["URL Scanner"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.url-scanner.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Submit a URL to scan. You can also set some options, like the visibility level and custom headers. Check limits at https://developers.cloudflare.com/security-center/investigate/scan-limits/.","operationId":"urlscanner-create-scan","parameters":[{"description":"Account Id.","in":"path","name":"accountId","required":true,"schema":{"description":"Account Id.","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"customHeaders":{"additionalProperties":{"type":"string"},"description":"Set custom headers.","type":"object"},"screenshotsResolutions":{"default":["desktop"],"description":"Take multiple screenshots targeting different device types.","items":{"default":"desktop","description":"Device resolutions.","enum":["desktop","mobile","tablet"],"type":"string"},"type":"array"},"url":{"example":"https://www.example.com","type":"string"},"visibility":{"default":"Public","description":"The option `Public` means it will be included in listings like recent scans and search results. `Unlisted` means it will not be included in the aforementioned listings, users will need to have the scan's ID to access it. A a scan will be automatically marked as unlisted if it fails, if it contains potential PII or other sensitive material.","enum":["Public","Unlisted"],"type":"string"}},"required":["url"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"example":"Submission unsuccessful","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"messages":{"items":{"properties":{"message":{"example":"Submission successful","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"properties":{"time":{"description":"Time when url was submitted for scanning.","format":"date-time","type":"string"},"url":{"description":"Canonical form of submitted URL. Use this if you want to later search by URL.","type":"string"},"uuid":{"description":"Scan ID.","format":"uuid","type":"string"},"visibility":{"description":"Submitted visibility status.","example":"Public","type":"string"}},"required":["visibility","uuid","url","time"],"type":"object"},"success":{"type":"boolean"}},"required":["messages","errors","success","result"],"type":"object"}}},"description":"Scan request accepted successfully."},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"example":"Scan ID is not a valid uuid.","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"messages":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"success":{"description":"Whether request was successful or not","type":"boolean"}},"required":["messages","errors","success"],"type":"object"}}},"description":"Invalid params."},"409":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"example":"Submission unsuccessful","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"messages":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"properties":{"tasks":{"items":{"properties":{"clientLocation":{"description":"Submitter location","example":"PT","type":"string"},"clientType":{"enum":["Site","Automatic","Api"],"type":"string"},"effectiveUrl":{"description":"URL of the primary request, after all HTTP redirects","example":"http://example.com/","type":"string"},"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"scannedFrom":{"properties":{"colo":{"description":"IATA code of Cloudflare datacenter","example":"MAD","type":"string"}},"required":["colo"],"type":"object"},"status":{"enum":["Queued","InProgress","InPostProcessing","Finished"],"type":"string"},"success":{"example":true,"type":"boolean"},"time":{"example":"2023-05-03T17:05:04.843Z","type":"string"},"timeEnd":{"example":"2023-05-03T17:05:19.374Z","type":"string"},"url":{"description":"Submitted URL","example":"http://example.com","type":"string"},"uuid":{"description":"Scan ID","example":"2ee568d0-bf70-4827-b922-b7088c0f056f","type":"string"},"visibility":{"enum":["Public","Unlisted"],"type":"string"}},"required":["uuid","url","status","success","errors","time","timeEnd","visibility","clientLocation","clientType","effectiveUrl","scannedFrom"],"type":"object"},"type":"array"}},"required":["tasks"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["messages","errors","success","result"],"type":"object"}}},"description":"Scan request denied: hostname was recently scanned."},"429":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"example":"Submission unsuccessful","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"messages":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"success":{"example":true,"type":"boolean"}},"required":["messages","errors","success"],"type":"object"}}},"description":"Scan request denied: rate limited."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create URL Scan","tags":["URL Scanner"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.url-scanner.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{accountId}/urlscanner/scan/{scanId}":{"get":{"description":"Get URL scan by uuid","operationId":"urlscanner-get-scan","parameters":[{"description":"Scan uuid.","in":"path","name":"scanId","required":true,"schema":{"description":"Scan uuid.","format":"uuid","type":"string"}},{"description":"Account Id.","in":"path","name":"accountId","required":true,"schema":{"description":"Account Id.","type":"string"}},{"description":"Whether to return full report (scan summary and network log).","in":"query","name":"full","schema":{"description":"Whether to return full report (scan summary and network log).","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"example":"Error","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"messages":{"items":{"properties":{"message":{"example":"OK","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"properties":{"scan":{"properties":{"asns":{"description":"Dictionary of Autonomous System Numbers where ASN's are the keys","properties":{"asn":{"description":"ASN's contacted","properties":{"asn":{"example":"15133","type":"string"},"description":{"example":"EDGECAST","type":"string"},"location_alpha2":{"example":"US","type":"string"},"name":{"example":"EDGECAST","type":"string"},"org_name":{"example":"Edgecast Inc.","type":"string"}},"required":["asn","name","description","org_name","location_alpha2"],"type":"object"}},"type":"object"},"certificates":{"items":{"properties":{"issuer":{"type":"string"},"subjectName":{"example":"rkmod.somee.com","type":"string"},"validFrom":{"example":1682684400,"type":"number"},"validTo":{"example":1696698000,"type":"number"}},"required":["issuer","subjectName","validFrom","validTo"],"type":"object"},"type":"array"},"domains":{"properties":{"example.com":{"properties":{"categories":{"properties":{"content":{"items":{"properties":{"id":{"type":"integer"},"name":{"example":"Technology","type":"string"},"super_category_id":{"type":"integer"}},"required":["id","name"],"type":"object"},"type":"array"},"inherited":{"properties":{"content":{"items":{"properties":{"id":{"type":"integer"},"name":{"example":"Technology","type":"string"},"super_category_id":{"type":"integer"}},"required":["id","name"],"type":"object"},"type":"array"},"from":{"example":"example.com","type":"string"},"risks":{"items":{"properties":{"id":{"type":"integer"},"name":{"example":"Technology","type":"string"},"super_category_id":{"type":"integer"}},"required":["id","name"],"type":"object"},"type":"array"}},"type":"object"},"risks":{"items":{"properties":{"id":{"type":"integer"},"name":{"example":"Technology","type":"string"},"super_category_id":{"type":"integer"}},"required":["id","name"],"type":"object"},"type":"array"}},"required":["inherited"],"type":"object"},"dns":{"items":{"properties":{"address":{"example":"93.184.216.34","type":"string"},"dnssec_valid":{"type":"boolean"},"name":{"example":"example.com","type":"string"},"type":{"example":"A","type":"string"}},"required":["name","address","type","dnssec_valid"],"type":"object"},"type":"array"},"name":{"example":"example.com","type":"string"},"rank":{"properties":{"bucket":{"example":"500","type":"string"},"name":{"example":"example.com","type":"string"},"rank":{"description":"Rank in the Global Radar Rank, if set. See more at https://blog.cloudflare.com/radar-domain-rankings/","type":"integer"}},"required":["name","bucket"],"type":"object"},"type":{"example":"Apex domain","type":"string"}},"required":["name","type","categories","dns","rank"],"type":"object"}},"type":"object"},"geo":{"properties":{"continents":{"description":"GeoIP continent location","items":{"description":"GeoIP continent location","example":"North America","type":"string"},"type":"array"},"locations":{"description":"GeoIP country location","items":{"description":"GeoIP country location","example":"US","type":"string"},"type":"array"}},"required":["locations","continents"],"type":"object"},"ips":{"properties":{"ip":{"properties":{"asn":{"example":"15133","type":"string"},"asnDescription":{"example":"EDGECAST","type":"string"},"asnLocationAlpha2":{"example":"US","type":"string"},"asnName":{"example":"EDGECAST","type":"string"},"asnOrgName":{"example":"Edgecast Inc.","type":"string"},"continent":{"example":"North America","type":"string"},"geonameId":{"example":"6252001","type":"string"},"ip":{"example":"2606:2800:220:1:248:1893:25c8:1946","type":"string"},"ipVersion":{"example":"IPv6","type":"string"},"latitude":{"example":"39.76","type":"string"},"locationAlpha2":{"example":"US","type":"string"},"locationName":{"example":"United States","type":"string"},"longitude":{"example":"-98.5","type":"string"},"subdivision1Name":{"type":"string"},"subdivision2Name":{"type":"string"}},"required":["ip","ipVersion","locationAlpha2","locationName","subdivision1Name","subdivision2Name","latitude","longitude","continent","geonameId","asn","asnName","asnOrgName","asnDescription","asnLocationAlpha2"],"type":"object"}},"type":"object"},"links":{"properties":{"link":{"properties":{"href":{"description":"Outgoing link detected in the DOM","example":"https://www.iana.org/domains/example","type":"string"},"text":{"example":"More information...","type":"string"}},"required":["href","text"],"type":"object"}},"type":"object"},"meta":{"properties":{"processors":{"properties":{"categories":{"properties":{"content":{"items":{"properties":{"id":{"example":155,"type":"integer"},"name":{"example":"Technology","type":"string"},"super_category_id":{"type":"integer"}},"required":["id","name"],"type":"object"},"type":"array"},"risks":{"items":{"properties":{"id":{"example":17,"type":"integer"},"name":{"example":"Newly Seen Domains","type":"string"},"super_category_id":{"example":32,"type":"integer"}},"required":["id","super_category_id","name"],"type":"object"},"type":"array"}},"required":["content","risks"],"type":"object"},"phishing":{"items":{"example":"CredentialHarvester","type":"string"},"type":"array"},"rank":{"properties":{"bucket":{"example":"500","type":"string"},"name":{"example":"example.com","type":"string"},"rank":{"description":"Rank in the Global Radar Rank, if set. See more at https://blog.cloudflare.com/radar-domain-rankings/","type":"integer"}},"required":["name","bucket"],"type":"object"},"tech":{"items":{"properties":{"categories":{"items":{"properties":{"groups":{"items":{"type":"integer"},"type":"array"},"id":{"example":63,"type":"integer"},"name":{"example":"IAAS","type":"string"},"priority":{"example":8,"type":"integer"},"slug":{"example":"iaas","type":"string"}},"required":["id","slug","groups","name","priority"],"type":"object"},"type":"array"},"confidence":{"example":100,"type":"integer"},"description":{"type":"string"},"evidence":{"properties":{"impliedBy":{"items":{"type":"string"},"type":"array"},"patterns":{"items":{"properties":{"confidence":{"example":100,"type":"integer"},"excludes":{"items":{"type":"string"},"type":"array"},"implies":{"items":{"type":"string"},"type":"array"},"match":{"example":"ECS","type":"string"},"name":{"description":"Header or Cookie name when set","example":"server","type":"string"},"regex":{"example":"^ECS","type":"string"},"type":{"example":"headers","type":"string"},"value":{"example":"ECS (dcb/7EEE)","type":"string"},"version":{"type":"string"}},"required":["type","regex","value","match","name","confidence","version","implies","excludes"],"type":"object"},"type":"array"}},"required":["patterns","impliedBy"],"type":"object"},"icon":{"example":"Amazon ECS.svg","type":"string"},"name":{"example":"Amazon ECS","type":"string"},"slug":{"example":"amazon-ecs","type":"string"},"website":{"example":"https://aws.amazon.com/ecs/","type":"string"}},"required":["name","slug","categories","confidence","icon","website","evidence"],"type":"object"},"type":"array"}},"required":["tech","categories","rank","phishing"],"type":"object"}},"required":["processors"],"type":"object"},"page":{"properties":{"asn":{"example":"15133","type":"string"},"asnLocationAlpha2":{"example":"US","type":"string"},"asnname":{"example":"EDGECAST","type":"string"},"console":{"items":{"properties":{"category":{"example":"network","type":"string"},"text":{"example":"Failed to load resource: the server responded with a status of 404 (Not Found)","type":"string"},"type":{"example":"error","type":"string"},"url":{"example":"http://example.com/favicon.ico","type":"string"}},"required":["type","text","category"],"type":"object"},"type":"array"},"cookies":{"items":{"properties":{"domain":{"example":"rkmod.somee.com","type":"string"},"expires":{"example":-1,"type":"number"},"httpOnly":{"type":"boolean"},"name":{"example":"b","type":"string"},"path":{"example":"/","type":"string"},"priority":{"example":"Medium","type":"string"},"sameParty":{"type":"boolean"},"secure":{"type":"boolean"},"session":{"example":true,"type":"boolean"},"size":{"example":2,"type":"number"},"sourcePort":{"example":443,"type":"number"},"sourceScheme":{"example":"Secure","type":"string"},"value":{"example":"b","type":"string"}},"required":["name","value","domain","path","expires","size","httpOnly","secure","session","sameParty","sourceScheme","sourcePort"],"type":"object"},"type":"array"},"country":{"example":"United States","type":"string"},"countryLocationAlpha2":{"example":"US","type":"string"},"domain":{"example":"example.com","type":"string"},"headers":{"items":{"properties":{"name":{"example":"Content-Length","type":"string"},"value":{"example":"648","type":"string"}},"required":["name","value"],"type":"object"},"type":"array"},"ip":{"example":"2606:2800:220:1:248:1893:25c8:1946","type":"string"},"js":{"properties":{"variables":{"items":{"properties":{"name":{"example":"checkFrame","type":"string"},"type":{"example":"string","type":"string"}},"required":["name","type"],"type":"object"},"type":"array"}},"required":["variables"],"type":"object"},"securityViolations":{"items":{"properties":{"category":{"example":"csp","type":"string"},"text":{"example":"[Report Only] Refused to load the stylesheet 'https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css' because it violates the following Content Security Policy directive: ... ","type":"string"},"url":{"example":"http://example.com/","type":"string"}},"required":["text","category","url"],"type":"object"},"type":"array"},"status":{"example":200,"type":"number"},"subdivision1Name":{"type":"string"},"subdivision2name":{"type":"string"},"url":{"example":"http://example.com/","type":"string"}},"required":["url","domain","country","countryLocationAlpha2","subdivision1Name","subdivision2name","ip","asn","asnname","asnLocationAlpha2","cookies","headers","status","js","console","securityViolations"],"type":"object"},"performance":{"items":{"properties":{"connectEnd":{"example":82.59999999403954,"type":"number"},"connectStart":{"example":72.79999999701977,"type":"number"},"decodedBodySize":{"example":1256,"type":"number"},"domComplete":{"example":306,"type":"number"},"domContentLoadedEventEnd":{"example":305.8999999910593,"type":"number"},"domContentLoadedEventStart":{"example":305.8999999910593,"type":"number"},"domInteractive":{"example":305.8999999910593,"type":"number"},"domainLookupEnd":{"example":72.79999999701977,"type":"number"},"domainLookupStart":{"example":2.199999988079071,"type":"number"},"duration":{"example":306,"type":"number"},"encodedBodySize":{"example":648,"type":"number"},"entryType":{"example":"navigation","type":"string"},"fetchStart":{"example":0.8999999910593033,"type":"number"},"initiatorType":{"example":"navigation","type":"string"},"loadEventEnd":{"example":306,"type":"number"},"loadEventStart":{"example":306,"type":"number"},"name":{"example":"http://example.com/","type":"string"},"nextHopProtocol":{"example":"http/1.1","type":"string"},"redirectCount":{"type":"number"},"redirectEnd":{"type":"number"},"redirectStart":{"type":"number"},"requestStart":{"example":82.69999998807907,"type":"number"},"responseEnd":{"example":270.8999999910593,"type":"number"},"responseStart":{"example":265.69999998807907,"type":"number"},"secureConnectionStart":{"type":"number"},"startTime":{"type":"number"},"transferSize":{"example":948,"type":"number"},"type":{"example":"navigate","type":"string"},"unloadEventEnd":{"type":"number"},"unloadEventStart":{"type":"number"},"workerStart":{"type":"number"}},"required":["name","entryType","startTime","duration","initiatorType","nextHopProtocol","workerStart","redirectStart","redirectEnd","fetchStart","domainLookupStart","domainLookupEnd","connectStart","connectEnd","secureConnectionStart","requestStart","responseStart","responseEnd","transferSize","encodedBodySize","decodedBodySize","unloadEventStart","unloadEventEnd","domInteractive","domContentLoadedEventStart","domContentLoadedEventEnd","domComplete","loadEventStart","loadEventEnd","type","redirectCount"],"type":"object"},"type":"array"},"task":{"properties":{"clientLocation":{"description":"Submitter location","example":"PT","type":"string"},"clientType":{"enum":["Site","Automatic","Api"],"type":"string"},"effectiveUrl":{"description":"URL of the primary request, after all HTTP redirects","example":"http://example.com/","type":"string"},"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"scannedFrom":{"properties":{"colo":{"description":"IATA code of Cloudflare datacenter","example":"MAD","type":"string"}},"required":["colo"],"type":"object"},"status":{"enum":["Queued","InProgress","InPostProcessing","Finished"],"type":"string"},"success":{"example":true,"type":"boolean"},"time":{"example":"2023-05-03T17:05:04.843Z","type":"string"},"timeEnd":{"example":"2023-05-03T17:05:19.374Z","type":"string"},"url":{"description":"Submitted URL","example":"http://example.com","type":"string"},"uuid":{"description":"Scan ID","example":"2ee568d0-bf70-4827-b922-b7088c0f056f","type":"string"},"visibility":{"enum":["Public","Unlisted"],"type":"string"}},"required":["uuid","url","status","success","errors","time","timeEnd","visibility","clientLocation","clientType","effectiveUrl","scannedFrom"],"type":"object"},"verdicts":{"properties":{"overall":{"properties":{"categories":{"items":{"properties":{"id":{"example":117,"type":"number"},"name":{"example":"Malware","type":"string"},"super_category_id":{"example":32,"type":"number"}},"required":["id","super_category_id","name"],"type":"object"},"type":"array"},"malicious":{"description":"At least one of our subsystems marked the site as potentially malicious at the time of the scan.","example":true,"type":"boolean"},"phishing":{"items":{"example":"Credential Harvester","type":"string"},"type":"array"}},"required":["malicious","categories","phishing"],"type":"object"}},"required":["overall"],"type":"object"}},"required":["task","meta","page","geo","certificates","performance","verdicts"],"type":"object"}},"required":["scan"],"type":"object"},"success":{"description":"Whether request was successful or not","type":"boolean"}},"required":["messages","errors","success","result"],"type":"object"}}},"description":"Scan has finished. It may or may not have been successful."},"202":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"messages":{"items":{"properties":{"message":{"example":"In Progress","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"properties":{"scan":{"properties":{"task":{"properties":{"effectiveUrl":{"example":"http://example.com/","type":"string"},"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"location":{"example":"PT","type":"string"},"region":{"example":"enam","type":"string"},"status":{"example":"InProgress","type":"string"},"success":{"example":true,"type":"boolean"},"time":{"example":"2023-05-03T17:05:04.843Z","type":"string"},"url":{"example":"http://example.com","type":"string"},"uuid":{"example":"2ee568d0-bf70-4827-b922-b7088c0f056f","type":"string"},"visibility":{"example":"Public","type":"string"}},"required":["uuid","url","status","success","errors","time","visibility","location","region","effectiveUrl"],"type":"object"}},"required":["task"],"type":"object"}},"required":["scan"],"type":"object"},"success":{"description":"Whether request was successful or not","type":"boolean"}},"required":["messages","errors","success","result"],"type":"object"}}},"description":"Scan is in progress. Check current status in `result.scan.task.status`. Possible statuses: `Queued`,`InProgress`,`InPostProcessing`,`Finished`."},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"example":"Scan ID is not a valid uuid.","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"messages":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"success":{"description":"Whether request was successful or not","type":"boolean"}},"required":["messages","errors","success"],"type":"object"}}},"description":"Invalid params."},"404":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"example":"Scan not found.","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"messages":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"success":{"description":"Whether request was successful or not","type":"boolean"}},"required":["messages","errors","success"],"type":"object"}}},"description":"Scan not found."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get URL scan","tags":["URL Scanner"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.url-scanner.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{accountId}/urlscanner/scan/{scanId}/har":{"get":{"description":"Get a URL scan's HAR file. See HAR spec at http://www.softwareishard.com/blog/har-12-spec/.","operationId":"urlscanner-get-scan-har","parameters":[{"description":"Scan uuid.","in":"path","name":"scanId","required":true,"schema":{"description":"Scan uuid.","format":"uuid","type":"string"}},{"description":"Account Id.","in":"path","name":"accountId","required":true,"schema":{"description":"Account Id.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"example":"Error","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"messages":{"items":{"properties":{"message":{"example":"OK","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"properties":{"har":{"properties":{"log":{"properties":{"creator":{"properties":{"comment":{"example":"https://github.com/sitespeedio/chrome-har","type":"string"},"name":{"example":"chrome-har","type":"string"},"version":{"example":"0.13.1","type":"string"}},"required":["name","version","comment"],"type":"object"},"entries":{"items":{"properties":{"_initialPriority":{"example":"VeryHigh","type":"string"},"_initiator_type":{"example":"other","type":"string"},"_priority":{"example":"VeryHigh","type":"string"},"_requestId":{"example":"DDC779F0CB3746BAF283EC1A51B0F2F8","type":"string"},"_requestTime":{"example":114135.331081,"type":"number"},"_resourceType":{"example":"document","type":"string"},"cache":{"type":"object"},"connection":{"example":"33","type":"string"},"pageref":{"example":"page_1","type":"string"},"request":{"properties":{"bodySize":{"type":"number"},"headers":{"items":{"properties":{"name":{"example":"Upgrade-Insecure-Requests","type":"string"},"value":{"example":"1","type":"string"}},"required":["name","value"],"type":"object"},"type":"array"},"headersSize":{"example":197,"type":"number"},"httpVersion":{"example":"http/1.1","type":"string"},"method":{"example":"GET","type":"string"},"url":{"example":"http://example.com/","type":"string"}},"required":["method","url","headersSize","bodySize","headers","httpVersion"],"type":"object"},"response":{"properties":{"_transferSize":{"example":1071,"type":"number"},"bodySize":{"example":648,"type":"number"},"content":{"properties":{"compression":{"example":608,"type":"integer"},"mimeType":{"example":"text/html","type":"string"},"size":{"example":1256,"type":"number"}},"required":["mimeType","size"],"type":"object"},"headers":{"items":{"properties":{"name":{"example":"Content-Encoding","type":"string"},"value":{"example":"gzip","type":"string"}},"required":["name","value"],"type":"object"},"type":"array"},"headersSize":{"example":423,"type":"number"},"httpVersion":{"example":"http/1.1","type":"string"},"redirectURL":{"type":"string"},"status":{"example":200,"type":"number"},"statusText":{"example":"OK","type":"string"}},"required":["httpVersion","redirectURL","status","statusText","content","headersSize","bodySize","headers","_transferSize"],"type":"object"},"serverIPAddress":{"example":"2606:2800:220:1:248:1893:25c8:1946","type":"string"},"startedDateTime":{"example":"2023-05-03T17:05:13.196Z","type":"string"},"time":{"example":268.64,"type":"number"}},"required":["cache","startedDateTime","_requestId","_initialPriority","_priority","pageref","request","time","_initiator_type","_resourceType","response","connection","serverIPAddress","_requestTime"],"type":"object"},"type":"array"},"pages":{"items":{"properties":{"id":{"example":"page_1","type":"string"},"pageTimings":{"properties":{"onContentLoad":{"example":305.408,"type":"number"},"onLoad":{"example":305.169,"type":"number"}},"required":["onLoad","onContentLoad"],"type":"object"},"startedDateTime":{"example":"2023-05-03T17:05:13.195Z","type":"string"},"title":{"example":"http://example.com/","type":"string"}},"required":["id","startedDateTime","title","pageTimings"],"type":"object"},"type":"array"},"version":{"example":"1.2","type":"string"}},"required":["version","creator","pages","entries"],"type":"object"}},"required":["log"],"type":"object"}},"required":["har"],"type":"object"},"success":{"description":"Whether search request was successful or not","type":"boolean"}},"required":["messages","errors","success","result"],"type":"object"}}},"description":"Returns the scan's har."},"202":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"messages":{"items":{"properties":{"message":{"example":"In Progress","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"properties":{"scan":{"properties":{"task":{"properties":{"effectiveUrl":{"example":"http://example.com/","type":"string"},"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"location":{"example":"PT","type":"string"},"region":{"example":"enam","type":"string"},"status":{"example":"InProgress","type":"string"},"success":{"example":true,"type":"boolean"},"time":{"example":"2023-05-03T17:05:04.843Z","type":"string"},"url":{"example":"http://example.com","type":"string"},"uuid":{"example":"2ee568d0-bf70-4827-b922-b7088c0f056f","type":"string"},"visibility":{"example":"Public","type":"string"}},"required":["uuid","url","status","success","errors","time","visibility","location","region","effectiveUrl"],"type":"object"}},"required":["task"],"type":"object"}},"required":["scan"],"type":"object"},"success":{"description":"Whether request was successful or not","type":"boolean"}},"required":["messages","errors","success","result"],"type":"object"}}},"description":"Scan is in progress. Check current status in `result.scan.task.status`. Possible statuses: `Queued`,`InProgress`,`InPostProcessing`,`Finished`."},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"example":"Scan ID is not a valid uuid.","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"messages":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"success":{"description":"Whether request was successful or not","type":"boolean"}},"required":["messages","errors","success"],"type":"object"}}},"description":"Invalid params."},"404":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"example":"Scan not found.","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"messages":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"success":{"description":"Whether request was successful or not","type":"boolean"}},"required":["messages","errors","success"],"type":"object"}}},"description":"Scan not found."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get URL scan's HAR","tags":["URL Scanner"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.url-scanner.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{accountId}/urlscanner/scan/{scanId}/screenshot":{"get":{"description":"Get scan's screenshot by resolution (desktop/mobile/tablet).","operationId":"urlscanner-get-scan-screenshot","parameters":[{"description":"Scan uuid.","in":"path","name":"scanId","required":true,"schema":{"description":"Scan uuid.","format":"uuid","type":"string"}},{"description":"Account Id.","in":"path","name":"accountId","required":true,"schema":{"description":"Account Id.","type":"string"}},{"description":"Target device type.","in":"query","name":"resolution","schema":{"default":"desktop","description":"Target device type.","enum":["desktop","mobile","tablet"],"type":"string"}}],"responses":{"200":{"content":{"image/png":{"schema":{"description":"PNG Image.","type":"string"}}},"description":"Returns the scan's requested screenshot."},"202":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"messages":{"items":{"properties":{"message":{"example":"In Progress","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"properties":{"scan":{"properties":{"task":{"properties":{"effectiveUrl":{"example":"http://example.com/","type":"string"},"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"location":{"example":"PT","type":"string"},"region":{"example":"enam","type":"string"},"status":{"example":"InProgress","type":"string"},"success":{"example":true,"type":"boolean"},"time":{"example":"2023-05-03T17:05:04.843Z","type":"string"},"url":{"example":"http://example.com","type":"string"},"uuid":{"example":"2ee568d0-bf70-4827-b922-b7088c0f056f","type":"string"},"visibility":{"example":"Public","type":"string"}},"required":["uuid","url","status","success","errors","time","visibility","location","region","effectiveUrl"],"type":"object"}},"required":["task"],"type":"object"}},"required":["scan"],"type":"object"},"success":{"description":"Whether request was successful or not","type":"boolean"}},"required":["messages","errors","success","result"],"type":"object"}}},"description":"Scan is in progress. Check current status in `result.scan.task.status`. Possible statuses: `Queued`,`InProgress`,`InPostProcessing`,`Finished`."},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"example":"Scan ID is not a valid uuid.","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"messages":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"success":{"description":"Whether request was successful or not","type":"boolean"}},"required":["messages","errors","success"],"type":"object"}}},"description":"Invalid params."},"404":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"example":"Scan not found.","type":"string"}},"required":["message"],"type":"object"},"type":"array"},"messages":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"success":{"description":"Whether request was successful or not","type":"boolean"}},"required":["messages","errors","success"],"type":"object"}}},"description":"Scan not found."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get screenshot","tags":["URL Scanner"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.url-scanner.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{accountId}/urlscanner/v2/dom/{scanId}":{"get":{"description":"Returns a plain text response, with the scan's DOM content as rendered by Chrome.","operationId":"urlscanner-get-scan-dom-v2","parameters":[{"description":"Scan uuid.","in":"path","name":"scanId","required":true,"schema":{"description":"Scan uuid.","format":"uuid","type":"string"}},{"description":"Account Id.","in":"path","name":"accountId","required":true,"schema":{"description":"Account Id.","type":"string"}}],"responses":{"200":{"content":{"text/plain":{"schema":{"description":"HTML of webpage.","type":"string"}}},"description":"Returns a plain text response, with the scan's DOM content as rendered by Chrome."},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"status":{"description":"Status code.","example":400,"type":"integer"},"title":{"example":"Invalid url","type":"string"}},"required":["title","detail","status"],"type":"object"},"type":"array"},"message":{"type":"string"},"status":{"description":"Status code.","example":400,"type":"integer"}},"required":["message","status","errors"],"type":"object"}}},"description":"Invalid input."},"404":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"detail":{"example":"Queued","type":"string"},"status":{"description":"Status code.","example":404,"type":"integer"},"title":{"example":"Scan is not finished yet.","type":"string"}},"required":["title","detail","status"],"type":"object"},"type":"array"},"message":{"description":"Scan not found or in progress.","example":"Scan is not finished yet.","type":"string"},"status":{"description":"Status code.","example":404,"type":"integer"}},"required":["message","status","errors"],"type":"object"}}},"description":"Scan not found or in progress."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get URL scan's DOM","tags":["URL Scanner (Beta)"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.url-scanner.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{accountId}/urlscanner/v2/har/{scanId}":{"get":{"description":"Get a URL scan's HAR file. See HAR spec at http://www.softwareishard.com/blog/har-12-spec/.","operationId":"urlscanner-get-scan-har-v2","parameters":[{"description":"Scan uuid.","in":"path","name":"scanId","required":true,"schema":{"description":"Scan uuid.","format":"uuid","type":"string"}},{"description":"Account Id.","in":"path","name":"accountId","required":true,"schema":{"description":"Account Id.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"log":{"properties":{"creator":{"properties":{"comment":{"example":"https://github.com/sitespeedio/chrome-har","type":"string"},"name":{"example":"chrome-har","type":"string"},"version":{"example":"0.13.1","type":"string"}},"required":["name","version","comment"],"type":"object"},"entries":{"items":{"properties":{"_initialPriority":{"example":"VeryHigh","type":"string"},"_initiator_type":{"example":"other","type":"string"},"_priority":{"example":"VeryHigh","type":"string"},"_requestId":{"example":"DDC779F0CB3746BAF283EC1A51B0F2F8","type":"string"},"_requestTime":{"example":114135.331081,"type":"number"},"_resourceType":{"example":"document","type":"string"},"cache":{"type":"object"},"connection":{"example":"33","type":"string"},"pageref":{"example":"page_1","type":"string"},"request":{"properties":{"bodySize":{"type":"number"},"headers":{"items":{"properties":{"name":{"example":"Upgrade-Insecure-Requests","type":"string"},"value":{"example":"1","type":"string"}},"required":["name","value"],"type":"object"},"type":"array"},"headersSize":{"example":197,"type":"number"},"httpVersion":{"example":"http/1.1","type":"string"},"method":{"example":"GET","type":"string"},"url":{"example":"http://example.com/","type":"string"}},"required":["method","url","headersSize","bodySize","headers","httpVersion"],"type":"object"},"response":{"properties":{"_transferSize":{"example":1071,"type":"number"},"bodySize":{"example":648,"type":"number"},"content":{"properties":{"compression":{"example":608,"type":"integer"},"mimeType":{"example":"text/html","type":"string"},"size":{"example":1256,"type":"number"}},"required":["mimeType","size"],"type":"object"},"headers":{"items":{"properties":{"name":{"example":"Content-Encoding","type":"string"},"value":{"example":"gzip","type":"string"}},"required":["name","value"],"type":"object"},"type":"array"},"headersSize":{"example":423,"type":"number"},"httpVersion":{"example":"http/1.1","type":"string"},"redirectURL":{"type":"string"},"status":{"example":200,"type":"number"},"statusText":{"example":"OK","type":"string"}},"required":["httpVersion","redirectURL","status","statusText","content","headersSize","bodySize","headers","_transferSize"],"type":"object"},"serverIPAddress":{"example":"2606:2800:220:1:248:1893:25c8:1946","type":"string"},"startedDateTime":{"example":"2023-05-03T17:05:13.196Z","type":"string"},"time":{"example":268.64,"type":"number"}},"required":["cache","startedDateTime","_requestId","_initialPriority","_priority","pageref","request","time","_initiator_type","_resourceType","response","connection","serverIPAddress","_requestTime"],"type":"object"},"type":"array"},"pages":{"items":{"properties":{"id":{"example":"page_1","type":"string"},"pageTimings":{"properties":{"onContentLoad":{"example":305.408,"type":"number"},"onLoad":{"example":305.169,"type":"number"}},"required":["onLoad","onContentLoad"],"type":"object"},"startedDateTime":{"example":"2023-05-03T17:05:13.195Z","type":"string"},"title":{"example":"http://example.com/","type":"string"}},"required":["id","startedDateTime","title","pageTimings"],"type":"object"},"type":"array"},"version":{"example":"1.2","type":"string"}},"required":["version","creator","pages","entries"],"type":"object"}},"required":["log"],"type":"object"}}},"description":"Returns the scan's har."},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"status":{"description":"Status code.","example":400,"type":"integer"},"title":{"example":"Invalid url","type":"string"}},"required":["title","detail","status"],"type":"object"},"type":"array"},"message":{"type":"string"},"status":{"description":"Status code.","example":400,"type":"integer"}},"required":["message","status","errors"],"type":"object"}}},"description":"Invalid input."},"404":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"detail":{"example":"Queued","type":"string"},"status":{"description":"Status code.","example":404,"type":"integer"},"title":{"example":"Scan is not finished yet.","type":"string"}},"required":["title","detail","status"],"type":"object"},"type":"array"},"message":{"description":"Scan not found or in progress.","example":"Scan is not finished yet.","type":"string"},"status":{"description":"Status code.","example":404,"type":"integer"}},"required":["message","status","errors"],"type":"object"}}},"description":"Scan not found or in progress."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get URL scan's HAR","tags":["URL Scanner (Beta)"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.url-scanner.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{accountId}/urlscanner/v2/responses/{responseId}":{"get":{"description":"Returns the raw response of the network request. If HTML, a plain text response will be returned.","operationId":"urlscanner-get-response-v2","parameters":[{"description":"Response hash.","in":"path","name":"responseId","required":true,"schema":{"description":"Response hash.","type":"string"}},{"description":"Account Id.","in":"path","name":"accountId","required":true,"schema":{"description":"Account Id.","type":"string"}}],"responses":{"200":{"content":{"text/plain or image":{"schema":{"description":"Web resource or image.","type":"string"}}},"description":"Get the raw response by its hash."},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"status":{"description":"Status code.","example":400,"type":"integer"},"title":{"example":"Invalid url","type":"string"}},"required":["title","detail","status"],"type":"object"},"type":"array"},"message":{"type":"string"},"status":{"description":"Status code.","example":400,"type":"integer"}},"required":["message","status","errors"],"type":"object"}}},"description":"Invalid input."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get raw response","tags":["URL Scanner (Beta)"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.url-scanner.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{accountId}/urlscanner/v2/result/{scanId}":{"get":{"description":"Get URL scan by uuid","operationId":"urlscanner-get-scan-v2","parameters":[{"description":"Scan uuid.","in":"path","name":"scanId","required":true,"schema":{"description":"Scan uuid.","format":"uuid","type":"string"}},{"description":"Account Id.","in":"path","name":"accountId","required":true,"schema":{"description":"Account Id.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"properties":{"console":{"items":{"properties":{"message":{"properties":{"level":{"type":"string"},"source":{"type":"string"},"text":{"type":"string"},"url":{"type":"string"}},"required":["source","level","text","url"],"type":"object"}},"required":["message"],"type":"object"},"type":"array"},"cookies":{"items":{"properties":{"domain":{"type":"string"},"expires":{"type":"number"},"httpOnly":{"type":"boolean"},"name":{"type":"string"},"path":{"type":"string"},"priority":{"type":"string"},"sameParty":{"type":"boolean"},"secure":{"type":"boolean"},"session":{"type":"boolean"},"size":{"type":"number"},"sourcePort":{"type":"number"},"sourceScheme":{"type":"string"},"value":{"type":"string"}},"required":["name","value","domain","path","expires","size","httpOnly","secure","session","priority","sameParty","sourceScheme","sourcePort"],"type":"object"},"type":"array"},"globals":{"items":{"properties":{"prop":{"type":"string"},"type":{"type":"string"}},"required":["prop","type"],"type":"object"},"type":"array"},"links":{"items":{"properties":{"href":{"type":"string"},"text":{"type":"string"}},"required":["href","text"],"type":"object"},"type":"array"},"performance":{"items":{"properties":{"duration":{"type":"number"},"entryType":{"type":"string"},"name":{"type":"string"},"startTime":{"type":"number"}},"required":["name","entryType","startTime","duration"],"type":"object"},"type":"array"},"requests":{"items":{"properties":{"request":{"properties":{"documentURL":{"type":"string"},"frameId":{"type":"string"},"hasUserGesture":{"type":"boolean"},"initiator":{"properties":{"host":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":["type","url","host"],"type":"object"},"loaderId":{"type":"string"},"primaryRequest":{"type":"boolean"},"redirectHasExtraInfo":{"type":"boolean"},"redirectResponse":{"properties":{"charset":{"type":"string"},"headers":{"type":"object"},"mimeType":{"type":"string"},"protocol":{"type":"string"},"remoteIPAddress":{"type":"string"},"remotePort":{"type":"number"},"securityHeaders":{"items":{"properties":{"name":{"type":"string"},"value":{"type":"string"}},"required":["name","value"],"type":"object"},"type":"array"},"securityState":{"type":"string"},"status":{"type":"number"},"statusText":{"type":"string"},"url":{"type":"string"}},"required":["url","status","statusText","mimeType","charset","remoteIPAddress","remotePort","protocol","securityState","securityHeaders"],"type":"object"},"request":{"properties":{"headers":{"type":"object"},"initialPriority":{"type":"string"},"isSameSite":{"type":"boolean"},"method":{"type":"string"},"mixedContentType":{"type":"string"},"referrerPolicy":{"type":"string"},"url":{"type":"string"}},"required":["url","method","mixedContentType","initialPriority","referrerPolicy","isSameSite"],"type":"object"},"requestId":{"type":"string"},"type":{"type":"string"},"wallTime":{"type":"number"}},"required":["requestId","documentURL","request","wallTime","initiator","redirectHasExtraInfo","type","hasUserGesture"],"type":"object"},"requests":{"items":{"properties":{"documentURL":{"type":"string"},"frameId":{"type":"string"},"hasUserGesture":{"type":"boolean"},"initiator":{"properties":{"type":{"type":"string"}},"required":["type"],"type":"object"},"loaderId":{"type":"string"},"redirectHasExtraInfo":{"type":"boolean"},"request":{"properties":{"headers":{"properties":{"name":{"type":"string"}},"required":["name"],"type":"object"},"initialPriority":{"type":"string"},"isSameSite":{"type":"boolean"},"method":{"type":"string"},"mixedContentType":{"type":"string"},"referrerPolicy":{"type":"string"},"url":{"type":"string"}},"required":["url","method","headers","mixedContentType","initialPriority","referrerPolicy","isSameSite"],"type":"object"},"requestId":{"type":"string"},"type":{"type":"string"},"wallTime":{"type":"number"}},"required":["requestId","loaderId","frameId","documentURL","wallTime","request","type","initiator","hasUserGesture","redirectHasExtraInfo"],"type":"object"},"type":"array"},"response":{"properties":{"asn":{"properties":{"asn":{"type":"string"},"country":{"type":"string"},"description":{"type":"string"},"ip":{"type":"string"},"name":{"type":"string"},"org":{"type":"string"}},"required":["ip","asn","country","description","name","org"],"type":"object"},"contentAvailable":{"type":"boolean"},"dataLength":{"type":"number"},"encodedDataLength":{"type":"number"},"geoip":{"properties":{"city":{"type":"string"},"country":{"type":"string"},"country_name":{"type":"string"},"geonameId":{"type":"string"},"ll":{"items":{"type":"object"},"type":"array"},"region":{"type":"string"}},"required":["country","region","city","ll","country_name","geonameId"],"type":"object"},"hasExtraInfo":{"type":"boolean"},"hash":{"type":"string"},"requestId":{"type":"string"},"response":{"properties":{"charset":{"type":"string"},"headers":{"type":"object"},"mimeType":{"type":"string"},"protocol":{"type":"string"},"remoteIPAddress":{"type":"string"},"remotePort":{"type":"number"},"securityDetails":{"properties":{"certificateId":{"type":"number"},"certificateTransparencyCompliance":{"type":"string"},"cipher":{"type":"string"},"encryptedClientHello":{"type":"boolean"},"issuer":{"type":"string"},"keyExchange":{"type":"string"},"keyExchangeGroup":{"type":"string"},"protocol":{"type":"string"},"sanList":{"items":{"type":"string"},"type":"array"},"serverSignatureAlgorithm":{"type":"number"},"subjectName":{"type":"string"},"validFrom":{"type":"number"},"validTo":{"type":"number"}},"required":["protocol","keyExchange","keyExchangeGroup","cipher","certificateId","subjectName","sanList","issuer","validFrom","validTo","certificateTransparencyCompliance","serverSignatureAlgorithm","encryptedClientHello"],"type":"object"},"securityHeaders":{"items":{"properties":{"name":{"type":"string"},"value":{"type":"string"}},"required":["name","value"],"type":"object"},"type":"array"},"securityState":{"type":"string"},"status":{"type":"number"},"statusText":{"type":"string"},"url":{"type":"string"}},"required":["url","status","statusText","mimeType","charset","remoteIPAddress","remotePort","protocol","securityState","securityDetails","securityHeaders"],"type":"object"},"size":{"type":"number"},"type":{"type":"string"}},"required":["encodedDataLength","dataLength","requestId","type","response","hasExtraInfo","size","asn","geoip"],"type":"object"}},"required":["request","response"],"type":"object"},"type":"array"}},"required":["requests","cookies","console","links","globals","performance"],"type":"object"},"lists":{"properties":{"asns":{"items":{"type":"string"},"type":"array"},"certificates":{"items":{"properties":{"issuer":{"type":"string"},"subjectName":{"type":"string"},"validFrom":{"type":"number"},"validTo":{"type":"number"}},"required":["issuer","subjectName","validFrom","validTo"],"type":"object"},"type":"array"},"continents":{"items":{"type":"string"},"type":"array"},"countries":{"items":{"type":"string"},"type":"array"},"domains":{"items":{"type":"string"},"type":"array"},"hashes":{"items":{"type":"string"},"type":"array"},"ips":{"items":{"type":"string"},"type":"array"},"linkDomains":{"items":{"type":"string"},"type":"array"},"servers":{"items":{"type":"string"},"type":"array"},"urls":{"items":{"type":"string"},"type":"array"}},"required":["ips","countries","continents","asns","domains","servers","urls","linkDomains","certificates","hashes"],"type":"object"},"meta":{"properties":{"processors":{"properties":{"asn":{"properties":{"data":{"items":{"properties":{"asn":{"type":"string"},"country":{"type":"string"},"description":{"type":"string"},"ip":{"type":"string"},"name":{"type":"string"}},"required":["ip","asn","country","description","name"],"type":"object"},"type":"array"}},"required":["data"],"type":"object"},"dns":{"properties":{"data":{"items":{"properties":{"address":{"type":"string"},"dnssec_valid":{"type":"boolean"},"name":{"type":"string"},"type":{"type":"string"}},"required":["name","address","type","dnssec_valid"],"type":"object"},"type":"array"}},"required":["data"],"type":"object"},"domainCategories":{"properties":{"data":{"items":{"properties":{"inherited":{"type":"object"},"isPrimary":{"type":"boolean"},"name":{"type":"string"}},"required":["name","isPrimary","inherited"],"type":"object"},"type":"array"}},"required":["data"],"type":"object"},"geoip":{"properties":{"data":{"items":{"properties":{"geoip":{"properties":{"city":{"type":"string"},"country":{"type":"string"},"country_name":{"type":"string"},"ll":{"items":{"type":"number"},"type":"array"},"region":{"type":"string"}},"required":["country","region","city","ll","country_name"],"type":"object"},"ip":{"type":"string"}},"required":["ip","geoip"],"type":"object"},"type":"array"}},"required":["data"],"type":"object"},"phishing":{"properties":{"data":{"items":{"type":"string"},"type":"array"}},"required":["data"],"type":"object"},"radarRank":{"properties":{"data":{"items":{"properties":{"bucket":{"type":"string"},"hostname":{"type":"string"},"rank":{"type":"number"}},"required":["hostname","bucket"],"type":"object"},"type":"array"}},"required":["data"],"type":"object"},"urlCategories":{"properties":{"data":{"items":{"properties":{"content":{"items":{"properties":{"id":{"type":"number"},"name":{"type":"string"},"super_category_id":{"type":"number"}},"required":["id","name","super_category_id"],"type":"object"},"type":"array"},"inherited":{"properties":{"content":{"items":{"properties":{"id":{"type":"number"},"name":{"type":"string"},"super_category_id":{"type":"number"}},"required":["id","name","super_category_id"],"type":"object"},"type":"array"},"from":{"type":"string"},"risks":{"items":{"properties":{"id":{"type":"number"},"name":{"type":"string"},"super_category_id":{"type":"number"}},"required":["id","name","super_category_id"],"type":"object"},"type":"array"}},"required":["from","content","risks"],"type":"object"},"name":{"type":"string"},"risks":{"items":{"properties":{"id":{"type":"number"},"name":{"type":"string"},"super_category_id":{"type":"number"}},"required":["id","name","super_category_id"],"type":"object"},"type":"array"}},"required":["name","content","risks","inherited"],"type":"object"},"type":"array"}},"required":["data"],"type":"object"},"wappa":{"properties":{"data":{"items":{"properties":{"app":{"type":"string"},"categories":{"items":{"properties":{"name":{"type":"string"},"priority":{"type":"number"}},"required":["name","priority"],"type":"object"},"type":"array"},"confidence":{"items":{"properties":{"confidence":{"type":"number"},"name":{"type":"string"},"pattern":{"type":"string"},"patternType":{"type":"string"}},"required":["confidence","pattern","patternType","name"],"type":"object"},"type":"array"},"confidenceTotal":{"type":"number"},"icon":{"type":"string"},"website":{"type":"string"}},"required":["confidence","confidenceTotal","app","icon","website","categories"],"type":"object"},"type":"array"}},"required":["data"],"type":"object"}},"required":["geoip","asn","wappa","domainCategories","dns","radarRank","phishing"],"type":"object"}},"required":["processors"],"type":"object"},"page":{"properties":{"apexDomain":{"type":"string"},"asn":{"type":"string"},"asnname":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"},"domain":{"type":"string"},"ip":{"type":"string"},"mimeType":{"type":"string"},"screenshot":{"properties":{"dhash":{"type":"string"},"mm3Hash":{"type":"number"},"name":{"type":"string"},"phash":{"type":"string"}},"required":["phash","dhash","mm3Hash","name"],"type":"object"},"server":{"type":"string"},"status":{"example":"200","type":"string"},"title":{"type":"string"},"tlsAgeDays":{"type":"number"},"tlsIssuer":{"type":"string"},"tlsValidDays":{"type":"number"},"tlsValidFrom":{"type":"string"},"url":{"type":"string"}},"required":["asn","asnname","city","country","domain","ip","server","url","mimeType","apexDomain","status","title","tlsIssuer","tlsValidFrom","tlsAgeDays","tlsValidDays"],"type":"object"},"scanner":{"properties":{"colo":{"type":"string"},"country":{"type":"string"}},"required":["country","colo"],"type":"object"},"stats":{"properties":{"IPv6Percentage":{"type":"number"},"domainStats":{"items":{"properties":{"count":{"type":"number"},"countries":{"items":{"type":"string"},"type":"array"},"domain":{"type":"string"},"encodedSize":{"type":"number"},"index":{"type":"number"},"initiators":{"items":{"type":"string"},"type":"array"},"ips":{"items":{"type":"string"},"type":"array"},"redirects":{"type":"number"},"size":{"type":"number"}},"required":["count","ips","domain","size","encodedSize","countries","index","initiators","redirects"],"type":"object"},"type":"array"},"ipStats":{"items":{"properties":{"asn":{"properties":{"asn":{"type":"string"},"country":{"type":"string"},"description":{"type":"string"},"ip":{"type":"string"},"name":{"type":"string"},"org":{"type":"string"}},"required":["ip","asn","country","description","name","org"],"type":"object"},"count":{"type":"number"},"countries":{"items":{"type":"string"},"type":"array"},"domains":{"items":{"type":"string"},"type":"array"},"encodedSize":{"type":"number"},"geoip":{"properties":{"city":{"type":"string"},"country":{"type":"string"},"country_name":{"type":"string"},"ll":{"items":{"type":"number"},"type":"array"},"region":{"type":"string"}},"required":["country","region","city","ll","country_name"],"type":"object"},"index":{"type":"number"},"ip":{"type":"string"},"ipv6":{"type":"boolean"},"redirects":{"type":"number"},"requests":{"type":"number"},"size":{"type":"number"}},"required":["requests","domains","ip","size","encodedSize","countries","index","ipv6","redirects","geoip","asn"],"type":"object"},"type":"array"},"malicious":{"type":"number"},"protocolStats":{"items":{"properties":{"count":{"type":"number"},"countries":{"items":{"type":"string"},"type":"array"},"encodedSize":{"type":"number"},"ips":{"items":{"type":"string"},"type":"array"},"protocol":{"type":"string"},"size":{"type":"number"}},"required":["count","size","encodedSize","ips","countries","protocol"],"type":"object"},"type":"array"},"resourceStats":{"items":{"properties":{"compression":{"type":"number"},"count":{"type":"number"},"countries":{"items":{"type":"string"},"type":"array"},"encodedSize":{"type":"number"},"ips":{"items":{"type":"string"},"type":"array"},"percentage":{"type":"number"},"size":{"type":"number"},"type":{"type":"string"}},"required":["count","size","encodedSize","ips","countries","compression","percentage","type"],"type":"object"},"type":"array"},"securePercentage":{"type":"number"},"secureRequests":{"type":"number"},"serverStats":{"items":{"properties":{"count":{"type":"number"},"countries":{"items":{"type":"string"},"type":"array"},"encodedSize":{"type":"number"},"ips":{"items":{"type":"string"},"type":"array"},"server":{"type":"string"},"size":{"type":"number"}},"required":["count","size","encodedSize","ips","countries","server"],"type":"object"},"type":"array"},"tlsStats":{"items":{"properties":{"count":{"type":"number"},"countries":{"items":{"type":"string"},"type":"array"},"encodedSize":{"type":"number"},"ips":{"items":{"type":"string"},"type":"array"},"protocols":{"properties":{"TLS 1.3 / AES_128_GCM":{"type":"number"}},"required":["TLS 1.3 / AES_128_GCM"],"type":"object"},"securityState":{"type":"string"},"size":{"type":"number"}},"required":["count","size","encodedSize","ips","countries","protocols","securityState"],"type":"object"},"type":"array"},"totalLinks":{"type":"number"},"uniqASNs":{"type":"number"},"uniqCountries":{"type":"number"}},"required":["IPv6Percentage","domainStats","ipStats","malicious","protocolStats","resourceStats","secureRequests","tlsStats","serverStats","securePercentage","totalLinks","uniqCountries","uniqASNs"],"type":"object"},"task":{"properties":{"apexDomain":{"type":"string"},"domURL":{"type":"string"},"domain":{"type":"string"},"method":{"type":"string"},"options":{"properties":{"customHeaders":{"description":"Custom headers set.","type":"object"},"screenshotsResolutions":{"items":{"type":"string"},"type":"array"}},"type":"object"},"reportURL":{"type":"string"},"screenshotURL":{"type":"string"},"source":{"type":"string"},"success":{"type":"boolean"},"time":{"type":"string"},"url":{"type":"string"},"uuid":{"type":"string"},"visibility":{"type":"string"}},"required":["uuid","url","time","visibility","source","method","domain","apexDomain","reportURL","screenshotURL","domURL","options","success"],"type":"object"},"verdicts":{"properties":{"overall":{"properties":{"categories":{"items":{"type":"string"},"type":"array"},"hasVerdicts":{"type":"boolean"},"malicious":{"type":"boolean"},"tags":{"items":{"type":"string"},"type":"array"}},"required":["malicious","hasVerdicts","categories","tags"],"type":"object"}},"required":["overall"],"type":"object"}},"required":["data","page","lists","meta","scanner","stats","task","verdicts"],"type":"object"}}},"description":"Scan has finished. It may or may not have been successful."},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"status":{"description":"Status code.","example":400,"type":"integer"},"title":{"example":"Invalid url","type":"string"}},"required":["title","detail","status"],"type":"object"},"type":"array"},"message":{"type":"string"},"status":{"description":"Status code.","example":400,"type":"integer"}},"required":["message","status","errors"],"type":"object"}}},"description":"Invalid input."},"404":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"detail":{"example":"Queued","type":"string"},"status":{"description":"Status code.","example":404,"type":"integer"},"title":{"example":"Scan is not finished yet.","type":"string"}},"required":["title","detail","status"],"type":"object"},"type":"array"},"message":{"description":"Scan not found or in progress.","example":"Scan is not finished yet.","type":"string"},"status":{"description":"Status code.","example":404,"type":"integer"}},"required":["message","status","errors"],"type":"object"}}},"description":"Scan not found or in progress."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get URL scan","tags":["URL Scanner (Beta)"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.url-scanner.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{accountId}/urlscanner/v2/scan":{"post":{"description":"Submit a URL to scan. Check limits at https://developers.cloudflare.com/security-center/investigate/scan-limits/.","operationId":"urlscanner-create-scan-v2","parameters":[{"description":"Account Id.","in":"path","name":"accountId","required":true,"schema":{"description":"Account Id.","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"customHeaders":{"additionalProperties":{"type":"string"},"description":"Set custom headers.","type":"object"},"customagent":{"maxLength":4096,"type":"string"},"referer":{"maxLength":4096,"type":"string"},"screenshotsResolutions":{"default":["desktop"],"description":"Take multiple screenshots targeting different device types.","items":{"default":"desktop","description":"Device resolutions.","enum":["desktop","mobile","tablet"],"type":"string"},"type":"array"},"url":{"example":"https://www.example.com","type":"string"},"visibility":{"default":"Public","description":"The option `Public` means it will be included in listings like recent scans and search results. `Unlisted` means it will not be included in the aforementioned listings, users will need to have the scan's ID to access it. A a scan will be automatically marked as unlisted if it fails, if it contains potential PII or other sensitive material.","enum":["Public","Unlisted"],"type":"string"}},"required":["url"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"api":{"description":"URL to api report.","type":"string"},"message":{"example":"Submission successful","type":"string"},"options":{"properties":{"useragent":{"type":"string"}},"type":"object"},"result":{"description":"URL to report.","type":"string"},"url":{"description":"Canonical form of submitted URL. Use this if you want to later search by URL.","type":"string"},"uuid":{"description":"Scan ID.","format":"uuid","type":"string"},"visibility":{"description":"Submitted visibility status.","example":"Public","type":"string"}},"required":["message","uuid","result","api","visibility","url"],"type":"object"}}},"description":"Scan request accepted successfully."},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"status":{"description":"Status code.","example":400,"type":"integer"},"title":{"example":"Invalid url","type":"string"}},"required":["title","detail","status"],"type":"object"},"type":"array"},"message":{"type":"string"},"status":{"description":"Status code.","example":400,"type":"integer"}},"required":["message","status","errors"],"type":"object"}}},"description":"Invalid input."},"409":{"content":{"application/json":{"schema":{"properties":{"description":{"example":"Scan request denied: hostname was recently scanned","type":"string"},"errors":{"items":{"properties":{"detail":{"example":"DNS Error - Could not resolve domain.","type":"string"},"status":{"type":"object"},"title":{"example":"DNS Error - Could not resolve domain.","type":"string"}},"required":["title","detail","status"],"type":"object"},"type":"array"},"message":{"example":"Scan prevented ...","type":"string"},"status":{"type":"object"}},"required":["message","status","errors"],"type":"object"}}},"description":"Scan request denied: hostname was recently scanned."},"429":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"},"errors":{"items":{"properties":{"detail":{"example":"DNS Error - Could not resolve domain.","type":"string"},"status":{"type":"object"},"title":{"example":"DNS Error - Could not resolve domain.","type":"string"}},"required":["title","detail","status"],"type":"object"},"type":"array"},"message":{"type":"string"},"status":{"type":"object"}},"required":["message","status","errors"],"type":"object"}}},"description":"Scan request denied: rate limited."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create URL Scan","tags":["URL Scanner (Beta)"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.url-scanner.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{accountId}/urlscanner/v2/screenshots/{scanId}.png":{"get":{"description":"Get scan's screenshot by resolution (desktop/mobile/tablet).","operationId":"urlscanner-get-scan-screenshot-v2","parameters":[{"description":"Scan uuid.","in":"path","name":"scanId","required":true,"schema":{"description":"Scan uuid.","format":"uuid","type":"string"}},{"description":"Account Id.","in":"path","name":"accountId","required":true,"schema":{"description":"Account Id.","type":"string"}},{"description":"Target device type.","in":"query","name":"resolution","schema":{"default":"desktop","description":"Target device type.","enum":["desktop","mobile","tablet"],"type":"string"}}],"responses":{"200":{"content":{"image/png":{"schema":{"description":"PNG Image.","type":"string"}}},"description":"Returns the scan's requested screenshot."},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"status":{"description":"Status code.","example":400,"type":"integer"},"title":{"example":"Invalid url","type":"string"}},"required":["title","detail","status"],"type":"object"},"type":"array"},"message":{"type":"string"},"status":{"description":"Status code.","example":400,"type":"integer"}},"required":["message","status","errors"],"type":"object"}}},"description":"Invalid input."},"404":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"detail":{"example":"Queued","type":"string"},"status":{"description":"Status code.","example":404,"type":"integer"},"title":{"example":"Scan is not finished yet.","type":"string"}},"required":["title","detail","status"],"type":"object"},"type":"array"},"message":{"description":"Scan not found or in progress.","example":"Scan is not finished yet.","type":"string"},"status":{"description":"Status code.","example":404,"type":"integer"}},"required":["message","status","errors"],"type":"object"}}},"description":"Scan not found or in progress."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get screenshot","tags":["URL Scanner (Beta)"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.url-scanner.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_identifier}/cloudforce-one/requests":{"post":{"operationId":"cloudforce-one-request-list","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_request-list"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/cloudforce-one_request-list-item"},"type":"array"}}}]}}},"description":"List requests response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Create response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Requests","tags":["Request for Information (RFI)"],"x-api-token-group":["Cloudforce One Write"]}},"/accounts/{account_identifier}/cloudforce-one/requests/constants":{"get":{"operationId":"cloudforce-one-request-constants","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/cloudforce-one_request-constants"}}}]}}},"description":"Get request constants response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Get request constants response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Request Priority, Status, and TLP constants","tags":["Request for Information (RFI)"]}},"/accounts/{account_identifier}/cloudforce-one/requests/new":{"post":{"description":"Creating a request adds the request into the Cloudforce One queue for analysis. In addition to the content, a short title, type, priority, and releasability should be provided. If one is not provided, a default will be assigned.","operationId":"cloudforce-one-request-new","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_request-edit"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/cloudforce-one_request-item"}}}]}}},"description":"Create request response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Create response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a New Request","tags":["Request for Information (RFI)"]}},"/accounts/{account_identifier}/cloudforce-one/requests/priority":{"post":{"operationId":"cloudforce-one-priority-list","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_priority-list"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/cloudforce-one_priority-item"},"type":"array"}}}]}}},"description":"List priorities response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"List priorities response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Priority Intelligence Requirements","tags":["Priority Intelligence Requirements (PIR)"]}},"/accounts/{account_identifier}/cloudforce-one/requests/priority/new":{"post":{"operationId":"cloudforce-one-priority-new","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_priority-edit"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/cloudforce-one_priority-item"}}}]}}},"description":"Create priority response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Create priority response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a New Priority Intelligence Requirement","tags":["Priority Intelligence Requirements (PIR)"]}},"/accounts/{account_identifier}/cloudforce-one/requests/priority/quota":{"get":{"operationId":"cloudforce-one-priority-quota","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/cloudforce-one_quota"}}}]}}},"description":"Get priority quota response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Get priority quota response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Priority Intelligence Requirement Quota","tags":["Priority Intelligence Requirements (PIR)"]}},"/accounts/{account_identifier}/cloudforce-one/requests/priority/{priority_identifer}":{"delete":{"operationId":"cloudforce-one-priority-delete","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}},{"in":"path","name":"priority_identifer","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_uuid"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common"}}},"description":"Delete priority response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Delete priority response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a Priority Intelligence Requirement","tags":["Priority Intelligence Requirements (PIR)"]},"get":{"operationId":"cloudforce-one-priority-get","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}},{"in":"path","name":"priority_identifer","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_uuid"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/cloudforce-one_request-item"}}}]}}},"description":"Get priority response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Get priority response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a Priority Intelligence Requirement","tags":["Priority Intelligence Requirements (PIR)"]},"put":{"operationId":"cloudforce-one-priority-update","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}},{"in":"path","name":"priority_identifer","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_priority-edit"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/cloudforce-one_request-item"}}}]}}},"description":"Update priority response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Update priority response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a Priority Intelligence Requirement","tags":["Priority Intelligence Requirements (PIR)"]}},"/accounts/{account_identifier}/cloudforce-one/requests/quota":{"get":{"operationId":"cloudforce-one-request-quota","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/cloudforce-one_quota"}}}]}}},"description":"Get request quota response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Get request quota response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Request Quota","tags":["Request for Information (RFI)"]}},"/accounts/{account_identifier}/cloudforce-one/requests/types":{"get":{"operationId":"cloudforce-one-request-types","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/cloudforce-one_request-types"}}}]}}},"description":"Get request types response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Get request types response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Request Types","tags":["Request for Information (RFI)"]}},"/accounts/{account_identifier}/cloudforce-one/requests/{request_identifier}":{"delete":{"operationId":"cloudforce-one-request-delete","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}},{"in":"path","name":"request_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_uuid"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common"}}},"description":"Delete request response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Delete request response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a Request","tags":["Request for Information (RFI)"]},"get":{"operationId":"cloudforce-one-request-get","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}},{"in":"path","name":"request_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_uuid"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/cloudforce-one_request-item"}}}]}}},"description":"Get request response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Get request response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a Request","tags":["Request for Information (RFI)"]},"put":{"description":"Updating a request alters the request in the Cloudforce One queue. This API may be used to update any attributes of the request after the initial submission. Only fields that you choose to update need to be add to the request body.","operationId":"cloudforce-one-request-update","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}},{"in":"path","name":"request_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_request-edit"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/cloudforce-one_request-item"}}}]}}},"description":"Update request response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Update request response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a Request","tags":["Request for Information (RFI)"]}},"/accounts/{account_identifier}/cloudforce-one/requests/{request_identifier}/asset":{"post":{"operationId":"cloudforce-one-request-asset-list","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}},{"in":"path","name":"request_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_request-asset-list"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/cloudforce-one_request-asset-item"},"type":"array"}}}]}}},"description":"List request assets response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"List request assets response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Request Assets","tags":["Request for Information (RFI)"]}},"/accounts/{account_identifier}/cloudforce-one/requests/{request_identifier}/asset/new":{"post":{"operationId":"cloudforce-one-request-asset-new","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}},{"in":"path","name":"request_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_uuid"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/cloudforce-one_request-asset-edit"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/cloudforce-one_request-asset-item"}}}]}}},"description":"Create request asset response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Create request asset response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a New Request Asset","tags":["Request for Information (RFI)"]}},"/accounts/{account_identifier}/cloudforce-one/requests/{request_identifier}/asset/{asset_identifer}":{"delete":{"operationId":"cloudforce-one-request-asset-delete","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}},{"in":"path","name":"request_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_uuid"}},{"in":"path","name":"asset_identifer","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_uuid"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common"}}},"description":"Delete request asset response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Delete request asset response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a Request Asset","tags":["Request for Information (RFI)"]},"get":{"operationId":"cloudforce-one-request-asset-get","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}},{"in":"path","name":"request_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_uuid"}},{"in":"path","name":"asset_identifer","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_uuid"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/cloudforce-one_request-asset-item"},"type":"array"}}}]}}},"description":"Get request asset response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Get request asset response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a Request Asset","tags":["Request for Information (RFI)"]},"put":{"operationId":"cloudforce-one-request-asset-update","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}},{"in":"path","name":"request_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_uuid"}},{"in":"path","name":"asset_identifer","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_request-asset-edit"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/cloudforce-one_request-asset-item"}}}]}}},"description":"Update request asset response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Update request asset response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a Request Asset","tags":["Request for Information (RFI)"]}},"/accounts/{account_identifier}/cloudforce-one/requests/{request_identifier}/message":{"post":{"operationId":"cloudforce-one-request-message-list","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}},{"in":"path","name":"request_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_request-message-list"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/cloudforce-one_request-message-item"},"type":"array"}}}]}}},"description":"List request messages response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"List request messages response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Request Messages","tags":["Request for Information (RFI)"]}},"/accounts/{account_identifier}/cloudforce-one/requests/{request_identifier}/message/new":{"post":{"operationId":"cloudforce-one-request-message-new","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}},{"in":"path","name":"request_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_request-message-edit"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/cloudforce-one_request-message-item"}}}]}}},"description":"Create request message response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Create request message response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a New Request Message","tags":["Request for Information (RFI)"]}},"/accounts/{account_identifier}/cloudforce-one/requests/{request_identifier}/message/{message_identifer}":{"delete":{"operationId":"cloudforce-one-request-message-delete","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}},{"in":"path","name":"request_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_uuid"}},{"in":"path","name":"message_identifer","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common"}}},"description":"Delete request message response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Delete request message response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a Request Message","tags":["Request for Information (RFI)"]},"put":{"operationId":"cloudforce-one-request-message-update","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}},{"in":"path","name":"request_identifier","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_uuid"}},{"in":"path","name":"message_identifer","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_request-message-edit"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/cloudforce-one_request-message-item"}}}]}}},"description":"Update request message response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}}},"description":"Update request message response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a Request Message","tags":["Request for Information (RFI)"]}},"/accounts/{account_identifier}/custom_pages":{"get":{"description":"Fetches all the custom pages at the account level.","operationId":"custom-pages-for-an-account-list-custom-pages","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/custom-pages_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/custom-pages_custom_pages_response_collection"}}},"description":"List custom pages response"},"4xx":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/custom-pages_custom_pages_response_collection"},{"$ref":"#/components/schemas/custom-pages_api-response-common-failure"}]}}},"description":"List custom pages response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"List custom pages","tags":["Custom pages for an account"],"x-api-token-group":["Cloudflare Zero Trust PII Read","Account Custom Pages Write","Account Custom Pages Read","Account Settings Write","Account Settings Read"],"x-cfPermissionsRequired":{"enum":["#organization:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/accounts/{account_identifier}/custom_pages/{identifier}":{"get":{"description":"Fetches the details of a custom page.","operationId":"custom-pages-for-an-account-get-a-custom-page","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/custom-pages_identifier"}},{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/custom-pages_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/custom-pages_custom_pages_response_single"}}},"description":"Get a custom page response"},"4xx":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/custom-pages_custom_pages_response_single"},{"$ref":"#/components/schemas/custom-pages_api-response-common-failure"}]}}},"description":"Get a custom page response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"Get a custom page","tags":["Custom pages for an account"],"x-cfPermissionsRequired":{"enum":["#organization:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"put":{"description":"Updates the configuration of an existing custom page.","operationId":"custom-pages-for-an-account-update-a-custom-page","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/custom-pages_identifier"}},{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/custom-pages_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"state":{"$ref":"#/components/schemas/custom-pages_state"},"url":{"$ref":"#/components/schemas/custom-pages_url"}},"required":["url","state"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/custom-pages_custom_pages_response_single"}}},"description":"Update a custom page response"},"4xx":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/custom-pages_custom_pages_response_single"},{"$ref":"#/components/schemas/custom-pages_api-response-common-failure"}]}}},"description":"Update a custom page response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"Update a custom page","tags":["Custom pages for an account"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/accounts/{account_identifier}/firewall/access_rules/rules":{"get":{"description":"Fetches IP Access rules of an account. These rules apply to all the zones in the account. You can filter the results using several optional parameters.","operationId":"ip-access-rules-for-an-account-list-ip-access-rules","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_account_identifier"}},{"in":"query","name":"mode","schema":{"$ref":"#/components/schemas/firewall_schemas-mode"}},{"in":"query","name":"configuration.target","schema":{"description":"The target to search in existing rules.","enum":["ip","ip_range","asn","country"],"example":"ip","type":"string"}},{"in":"query","name":"configuration.value","schema":{"description":"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`.\nNotes: 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","type":"string"}},{"in":"query","name":"notes","schema":{"description":"The string to search for in the notes of existing IP Access rules.\nNotes: 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","type":"string"}},{"in":"query","name":"match","schema":{"default":"all","description":"When set to `all`, all the search requirements must match. When set to `any`, only one of the search requirements has to match.","enum":["any","all"],"type":"string"}},{"in":"query","name":"page","schema":{"description":"Requested page within paginated list of results.","example":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"description":"Maximum number of results requested.","example":20,"type":"number"}},{"in":"query","name":"order","schema":{"description":"The field used to sort returned rules.","enum":["configuration.target","configuration.value","mode"],"example":"mode","type":"string"}},{"in":"query","name":"direction","schema":{"description":"The direction used to sort returned rules.","enum":["asc","desc"],"example":"desc","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_response_collection"}}},"description":"List IP Access rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_response_collection"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"List IP Access rules response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List IP Access rules","tags":["IP Access rules for an account"],"x-api-token-group":["Account Firewall Access Rules Write","Account Firewall Access Rules Read"],"x-cfPermissionsRequired":{"enum":["#waf:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Creates a new IP Access rule for an account. The rule will apply to all zones in the account.\n\nNote: To create an IP Access rule that applies to a single zone, refer to the [IP Access rules for a zone](#ip-access-rules-for-a-zone) endpoints.","operationId":"ip-access-rules-for-an-account-create-an-ip-access-rule","parameters":[{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"configuration":{"$ref":"#/components/schemas/firewall_configuration"},"mode":{"$ref":"#/components/schemas/firewall_schemas-mode"},"notes":{"$ref":"#/components/schemas/firewall_notes"}},"required":["mode","configuration"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_response_single"}}},"description":"Create an IP Access rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_response_single"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Create an IP Access rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create an IP Access rule","tags":["IP Access rules for an account"],"x-api-token-group":["Account Firewall Access Rules Write"],"x-cfPermissionsRequired":{"enum":["#waf:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_identifier}/firewall/access_rules/rules/{identifier}":{"delete":{"description":"Deletes an existing IP Access rule defined at the account level.\n\nNote: This operation will affect all zones in the account.","operationId":"ip-access-rules-for-an-account-delete-an-ip-access-rule","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_components-schemas-identifier"}},{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_account_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_api-response-single-id"}}},"description":"Delete an IP Access rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_api-response-single-id"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Delete an IP Access rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete an IP Access rule","tags":["IP Access rules for an account"],"x-api-token-group":["Account Firewall Access Rules Write"],"x-cfPermissionsRequired":{"enum":["#waf:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Fetches the details of an IP Access rule defined at the account level.","operationId":"ip-access-rules-for-an-account-get-an-ip-access-rule","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_components-schemas-identifier"}},{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_response_single"}}},"description":"Get an IP Access rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_response_single"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Get an IP Access rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get an IP Access rule","tags":["IP Access rules for an account"],"x-api-token-group":["Account Firewall Access Rules Write","Account Firewall Access Rules Read"],"x-cfPermissionsRequired":{"enum":["#waf:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Updates an IP Access rule defined at the account level.\n\nNote: This operation will affect all zones in the account.","operationId":"ip-access-rules-for-an-account-update-an-ip-access-rule","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_components-schemas-identifier"}},{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_schemas-rule"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_response_single"}}},"description":"Update an IP Access rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_response_single"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Update an IP Access rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an IP Access rule","tags":["IP Access rules for an account"],"x-api-token-group":["Account Firewall Access Rules Write"],"x-cfPermissionsRequired":{"enum":["#waf:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_identifier}/rules/lists/bulk_operations/{operation_id}":{"get":{"description":"Gets the current status of an asynchronous operation on a list.\n\nThe `status` property can have one of the following values: `pending`, `running`, `completed`, or `failed`. If the status is `failed`, the `error` property will contain a message describing the error.","operationId":"lists-get-bulk-operation-status","parameters":[{"in":"path","name":"operation_id","required":true,"schema":{"$ref":"#/components/schemas/lists_operation_id"}},{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/lists_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/lists_bulk-operation-response-collection"}}},"description":"Get bulk operation status response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/lists_bulk-operation-response-collection"},{"$ref":"#/components/schemas/lists_api-response-common-failure"}]}}},"description":"Get bulk operation status response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get bulk operation status","tags":["Lists"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_identifier}/rules/lists/{list_id}/items/{item_id}":{"get":{"description":"Fetches a list item in the list.","operationId":"lists-get-a-list-item","parameters":[{"in":"path","name":"item_id","required":true,"schema":{"$ref":"#/components/schemas/lists_item_id"}},{"in":"path","name":"list_id","required":true,"schema":{"$ref":"#/components/schemas/lists_list_id"}},{"in":"path","name":"account_identifier","required":true,"schema":{"$ref":"#/components/schemas/lists_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/lists_item-response-collection"}}},"description":"Get a list item response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/lists_item-response-collection"},{"$ref":"#/components/schemas/lists_api-response-common-failure"}]}}},"description":"Get a list item response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a list item","tags":["Lists"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}":{"delete":{"description":"Delete a specific account (only available for tenant admins at this time). This is a permanent operation that will delete any zones or other resources under the account","operationId":"account-deletion","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"description":"The account ID of the account to be deleted","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-single-id"}}},"description":"Account Deletion Success Response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Account Deletion Failure Response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a specific account","tags":["Accounts"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":false,"free":false,"pro":false}},"get":{"description":"Get information about a specific account that you are a member of.","operationId":"accounts-account-details","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/iam_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_response_single_account"}}},"description":"Account Details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Account Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Account Details","tags":["Accounts"],"x-cfPermissionsRequired":{"enum":["#organization:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Update an existing account.","operationId":"accounts-update-account","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/iam_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_components-schemas-account"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_response_single_account"}}},"description":"Update Account response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Update Account response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Account","tags":["Accounts"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/access/apps":{"get":{"description":"Lists all Access applications in an account.","operationId":"access-applications-list-access-applications","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_apps_components-schemas-response_collection"}}},"description":"List Access applications response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List Access applications response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Access applications","tags":["Access applications"],"x-api-token-group":["Access: Apps and Policies Revoke","Access: Apps and Policies Write","Access: Apps and Policies Read"]},"post":{"description":"Adds a new application to Access.","operationId":"access-applications-add-an-application","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_app_request"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/access_apps_components-schemas-single_response"},{"properties":{"result":{"$ref":"#/components/schemas/access_app_response"}}}]}}},"description":"Add an Access application response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Add an Access application response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Add an Access application","tags":["Access applications"],"x-api-token-group":["Access: Apps and Policies Write"]}},"/accounts/{account_id}/access/apps/ca":{"get":{"description":"Lists short-lived certificate CAs and their public keys.","operationId":"access-short-lived-certificate-c-as-list-short-lived-certificate-c-as","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_ca_components-schemas-response_collection"}}},"description":"List short-lived certificate CAs response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List short-lived certificate CAs response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List short-lived certificate CAs","tags":["Access short-lived certificate CAs"],"x-api-token-group":["Access: Apps and Policies Write","Access: Apps and Policies Read"]}},"/accounts/{account_id}/access/apps/{app_id}":{"delete":{"description":"Deletes an application from Access.","operationId":"access-applications-delete-an-access-application","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_app_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_id_response"}}},"description":"Delete an Access application response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Delete an Access application response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete an Access application","tags":["Access applications"],"x-api-token-group":["Access: Apps and Policies Write"]},"get":{"description":"Fetches information about an Access application.","operationId":"access-applications-get-an-access-application","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_app_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_apps_components-schemas-single_response"}}},"description":"Get an Access application response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get an Access application response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get an Access application","tags":["Access applications"],"x-api-token-group":["Access: Apps and Policies Write","Access: Apps and Policies Read"]},"put":{"description":"Updates an Access application.","operationId":"access-applications-update-an-access-application","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_app_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_app_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/access_apps_components-schemas-single_response"},{"properties":{"result":{"$ref":"#/components/schemas/access_app_response"}}}]}}},"description":"Update an Access application response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update an Access application response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an Access application","tags":["Access applications"],"x-api-token-group":["Access: Apps and Policies Write"]}},"/accounts/{account_id}/access/apps/{app_id}/ca":{"delete":{"description":"Deletes a short-lived certificate CA.","operationId":"access-short-lived-certificate-c-as-delete-a-short-lived-certificate-ca","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_schemas-id_response"}}},"description":"Delete a short-lived certificate CA response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Delete a short-lived certificate CA response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a short-lived certificate CA","tags":["Access short-lived certificate CAs"],"x-api-token-group":["Access: Apps and Policies Write"]},"get":{"description":"Fetches a short-lived certificate CA and its public key.","operationId":"access-short-lived-certificate-c-as-get-a-short-lived-certificate-ca","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_ca_components-schemas-single_response"}}},"description":"Get a short-lived certificate CA response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get a short-lived certificate CA response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a short-lived certificate CA","tags":["Access short-lived certificate CAs"],"x-api-token-group":["Access: Apps and Policies Write","Access: Apps and Policies Read"]},"post":{"description":"Generates a new short-lived certificate CA and public key.","operationId":"access-short-lived-certificate-c-as-create-a-short-lived-certificate-ca","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_ca_components-schemas-single_response"}}},"description":"Create a short-lived certificate CA response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Create a short-lived certificate CA response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a short-lived certificate CA","tags":["Access short-lived certificate CAs"],"x-api-token-group":["Access: Apps and Policies Write"]}},"/accounts/{account_id}/access/apps/{app_id}/policies":{"get":{"description":"Lists Access policies configured for an application. Returns both exclusively scoped and reusable policies used by the application.","operationId":"access-policies-list-access-app-policies","parameters":[{"description":"The application ID.","in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_app-policies_components-schemas-response_collection"}}},"description":"List Access application policies response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List Access application policies response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Access application policies","tags":["Access application-scoped policies"],"x-api-token-group":["Access: Apps and Policies Write","Access: Apps and Policies Read"]},"post":{"description":"Creates a policy applying exclusive to a single application that defines the users or groups who can reach it. We recommend creating a reusable policy instead and subsequently referencing its ID in the application's 'policies' array.","operationId":"access-policies-create-an-access-policy","parameters":[{"description":"The application ID.","in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_app_policy_request"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_app-policies_components-schemas-single_response"}}},"description":"Create an Access application policy response."},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Create an Access application policy response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create an Access application policy","tags":["Access application-scoped policies"],"x-api-token-group":["Access: Apps and Policies Write"]}},"/accounts/{account_id}/access/apps/{app_id}/policies/{policy_id}":{"delete":{"description":"Deletes an Access policy specific to an application. To delete a reusable policy, use the /accounts/{account_id}/policies/{uid} endpoint.","operationId":"access-policies-delete-an-access-policy","parameters":[{"description":"The application ID.","in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"description":"The policy ID.","in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_id_response"}}},"description":"Delete an Access application policy response."},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Delete an Access application policy response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete an Access application policy","tags":["Access application-scoped policies"],"x-api-token-group":["Access: Apps and Policies Write"]},"get":{"description":"Fetches a single Access policy configured for an application. Returns both exclusively owned and reusable policies used by the application.","operationId":"access-policies-get-an-access-policy","parameters":[{"description":"The application ID.","in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"description":"The policy ID.","in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_app-policies_components-schemas-single_response"}}},"description":"Get an Access policy response."},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get an Access policy response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get an Access application policy","tags":["Access application-scoped policies"],"x-api-token-group":["Access: Apps and Policies Write","Access: Apps and Policies Read"]},"put":{"description":"Updates an Access policy specific to an application. To update a reusable policy, use the /accounts/{account_id}/policies/{uid} endpoint.","operationId":"access-policies-update-an-access-policy","parameters":[{"description":"The application ID.","in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"description":"The policy ID.","in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_app_policy_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_app-policies_components-schemas-single_response"}}},"description":"Update an Access application policy response."},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update an Access application policy response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an Access application policy","tags":["Access application-scoped policies"],"x-api-token-group":["Access: Apps and Policies Write"]}},"/accounts/{account_id}/access/apps/{app_id}/revoke_tokens":{"post":{"description":"Revokes all tokens issued for an application.","operationId":"access-applications-revoke-service-tokens","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_app_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_schemas-empty_response"}}},"description":"Revoke application tokens response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Revoke application tokens response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Revoke application tokens","tags":["Access applications"],"x-api-token-group":["Access: Apps and Policies Revoke","Access: Apps and Policies Write"]}},"/accounts/{account_id}/access/apps/{app_id}/user_policy_checks":{"get":{"description":"Tests if a specific user has permission to access an application.","operationId":"access-applications-test-access-policies","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_app_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_policy_check_response"}}},"description":"Test Access policies response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Test Access policies response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Test Access policies","tags":["Access applications"],"x-api-token-group":["Access: Apps and Policies Write","Access: Apps and Policies Read"]}},"/accounts/{account_id}/access/bookmarks":{"get":{"deprecated":true,"description":"Lists Bookmark applications.","operationId":"access-bookmark-applications-(-deprecated)-list-bookmark-applications","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_components-schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_bookmarks_components-schemas-response_collection"}}},"description":"List Bookmark applications response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List Bookmark applications response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Bookmark applications","tags":["Access Bookmark applications (Deprecated)"],"x-api-token-group":["Access: Apps and Policies Revoke","Access: Apps and Policies Write","Access: Apps and Policies Read"],"x-cfDeprecation":{"description":"This endpoint is deprecated in favor of using a specialized Access Application App Type.","display":true,"eol":"2023-03-19","id":"bookmarks_deprecation"}}},"/accounts/{account_id}/access/bookmarks/{bookmark_id}":{"delete":{"deprecated":true,"description":"Deletes a Bookmark application.","operationId":"access-bookmark-applications-(-deprecated)-delete-a-bookmark-application","parameters":[{"in":"path","name":"bookmark_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_id_response"}}},"description":"Delete a Bookmark application response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Delete a Bookmark application response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a Bookmark application","tags":["Access Bookmark applications (Deprecated)"],"x-api-token-group":["Access: Apps and Policies Write"],"x-cfDeprecation":{"description":"This endpoint is deprecated in favor of using a specialized Access Application App Type.","display":true,"eol":"2023-03-19","id":"bookmarks_deprecation"}},"get":{"deprecated":true,"description":"Fetches a single Bookmark application.","operationId":"access-bookmark-applications-(-deprecated)-get-a-bookmark-application","parameters":[{"in":"path","name":"bookmark_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_components-schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_bookmarks_components-schemas-single_response"}}},"description":"Get a Bookmark application response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get a Bookmark application response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a Bookmark application","tags":["Access Bookmark applications (Deprecated)"],"x-api-token-group":["Access: Apps and Policies Write","Access: Apps and Policies Read"],"x-cfDeprecation":{"description":"This endpoint is deprecated in favor of using a specialized Access Application App Type.","display":true,"eol":"2023-03-19","id":"bookmarks_deprecation"}},"post":{"deprecated":true,"description":"Create a new Bookmark application.","operationId":"access-bookmark-applications-(-deprecated)-create-a-bookmark-application","parameters":[{"in":"path","name":"bookmark_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_bookmarks_components-schemas-single_response"}}},"description":"Create a Bookmark application response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Create a Bookmark application response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a Bookmark application","tags":["Access Bookmark applications (Deprecated)"],"x-cfDeprecation":{"description":"This endpoint is deprecated in favor of using a specialized Access Application App Type.","display":true,"eol":"2023-03-19","id":"bookmarks_deprecation"}},"put":{"deprecated":true,"description":"Updates a configured Bookmark application.","operationId":"access-bookmark-applications-(-deprecated)-update-a-bookmark-application","parameters":[{"in":"path","name":"bookmark_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_bookmarks_components-schemas-single_response"}}},"description":"Update a Bookmark application response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update a Bookmark application response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a Bookmark application","tags":["Access Bookmark applications (Deprecated)"],"x-api-token-group":["Access: Apps and Policies Write"],"x-cfDeprecation":{"description":"This endpoint is deprecated in favor of using a specialized Access Application App Type.","display":true,"eol":"2023-03-19","id":"bookmarks_deprecation"}}},"/accounts/{account_id}/access/certificates":{"get":{"description":"Lists all mTLS root certificates.","operationId":"access-mtls-authentication-list-mtls-certificates","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_certificates_components-schemas-response_collection"}}},"description":"List mTLS certificates response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List mTLS certificates response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List mTLS certificates","tags":["Access mTLS authentication"],"x-api-token-group":["Access: Certificates Write","Access: Certificates Read"]},"post":{"description":"Adds a new mTLS root certificate to Access.","operationId":"access-mtls-authentication-add-an-mtls-certificate","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"associated_hostnames":{"$ref":"#/components/schemas/access_associated_hostnames"},"certificate":{"description":"The certificate content.","example":"-----BEGIN CERTIFICATE-----\nMIIGAjCCA+qgAwIBAgIJAI7kymlF7CWT...N4RI7KKB7nikiuUf8vhULKy5IX10\nDrUtmu/B\n-----END CERTIFICATE-----","type":"string"},"name":{"$ref":"#/components/schemas/access_certificates_components-schemas-name"}},"required":["name","certificate"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_certificates_components-schemas-single_response"}}},"description":"Add an mTLS certificate response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Add an mTLS certificate response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Add an mTLS certificate","tags":["Access mTLS authentication"],"x-api-token-group":["Access: Certificates Write"]}},"/accounts/{account_id}/access/certificates/settings":{"get":{"description":"List all mTLS hostname settings for this account.","operationId":"access-mtls-authentication-list-mtls-certificates-hostname-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_response_collection_hostnames"}}},"description":"List mTLS hostname settings response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List mTLS hostname settings response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List all mTLS hostname settings","tags":["Access mTLS authentication"],"x-api-token-group":["Access: Certificates Write","Access: Certificates Read"]},"put":{"description":"Updates an mTLS certificate's hostname settings.","operationId":"access-mtls-authentication-update-an-mtls-certificate-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"settings":{"items":{"$ref":"#/components/schemas/access_settings"},"type":"array"}},"required":["settings"],"type":"object"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_response_collection_hostnames"}}},"description":"Update an mTLS certificates hostname settings response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update an mTLS certificates hostname settings failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an mTLS certificate's hostname settings","tags":["Access mTLS authentication"],"x-api-token-group":["Access: Certificates Write"]}},"/accounts/{account_id}/access/certificates/{certificate_id}":{"delete":{"description":"Deletes an mTLS certificate.","operationId":"access-mtls-authentication-delete-an-mtls-certificate","parameters":[{"in":"path","name":"certificate_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_components-schemas-id_response"}}},"description":"Delete an mTLS certificate response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Delete an mTLS certificate response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete an mTLS certificate","tags":["Access mTLS authentication"],"x-api-token-group":["Access: Certificates Write"]},"get":{"description":"Fetches a single mTLS certificate.","operationId":"access-mtls-authentication-get-an-mtls-certificate","parameters":[{"in":"path","name":"certificate_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_certificates_components-schemas-single_response"}}},"description":"Get an mTLS certificate response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get an mTLS certificate response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get an mTLS certificate","tags":["Access mTLS authentication"],"x-api-token-group":["Access: Certificates Write","Access: Certificates Read"]},"put":{"description":"Updates a configured mTLS certificate.","operationId":"access-mtls-authentication-update-an-mtls-certificate","parameters":[{"in":"path","name":"certificate_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"associated_hostnames":{"$ref":"#/components/schemas/access_associated_hostnames"},"name":{"$ref":"#/components/schemas/access_certificates_components-schemas-name"}},"required":["associated_hostnames"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_certificates_components-schemas-single_response"}}},"description":"Update an mTLS certificate response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update an mTLS certificate response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an mTLS certificate","tags":["Access mTLS authentication"],"x-api-token-group":["Access: Certificates Write"]}},"/accounts/{account_id}/access/custom_pages":{"get":{"description":"List custom pages","operationId":"access-custom-pages-list-custom-pages","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_custom-pages_components-schemas-response_collection"}}},"description":"List custom pages response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List custom pages response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List custom pages","tags":["Access custom pages"],"x-api-token-group":["Access: Custom Page Write","Access: Custom Page Read"]},"post":{"description":"Create a custom page","operationId":"access-custom-pages-create-a-custom-page","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_custom_page"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_single_response_without_html"}}},"description":"Create a custom page response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Create a custom page response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a custom page","tags":["Access custom pages"],"x-api-token-group":["Access: Custom Page Write"]}},"/accounts/{account_id}/access/custom_pages/{custom_page_id}":{"delete":{"description":"Delete a custom page","operationId":"access-custom-pages-delete-a-custom-page","parameters":[{"in":"path","name":"custom_page_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_components-schemas-id_response"}}},"description":"Delete a custom page response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Delete a custom page response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a custom page","tags":["Access custom pages"],"x-api-token-group":["Access: Custom Page Write"]},"get":{"description":"Fetches a custom page and also returns its HTML.","operationId":"access-custom-pages-get-a-custom-page","parameters":[{"in":"path","name":"custom_page_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_custom-pages_components-schemas-single_response"}}},"description":"Get a custom page response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get a custom page response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a custom page","tags":["Access custom pages"],"x-api-token-group":["Access: Custom Page Write","Access: Custom Page Read"]},"put":{"description":"Update a custom page","operationId":"access-custom-pages-update-a-custom-page","parameters":[{"in":"path","name":"custom_page_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_custom_page"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_single_response_without_html"}}},"description":"Update a custom page response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update a custom page response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a custom page","tags":["Access custom pages"],"x-api-token-group":["Access: Custom Page Write"]}},"/accounts/{account_id}/access/groups":{"get":{"description":"Lists all Access groups.","operationId":"access-groups-list-access-groups","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_schemas-response_collection"}}},"description":"List Access groups response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List Access groups response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Access groups","tags":["Access groups"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write","Access: Organizations, Identity Providers, and Groups Read"]},"post":{"description":"Creates a new Access group.","operationId":"access-groups-create-an-access-group","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"exclude":{"$ref":"#/components/schemas/access_exclude"},"include":{"$ref":"#/components/schemas/access_include"},"is_default":{"$ref":"#/components/schemas/access_is_default"},"name":{"$ref":"#/components/schemas/access_groups_components-schemas-name"},"require":{"$ref":"#/components/schemas/access_require"}},"required":["name","include"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_groups_components-schemas-single_response"}}},"description":"Create an Access group response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Create an Access group response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create an Access group","tags":["Access groups"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write"]}},"/accounts/{account_id}/access/groups/{group_id}":{"delete":{"description":"Deletes an Access group.","operationId":"access-groups-delete-an-access-group","parameters":[{"in":"path","name":"group_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_id_response"}}},"description":"Delete an Access group response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Delete an Access group response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete an Access group","tags":["Access groups"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write"]},"get":{"description":"Fetches a single Access group.","operationId":"access-groups-get-an-access-group","parameters":[{"in":"path","name":"group_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_groups_components-schemas-single_response"}}},"description":"Get an Access group response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get an Access group response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get an Access group","tags":["Access groups"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write","Access: Organizations, Identity Providers, and Groups Read"]},"put":{"description":"Updates a configured Access group.","operationId":"access-groups-update-an-access-group","parameters":[{"in":"path","name":"group_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"exclude":{"$ref":"#/components/schemas/access_exclude"},"include":{"$ref":"#/components/schemas/access_include"},"is_default":{"$ref":"#/components/schemas/access_is_default"},"name":{"$ref":"#/components/schemas/access_groups_components-schemas-name"},"require":{"$ref":"#/components/schemas/access_require"}},"required":["name","include"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_groups_components-schemas-single_response"}}},"description":"Update an Access group response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update an Access group response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an Access group","tags":["Access groups"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write"]}},"/accounts/{account_id}/access/identity_providers":{"get":{"description":"Lists all configured identity providers.","operationId":"access-identity-providers-list-access-identity-providers","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_response_collection"}}},"description":"List Access identity providers response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List Access identity providers response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Access identity providers","tags":["Access identity providers"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write","Access: Organizations, Identity Providers, and Groups Read"]},"post":{"description":"Adds a new identity provider to Access.","operationId":"access-identity-providers-add-an-access-identity-provider","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_identity-providers"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_components-schemas-single_response"}}},"description":"Add an Access identity provider response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Add an Access identity provider response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Add an Access identity provider","tags":["Access identity providers"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write"]}},"/accounts/{account_id}/access/identity_providers/{identity_provider_id}":{"delete":{"description":"Deletes an identity provider from Access.","operationId":"access-identity-providers-delete-an-access-identity-provider","parameters":[{"in":"path","name":"identity_provider_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_id_response"}}},"description":"Delete an Access identity provider response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Delete an Access identity provider response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete an Access identity provider","tags":["Access identity providers"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write"]},"get":{"description":"Fetches a configured identity provider.","operationId":"access-identity-providers-get-an-access-identity-provider","parameters":[{"in":"path","name":"identity_provider_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_components-schemas-single_response"}}},"description":"Get an Access identity provider response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get an Access identity provider response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get an Access identity provider","tags":["Access identity providers"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write","Access: Organizations, Identity Providers, and Groups Read"]},"put":{"description":"Updates a configured identity provider.","operationId":"access-identity-providers-update-an-access-identity-provider","parameters":[{"in":"path","name":"identity_provider_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_identity-providers"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_components-schemas-single_response"}}},"description":"Update an Access identity provider response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update an Access identity provider response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an Access identity provider","tags":["Access identity providers"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write"]}},"/accounts/{account_id}/access/keys":{"get":{"description":"Gets the Access key rotation settings for an account.","operationId":"access-key-configuration-get-the-access-key-configuration","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_keys_components-schemas-single_response"}}},"description":"Get the Access key configuration response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get the Access key configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get the Access key configuration","tags":["Access key configuration"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write","Access: Organizations, Identity Providers, and Groups Read"]},"put":{"description":"Updates the Access key rotation settings for an account.","operationId":"access-key-configuration-update-the-access-key-configuration","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"key_rotation_interval_days":{"$ref":"#/components/schemas/access_key_rotation_interval_days"}},"required":["key_rotation_interval_days"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_keys_components-schemas-single_response"}}},"description":"Update the Access key configuration response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update the Access key configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update the Access key configuration","tags":["Access key configuration"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write"]}},"/accounts/{account_id}/access/keys/rotate":{"post":{"description":"Perfoms a key rotation for an account.","operationId":"access-key-configuration-rotate-access-keys","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_keys_components-schemas-single_response"}}},"description":"Rotate Access keys response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Rotate Access keys response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Rotate Access keys","tags":["Access key configuration"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write"]}},"/accounts/{account_id}/access/logs/access_requests":{"get":{"description":"Gets a list of Access authentication audit logs for an account.","operationId":"access-authentication-logs-get-access-authentication-logs","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}},{"description":"The maximum number of log entries to retrieve.","example":25,"in":"query","name":"limit","schema":{"default":25,"type":"integer"}},{"description":"The chronological sorting order for the logs.","example":"desc","in":"query","name":"direction","schema":{"default":"desc","enum":["desc","asc"]}},{"description":"The earliest event timestamp to query.","in":"query","name":"since","schema":{"example":"2020-07-01T05:20:00Z","format":"date-time","type":"string"}},{"description":"The latest event timestamp to query.","in":"query","name":"until","schema":{"example":"2020-10-01T05:20:00Z","format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_access-requests_components-schemas-response_collection"}}},"description":"Get Access authentication logs response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get Access authentication logs response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Access authentication logs","tags":["Access authentication logs"],"x-api-token-group":["Access: Audit Logs Read"]}},"/accounts/{account_id}/access/organizations":{"get":{"description":"Returns the configuration for your Zero Trust organization.","operationId":"zero-trust-organization-get-your-zero-trust-organization","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_single_response"}}},"description":"Get your Zero Trust organization response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get your Zero Trust organization response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get your Zero Trust organization","tags":["Zero Trust organization"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Revoke","Access: Organizations, Identity Providers, and Groups Write","Access: Organizations, Identity Providers, and Groups Read"]},"post":{"description":"Sets up a Zero Trust organization for your account.","operationId":"zero-trust-organization-create-your-zero-trust-organization","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"allow_authenticate_via_warp":{"$ref":"#/components/schemas/access_allow_authenticate_via_warp"},"auth_domain":{"$ref":"#/components/schemas/access_auth_domain"},"auto_redirect_to_identity":{"$ref":"#/components/schemas/access_auto_redirect_to_identity"},"is_ui_read_only":{"$ref":"#/components/schemas/access_is_ui_read_only"},"login_design":{"$ref":"#/components/schemas/access_login_design"},"name":{"$ref":"#/components/schemas/access_name"},"session_duration":{"$ref":"#/components/schemas/access_session_duration"},"ui_read_only_toggle_reason":{"$ref":"#/components/schemas/access_ui_read_only_toggle_reason"},"user_seat_expiration_inactive_time":{"$ref":"#/components/schemas/access_user_seat_expiration_inactive_time"},"warp_auth_session_duration":{"$ref":"#/components/schemas/access_warp_auth_session_duration"}},"required":["name","auth_domain"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_single_response"}}},"description":"Create your Zero Trust organization response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Create your Zero Trust organization response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create your Zero Trust organization","tags":["Zero Trust organization"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write"]},"put":{"description":"Updates the configuration for your Zero Trust organization.","operationId":"zero-trust-organization-update-your-zero-trust-organization","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"allow_authenticate_via_warp":{"$ref":"#/components/schemas/access_allow_authenticate_via_warp"},"auth_domain":{"$ref":"#/components/schemas/access_auth_domain"},"auto_redirect_to_identity":{"$ref":"#/components/schemas/access_auto_redirect_to_identity"},"custom_pages":{"$ref":"#/components/schemas/access_custom_pages"},"is_ui_read_only":{"$ref":"#/components/schemas/access_is_ui_read_only"},"login_design":{"$ref":"#/components/schemas/access_login_design"},"name":{"$ref":"#/components/schemas/access_name"},"session_duration":{"$ref":"#/components/schemas/access_session_duration"},"ui_read_only_toggle_reason":{"$ref":"#/components/schemas/access_ui_read_only_toggle_reason"},"user_seat_expiration_inactive_time":{"$ref":"#/components/schemas/access_user_seat_expiration_inactive_time"},"warp_auth_session_duration":{"$ref":"#/components/schemas/access_warp_auth_session_duration"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_single_response"}}},"description":"Update your Zero Trust organization response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update your Zero Trust organization response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update your Zero Trust organization","tags":["Zero Trust organization"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write"]}},"/accounts/{account_id}/access/organizations/doh":{"get":{"description":"Returns the DoH settings for your Zero Trust organization.","operationId":"zero-trust-organization-get-your-zero-trust-organization-doh-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/access_schemas-single_response"},{"properties":{"result":{"properties":{"jwt_duration":{"description":"The duration the DoH JWT is valid for. Must be in the format `300ms` or `2h45m`. Valid time units are: ns, us (or µs), ms, s, m, h. Note that the maximum duration for this setting is the same as the key rotation period on the account.","example":"800h","type":"string"}}}}}]}}},"description":"Get your Zero Trust organization DoH settings response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get your Zero Trust organization DoH settings response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get your Zero Trust organization DoH settings","tags":["Zero Trust organization"]},"put":{"description":"Updates the DoH settings for your Zero Trust organization.","operationId":"zero-trust-organization-update-your-zero-trust-organization-doh-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"jwt_duration":{"$ref":"#/components/schemas/access_doh_jwt_duration"},"service_token_id":{"description":"The uuid of the service token you want to use for DoH authentication","example":"f174e90a-fafe-4643-bbbc-4a0ed4fc8415","type":"string"}}}}}},"responses":{"201":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/access_schemas-single_response"},{"properties":{"result":{"properties":{"jwt_duration":{"$ref":"#/components/schemas/access_doh_jwt_duration"}}}}}]}}},"description":"Update your Zero Trust organization DoH settings response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update your Zero Trust organization DoH settings response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update your Zero Trust organization DoH settings","tags":["Zero Trust organization"]}},"/accounts/{account_id}/access/organizations/revoke_user":{"post":{"description":"Revokes a user's access across all applications.","operationId":"zero-trust-organization-revoke-all-access-tokens-for-a-user","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The email of the user to revoke.","example":"test@example.com","type":"string"}},"required":["email"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_empty_response"}}},"description":"Revoke all Access tokens for a user response"},"4xx":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Revoke all Access tokens for a user response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Revoke all Access tokens for a user","tags":["Zero Trust organization"]}},"/accounts/{account_id}/access/policies":{"get":{"description":"Lists Access reusable policies.","operationId":"access-policies-list-access-reusable-policies","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_reusable-policies_components-schemas-response_collection"}}},"description":"List Access reusable policies response."},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List Access reusable policies response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Access reusable policies","tags":["Access reusable policies"],"x-api-token-group":["Access: Apps and Policies Write","Access: Apps and Policies Read"]},"post":{"description":"Creates a new Access reusable policy.","operationId":"access-policies-create-an-access-reusable-policy","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_policy_req"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_reusable-policies_components-schemas-single_response"}}},"description":"Create an Access reusable policy response."},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Create an Access reusable policy response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create an Access reusable policy","tags":["Access reusable policies"],"x-api-token-group":["Access: Apps and Policies Write"]}},"/accounts/{account_id}/access/policies/{policy_id}":{"delete":{"description":"Deletes an Access reusable policy.","operationId":"access-policies-delete-an-access-reusable-policy","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}},{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/access_schemas-uuid"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_reusable-policies_components-schemas-id_response"}}},"description":"Delete an Access reusable policy response."},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Delete an Access reusable policy response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete an Access reusable policy","tags":["Access reusable policies"],"x-api-token-group":["Access: Apps and Policies Write"]},"get":{"description":"Fetches a single Access reusable policy.","operationId":"access-policies-get-an-access-reusable-policy","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}},{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/access_schemas-uuid"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_reusable-policies_components-schemas-single_response"}}},"description":"Get an Access reusable policy response."},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get an Access reusable policy response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get an Access reusable policy","tags":["Access reusable policies"],"x-api-token-group":["Access: Apps and Policies Write","Access: Apps and Policies Read"]},"put":{"description":"Updates a Access reusable policy.","operationId":"access-policies-update-an-access-reusable-policy","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}},{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/access_schemas-uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_policy_req"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_reusable-policies_components-schemas-single_response"}}},"description":"Update an Access reusable policy response."},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update an Access reusable policy response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an Access reusable policy","tags":["Access reusable policies"],"x-api-token-group":["Access: Apps and Policies Write"]}},"/accounts/{account_id}/access/policy-tests":{"post":{"description":"Starts an Access policy test.","operationId":"access-policy-tests","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_policy_resp"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_policy_init_resp"}}},"description":"Start Access policy test response."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Start Access policy test response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Start Access policy test","tags":["Access policy tester"]}},"/accounts/{account_id}/access/policy-tests/{policy_test_id}":{"get":{"description":"Fetches the current status of a given Access policy test.","operationId":"access-policy-tests-get-an-update","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}},{"in":"path","name":"policy_test_id","required":true,"schema":{"$ref":"#/components/schemas/access_policy_test_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_policy_update_resp"}}},"description":"Get an Access policy test update response."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get an Access policy test update response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get the current status of a given Access policy test","tags":["Access policy tester"]}},"/accounts/{account_id}/access/policy-tests/{policy_test_id}/users":{"get":{"description":"Fetches a single page of user results from an Access policy test.","operationId":"access-policy-tests-get-a-user-page","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}},{"in":"path","name":"policy_test_id","required":true,"schema":{"$ref":"#/components/schemas/access_policy_test_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_policy_users_resp"}}},"description":"Get an Access policy tester users page response."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get an Access policy tester users page response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get an Access policy test users page","tags":["Access policy tester"]}},"/accounts/{account_id}/access/seats":{"patch":{"description":"Removes a user from a Zero Trust seat when both `access_seat` and `gateway_seat` are set to false.","operationId":"zero-trust-seats-update-a-user-seat","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_seats_definition"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_seats_components-schemas-response_collection"}}},"description":"Update a user seat response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update a user seat response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a user seat","tags":["Zero Trust seats"],"x-api-token-group":["Zero Trust: Seats Write"]}},"/accounts/{account_id}/access/service_tokens":{"get":{"description":"Lists all service tokens.","operationId":"access-service-tokens-list-service-tokens","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_components-schemas-response_collection"}}},"description":"List service tokens response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List service tokens response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List service tokens","tags":["Access service tokens"],"x-api-token-group":["Access: Service Tokens Write","Access: Service Tokens Read"]},"post":{"description":"Generates a new service token. **Note:** This is the only time you can get the Client Secret. If you lose the Client Secret, you will have to rotate the Client Secret or create a new service token.","operationId":"access-service-tokens-create-a-service-token","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"duration":{"$ref":"#/components/schemas/access_duration"},"name":{"$ref":"#/components/schemas/access_schemas-name"}},"required":["name"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_create_response"}}},"description":"Create a service token response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Create a service token response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a service token","tags":["Access service tokens"],"x-api-token-group":["Access: Service Tokens Write"]}},"/accounts/{account_id}/access/service_tokens/{service_token_id}":{"delete":{"description":"Deletes a service token.","operationId":"access-service-tokens-delete-a-service-token","parameters":[{"in":"path","name":"service_token_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_schemas-single_response"}}},"description":"Delete a service token response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Delete a service token response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a service token","tags":["Access service tokens"],"x-api-token-group":["Access: Service Tokens Write"]},"get":{"description":"Fetches a single service token.","operationId":"access-service-tokens-get-a-service-token","parameters":[{"in":"path","name":"service_token_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_schemas-single_response"}}},"description":"Get a service token response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get a service token response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a service token","tags":["Access service tokens"],"x-api-token-group":["Access: Service Tokens Write","Access: Service Tokens Read"]},"put":{"description":"Updates a configured service token.","operationId":"access-service-tokens-update-a-service-token","parameters":[{"in":"path","name":"service_token_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"duration":{"$ref":"#/components/schemas/access_duration"},"name":{"$ref":"#/components/schemas/access_schemas-name"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_schemas-single_response"}}},"description":"Update a service token response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update a service token response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a service token","tags":["Access service tokens"],"x-api-token-group":["Access: Service Tokens Write"]}},"/accounts/{account_id}/access/service_tokens/{service_token_id}/refresh":{"post":{"description":"Refreshes the expiration of a service token.","operationId":"access-service-tokens-refresh-a-service-token","parameters":[{"in":"path","name":"service_token_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_schemas-single_response"}}},"description":"Refresh a service token response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Refresh a service token response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Refresh a service token","tags":["Access service tokens"],"x-api-token-group":["Access: Service Tokens Write"]}},"/accounts/{account_id}/access/service_tokens/{service_token_id}/rotate":{"post":{"description":"Generates a new Client Secret for a service token and revokes the old one.","operationId":"access-service-tokens-rotate-a-service-token","parameters":[{"in":"path","name":"service_token_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_create_response"}}},"description":"Rotate a service token response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Rotate a service token response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Rotate a service token","tags":["Access service tokens"]}},"/accounts/{account_id}/access/tags":{"get":{"description":"List tags","operationId":"access-tags-list-tags","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_tags_components-schemas-response_collection"}}},"description":"List tags response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List tags response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List tags","tags":["Access tags"],"x-api-token-group":["Access: Apps and Policies Revoke","Access: Apps and Policies Write","Access: Apps and Policies Read"]},"post":{"description":"Create a tag","operationId":"access-tags-create-tag","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_tags_components-schemas-name"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_tags_components-schemas-single_response"}}},"description":"Create a tag response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Create a tag response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a tag","tags":["Access tags"],"x-api-token-group":["Access: Apps and Policies Write"]}},"/accounts/{account_id}/access/tags/{tag_name}":{"delete":{"description":"Delete a tag","operationId":"access-tags-delete-a-tag","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}},{"in":"path","name":"tag_name","required":true,"schema":{"$ref":"#/components/schemas/access_tags_components-schemas-name"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_name_response"}}},"description":"Delete a tag response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Delete a tag response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a tag","tags":["Access tags"],"x-api-token-group":["Access: Apps and Policies Write"]},"get":{"description":"Get a tag","operationId":"access-tags-get-a-tag","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}},{"in":"path","name":"tag_name","required":true,"schema":{"$ref":"#/components/schemas/access_tags_components-schemas-name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_tags_components-schemas-single_response"}}},"description":"Get a tag response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get a tag response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a tag","tags":["Access tags"],"x-api-token-group":["Access: Apps and Policies Write","Access: Apps and Policies Read"]},"put":{"description":"Update a tag","operationId":"access-tags-update-a-tag","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}},{"in":"path","name":"tag_name","required":true,"schema":{"$ref":"#/components/schemas/access_tags_components-schemas-name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_tag_without_app_count"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_tags_components-schemas-single_response"}}},"description":"Update a tag response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update a tag response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a tag","tags":["Access tags"],"x-api-token-group":["Access: Apps and Policies Write"]}},"/accounts/{account_id}/access/users":{"get":{"description":"Gets a list of users for an account.","operationId":"zero-trust-users-get-users","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_users_components-schemas-response_collection"}}},"description":"Get users response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get users response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get users","tags":["Zero Trust users"],"x-api-token-group":["Access: Audit Logs Read"]}},"/accounts/{account_id}/access/users/{user_id}/active_sessions":{"get":{"description":"Get active sessions for a single user.","operationId":"zero-trust-users-get-active-sessions","parameters":[{"in":"path","name":"user_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_active_sessions_response"}}},"description":"Get active sessions response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get active sessions response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get active sessions","tags":["Zero Trust users"]}},"/accounts/{account_id}/access/users/{user_id}/active_sessions/{nonce}":{"get":{"description":"Get an active session for a single user.","operationId":"zero-trust-users-get-active-session","parameters":[{"in":"path","name":"user_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}},{"in":"path","name":"nonce","required":true,"schema":{"$ref":"#/components/schemas/access_nonce"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_active_session_response"}}},"description":"Get active session response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get active session response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get single active session","tags":["Zero Trust users"]}},"/accounts/{account_id}/access/users/{user_id}/failed_logins":{"get":{"description":"Get all failed login attempts for a single user.","operationId":"zero-trust-users-get-failed-logins","parameters":[{"in":"path","name":"user_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_failed_login_response"}}},"description":"Get failed logins response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get failed logins response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get failed logins","tags":["Zero Trust users"],"x-api-token-group":["Access: Audit Logs Read"]}},"/accounts/{account_id}/access/users/{user_id}/last_seen_identity":{"get":{"description":"Get last seen identity for a single user.","operationId":"zero-trust-users-get-last-seen-identity","parameters":[{"in":"path","name":"user_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_last_seen_identity_response"}}},"description":"Get active session response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get active session response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get last seen identity","tags":["Zero Trust users"]}},"/accounts/{account_id}/addressing/address_maps":{"get":{"description":"List all address maps owned by the account.","operationId":"ip-address-management-address-maps-list-address-maps","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_components-schemas-response_collection"}}},"description":"List Address Maps response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_components-schemas-response_collection"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"List Address Maps response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Address Maps","tags":["IP Address Management Address Maps"],"x-api-token-group":["Address Maps Write","Address Maps Read"]},"post":{"description":"Create a new address map under the account.","operationId":"ip-address-management-address-maps-create-address-map","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"$ref":"#/components/schemas/addressing_schemas-description"},"enabled":{"$ref":"#/components/schemas/addressing_enabled"},"ips":{"items":{"$ref":"#/components/schemas/addressing_ip_address"},"type":"array"},"memberships":{"$ref":"#/components/schemas/addressing_memberships"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_full_response"}}},"description":"Create Address Map response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_full_response"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Create Address Map response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create Address Map","tags":["IP Address Management Address Maps"],"x-api-token-group":["Address Maps Write"]}},"/accounts/{account_id}/addressing/address_maps/{address_map_id}":{"delete":{"description":"Delete a particular address map owned by the account. An Address Map must be disabled before it can be deleted.","operationId":"ip-address-management-address-maps-delete-address-map","parameters":[{"in":"path","name":"address_map_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_api-response-collection"}}},"description":"Delete Address Map response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-collection"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Delete Address Map response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Address Map","tags":["IP Address Management Address Maps"],"x-api-token-group":["Address Maps Write"]},"get":{"description":"Show a particular address map owned by the account.","operationId":"ip-address-management-address-maps-address-map-details","parameters":[{"in":"path","name":"address_map_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_full_response"}}},"description":"Address Map Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_full_response"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Address Map Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Address Map Details","tags":["IP Address Management Address Maps"],"x-api-token-group":["Address Maps Write","Address Maps Read"]},"patch":{"description":"Modify properties of an address map owned by the account.","operationId":"ip-address-management-address-maps-update-address-map","parameters":[{"in":"path","name":"address_map_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"default_sni":{"$ref":"#/components/schemas/addressing_default_sni"},"description":{"$ref":"#/components/schemas/addressing_schemas-description"},"enabled":{"$ref":"#/components/schemas/addressing_enabled"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_components-schemas-single_response"}}},"description":"Update Address Map response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_components-schemas-single_response"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Update Address Map response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Address Map","tags":["IP Address Management Address Maps"],"x-api-token-group":["Address Maps Write"]}},"/accounts/{account_id}/addressing/address_maps/{address_map_id}/accounts/{account_id}":{"delete":{"description":"Remove an account as a member of a particular address map.","operationId":"ip-address-management-address-maps-remove-an-account-membership-from-an-address-map","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"address_map_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_api-response-collection"}}},"description":"Remove an account membership from an Address Map response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-collection"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Remove an account membership from an Address Map response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Remove an account membership from an Address Map","tags":["IP Address Management Address Maps"]},"put":{"description":"Add an account as a member of a particular address map.","operationId":"ip-address-management-address-maps-add-an-account-membership-to-an-address-map","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"address_map_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_api-response-collection"}}},"description":"Add an account membership to an Address Map response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-collection"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Add an account membership to an Address Map response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Add an account membership to an Address Map","tags":["IP Address Management Address Maps"]}},"/accounts/{account_id}/addressing/address_maps/{address_map_id}/ips/{ip_address}":{"delete":{"description":"Remove an IP from a particular address map.","operationId":"ip-address-management-address-maps-remove-an-ip-from-an-address-map","parameters":[{"in":"path","name":"ip_address","required":true,"schema":{"$ref":"#/components/schemas/addressing_ip_address"}},{"in":"path","name":"address_map_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_api-response-collection"}}},"description":"Remove an IP from an Address Map response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-collection"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Remove an IP from an Address Map response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Remove an IP from an Address Map","tags":["IP Address Management Address Maps"],"x-api-token-group":["Address Maps Write"]},"put":{"description":"Add an IP from a prefix owned by the account to a particular address map.","operationId":"ip-address-management-address-maps-add-an-ip-to-an-address-map","parameters":[{"in":"path","name":"ip_address","required":true,"schema":{"$ref":"#/components/schemas/addressing_ip_address"}},{"in":"path","name":"address_map_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_api-response-collection"}}},"description":"Add an IP to an Address Map response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-collection"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Add an IP to an Address Map response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Add an IP to an Address Map","tags":["IP Address Management Address Maps"],"x-api-token-group":["Address Maps Write"]}},"/accounts/{account_id}/addressing/address_maps/{address_map_id}/zones/{zone_id}":{"delete":{"description":"Remove a zone as a member of a particular address map.","operationId":"ip-address-management-address-maps-remove-a-zone-membership-from-an-address-map","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"address_map_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_api-response-collection"}}},"description":"Remove a zone membership from an Address Map response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-collection"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Remove a zone membership from an Address Map response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Remove a zone membership from an Address Map","tags":["IP Address Management Address Maps"]},"put":{"description":"Add a zone as a member of a particular address map.","operationId":"ip-address-management-address-maps-add-a-zone-membership-to-an-address-map","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"address_map_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_api-response-collection"}}},"description":"Add a zone membership to an Address Map response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-collection"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Add a zone membership to an Address Map response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Add a zone membership to an Address Map","tags":["IP Address Management Address Maps"]}},"/accounts/{account_id}/addressing/loa_documents":{"post":{"description":"Submit LOA document (pdf format) under the account.","operationId":"ip-address-management-prefixes-upload-loa-document","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"loa_document":{"description":"LOA document to upload.","example":"@document.pdf","type":"string"}},"required":["loa_document"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_loa_upload_response"}}},"description":"Upload LOA Document response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_loa_upload_response"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Upload LOA Document response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Upload LOA Document","tags":["IP Address Management Prefixes"],"x-api-token-group":["Magic Transit Prefix Write"]}},"/accounts/{account_id}/addressing/loa_documents/{loa_document_id}/download":{"get":{"description":"Download specified LOA document under the account.","operationId":"ip-address-management-prefixes-download-loa-document","parameters":[{"in":"path","name":"loa_document_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_loa_document_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"responses":{"200":{"content":{"application/pdf":{"schema":{"format":"binary","type":"string"}}},"description":"Download LOA Document response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Download LOA Document response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Download LOA Document","tags":["IP Address Management Prefixes"],"x-api-token-group":["Magic Transit Prefix Read","Magic Transit Prefix Write"]}},"/accounts/{account_id}/addressing/prefixes":{"get":{"description":"List all prefixes owned by the account.","operationId":"ip-address-management-prefixes-list-prefixes","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_response_collection"}}},"description":"List Prefixes response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_response_collection"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"List Prefixes response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Prefixes","tags":["IP Address Management Prefixes"],"x-api-token-group":["Magic Transit Prefix Read","Magic Transit Prefix Write","IP Prefixes: Write","IP Prefixes: Read","IP Prefixes: BGP On Demand Write","IP Prefixes: BGP On Demand Read"]},"post":{"description":"Add a new prefix under the account.","operationId":"ip-address-management-prefixes-add-prefix","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"asn":{"$ref":"#/components/schemas/addressing_asn"},"cidr":{"$ref":"#/components/schemas/addressing_cidr"},"loa_document_id":{"$ref":"#/components/schemas/addressing_loa_document_identifier"}},"required":["cidr","loa_document_id","asn"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_single_response"}}},"description":"Add Prefix response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_single_response"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Add Prefix response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Add Prefix","tags":["IP Address Management Prefixes"]}},"/accounts/{account_id}/addressing/prefixes/{prefix_id}":{"delete":{"description":"Delete an unapproved prefix owned by the account.","operationId":"ip-address-management-prefixes-delete-prefix","parameters":[{"in":"path","name":"prefix_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_api-response-collection"}}},"description":"Delete Prefix response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-collection"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Delete Prefix response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Prefix","tags":["IP Address Management Prefixes"],"x-api-token-group":["Magic Transit Prefix Write"]},"get":{"description":"List a particular prefix owned by the account.","operationId":"ip-address-management-prefixes-prefix-details","parameters":[{"in":"path","name":"prefix_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_single_response"}}},"description":"Prefix Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_single_response"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Prefix Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Prefix Details","tags":["IP Address Management Prefixes"],"x-api-token-group":["Magic Transit Prefix Read","Magic Transit Prefix Write","IP Prefixes: Write","IP Prefixes: Read","IP Prefixes: BGP On Demand Write","IP Prefixes: BGP On Demand Read"]},"patch":{"description":"Modify the description for a prefix owned by the account.","operationId":"ip-address-management-prefixes-update-prefix-description","parameters":[{"in":"path","name":"prefix_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"$ref":"#/components/schemas/addressing_description"}},"required":["description"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_single_response"}}},"description":"Update Prefix Description response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_single_response"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Update Prefix Description response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Prefix Description","tags":["IP Address Management Prefixes"],"x-api-token-group":["Magic Transit Prefix Write","IP Prefixes: Write"]}},"/accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/prefixes":{"get":{"description":"List all BGP Prefixes within the specified IP Prefix. BGP Prefixes are used to control which specific subnets are advertised to the Internet. It is possible to advertise subnets more specific than an IP Prefix by creating more specific BGP Prefixes.","operationId":"ip-address-management-prefixes-list-bgp-prefixes","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"prefix_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_response_collection_bgp"}}},"description":"List BGP Prefixes response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_response_collection_bgp"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"List BGP Prefixes response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List BGP Prefixes","tags":["IP Address Management BGP Prefixes"],"x-api-token-group":["Magic Transit Prefix Read","Magic Transit Prefix Write","IP Prefixes: Write","IP Prefixes: Read","IP Prefixes: BGP On Demand Write","IP Prefixes: BGP On Demand Read"]}},"/accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/prefixes/{bgp_prefix_id}":{"get":{"description":"Retrieve a single BGP Prefix according to its identifier","operationId":"ip-address-management-prefixes-fetch-bgp-prefix","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"prefix_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"bgp_prefix_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_single_response_bgp"}}},"description":"Fetch BGP Prefix response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_single_response_bgp"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Fetch BGP Prefix response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Fetch BGP Prefix","tags":["IP Address Management BGP Prefixes"],"x-api-token-group":["Magic Transit Prefix Read","Magic Transit Prefix Write","IP Prefixes: Write","IP Prefixes: Read","IP Prefixes: BGP On Demand Write","IP Prefixes: BGP On Demand Read"]},"patch":{"description":"Update the properties of a BGP Prefix, such as the on demand advertisement status (advertised or withdrawn).","operationId":"ip-address-management-prefixes-update-bgp-prefix","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"prefix_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"bgp_prefix_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_bgp_prefix_update_advertisement"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_single_response_bgp"}}},"description":"Update BGP Prefix response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_single_response_bgp"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Update BGP Prefix response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update BGP Prefix","tags":["IP Address Management BGP Prefixes"],"x-api-token-group":["Magic Transit Prefix Write","IP Prefixes: Write","IP Prefixes: BGP On Demand Write"]}},"/accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/status":{"get":{"description":"List the current advertisement state for a prefix.","operationId":"ip-address-management-dynamic-advertisement-get-advertisement-status","parameters":[{"in":"path","name":"prefix_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_advertised_response"}}},"description":"Get Advertisement Status response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_advertised_response"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Get Advertisement Status response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Advertisement Status","tags":["IP Address Management Dynamic Advertisement"],"x-api-token-group":["Magic Transit Prefix Read","Magic Transit Prefix Write","IP Prefixes: Write","IP Prefixes: Read","IP Prefixes: BGP On Demand Write","IP Prefixes: BGP On Demand Read"]},"patch":{"description":"Advertise or withdraw BGP route for a prefix.","operationId":"ip-address-management-dynamic-advertisement-update-prefix-dynamic-advertisement-status","parameters":[{"in":"path","name":"prefix_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"advertised":{"$ref":"#/components/schemas/addressing_schemas-advertised"}},"required":["advertised"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_advertised_response"}}},"description":"Update Prefix Dynamic Advertisement Status response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_advertised_response"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Update Prefix Dynamic Advertisement Status response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Prefix Dynamic Advertisement Status","tags":["IP Address Management Dynamic Advertisement"],"x-api-token-group":["Magic Transit Prefix Write","IP Prefixes: Write","IP Prefixes: BGP On Demand Write"]}},"/accounts/{account_id}/addressing/prefixes/{prefix_id}/bindings":{"get":{"description":"List the Cloudflare services this prefix is currently bound to. Traffic sent to an address within an IP prefix will be routed to the Cloudflare service of the most-specific Service Binding matching the address.\n**Example:** binding `192.0.2.0/24` to Cloudflare Magic Transit and `192.0.2.1/32` to the Cloudflare CDN would route traffic for `192.0.2.1` to the CDN, and traffic for all other IPs in the prefix to Cloudflare Magic Transit.\n","operationId":"ip-address-management-service-bindings-list-service-bindings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"prefix_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/addressing_service_binding"},"type":"array"}}}]}}},"description":"Service Bindings attached to the Prefix"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_api-response-common-failure"}}},"description":"List Service Bindings response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Service Bindings","tags":["IP Address Management Service Bindings"],"x-api-token-group":["IP Prefixes: Write","IP Prefixes: Read"]},"post":{"description":"Creates a new Service Binding, routing traffic to IPs within the given CIDR to a service running on Cloudflare's network.\n**Note:** This API may only be used on prefixes currently configured with a Magic Transit service binding, and only allows creating service bindings for the Cloudflare CDN or Cloudflare Spectrum.\n","operationId":"ip-address-management-service-bindings-create-service-binding","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"prefix_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_create_binding_request"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/addressing_service_binding"}}}]}}},"description":"The created Service Binding"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_api-response-common-failure"}}},"description":"Create Service Binding response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create Service Binding","tags":["IP Address Management Service Bindings"],"x-api-token-group":["IP Prefixes: Write"]}},"/accounts/{account_id}/addressing/prefixes/{prefix_id}/bindings/{binding_id}":{"delete":{"description":"Delete a Service Binding","operationId":"ip-address-management-service-bindings-delete-service-binding","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"prefix_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"binding_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_api-response-common"}}},"description":"Service Binding deleted"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_api-response-common-failure"}}},"description":"Delete Service Binding response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Service Binding","tags":["IP Address Management Service Bindings"],"x-api-token-group":["IP Prefixes: Write"]},"get":{"description":"Fetch a single Service Binding","operationId":"ip-address-management-service-bindings-get-service-binding","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"prefix_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"binding_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/addressing_service_binding"}}}]}}},"description":"The Service Binding with the requested ID"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_api-response-common-failure"}}},"description":"Get Service Binding response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Service Binding","tags":["IP Address Management Service Bindings"],"x-api-token-group":["IP Prefixes: Write","IP Prefixes: Read"]}},"/accounts/{account_id}/addressing/prefixes/{prefix_id}/delegations":{"get":{"description":"List all delegations for a given account IP prefix.","operationId":"ip-address-management-prefix-delegation-list-prefix-delegations","parameters":[{"in":"path","name":"prefix_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_schemas-response_collection"}}},"description":"List Prefix Delegations response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_schemas-response_collection"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"List Prefix Delegations response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Prefix Delegations","tags":["IP Address Management Prefix Delegation"]},"post":{"description":"Create a new account delegation for a given IP prefix.","operationId":"ip-address-management-prefix-delegation-create-prefix-delegation","parameters":[{"in":"path","name":"prefix_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"cidr":{"$ref":"#/components/schemas/addressing_cidr"},"delegated_account_id":{"$ref":"#/components/schemas/addressing_delegated_account_identifier"}},"required":["cidr","delegated_account_id"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_schemas-single_response"}}},"description":"Create Prefix Delegation response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_schemas-single_response"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Create Prefix Delegation response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create Prefix Delegation","tags":["IP Address Management Prefix Delegation"],"x-api-token-group":["IP Prefixes: Write"]}},"/accounts/{account_id}/addressing/prefixes/{prefix_id}/delegations/{delegation_id}":{"delete":{"description":"Delete an account delegation for a given IP prefix.","operationId":"ip-address-management-prefix-delegation-delete-prefix-delegation","parameters":[{"in":"path","name":"delegation_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_delegation_identifier"}},{"in":"path","name":"prefix_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_id_response"}}},"description":"Delete Prefix Delegation response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_id_response"},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Delete Prefix Delegation response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Prefix Delegation","tags":["IP Address Management Prefix Delegation"],"x-api-token-group":["IP Prefixes: Write"]}},"/accounts/{account_id}/addressing/regional_hostnames/regions":{"get":{"description":"List all Regional Services regions available for use by this account.","operationId":"dls-account-regional-hostnames-account-list-regions","parameters":[{"$ref":"#/components/parameters/dls_account_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dls_api-response-collection"},{"properties":{"result":{"items":{"properties":{"key":{"$ref":"#/components/schemas/dls_region_key"},"label":{"description":"Human-readable text label for the region","example":"Canada","type":"string"}},"type":"object"},"type":"array"}}}]}}},"description":"List regions response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dls_api-response-common-failure"}]}}},"description":"Failure to list regions"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"List Regions","tags":["DLS Regional Services"],"x-api-token-group":["DNS Read"]}},"/accounts/{account_id}/addressing/services":{"get":{"description":"Bring-Your-Own IP (BYOIP) prefixes onboarded to Cloudflare must be bound to a service running on the Cloudflare network to enable a Cloudflare product on the IP addresses. This endpoint can be used as a reference of available services on the Cloudflare network, and their service IDs.\n","operationId":"ip-address-management-service-bindings-list-services","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/addressing_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-common"},{"properties":{"result":{"items":{"properties":{"id":{"$ref":"#/components/schemas/addressing_service_identifier"},"name":{"$ref":"#/components/schemas/addressing_service_name"}}},"type":"array"}}}]}}},"description":"Service names and IDs"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/addressing_api-response-common-failure"}}},"description":"List Services response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Services","tags":["IP Address Management Service Bindings"],"x-api-token-group":["IP Prefixes: Write","IP Prefixes: Read"]}},"/accounts/{account_id}/ai-gateway/gateways":{"get":{"operationId":"aig-config-list-gateway","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"3ebbcb006d4d46d7bb6a8c7f14676cb0","type":"string"}},{"in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"in":"query","name":"per_page","schema":{"default":20,"maximum":100,"minimum":5,"type":"integer"}},{"description":"Order By Column Name","in":"query","name":"order_by","schema":{"description":"Order By Column Name","type":"string"}},{"description":"Order By Direction","in":"query","name":"order_by_direction","schema":{"default":"asc","description":"Order By Direction","enum":["asc","desc"],"type":"string"}},{"in":"query","name":"id","schema":{"description":"gateway id","example":"my-gateway","maxLength":64,"minLength":1,"pattern":"^[a-z0-9_]+(?:-[a-z0-9_]+)*$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"items":{"properties":{"cache_invalidate_on_update":{"type":"boolean"},"cache_ttl":{"minimum":0,"nullable":true,"type":"integer"},"collect_logs":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"id":{"description":"gateway id","example":"my-gateway","maxLength":64,"minLength":1,"pattern":"^[a-z0-9_]+(?:-[a-z0-9_]+)*$","type":"string"},"modified_at":{"format":"date-time","type":"string"},"rate_limiting_interval":{"minimum":0,"nullable":true,"type":"integer"},"rate_limiting_limit":{"minimum":0,"nullable":true,"type":"integer"},"rate_limiting_technique":{"enum":["fixed","sliding"],"type":"string"}},"required":["id","rate_limiting_interval","rate_limiting_limit","rate_limiting_technique","collect_logs","cache_ttl","cache_invalidate_on_update","created_at","modified_at"],"type":"object"},"type":"array"},"success":{"type":"boolean"}},"required":["success","result"],"type":"object"}}},"description":"Returns a list of Gateways"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Gateways","tags":["AI Gateway"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.aig"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"operationId":"aig-config-create-gateway","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"3ebbcb006d4d46d7bb6a8c7f14676cb0","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"cache_invalidate_on_update":{"type":"boolean"},"cache_ttl":{"minimum":0,"nullable":true,"type":"integer"},"collect_logs":{"type":"boolean"},"id":{"description":"gateway id","example":"my-gateway","maxLength":64,"minLength":1,"pattern":"^[a-z0-9_]+(?:-[a-z0-9_]+)*$","type":"string"},"rate_limiting_interval":{"minimum":0,"nullable":true,"type":"integer"},"rate_limiting_limit":{"minimum":0,"nullable":true,"type":"integer"},"rate_limiting_technique":{"enum":["fixed","sliding"],"type":"string"}},"required":["id","rate_limiting_interval","rate_limiting_limit","rate_limiting_technique","collect_logs","cache_ttl","cache_invalidate_on_update"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"cache_invalidate_on_update":{"type":"boolean"},"cache_ttl":{"minimum":0,"nullable":true,"type":"integer"},"collect_logs":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"id":{"description":"gateway id","example":"my-gateway","maxLength":64,"minLength":1,"pattern":"^[a-z0-9_]+(?:-[a-z0-9_]+)*$","type":"string"},"modified_at":{"format":"date-time","type":"string"},"rate_limiting_interval":{"minimum":0,"nullable":true,"type":"integer"},"rate_limiting_limit":{"minimum":0,"nullable":true,"type":"integer"},"rate_limiting_technique":{"enum":["fixed","sliding"],"type":"string"}},"required":["id","rate_limiting_interval","rate_limiting_limit","rate_limiting_technique","collect_logs","cache_ttl","cache_invalidate_on_update","created_at","modified_at"],"type":"object"},"success":{"type":"boolean"}},"required":["success","result"],"type":"object"}}},"description":"Returns the created Gateway"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"example":7001,"type":"number"},"message":{"example":"Input Validation Error","type":"string"},"path":{"items":{"example":"body","type":"string"},"type":"array"}},"required":["code","message","path"],"type":"object"},"type":"array"},"success":{"type":"boolean"}},"required":["success","errors"],"type":"object"}}},"description":"Input Validation Error"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create a new Gateway","tags":["AI Gateway"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.aig"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai-gateway/gateways/{gateway_id}/logs":{"delete":{"operationId":"aig-config-delete-gateway-logs","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"0d37909e38d3e99c29fa2cd343ac421a","type":"string"}},{"in":"path","name":"gateway_id","required":true,"schema":{"description":"gateway id","example":"my-gateway","maxLength":64,"minLength":1,"pattern":"^[a-z0-9_]+(?:-[a-z0-9_]+)*$","type":"string"}},{"in":"query","name":"order_by","schema":{"default":"created_at","enum":["created_at","provider","model","model_type","success","cached","cost","tokens_in","tokens_out","duration","feedback"],"type":"string"}},{"in":"query","name":"order_by_direction","schema":{"default":"asc","enum":["asc","desc"],"type":"string"}},{"in":"query","name":"filters","schema":{"items":{"properties":{"key":{"enum":["created_at","request_content_type","response_content_type","success","cached","provider","model","cost","tokens","tokens_in","tokens_out","duration","feedback"],"type":"string"},"operator":{"enum":["eq","neq","contains","lt","gt"],"type":"string"},"value":{"items":{"anyOf":[{"nullable":true,"type":"string"},{"type":"number"},{"type":"boolean"}]},"type":"array"}},"required":["key","operator","value"],"type":"object"},"type":"array"}},{"in":"query","name":"limit","schema":{"default":10000,"maximum":10000,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"success":{"type":"boolean"}},"required":["success"],"type":"object"}}},"description":"Returns if the delete was successful"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Gateway Logs","tags":["AI Gateway"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.aig"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"operationId":"aig-config-list-gateway-logs","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"0d37909e38d3e99c29fa2cd343ac421a","type":"string"}},{"in":"path","name":"gateway_id","required":true,"schema":{"description":"gateway id","example":"my-gateway","maxLength":64,"minLength":1,"pattern":"^[a-z0-9_]+(?:-[a-z0-9_]+)*$","type":"string"}},{"in":"query","name":"search","schema":{"type":"string"}},{"in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"in":"query","name":"per_page","schema":{"default":20,"maximum":50,"minimum":1,"type":"integer"}},{"in":"query","name":"order_by","schema":{"default":"created_at","enum":["created_at","provider","model","model_type","success","cached"],"type":"string"}},{"in":"query","name":"order_by_direction","schema":{"default":"desc","enum":["asc","desc"],"type":"string"}},{"in":"query","name":"filters","schema":{"items":{"properties":{"key":{"enum":["created_at","request_content_type","response_content_type","success","cached","provider","model","cost","tokens","tokens_in","tokens_out","duration","feedback"],"type":"string"},"operator":{"enum":["eq","neq","contains","lt","gt"],"type":"string"},"value":{"items":{"anyOf":[{"nullable":true,"type":"string"},{"type":"number"},{"type":"boolean"}]},"type":"array"}},"required":["key","operator","value"],"type":"object"},"type":"array"}},{"in":"query","name":"meta_info","schema":{"type":"boolean"}},{"in":"query","name":"direction","schema":{"deprecated":true,"enum":["asc","desc"],"type":"string"}},{"in":"query","name":"start_date","schema":{"deprecated":true,"format":"date-time","type":"string"}},{"in":"query","name":"end_date","schema":{"deprecated":true,"format":"date-time","type":"string"}},{"in":"query","name":"min_cost","schema":{"deprecated":true,"type":"number"}},{"in":"query","name":"max_cost","schema":{"deprecated":true,"type":"number"}},{"in":"query","name":"min_tokens_in","schema":{"deprecated":true,"type":"number"}},{"in":"query","name":"max_tokens_in","schema":{"deprecated":true,"type":"number"}},{"in":"query","name":"min_tokens_out","schema":{"deprecated":true,"type":"number"}},{"in":"query","name":"max_tokens_out","schema":{"deprecated":true,"type":"number"}},{"in":"query","name":"min_total_tokens","schema":{"deprecated":true,"type":"number"}},{"in":"query","name":"max_total_tokens","schema":{"deprecated":true,"type":"number"}},{"in":"query","name":"min_duration","schema":{"deprecated":true,"type":"number"}},{"in":"query","name":"max_duration","schema":{"deprecated":true,"type":"number"}},{"in":"query","name":"feedback","schema":{"anyOf":[{"enum":[-1],"type":"number"},{"enum":[0],"type":"number"},{"enum":[1],"type":"number"}],"deprecated":true}},{"in":"query","name":"success","schema":{"deprecated":true,"type":"boolean"}},{"in":"query","name":"cached","schema":{"deprecated":true,"type":"boolean"}},{"in":"query","name":"model","schema":{"deprecated":true,"type":"string"}},{"in":"query","name":"model_type","schema":{"deprecated":true,"type":"string"}},{"in":"query","name":"provider","schema":{"deprecated":true,"type":"string"}},{"in":"query","name":"request_content_type","schema":{"deprecated":true,"type":"string"}},{"in":"query","name":"response_content_type","schema":{"deprecated":true,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"items":{"properties":{"cached":{"type":"boolean"},"cost":{"type":"number"},"created_at":{"format":"date-time","type":"string"},"custom_cost":{"type":"boolean"},"duration":{"type":"integer"},"id":{"type":"string"},"metadata":{"type":"string"},"model":{"type":"string"},"model_type":{"type":"string"},"path":{"type":"string"},"provider":{"type":"string"},"request":{"type":"string"},"request_content_type":{"type":"string"},"request_type":{"type":"string"},"response":{"type":"string"},"response_content_type":{"type":"string"},"status_code":{"type":"integer"},"step":{"type":"integer"},"success":{"type":"boolean"},"tokens_in":{"nullable":true,"type":"integer"},"tokens_out":{"nullable":true,"type":"integer"}},"required":["id","created_at","provider","model","path","duration","request","response","success","cached","tokens_in","tokens_out"],"type":"object"},"type":"array"},"result_info":{"properties":{"count":{"type":"number"},"max_cost":{"type":"number"},"max_duration":{"type":"number"},"max_tokens_in":{"type":"number"},"max_tokens_out":{"type":"number"},"max_total_tokens":{"type":"number"},"min_cost":{"type":"number"},"min_duration":{"type":"number"},"min_tokens_in":{"type":"number"},"min_tokens_out":{"type":"number"},"min_total_tokens":{"type":"number"},"page":{"type":"number"},"per_page":{"type":"number"},"total_count":{"type":"number"}},"type":"object"},"success":{"type":"boolean"}},"required":["success","result","result_info"],"type":"object"}}},"description":"Returns a list of Gateway Logs"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Gateway Logs","tags":["AI Gateway"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.aig"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai-gateway/gateways/{id}":{"delete":{"operationId":"aig-config-delete-gateway","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"3ebbcb006d4d46d7bb6a8c7f14676cb0","type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"cache_invalidate_on_update":{"type":"boolean"},"cache_ttl":{"minimum":0,"nullable":true,"type":"integer"},"collect_logs":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"id":{"description":"gateway id","example":"my-gateway","maxLength":64,"minLength":1,"pattern":"^[a-z0-9_]+(?:-[a-z0-9_]+)*$","type":"string"},"modified_at":{"format":"date-time","type":"string"},"rate_limiting_interval":{"minimum":0,"nullable":true,"type":"integer"},"rate_limiting_limit":{"minimum":0,"nullable":true,"type":"integer"},"rate_limiting_technique":{"enum":["fixed","sliding"],"type":"string"}},"required":["id","rate_limiting_interval","rate_limiting_limit","rate_limiting_technique","collect_logs","cache_ttl","cache_invalidate_on_update","created_at","modified_at"],"type":"object"},"success":{"type":"boolean"}},"required":["success","result"],"type":"object"}}},"description":"Returns if the Gateway was deleted successfully"},"404":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"example":7002,"type":"number"},"message":{"example":"Not Found","type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"success":{"type":"boolean"}},"required":["success","errors"],"type":"object"}}},"description":"Not Found"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete a Gateway","tags":["AI Gateway"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.aig"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"operationId":"aig-config-fetch-gateway","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"3ebbcb006d4d46d7bb6a8c7f14676cb0","type":"string"}},{"in":"path","name":"id","required":true,"schema":{"description":"gateway id","example":"my-gateway","maxLength":64,"minLength":1,"pattern":"^[a-z0-9_]+(?:-[a-z0-9_]+)*$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"cache_invalidate_on_update":{"type":"boolean"},"cache_ttl":{"minimum":0,"nullable":true,"type":"integer"},"collect_logs":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"id":{"description":"gateway id","example":"my-gateway","maxLength":64,"minLength":1,"pattern":"^[a-z0-9_]+(?:-[a-z0-9_]+)*$","type":"string"},"modified_at":{"format":"date-time","type":"string"},"rate_limiting_interval":{"minimum":0,"nullable":true,"type":"integer"},"rate_limiting_limit":{"minimum":0,"nullable":true,"type":"integer"},"rate_limiting_technique":{"enum":["fixed","sliding"],"type":"string"}},"required":["id","rate_limiting_interval","rate_limiting_limit","rate_limiting_technique","collect_logs","cache_ttl","cache_invalidate_on_update","created_at","modified_at"],"type":"object"},"success":{"type":"boolean"}},"required":["success","result"],"type":"object"}}},"description":"Returns a single Gateway if found"},"404":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"example":7002,"type":"number"},"message":{"example":"Not Found","type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"success":{"type":"boolean"}},"required":["success","errors"],"type":"object"}}},"description":"Not Found"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Fetch a Gateway","tags":["AI Gateway"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.aig"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"operationId":"aig-config-update-gateway","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"3ebbcb006d4d46d7bb6a8c7f14676cb0","type":"string"}},{"in":"path","name":"id","required":true,"schema":{"description":"gateway id","example":"my-gateway","maxLength":64,"minLength":1,"pattern":"^[a-z0-9_]+(?:-[a-z0-9_]+)*$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"cache_invalidate_on_update":{"type":"boolean"},"cache_ttl":{"minimum":0,"nullable":true,"type":"integer"},"collect_logs":{"type":"boolean"},"rate_limiting_interval":{"minimum":0,"nullable":true,"type":"integer"},"rate_limiting_limit":{"minimum":0,"nullable":true,"type":"integer"},"rate_limiting_technique":{"enum":["fixed","sliding"],"type":"string"}},"required":["rate_limiting_interval","rate_limiting_limit","rate_limiting_technique","collect_logs","cache_ttl","cache_invalidate_on_update"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"cache_invalidate_on_update":{"type":"boolean"},"cache_ttl":{"minimum":0,"nullable":true,"type":"integer"},"collect_logs":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"id":{"description":"gateway id","example":"my-gateway","maxLength":64,"minLength":1,"pattern":"^[a-z0-9_]+(?:-[a-z0-9_]+)*$","type":"string"},"modified_at":{"format":"date-time","type":"string"},"rate_limiting_interval":{"minimum":0,"nullable":true,"type":"integer"},"rate_limiting_limit":{"minimum":0,"nullable":true,"type":"integer"},"rate_limiting_technique":{"enum":["fixed","sliding"],"type":"string"}},"required":["id","rate_limiting_interval","rate_limiting_limit","rate_limiting_technique","collect_logs","cache_ttl","cache_invalidate_on_update","created_at","modified_at"],"type":"object"},"success":{"type":"boolean"}},"required":["success","result"],"type":"object"}}},"description":"Returns the updated Gateway"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"example":7001,"type":"number"},"message":{"example":"Input Validation Error","type":"string"},"path":{"items":{"example":"body","type":"string"},"type":"array"}},"required":["code","message","path"],"type":"object"},"type":"array"},"success":{"type":"boolean"}},"required":["success","errors"],"type":"object"}}},"description":"Input Validation Error"},"404":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"example":7002,"type":"number"},"message":{"example":"Not Found","type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"success":{"type":"boolean"}},"required":["success","errors"],"type":"object"}}},"description":"Not Found"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update a Gateway","tags":["AI Gateway"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.aig"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/authors/search":{"get":{"operationId":"workers-ai-search-author","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"type":"object"},"type":"array"},"messages":{"items":{"type":"object"},"type":"array"},"result":{"items":{"type":"object"},"type":"array"},"success":{"type":"boolean"}},"required":["success","result","errors","messages"],"type":"object"}}},"description":"Returns a list of authors"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"success":{"type":"boolean"}},"required":["success","error"],"type":"object"}}},"description":"Object not found"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Author Search","tags":["Workers AI"],"x-api-token-group":["Workers AI Write","Workers AI Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/finetunes":{"get":{"operationId":"workers-ai-list-finetunes","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"created_at":{"format":"date-time","type":"string"},"description":{"type":"string"},"id":{"format":"uuid","type":"string"},"model":{"type":"string"},"modified_at":{"format":"date-time","type":"string"},"name":{"type":"string"}},"required":["id","model","name","created_at","modified_at"],"type":"object"},"success":{"type":"boolean"}},"required":["success","result"],"type":"object"}}},"description":"Returns all finetunes"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Finetunes","tags":["Workers AI Finetune"],"x-api-token-group":["Workers AI Write","Workers AI Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"operationId":"workers-ai-create-finetune","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"},"model":{"type":"string"},"name":{"type":"string"},"public":{"type":"boolean"}},"required":["model","name"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"created_at":{"format":"date-time","type":"string"},"description":{"type":"string"},"id":{"format":"uuid","type":"string"},"model":{"type":"string"},"modified_at":{"format":"date-time","type":"string"},"name":{"type":"string"},"public":{"type":"boolean"}},"required":["id","created_at","modified_at","public","name","model"],"type":"object"},"success":{"type":"boolean"}},"required":["success","result"],"type":"object"}}},"description":"Returns the created finetune"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"type":"string"},"success":{"type":"boolean"}},"required":["errors","success"],"type":"object"}}},"description":"Finetune creation failed"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create a new Finetune","tags":["Workers AI Finetune"],"x-api-token-group":["Workers AI Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/finetunes/public":{"get":{"operationId":"workers-ai-list-public-finetunes","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}},{"description":"Pagination Limit","in":"query","name":"limit","schema":{"description":"Pagination Limit","type":"number"}},{"description":"Pagination Offset","in":"query","name":"offset","schema":{"description":"Pagination Offset","type":"number"}},{"description":"Order By Column Name","in":"query","name":"orderBy","schema":{"description":"Order By Column Name","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"items":{"properties":{"created_at":{"format":"date-time","type":"string"},"description":{"type":"string"},"id":{"format":"uuid","type":"string"},"model":{"type":"string"},"modified_at":{"format":"date-time","type":"string"},"name":{"type":"string"},"public":{"type":"boolean"}},"required":["id","model","name","public","created_at","modified_at"],"type":"object"},"type":"array"},"success":{"type":"boolean"}},"required":["success","result"],"type":"object"}}},"description":"Returns all public finetunes"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Public Finetunes","tags":["Workers AI Finetune"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/finetunes/{finetune_id}/finetune-assets":{"post":{"operationId":"workers-ai-upload-finetune-asset","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}},{"in":"path","name":"finetune_id","required":true,"schema":{"example":"bc451aef-f723-4b26-a6b2-901afd2e7a8a","type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"format":"binary","type":"string"},"file_name":{"type":"string"}},"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"bucket_name":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"file_name":{"type":"string"},"finetune_id":{"example":"bc451aef-f723-4b26-a6b2-901afd2e7a8a","type":"string"},"id":{"format":"uuid","type":"string"},"modified_at":{"format":"date-time","type":"string"}},"required":["id","finetune_id","file_name","bucket_name","created_at","modified_at"],"type":"object"},"success":{"type":"boolean"}},"required":["success","result"],"type":"object"}}},"description":"Returns the created finetune asset"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"type":"string"},"success":{"type":"boolean"}},"required":["errors","success"],"type":"object"}}},"description":"Finetune creation failed"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Upload a Finetune Asset","tags":["Workers AI Finetune"],"x-api-token-group":["Workers AI Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/models/schema":{"get":{"operationId":"workers-ai-get-model-schema","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}},{"description":"Model Name","in":"query","name":"model","required":true,"schema":{"description":"Model Name","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"type":"object"},"success":{"type":"boolean"}},"required":["success","result"],"type":"object"}}},"description":"Model Schema"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Model Schema","tags":["Workers AI"],"x-api-token-group":["Workers AI Write","Workers AI Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/models/search":{"get":{"operationId":"workers-ai-search-model","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}},{"in":"query","name":"per_page","schema":{"type":"integer"}},{"in":"query","name":"page","schema":{"type":"integer"}},{"description":"Filter by Task Name","in":"query","name":"task","schema":{"description":"Filter by Task Name","example":"Text Generation","type":"string"}},{"description":"Filter by Author","in":"query","name":"author","schema":{"description":"Filter by Author","type":"string"}},{"description":"Filter by Source Id","in":"query","name":"source","schema":{"description":"Filter by Source Id","type":"number"}},{"description":"Filter to hide experimental models","in":"query","name":"hide_experimental","schema":{"description":"Filter to hide experimental models","type":"boolean"}},{"description":"Search","in":"query","name":"search","schema":{"description":"Search","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"type":"object"},"type":"array"},"messages":{"items":{"type":"object"},"type":"array"},"result":{"items":{"type":"object"},"type":"array"},"success":{"type":"boolean"}},"required":["success","result","errors","messages"],"type":"object"}}},"description":"Returns a list of models"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"success":{"type":"boolean"}},"required":["success","error"],"type":"object"}}},"description":"Object not found"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Model Search","tags":["Workers AI"],"x-api-token-group":["Workers AI Write","Workers AI Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/baai/bge-base-en-v1.5":{"post":{"operationId":"workers-ai-post-run-cf-baai-bge-base-en-v1-5","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"text":{"oneOf":[{"description":"The text to embed","minLength":1,"type":"string"},{"description":"Batch of text values to embed","items":{"description":"The text to embed","minLength":1,"type":"string"},"maxItems":100,"type":"array"}]}},"required":["text"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"data":{"description":"Embeddings of the requested text values","items":{"description":"Floating point embedding representation shaped by the embedding model","items":{"type":"number"},"type":"array"},"type":"array"},"shape":{"items":{"type":"number"},"type":"array"}},"type":"object"},"success":{"default":true,"type":"boolean"}},"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/baai/bge-base-en-v1.5 model.","tags":["Workers AI Text Embeddings"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/baai/bge-large-en-v1.5":{"post":{"operationId":"workers-ai-post-run-cf-baai-bge-large-en-v1-5","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"text":{"oneOf":[{"description":"The text to embed","minLength":1,"type":"string"},{"description":"Batch of text values to embed","items":{"description":"The text to embed","minLength":1,"type":"string"},"maxItems":100,"type":"array"}]}},"required":["text"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"data":{"description":"Embeddings of the requested text values","items":{"description":"Floating point embedding representation shaped by the embedding model","items":{"type":"number"},"type":"array"},"type":"array"},"shape":{"items":{"type":"number"},"type":"array"}},"type":"object"},"success":{"default":true,"type":"boolean"}},"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/baai/bge-large-en-v1.5 model.","tags":["Workers AI Text Embeddings"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/baai/bge-small-en-v1.5":{"post":{"operationId":"workers-ai-post-run-cf-baai-bge-small-en-v1-5","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"text":{"oneOf":[{"description":"The text to embed","minLength":1,"type":"string"},{"description":"Batch of text values to embed","items":{"description":"The text to embed","minLength":1,"type":"string"},"maxItems":100,"type":"array"}]}},"required":["text"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"data":{"description":"Embeddings of the requested text values","items":{"description":"Floating point embedding representation shaped by the embedding model","items":{"type":"number"},"type":"array"},"type":"array"},"shape":{"items":{"type":"number"},"type":"array"}},"type":"object"},"success":{"default":true,"type":"boolean"}},"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/baai/bge-small-en-v1.5 model.","tags":["Workers AI Text Embeddings"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/black-forest-labs/flux-1-schnell":{"post":{"operationId":"workers-ai-post-run-cf-black-forest-labs-flux-1-schnell","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"prompt":{"description":"A text description of the image you want to generate.","minLength":1,"type":"string"},"steps":{"default":4,"description":"The number of diffusion steps; higher values can improve quality but take longer.","maximum":8,"type":"integer"}},"required":["prompt"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"image":{"description":"The generated image in Base64 format.","type":"string"}},"type":"object"},"success":{"default":true,"type":"boolean"}},"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/black-forest-labs/flux-1-schnell model.","tags":["Workers AI Text To Image"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/bytedance/stable-diffusion-xl-lightning":{"post":{"operationId":"workers-ai-post-run-cf-bytedance-stable-diffusion-xl-lightning","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"guidance":{"default":7.5,"description":"Controls how closely the generated image should adhere to the prompt; higher values make the image more aligned with the prompt","type":"number"},"height":{"description":"The height of the generated image in pixels","maximum":2048,"minimum":256,"type":"integer"},"image":{"description":"For use with img2img tasks. An array of integers that represent the image data constrained to 8-bit unsigned integer values","items":{"description":"A value between 0 and 255","type":"number"},"type":"array"},"image_b64":{"description":"For use with img2img tasks. A base64-encoded string of the input image","type":"string"},"mask":{"description":"An array representing An array of integers that represent mask image data for inpainting constrained to 8-bit unsigned integer values","items":{"description":"A value between 0 and 255","type":"number"},"type":"array"},"negative_prompt":{"description":"Text describing elements to avoid in the generated image","type":"string"},"num_steps":{"default":20,"description":"The number of diffusion steps; higher values can improve quality but take longer","maximum":20,"type":"integer"},"prompt":{"description":"A text description of the image you want to generate","minLength":1,"type":"string"},"seed":{"description":"Random seed for reproducibility of the image generation","type":"integer"},"strength":{"default":1,"description":"A value between 0 and 1 indicating how strongly to apply the transformation during img2img tasks; lower values make the output closer to the input image","type":"number"},"width":{"description":"The width of the generated image in pixels","maximum":2048,"minimum":256,"type":"integer"}},"required":["prompt"],"type":"object"}}}},"responses":{"200":{"content":{"image/png":{"schema":{"format":"binary","type":"string"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/bytedance/stable-diffusion-xl-lightning model.","tags":["Workers AI Text To Image"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/deepseek-ai/deepseek-math-7b-instruct":{"post":{"operationId":"workers-ai-post-run-cf-deepseek-ai-deepseek-math-7b-instruct","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/deepseek-ai/deepseek-math-7b-instruct model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/defog/sqlcoder-7b-2":{"post":{"operationId":"workers-ai-post-run-cf-defog-sqlcoder-7b-2","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/defog/sqlcoder-7b-2 model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/facebook/bart-large-cnn":{"post":{"operationId":"workers-ai-post-run-cf-facebook-bart-large-cnn","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"input_text":{"description":"The text that you want the model to summarize","minLength":1,"type":"string"},"max_length":{"default":1024,"description":"The maximum length of the generated summary in tokens","type":"integer"}},"required":["input_text"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"summary":{"description":"The summarized version of the input text","type":"string"}},"type":"object"},"success":{"default":true,"type":"boolean"}},"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/facebook/bart-large-cnn model.","tags":["Workers AI Summarization"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/facebook/detr-resnet-50":{"post":{"operationId":"workers-ai-post-run-cf-facebook-detr-resnet-50","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/octet-stream":{"schema":{"format":"binary","type":"string"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"description":"An array of detected objects within the input image","items":{"properties":{"box":{"description":"Coordinates defining the bounding box around the detected object","properties":{"xmax":{"description":"The x-coordinate of the bottom-right corner of the bounding box","type":"number"},"xmin":{"description":"The x-coordinate of the top-left corner of the bounding box","type":"number"},"ymax":{"description":"The y-coordinate of the bottom-right corner of the bounding box","type":"number"},"ymin":{"description":"The y-coordinate of the top-left corner of the bounding box","type":"number"}},"type":"object"},"label":{"description":"The class label or name of the detected object","type":"string"},"score":{"description":"Confidence score indicating the likelihood that the detection is correct","type":"number"}},"type":"object"},"type":"array"},"success":{"default":true,"type":"boolean"}},"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/facebook/detr-resnet-50 model.","tags":["Workers AI Object Detection"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/fblgit/una-cybertron-7b-v2-bf16":{"post":{"operationId":"workers-ai-post-run-cf-fblgit-una-cybertron-7b-v2-bf16","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/fblgit/una-cybertron-7b-v2-bf16 model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/google/gemma-2b-it-lora":{"post":{"operationId":"workers-ai-post-run-cf-google-gemma-2b-it-lora","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/google/gemma-2b-it-lora model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/google/gemma-7b-it-lora":{"post":{"operationId":"workers-ai-post-run-cf-google-gemma-7b-it-lora","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/google/gemma-7b-it-lora model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/huggingface/distilbert-sst-2-int8":{"post":{"operationId":"workers-ai-post-run-cf-huggingface-distilbert-sst-2-int8","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"text":{"description":"The text that you want to classify","minLength":1,"type":"string"}},"required":["text"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"description":"An array of classification results for the input text","items":{"properties":{"label":{"description":"The classification label assigned to the text (e.g., 'POSITIVE' or 'NEGATIVE')","type":"string"},"score":{"description":"Confidence score indicating the likelihood that the text belongs to the specified label","type":"number"}},"type":"object"},"type":"array"},"success":{"default":true,"type":"boolean"}},"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/huggingface/distilbert-sst-2-int8 model.","tags":["Workers AI Text Classification"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/lykon/dreamshaper-8-lcm":{"post":{"operationId":"workers-ai-post-run-cf-lykon-dreamshaper-8-lcm","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"guidance":{"default":7.5,"description":"Controls how closely the generated image should adhere to the prompt; higher values make the image more aligned with the prompt","type":"number"},"height":{"description":"The height of the generated image in pixels","maximum":2048,"minimum":256,"type":"integer"},"image":{"description":"For use with img2img tasks. An array of integers that represent the image data constrained to 8-bit unsigned integer values","items":{"description":"A value between 0 and 255","type":"number"},"type":"array"},"image_b64":{"description":"For use with img2img tasks. A base64-encoded string of the input image","type":"string"},"mask":{"description":"An array representing An array of integers that represent mask image data for inpainting constrained to 8-bit unsigned integer values","items":{"description":"A value between 0 and 255","type":"number"},"type":"array"},"negative_prompt":{"description":"Text describing elements to avoid in the generated image","type":"string"},"num_steps":{"default":20,"description":"The number of diffusion steps; higher values can improve quality but take longer","maximum":20,"type":"integer"},"prompt":{"description":"A text description of the image you want to generate","minLength":1,"type":"string"},"seed":{"description":"Random seed for reproducibility of the image generation","type":"integer"},"strength":{"default":1,"description":"A value between 0 and 1 indicating how strongly to apply the transformation during img2img tasks; lower values make the output closer to the input image","type":"number"},"width":{"description":"The width of the generated image in pixels","maximum":2048,"minimum":256,"type":"integer"}},"required":["prompt"],"type":"object"}}}},"responses":{"200":{"content":{"image/png":{"schema":{"format":"binary","type":"string"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/lykon/dreamshaper-8-lcm model.","tags":["Workers AI Text To Image"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/meta-llama/llama-2-7b-chat-hf-lora":{"post":{"operationId":"workers-ai-post-run-cf-meta-llama-llama-2-7b-chat-hf-lora","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/meta-llama/llama-2-7b-chat-hf-lora model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/meta/llama-2-7b-chat-fp16":{"post":{"operationId":"workers-ai-post-run-cf-meta-llama-2-7b-chat-fp16","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/meta/llama-2-7b-chat-fp16 model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/meta/llama-2-7b-chat-int8":{"post":{"operationId":"workers-ai-post-run-cf-meta-llama-2-7b-chat-int8","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/meta/llama-2-7b-chat-int8 model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/meta/llama-3-8b-instruct":{"post":{"operationId":"workers-ai-post-run-cf-meta-llama-3-8b-instruct","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/meta/llama-3-8b-instruct model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/meta/llama-3-8b-instruct-awq":{"post":{"operationId":"workers-ai-post-run-cf-meta-llama-3-8b-instruct-awq","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/meta/llama-3-8b-instruct-awq model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/meta/llama-3.1-70b-instruct":{"post":{"operationId":"workers-ai-post-run-cf-meta-llama-3-1-70b-instruct","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/meta/llama-3.1-70b-instruct model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/meta/llama-3.1-70b-instruct-preview":{"post":{"operationId":"workers-ai-post-run-cf-meta-llama-3-1-70b-instruct-preview","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/meta/llama-3.1-70b-instruct-preview model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/meta/llama-3.1-70b-preview":{"post":{"operationId":"workers-ai-post-run-cf-meta-llama-3-1-70b-preview","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/meta/llama-3.1-70b-preview model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/meta/llama-3.1-8b-instruct":{"post":{"operationId":"workers-ai-post-run-cf-meta-llama-3-1-8b-instruct","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/meta/llama-3.1-8b-instruct model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/meta/llama-3.1-8b-instruct-awq":{"post":{"operationId":"workers-ai-post-run-cf-meta-llama-3-1-8b-instruct-awq","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/meta/llama-3.1-8b-instruct-awq model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/meta/llama-3.1-8b-instruct-fast":{"post":{"operationId":"workers-ai-post-run-cf-meta-llama-3-1-8b-instruct-fast","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/meta/llama-3.1-8b-instruct-fast model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/meta/llama-3.1-8b-instruct-fp8":{"post":{"operationId":"workers-ai-post-run-cf-meta-llama-3-1-8b-instruct-fp8","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/meta/llama-3.1-8b-instruct-fp8 model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/meta/llama-3.1-8b-preview":{"post":{"operationId":"workers-ai-post-run-cf-meta-llama-3-1-8b-preview","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/meta/llama-3.1-8b-preview model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/meta/llama-3.2-11b-vision-instruct":{"post":{"operationId":"workers-ai-post-run-cf-meta-llama-3-2-11b-vision-instruct","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"image":{"oneOf":[{"description":"An array of integers that represent the image data constrained to 8-bit unsigned integer values","items":{"description":"A value between 0 and 255","type":"number"},"type":"array"},{"description":"Binary string representing the image contents.","format":"binary","type":"string"}]},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"image":{"oneOf":[{"description":"An array of integers that represent the image data constrained to 8-bit unsigned integer values","items":{"description":"A value between 0 and 255","type":"number"},"type":"array"},{"description":"Binary string representing the image contents.","format":"binary","type":"string"}]},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/meta/llama-3.2-11b-vision-instruct model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/meta/llama-3.2-1b-instruct":{"post":{"operationId":"workers-ai-post-run-cf-meta-llama-3-2-1b-instruct","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/meta/llama-3.2-1b-instruct model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/meta/llama-3.2-3b-instruct":{"post":{"operationId":"workers-ai-post-run-cf-meta-llama-3-2-3b-instruct","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/meta/llama-3.2-3b-instruct model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/meta/m2m100-1.2b":{"post":{"operationId":"workers-ai-post-run-cf-meta-m2m100-1-2b","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"source_lang":{"default":"en","description":"The language code of the source text (e.g., 'en' for English). Defaults to 'en' if not specified","type":"string"},"target_lang":{"description":"The language code to translate the text into (e.g., 'es' for Spanish)","type":"string"},"text":{"description":"The text to be translated","minLength":1,"type":"string"}},"required":["text","target_lang"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"translated_text":{"description":"The translated text in the target language","type":"string"}},"type":"object"},"success":{"default":true,"type":"boolean"}},"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/meta/m2m100-1.2b model.","tags":["Workers AI Translation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/microsoft/phi-2":{"post":{"operationId":"workers-ai-post-run-cf-microsoft-phi-2","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/microsoft/phi-2 model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/microsoft/resnet-50":{"post":{"operationId":"workers-ai-post-run-cf-microsoft-resnet-50","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/octet-stream":{"schema":{"format":"binary","type":"string"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"items":{"properties":{"label":{"description":"The predicted category or class for the input image based on analysis","type":"string"},"score":{"description":"A confidence value, between 0 and 1, indicating how certain the model is about the predicted label","type":"number"}},"type":"object"},"type":"array"},"success":{"default":true,"type":"boolean"}},"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/microsoft/resnet-50 model.","tags":["Workers AI Image Classification"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/mistral/mistral-7b-instruct-v0.1":{"post":{"operationId":"workers-ai-post-run-cf-mistral-mistral-7b-instruct-v0-1","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/mistral/mistral-7b-instruct-v0.1 model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/mistral/mistral-7b-instruct-v0.2-lora":{"post":{"operationId":"workers-ai-post-run-cf-mistral-mistral-7b-instruct-v0-2-lora","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/mistral/mistral-7b-instruct-v0.2-lora model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/openai/whisper":{"post":{"operationId":"workers-ai-post-run-cf-openai-whisper","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/octet-stream":{"schema":{"format":"binary","type":"string"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"text":{"description":"The transcription","type":"string"},"vtt":{"type":"string"},"word_count":{"type":"number"},"words":{"items":{"properties":{"end":{"description":"The ending second when the word completes","type":"number"},"start":{"description":"The second this word begins in the recording","type":"number"},"word":{"type":"string"}},"type":"object"},"type":"array"}},"required":["text"],"type":"object"},"success":{"default":true,"type":"boolean"}},"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/openai/whisper model.","tags":["Workers AI Automatic Speech Recognition"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/openai/whisper-tiny-en":{"post":{"operationId":"workers-ai-post-run-cf-openai-whisper-tiny-en","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/octet-stream":{"schema":{"format":"binary","type":"string"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"text":{"description":"The transcription","type":"string"},"vtt":{"type":"string"},"word_count":{"type":"number"},"words":{"items":{"properties":{"end":{"description":"The ending second when the word completes","type":"number"},"start":{"description":"The second this word begins in the recording","type":"number"},"word":{"type":"string"}},"type":"object"},"type":"array"}},"required":["text"],"type":"object"},"success":{"default":true,"type":"boolean"}},"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/openai/whisper-tiny-en model.","tags":["Workers AI Automatic Speech Recognition"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/openchat/openchat-3.5-0106":{"post":{"operationId":"workers-ai-post-run-cf-openchat-openchat-3-5-0106","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/openchat/openchat-3.5-0106 model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/qwen/qwen1.5-0.5b-chat":{"post":{"operationId":"workers-ai-post-run-cf-qwen-qwen1-5-0-5b-chat","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/qwen/qwen1.5-0.5b-chat model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/qwen/qwen1.5-1.8b-chat":{"post":{"operationId":"workers-ai-post-run-cf-qwen-qwen1-5-1-8b-chat","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/qwen/qwen1.5-1.8b-chat model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/qwen/qwen1.5-14b-chat-awq":{"post":{"operationId":"workers-ai-post-run-cf-qwen-qwen1-5-14b-chat-awq","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/qwen/qwen1.5-14b-chat-awq model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/qwen/qwen1.5-7b-chat-awq":{"post":{"operationId":"workers-ai-post-run-cf-qwen-qwen1-5-7b-chat-awq","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/qwen/qwen1.5-7b-chat-awq model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/runwayml/stable-diffusion-v1-5-img2img":{"post":{"operationId":"workers-ai-post-run-cf-runwayml-stable-diffusion-v1-5-img2img","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"guidance":{"default":7.5,"description":"Controls how closely the generated image should adhere to the prompt; higher values make the image more aligned with the prompt","type":"number"},"height":{"description":"The height of the generated image in pixels","maximum":2048,"minimum":256,"type":"integer"},"image":{"description":"For use with img2img tasks. An array of integers that represent the image data constrained to 8-bit unsigned integer values","items":{"description":"A value between 0 and 255","type":"number"},"type":"array"},"image_b64":{"description":"For use with img2img tasks. A base64-encoded string of the input image","type":"string"},"mask":{"description":"An array representing An array of integers that represent mask image data for inpainting constrained to 8-bit unsigned integer values","items":{"description":"A value between 0 and 255","type":"number"},"type":"array"},"negative_prompt":{"description":"Text describing elements to avoid in the generated image","type":"string"},"num_steps":{"default":20,"description":"The number of diffusion steps; higher values can improve quality but take longer","maximum":20,"type":"integer"},"prompt":{"description":"A text description of the image you want to generate","minLength":1,"type":"string"},"seed":{"description":"Random seed for reproducibility of the image generation","type":"integer"},"strength":{"default":1,"description":"A value between 0 and 1 indicating how strongly to apply the transformation during img2img tasks; lower values make the output closer to the input image","type":"number"},"width":{"description":"The width of the generated image in pixels","maximum":2048,"minimum":256,"type":"integer"}},"required":["prompt"],"type":"object"}}}},"responses":{"200":{"content":{"image/png":{"schema":{"format":"binary","type":"string"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/runwayml/stable-diffusion-v1-5-img2img model.","tags":["Workers AI Text To Image"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/runwayml/stable-diffusion-v1-5-inpainting":{"post":{"operationId":"workers-ai-post-run-cf-runwayml-stable-diffusion-v1-5-inpainting","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"guidance":{"default":7.5,"description":"Controls how closely the generated image should adhere to the prompt; higher values make the image more aligned with the prompt","type":"number"},"height":{"description":"The height of the generated image in pixels","maximum":2048,"minimum":256,"type":"integer"},"image":{"description":"For use with img2img tasks. An array of integers that represent the image data constrained to 8-bit unsigned integer values","items":{"description":"A value between 0 and 255","type":"number"},"type":"array"},"image_b64":{"description":"For use with img2img tasks. A base64-encoded string of the input image","type":"string"},"mask":{"description":"An array representing An array of integers that represent mask image data for inpainting constrained to 8-bit unsigned integer values","items":{"description":"A value between 0 and 255","type":"number"},"type":"array"},"negative_prompt":{"description":"Text describing elements to avoid in the generated image","type":"string"},"num_steps":{"default":20,"description":"The number of diffusion steps; higher values can improve quality but take longer","maximum":20,"type":"integer"},"prompt":{"description":"A text description of the image you want to generate","minLength":1,"type":"string"},"seed":{"description":"Random seed for reproducibility of the image generation","type":"integer"},"strength":{"default":1,"description":"A value between 0 and 1 indicating how strongly to apply the transformation during img2img tasks; lower values make the output closer to the input image","type":"number"},"width":{"description":"The width of the generated image in pixels","maximum":2048,"minimum":256,"type":"integer"}},"required":["prompt"],"type":"object"}}}},"responses":{"200":{"content":{"image/png":{"schema":{"format":"binary","type":"string"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/runwayml/stable-diffusion-v1-5-inpainting model.","tags":["Workers AI Text To Image"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/stabilityai/stable-diffusion-xl-base-1.0":{"post":{"operationId":"workers-ai-post-run-cf-stabilityai-stable-diffusion-xl-base-1-0","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"guidance":{"default":7.5,"description":"Controls how closely the generated image should adhere to the prompt; higher values make the image more aligned with the prompt","type":"number"},"height":{"description":"The height of the generated image in pixels","maximum":2048,"minimum":256,"type":"integer"},"image":{"description":"For use with img2img tasks. An array of integers that represent the image data constrained to 8-bit unsigned integer values","items":{"description":"A value between 0 and 255","type":"number"},"type":"array"},"image_b64":{"description":"For use with img2img tasks. A base64-encoded string of the input image","type":"string"},"mask":{"description":"An array representing An array of integers that represent mask image data for inpainting constrained to 8-bit unsigned integer values","items":{"description":"A value between 0 and 255","type":"number"},"type":"array"},"negative_prompt":{"description":"Text describing elements to avoid in the generated image","type":"string"},"num_steps":{"default":20,"description":"The number of diffusion steps; higher values can improve quality but take longer","maximum":20,"type":"integer"},"prompt":{"description":"A text description of the image you want to generate","minLength":1,"type":"string"},"seed":{"description":"Random seed for reproducibility of the image generation","type":"integer"},"strength":{"default":1,"description":"A value between 0 and 1 indicating how strongly to apply the transformation during img2img tasks; lower values make the output closer to the input image","type":"number"},"width":{"description":"The width of the generated image in pixels","maximum":2048,"minimum":256,"type":"integer"}},"required":["prompt"],"type":"object"}}}},"responses":{"200":{"content":{"image/png":{"schema":{"format":"binary","type":"string"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/stabilityai/stable-diffusion-xl-base-1.0 model.","tags":["Workers AI Text To Image"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/thebloke/discolm-german-7b-v1-awq":{"post":{"operationId":"workers-ai-post-run-cf-thebloke-discolm-german-7b-v1-awq","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/thebloke/discolm-german-7b-v1-awq model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/tiiuae/falcon-7b-instruct":{"post":{"operationId":"workers-ai-post-run-cf-tiiuae-falcon-7b-instruct","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/tiiuae/falcon-7b-instruct model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@cf/tinyllama/tinyllama-1.1b-chat-v1.0":{"post":{"operationId":"workers-ai-post-run-cf-tinyllama-tinyllama-1-1b-chat-v1-0","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @cf/tinyllama/tinyllama-1.1b-chat-v1.0 model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@hf/google/gemma-7b-it":{"post":{"operationId":"workers-ai-post-run-hf-google-gemma-7b-it","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @hf/google/gemma-7b-it model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@hf/meta-llama/meta-llama-3-8b-instruct":{"post":{"operationId":"workers-ai-post-run-hf-meta-llama-meta-llama-3-8b-instruct","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @hf/meta-llama/meta-llama-3-8b-instruct model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@hf/mistral/mistral-7b-instruct-v0.2":{"post":{"operationId":"workers-ai-post-run-hf-mistral-mistral-7b-instruct-v0-2","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @hf/mistral/mistral-7b-instruct-v0.2 model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@hf/mistralai/mistral-7b-instruct-v0.2":{"post":{"operationId":"workers-ai-post-run-hf-mistralai-mistral-7b-instruct-v0-2","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @hf/mistralai/mistral-7b-instruct-v0.2 model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@hf/nexusflow/starling-lm-7b-beta":{"post":{"operationId":"workers-ai-post-run-hf-nexusflow-starling-lm-7b-beta","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @hf/nexusflow/starling-lm-7b-beta model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@hf/nousresearch/hermes-2-pro-mistral-7b":{"post":{"operationId":"workers-ai-post-run-hf-nousresearch-hermes-2-pro-mistral-7b","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @hf/nousresearch/hermes-2-pro-mistral-7b model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@hf/thebloke/deepseek-coder-6.7b-base-awq":{"post":{"operationId":"workers-ai-post-run-hf-thebloke-deepseek-coder-6-7b-base-awq","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @hf/thebloke/deepseek-coder-6.7b-base-awq model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@hf/thebloke/deepseek-coder-6.7b-instruct-awq":{"post":{"operationId":"workers-ai-post-run-hf-thebloke-deepseek-coder-6-7b-instruct-awq","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @hf/thebloke/deepseek-coder-6.7b-instruct-awq model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@hf/thebloke/llama-2-13b-chat-awq":{"post":{"operationId":"workers-ai-post-run-hf-thebloke-llama-2-13b-chat-awq","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @hf/thebloke/llama-2-13b-chat-awq model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@hf/thebloke/llamaguard-7b-awq":{"post":{"operationId":"workers-ai-post-run-hf-thebloke-llamaguard-7b-awq","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @hf/thebloke/llamaguard-7b-awq model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@hf/thebloke/mistral-7b-instruct-v0.1-awq":{"post":{"operationId":"workers-ai-post-run-hf-thebloke-mistral-7b-instruct-v0-1-awq","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @hf/thebloke/mistral-7b-instruct-v0.1-awq model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@hf/thebloke/neural-chat-7b-v3-1-awq":{"post":{"operationId":"workers-ai-post-run-hf-thebloke-neural-chat-7b-v3-1-awq","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @hf/thebloke/neural-chat-7b-v3-1-awq model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@hf/thebloke/openhermes-2.5-mistral-7b-awq":{"post":{"operationId":"workers-ai-post-run-hf-thebloke-openhermes-2-5-mistral-7b-awq","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @hf/thebloke/openhermes-2.5-mistral-7b-awq model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/@hf/thebloke/zephyr-7b-beta-awq":{"post":{"operationId":"workers-ai-post-run-hf-thebloke-zephyr-7b-beta-awq","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}]},"success":{"default":true,"type":"boolean"}},"type":"object"}},"text/event-stream":{"schema":{"type":"object"}}},"description":"Object with user data."},"400":{"content":{"applications/json":{"schema":{"properties":{"errors":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"type":"boolean"}},"required":["errors","success","result"],"type":"object"}}},"description":"Bad request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute @hf/thebloke/zephyr-7b-beta-awq model.","tags":["Workers AI Text Generation"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/run/{model_name}":{"post":{"description":"This endpoint provides users with the capability to run specific AI models on-demand.\n\nBy submitting the required input data, users can receive real-time predictions or results generated by the chosen AI\nmodel. The endpoint supports various AI model types, ensuring flexibility and adaptability for diverse use cases.\n\nModel specific inputs available in [Cloudflare Docs](https://developers.cloudflare.com/workers-ai/models/).","operationId":"workers-ai-post-run-model","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}},{"in":"path","name":"model_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"text":{"description":"The text that you want to classify","minLength":1,"type":"string"}},"required":["text"],"title":"Text Classification","type":"object"},{"properties":{"guidance":{"default":7.5,"description":"Controls how closely the generated image should adhere to the prompt; higher values make the image more aligned with the prompt","type":"number"},"height":{"description":"The height of the generated image in pixels","maximum":2048,"minimum":256,"type":"integer"},"image":{"description":"For use with img2img tasks. An array of integers that represent the image data constrained to 8-bit unsigned integer values","items":{"description":"A value between 0 and 255","type":"number"},"type":"array"},"image_b64":{"description":"For use with img2img tasks. A base64-encoded string of the input image","type":"string"},"mask":{"description":"An array representing An array of integers that represent mask image data for inpainting constrained to 8-bit unsigned integer values","items":{"description":"A value between 0 and 255","type":"number"},"type":"array"},"negative_prompt":{"description":"Text describing elements to avoid in the generated image","type":"string"},"num_steps":{"default":20,"description":"The number of diffusion steps; higher values can improve quality but take longer","maximum":20,"type":"integer"},"prompt":{"description":"A text description of the image you want to generate","minLength":1,"type":"string"},"seed":{"description":"Random seed for reproducibility of the image generation","type":"integer"},"strength":{"default":1,"description":"A value between 0 and 1 indicating how strongly to apply the transformation during img2img tasks; lower values make the output closer to the input image","type":"number"},"width":{"description":"The width of the generated image in pixels","maximum":2048,"minimum":256,"type":"integer"}},"required":["prompt"],"title":"Text To Image","type":"object"},{"properties":{"text":{"oneOf":[{"description":"The text to embed","minLength":1,"type":"string"},{"description":"Batch of text values to embed","items":{"description":"The text to embed","minLength":1,"type":"string"},"maxItems":100,"type":"array"}]}},"required":["text"],"title":"Text Embeddings","type":"object"},{"oneOf":[{"format":"binary","type":"string"},{"properties":{"audio":{"description":"An array of integers that represent the audio data constrained to 8-bit unsigned integer values","items":{"description":"A value between 0 and 255","type":"number"},"type":"array"},"source_lang":{"description":"The language of the recorded audio","type":"string"},"target_lang":{"description":"The language to translate the transcription into. Currently only English is supported.","type":"string"}},"required":["audio"],"type":"object"}],"title":"Automatic Speech Recognition","type":"object"},{"oneOf":[{"description":"The image to classify","format":"binary","type":"string"},{"properties":{"image":{"description":"An array of integers that represent the image data constrained to 8-bit unsigned integer values","items":{"description":"A value between 0 and 255 (unsigned 8bit)","type":"number"},"type":"array"}},"required":["image"],"type":"object"}],"title":"Image Classification","type":"object"},{"oneOf":[{"description":"The image to use for detection","format":"binary","type":"string"},{"properties":{"image":{"description":"An array of integers that represent the image data constrained to 8-bit unsigned integer values","items":{"description":"A value between 0 and 255 (unsigned 8bit)","type":"number"},"type":"array"}},"type":"object"}],"title":"Object Detection","type":"object"},{"oneOf":[{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"lora":{"description":"Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.","type":"string"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"prompt":{"description":"The input text prompt for the model to generate a response.","maxLength":131072,"minLength":1,"type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally using SSE, Server Sent Events.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["prompt"],"title":"Prompt"},{"properties":{"frequency_penalty":{"description":"Decreases the likelihood of the model repeating the same lines verbatim.","maximum":2,"minimum":0,"type":"number"},"functions":{"items":{"properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["name","code"],"type":"object"},"type":"array"},"max_tokens":{"default":256,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"messages":{"description":"An array of message objects representing the conversation history.","items":{"properties":{"content":{"description":"The content of the message as a string.","maxLength":131072,"type":"string"},"role":{"description":"The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').","type":"string"}},"required":["role","content"],"type":"object"},"type":"array"},"presence_penalty":{"description":"Increases the likelihood of the model introducing new topics.","maximum":2,"minimum":0,"type":"number"},"repetition_penalty":{"description":"Penalty for repeated tokens; higher values discourage repetition.","maximum":2,"minimum":0,"type":"number"},"seed":{"description":"Random seed for reproducibility of the generation.","maximum":9999999999,"minimum":1,"type":"integer"},"stream":{"default":false,"description":"If true, the response will be streamed back incrementally.","type":"boolean"},"temperature":{"default":0.6,"description":"Controls the randomness of the output; higher values produce more random results.","maximum":5,"minimum":0,"type":"number"},"tools":{"description":"A list of tools available for the assistant to use.","items":{"oneOf":[{"properties":{"description":{"description":"A brief description of what the tool does.","type":"string"},"name":{"description":"The name of the tool. More descriptive the better.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the tool.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"]},{"properties":{"function":{"description":"Details of the function tool.","properties":{"description":{"description":"A brief description of what the function does.","type":"string"},"name":{"description":"The name of the function.","type":"string"},"parameters":{"description":"Schema defining the parameters accepted by the function.","properties":{"properties":{"additionalProperties":{"properties":{"description":{"description":"A description of the expected parameter.","type":"string"},"type":{"description":"The data type of the parameter.","type":"string"}},"required":["type","description"],"type":"object"},"description":"Definitions of each parameter.","type":"object"},"required":{"description":"List of required parameter names.","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the parameters object (usually 'object').","type":"string"}},"required":["type","properties"],"type":"object"}},"required":["name","description","parameters"],"type":"object"},"type":{"description":"Specifies the type of tool (e.g., 'function').","type":"string"}},"required":["type","function"]}],"type":"object"},"type":"array"},"top_k":{"description":"Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.","maximum":50,"minimum":1,"type":"integer"},"top_p":{"description":"Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.","maximum":2,"minimum":0,"type":"number"}},"required":["messages"],"title":"Messages"}],"title":"Text Generation","type":"object"},{"properties":{"source_lang":{"default":"en","description":"The language code of the source text (e.g., 'en' for English). Defaults to 'en' if not specified","type":"string"},"target_lang":{"description":"The language code to translate the text into (e.g., 'es' for Spanish)","type":"string"},"text":{"description":"The text to be translated","minLength":1,"type":"string"}},"required":["text","target_lang"],"title":"Translation","type":"object"},{"properties":{"input_text":{"description":"The text that you want the model to summarize","minLength":1,"type":"string"},"max_length":{"default":1024,"description":"The maximum length of the generated summary in tokens","type":"integer"}},"required":["input_text"],"title":"Summarization","type":"object"},{"oneOf":[{"description":"Binary string representing the image contents.","format":"binary","type":"string"},{"properties":{"image":{"oneOf":[{"description":"An array of integers that represent the image data constrained to 8-bit unsigned integer values","items":{"description":"A value between 0 and 255","type":"number"},"type":"array"},{"description":"Binary string representing the image contents.","format":"binary","type":"string"}]},"max_tokens":{"default":512,"description":"The maximum number of tokens to generate in the response.","type":"integer"},"prompt":{"description":"The input text prompt for the model to generate a response.","type":"string"},"raw":{"default":false,"description":"If true, a chat template is not applied and you must adhere to the specific model's expected formatting.","type":"boolean"},"temperature":{"description":"Controls the randomness of the output; higher values produce more random results.","type":"number"}},"required":["image"],"type":"object"}],"title":"Image To Text","type":"object"}],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"oneOf":[{"description":"An array of classification results for the input text","items":{"properties":{"label":{"description":"The classification label assigned to the text (e.g., 'POSITIVE' or 'NEGATIVE')","type":"string"},"score":{"description":"Confidence score indicating the likelihood that the text belongs to the specified label","type":"number"}},"type":"object"},"title":"Text Classification","type":"array"},{"description":"The generated image in PNG format","format":"binary","title":"Text To Image","type":"string"},{"properties":{"data":{"description":"Embeddings of the requested text values","items":{"description":"Floating point embedding representation shaped by the embedding model","items":{"type":"number"},"type":"array"},"type":"array"},"shape":{"items":{"type":"number"},"type":"array"}},"title":"Text Embeddings","type":"object"},{"properties":{"text":{"description":"The transcription","type":"string"},"vtt":{"type":"string"},"word_count":{"type":"number"},"words":{"items":{"properties":{"end":{"description":"The ending second when the word completes","type":"number"},"start":{"description":"The second this word begins in the recording","type":"number"},"word":{"type":"string"}},"type":"object"},"type":"array"}},"required":["text"],"title":"Automatic Speech Recognition","type":"object"},{"items":{"properties":{"label":{"description":"The predicted category or class for the input image based on analysis","type":"string"},"score":{"description":"A confidence value, between 0 and 1, indicating how certain the model is about the predicted label","type":"number"}},"type":"object"},"title":"Image Classification","type":"array"},{"description":"An array of detected objects within the input image","items":{"properties":{"box":{"description":"Coordinates defining the bounding box around the detected object","properties":{"xmax":{"description":"The x-coordinate of the bottom-right corner of the bounding box","type":"number"},"xmin":{"description":"The x-coordinate of the top-left corner of the bounding box","type":"number"},"ymax":{"description":"The y-coordinate of the bottom-right corner of the bounding box","type":"number"},"ymin":{"description":"The y-coordinate of the top-left corner of the bounding box","type":"number"}},"type":"object"},"label":{"description":"The class label or name of the detected object","type":"string"},"score":{"description":"Confidence score indicating the likelihood that the detection is correct","type":"number"}},"type":"object"},"title":"Object Detection","type":"array"},{"oneOf":[{"properties":{"response":{"description":"The generated text response from the model","type":"string"},"tool_calls":{"description":"An array of tool calls requests made during the response generation","items":{"properties":{"arguments":{"description":"The arguments passed to be passed to the tool call request","type":"object"},"name":{"description":"The name of the tool to be called","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},{"format":"binary","type":"string"}],"title":"Text Generation","type":"object"},{"properties":{"translated_text":{"description":"The translated text in the target language","type":"string"}},"title":"Translation","type":"object"},{"properties":{"summary":{"description":"The summarized version of the input text","type":"string"}},"title":"Summarization","type":"object"},{"properties":{"description":{"type":"string"}},"title":"Image To Text","type":"object"}],"type":"object"}},"type":"object"}}},"description":"Model response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Execute AI model","tags":["Workers AI"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/ai/tasks/search":{"get":{"operationId":"workers-ai-search-task","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"example":"023e105f4ecef8ad9ca31a8372d0c353","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"type":"object"},"type":"array"},"messages":{"items":{"type":"object"},"type":"array"},"result":{"items":{"type":"object"},"type":"array"},"success":{"type":"boolean"}},"required":["success","result","errors","messages"],"type":"object"}}},"description":"Returns a list of tasks"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"success":{"type":"boolean"}},"required":["success","error"],"type":"object"}}},"description":"Object not found"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Task Search","tags":["Workers AI"],"x-api-token-group":["Workers AI Write","Workers AI Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.ai"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/alerting/v3/available_alerts":{"get":{"description":"Gets a list of all alert types for which an account is eligible.","operationId":"notification-alert-types-get-alert-types","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_account-id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_response_collection"}}},"description":"Get Alert Types response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_response_collection"},{"$ref":"#/components/schemas/aaa_schemas-api-response-common-failure"}]}}},"description":"Get Alert Types response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Alert Types","tags":["Notification Alert Types"],"x-api-token-group":["Cloudflare Zero Trust PII Read","Notifications Write","Notifications Read","Account Settings Write","Account Settings Read"]}},"/accounts/{account_id}/alerting/v3/destinations/eligible":{"get":{"description":"Get a list of all delivery mechanism types for which an account is eligible.","operationId":"notification-mechanism-eligibility-get-delivery-mechanism-eligibility","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_account-id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_schemas-response_collection"}}},"description":"Get delivery mechanism eligibility response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_schemas-response_collection"},{"$ref":"#/components/schemas/aaa_schemas-api-response-common-failure"}]}}},"description":"Get delivery mechanism eligibility response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get delivery mechanism eligibility","tags":["Notification Mechanism Eligibility"]}},"/accounts/{account_id}/alerting/v3/destinations/pagerduty":{"delete":{"description":"Deletes all the PagerDuty Services connected to the account.","operationId":"notification-destinations-with-pager-duty-delete-pager-duty-services","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_account-id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_api-response-collection"}}},"description":"Delete PagerDuty Services response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_api-response-collection"},{"$ref":"#/components/schemas/aaa_schemas-api-response-common-failure"}]}}},"description":"Delete PagerDuty Services response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete PagerDuty Services","tags":["Notification destinations with PagerDuty"],"x-api-token-group":["Notifications Write","Account Settings Write"]},"get":{"description":"Get a list of all configured PagerDuty services.","operationId":"notification-destinations-with-pager-duty-list-pager-duty-services","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_account-id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_components-schemas-response_collection"}}},"description":"List PagerDuty services response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_components-schemas-response_collection"},{"$ref":"#/components/schemas/aaa_schemas-api-response-common-failure"}]}}},"description":"List PagerDuty services response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List PagerDuty services","tags":["Notification destinations with PagerDuty"],"x-api-token-group":["Cloudflare Zero Trust PII Read","Notifications Write","Notifications Read","Account Settings Write","Account Settings Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/alerting/v3/destinations/pagerduty/connect":{"post":{"description":"Creates a new token for integrating with PagerDuty.","operationId":"notification-destinations-with-pager-duty-connect-pager-duty","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_account-id"}}],"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_sensitive_id_response"}}},"description":"Token for PagerDuty integration"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_id_response"},{"$ref":"#/components/schemas/aaa_schemas-api-response-common-failure"}]}}},"description":"Create a token for PagerDuty integration failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create PagerDuty integration token","tags":["Notification destinations with PagerDuty"],"x-api-token-group":["Notifications Write","Account Settings Write"]}},"/accounts/{account_id}/alerting/v3/destinations/pagerduty/connect/{token_id}":{"get":{"description":"Links PagerDuty with the account using the integration token.","operationId":"notification-destinations-with-pager-duty-connect-pager-duty-token","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_account-id"}},{"in":"path","name":"token_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_integration-token"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_id_response"}}},"description":"Create a Notification policy response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_id_response"},{"$ref":"#/components/schemas/aaa_schemas-api-response-common-failure"}]}}},"description":"Create a Notification policy response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Connect PagerDuty","tags":["Notification destinations with PagerDuty"],"x-api-token-group":["Notifications Write","Account Settings Write"]}},"/accounts/{account_id}/alerting/v3/destinations/webhooks":{"get":{"description":"Gets a list of all configured webhook destinations.","operationId":"notification-webhooks-list-webhooks","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_account-id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_webhooks_components-schemas-response_collection"}}},"description":"List webhooks response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_webhooks_components-schemas-response_collection"},{"$ref":"#/components/schemas/aaa_schemas-api-response-common-failure"}]}}},"description":"List webhooks response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List webhooks","tags":["Notification webhooks"],"x-api-token-group":["Cloudflare Zero Trust PII Read","Notifications Write","Notifications Read","Account Settings Write","Account Settings Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"post":{"description":"Creates a new webhook destination.","operationId":"notification-webhooks-create-a-webhook","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_account-id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"name":{"$ref":"#/components/schemas/aaa_components-schemas-name"},"secret":{"$ref":"#/components/schemas/aaa_secret"},"url":{"$ref":"#/components/schemas/aaa_url"}},"required":["name","url"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_id_response"}}},"description":"Create a webhook response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_id_response"},{"$ref":"#/components/schemas/aaa_schemas-api-response-common-failure"}]}}},"description":"Create a webhook response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create a webhook","tags":["Notification webhooks"],"x-api-token-group":["Notifications Write","Account Settings Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/accounts/{account_id}/alerting/v3/destinations/webhooks/{webhook_id}":{"delete":{"description":"Delete a configured webhook destination.","operationId":"notification-webhooks-delete-a-webhook","parameters":[{"in":"path","name":"webhook_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_webhook-id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_account-id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_api-response-collection"}}},"description":"Delete a webhook response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_api-response-collection"},{"$ref":"#/components/schemas/aaa_schemas-api-response-common-failure"}]}}},"description":"Delete a webhook response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete a webhook","tags":["Notification webhooks"],"x-api-token-group":["Notifications Write","Account Settings Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"get":{"description":"Get details for a single webhooks destination.","operationId":"notification-webhooks-get-a-webhook","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_account-id"}},{"in":"path","name":"webhook_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_webhook-id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_schemas-single_response"}}},"description":"Get a webhook response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_schemas-single_response"},{"$ref":"#/components/schemas/aaa_schemas-api-response-common-failure"}]}}},"description":"Get a webhook response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get a webhook","tags":["Notification webhooks"],"x-api-token-group":["Cloudflare Zero Trust PII Read","Notifications Write","Notifications Read","Account Settings Write","Account Settings Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"put":{"description":"Update a webhook destination.","operationId":"notification-webhooks-update-a-webhook","parameters":[{"in":"path","name":"webhook_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_webhook-id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_account-id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"name":{"$ref":"#/components/schemas/aaa_components-schemas-name"},"secret":{"$ref":"#/components/schemas/aaa_secret"},"url":{"$ref":"#/components/schemas/aaa_url"}},"required":["name","url"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_id_response"}}},"description":"Update a webhook response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_id_response"},{"$ref":"#/components/schemas/aaa_schemas-api-response-common-failure"}]}}},"description":"Update a webhook response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update a webhook","tags":["Notification webhooks"],"x-api-token-group":["Notifications Write","Account Settings Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/accounts/{account_id}/alerting/v3/history":{"get":{"description":"Gets a list of history records for notifications sent to an account. The records are displayed for last `x` number of days based on the zone plan (free = 30, pro = 30, biz = 30, ent = 90).","operationId":"notification-history-list-history","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_account-id"}},{"in":"query","name":"per_page","schema":{"$ref":"#/components/schemas/aaa_per_page"}},{"in":"query","name":"before","schema":{"$ref":"#/components/schemas/aaa_before"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"since","schema":{"description":"Limit the returned results to history records newer than the specified date. This must be a timestamp that conforms to RFC3339.","example":"2022-05-19T20:29:58.679897Z","format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_history_components-schemas-response_collection"}}},"description":"List History response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_history_components-schemas-response_collection"},{"$ref":"#/components/schemas/aaa_schemas-api-response-common-failure"}]}}},"description":"List History response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List History","tags":["Notification History"],"x-api-token-group":["Cloudflare Zero Trust PII Read","Notifications Write","Notifications Read","Account Settings Write","Account Settings Read"]}},"/accounts/{account_id}/alerting/v3/policies":{"get":{"description":"Get a list of all Notification policies.","operationId":"notification-policies-list-notification-policies","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_account-id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_policies_components-schemas-response_collection"}}},"description":"List Notification policies response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_policies_components-schemas-response_collection"},{"$ref":"#/components/schemas/aaa_schemas-api-response-common-failure"}]}}},"description":"List Notification policies response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Notification policies","tags":["Notification policies"],"x-api-token-group":["Cloudflare Zero Trust PII Read","Notifications Write","Notifications Read","Account Settings Write","Account Settings Read"]},"post":{"description":"Creates a new Notification policy.","operationId":"notification-policies-create-a-notification-policy","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_account-id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"alert_interval":{"$ref":"#/components/schemas/aaa_alert_interval"},"alert_type":{"$ref":"#/components/schemas/aaa_alert_type"},"description":{"$ref":"#/components/schemas/aaa_schemas-description"},"enabled":{"$ref":"#/components/schemas/aaa_enabled"},"filters":{"$ref":"#/components/schemas/aaa_filters"},"mechanisms":{"$ref":"#/components/schemas/aaa_mechanisms"},"name":{"$ref":"#/components/schemas/aaa_schemas-name"}},"required":["name","alert_type","enabled","mechanisms"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_id_response"}}},"description":"Create a Notification policy response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_id_response"},{"$ref":"#/components/schemas/aaa_schemas-api-response-common-failure"}]}}},"description":"Create a Notification policy response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create a Notification policy","tags":["Notification policies"],"x-api-token-group":["Notifications Write","Account Settings Write"]}},"/accounts/{account_id}/alerting/v3/policies/{policy_id}":{"delete":{"description":"Delete a Notification policy.","operationId":"notification-policies-delete-a-notification-policy","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_account-id"}},{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_policy-id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_api-response-collection"}}},"description":"Delete a Notification policy response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_api-response-collection"},{"$ref":"#/components/schemas/aaa_schemas-api-response-common-failure"}]}}},"description":"Delete a Notification policy response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete a Notification policy","tags":["Notification policies"],"x-api-token-group":["Notifications Write","Account Settings Write"]},"get":{"description":"Get details for a single policy.","operationId":"notification-policies-get-a-notification-policy","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_account-id"}},{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_policy-id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_single_response"}}},"description":"Get a Notification policy response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_single_response"},{"$ref":"#/components/schemas/aaa_schemas-api-response-common-failure"}]}}},"description":"Get a Notification policy response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get a Notification policy","tags":["Notification policies"],"x-api-token-group":["Cloudflare Zero Trust PII Read","Notifications Write","Notifications Read","Account Settings Write","Account Settings Read"]},"put":{"description":"Update a Notification policy.","operationId":"notification-policies-update-a-notification-policy","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_account-id"}},{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_policy-id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"alert_interval":{"$ref":"#/components/schemas/aaa_alert_interval"},"alert_type":{"$ref":"#/components/schemas/aaa_alert_type"},"description":{"$ref":"#/components/schemas/aaa_schemas-description"},"enabled":{"$ref":"#/components/schemas/aaa_enabled"},"filters":{"$ref":"#/components/schemas/aaa_filters"},"mechanisms":{"$ref":"#/components/schemas/aaa_mechanisms"},"name":{"$ref":"#/components/schemas/aaa_schemas-name"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_id_response"}}},"description":"Update a Notification policy response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_id_response"},{"$ref":"#/components/schemas/aaa_schemas-api-response-common-failure"}]}}},"description":"Update a Notification policy response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update a Notification policy","tags":["Notification policies"],"x-api-token-group":["Notifications Write","Account Settings Write"]}},"/accounts/{account_id}/audit_logs":{"get":{"description":"Gets a list of audit logs for an account. Can be filtered by who made the change, on which zone, and the timeframe of the change.","operationId":"audit-logs-get-account-audit-logs","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_identifier"}},{"in":"query","name":"id","schema":{"description":"Finds a specific log by its ID.","example":"f174be97-19b1-40d6-954d-70cd5fbd52db","type":"string"}},{"in":"query","name":"export","schema":{"description":"Indicates that this request is an export of logs in CSV format.","example":true,"type":"boolean"}},{"in":"query","name":"action.type","schema":{"description":"Filters by the action type.","example":"add","type":"string"}},{"in":"query","name":"actor.ip","schema":{"description":"Filters by the IP address of the request that made the change by specific IP address or valid CIDR Range.","example":"17.168.228.63","type":"string"}},{"in":"query","name":"actor.email","schema":{"description":"Filters by the email address of the actor that made the change.","example":"alice@example.com","format":"email","type":"string"}},{"in":"query","name":"since","schema":{"oneOf":[{"description":"Limits the returned results to logs newer than the specified date. A `full-date` that conforms to RFC3339.","example":"2019-04-30","format":"date","type":"string"},{"description":"Limits the returned results to logs newer than the specified date. A `date-time` that conforms to RFC3339.","example":"2019-04-30T01:12:20Z","format":"date-time","type":"string"}]}},{"in":"query","name":"before","schema":{"oneOf":[{"description":"Limits the returned results to logs older than the specified date. A `full-date` that conforms to RFC3339.","example":"2019-04-30","format":"date","type":"string"},{"description":"Limits the returned results to logs older than the specified date. A `date-time` that conforms to RFC3339.","example":"2019-04-30T01:12:20Z","format":"date-time","type":"string"}]}},{"in":"query","name":"zone.name","schema":{"description":"Filters by the name of the zone associated to the change.","example":"example.com","type":"string"}},{"in":"query","name":"direction","schema":{"default":"desc","description":"Changes the direction of the chronological sorting.","enum":["desc","asc"],"example":"desc","type":"string"}},{"in":"query","name":"per_page","schema":{"default":100,"description":"Sets the number of results to return per page.","example":25,"maximum":1000,"minimum":1,"type":"number"}},{"in":"query","name":"page","schema":{"default":1,"description":"Defines which page of results to return.","example":50,"minimum":1,"type":"number"}},{"in":"query","name":"hide_user_logs","schema":{"default":false,"description":"Indicates whether or not to hide user level audit logs.","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_audit_logs_response_collection"}}},"description":"Get account audit logs response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_audit_logs_response_collection"},{"$ref":"#/components/schemas/aaa_api-response-common-failure"}]}}},"description":"Get account audit logs response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get account audit logs","tags":["Audit Logs"],"x-api-token-group":["Account Settings Write","Account Settings Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/billing/profile":{"get":{"deprecated":true,"description":"Gets the current billing profile for the account.","operationId":"account-billing-profile-(-deprecated)-billing-profile-details","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/bill-subs-api_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bill-subs-api_billing_response_single"}}},"description":"Billing Profile Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_billing_response_single"},{"$ref":"#/components/schemas/bill-subs-api_api-response-common-failure"}]}}},"description":"Billing Profile Details response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Billing Profile Details","tags":["Account Billing Profile"],"x-api-token-group":["Billing Write","Billing Read"],"x-cfPermissionsRequired":{"enum":["#billing:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/botnet_feed/asn/{asn_id}/day_report":{"get":{"description":"Gets all the data the botnet tracking database has for a given ASN registered to user account for given date. If no date is given, it will return results for the previous day.","operationId":"botnet-threat-feed-get-day-report","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dos_identifier"}},{"in":"path","name":"asn_id","required":true,"schema":{"$ref":"#/components/schemas/dos_asn"}},{"in":"query","name":"date","schema":{"$ref":"#/components/schemas/dos_timestamp"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dos_api-response-common"},{"properties":{"result":{"properties":{"cidr":{"example":"1.1.1.1/32","type":"string"},"date":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","type":"string"},"offense_count":{"example":1000,"type":"integer"}},"type":"object"}},"type":"object"}],"type":"object"}}},"description":"Get botnet feed report for day"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dos_api-response-common-failure"}}},"description":"Get botnet feed report for day response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get daily report","tags":["Botnet Threat Feed"],"x-api-token-group":["DDoS Botnet Feed Write","DDoS Botnet Feed Read"]}},"/accounts/{account_id}/botnet_feed/asn/{asn_id}/full_report":{"get":{"description":"Gets all the data the botnet threat feed tracking database has for a given ASN registered to user account.","operationId":"botnet-threat-feed-get-full-report","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dos_identifier"}},{"in":"path","name":"asn_id","required":true,"schema":{"$ref":"#/components/schemas/dos_asn"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dos_api-response-common"},{"properties":{"result":{"properties":{"cidr":{"example":"1.1.1.1/32","type":"string"},"date":{"example":"2014-01-01T05:20:00.12345Z","format":"date-time","type":"string"},"offense_count":{"example":1000,"type":"integer"}},"type":"object"}},"type":"object"}],"type":"object"}}},"description":"Get full botnet feed report"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dos_api-response-common-failure"}}},"description":"Get full botnet feed report response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get full report","tags":["Botnet Threat Feed"],"x-api-token-group":["DDoS Botnet Feed Write","DDoS Botnet Feed Read"]}},"/accounts/{account_id}/botnet_feed/configs/asn":{"get":{"description":"Gets a list of all ASNs registered for a user for the DDoS Botnet Feed API.","operationId":"botnet-threat-feed-list-asn","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dos_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dos_api-response-common"},{"properties":{"result":{"properties":{"asn":{"example":13335,"type":"integer"}},"type":"object"}},"type":"object"}],"type":"object"}}},"description":"Get list of ASNs response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dos_api-response-common-failure"}}},"description":"Get list of ASNs response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get list of ASNs","tags":["Botnet Threat Feed"],"x-api-token-group":["DDoS Botnet Feed Write","DDoS Botnet Feed Read"]}},"/accounts/{account_id}/botnet_feed/configs/asn/{asn_id}":{"delete":{"description":"Delete an ASN from botnet threat feed for a given user.","operationId":"botnet-threat-feed-delete-asn","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dos_identifier"}},{"in":"path","name":"asn_id","required":true,"schema":{"$ref":"#/components/schemas/dos_asn"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dos_api-response-common"},{"properties":{"result":{"properties":{"asn":{"example":13335,"type":"integer"}},"type":"object"}},"type":"object"}],"type":"object"}}},"description":"Delete ASN response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dos_api-response-common-failure"}}},"description":"Delete ASN response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete an ASN","tags":["Botnet Threat Feed"],"x-api-token-group":["DDoS Botnet Feed Write"]}},"/accounts/{account_id}/brand-protection/submit":{"post":{"operationId":"phishing-url-scanner-submit-suspicious-url-for-scanning","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/intel_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/intel_url_param"}],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/intel_phishing-url-submit_components-schemas-single_response"}}},"description":"Submit suspicious URL for scanning response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/intel_phishing-url-submit_components-schemas-single_response"},{"$ref":"#/components/schemas/intel_api-response-common-failure"}]}}},"description":"Submit suspicious URL for scanning response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Submit suspicious URL for scanning","tags":["Phishing URL Scanner"]}},"/accounts/{account_id}/brand-protection/url-info":{"get":{"operationId":"phishing-url-information-get-results-for-a-url-scan","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/intel_identifier"}},{"description":"Submission ID(s) to filter submission results by.","example":[100,200],"explode":true,"in":"query","name":"url_id","schema":{"items":{"type":"integer"},"type":"array"},"style":"form"},{"description":"Submission URL(s) to filter submission results by.","example":["https://foo.com","https://bar.com"],"explode":true,"in":"query","name":"url","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/intel_phishing-url-info_components-schemas-single_response"}}},"description":"Get results for a URL scan response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/intel_phishing-url-info_components-schemas-single_response"},{"$ref":"#/components/schemas/intel_api-response-common-failure"}]}}},"description":"Get results for a URL scan response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get results for a URL scan","tags":["Phishing URL Information"]}},"/accounts/{account_id}/calls/apps":{"get":{"description":"Lists all apps in the Cloudflare account","operationId":"calls-apps-list","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/calls_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_app_response_collection"}}},"description":"List apps response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_api-response-common-failure"}}},"description":"List apps response failure"}},"security":[{"api_token":[]}],"summary":"List apps","tags":["Calls Apps"],"x-api-token-group":["Calls Write","Calls Read"]},"post":{"description":"Creates a new Cloudflare calls app. An app is an unique enviroment where each Session can access all Tracks within the app.","operationId":"calls-apps-create-a-new-app","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/calls_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_app_editable_fields"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_app_response_single_with_secret"}}},"description":"Created a new app"}},"security":[{"api_token":[]}],"summary":"Create a new app","tags":["Calls Apps"],"x-api-token-group":["Calls Write"]}},"/accounts/{account_id}/calls/apps/{app_id}":{"delete":{"description":"Deletes an app from Cloudflare Calls","operationId":"calls-apps-delete-app","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/calls_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/calls_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_app_response_single"}}},"description":"Delete app response"},"4XX":{"content":{"application/json":{}},"description":"Delete app response failure"}},"security":[{"api_token":[]}],"summary":"Delete app","tags":["Calls Apps"],"x-api-token-group":["Calls Write"]},"get":{"description":"Fetches details for a single Calls app.","operationId":"calls-apps-retrieve-app-details","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/calls_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/calls_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_app_response_single"}}},"description":"Retrieve app details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_api-response-common-failure"}}},"description":"Retrieve app details response failure"}},"security":[{"api_token":[]}],"summary":"Retrieve app details","tags":["Calls Apps"],"x-api-token-group":["Calls Write","Calls Read"]},"put":{"description":"Edit details for a single app.","operationId":"calls-apps-update-app-details","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/calls_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/calls_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_app_editable_fields"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_app_response_single"}}},"description":"Edit app details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_api-response-common-failure"}}},"description":"Edit app details response failure"}},"security":[{"api_token":[]}],"summary":"Edit app details","tags":["Calls Apps"],"x-api-token-group":["Calls Write"]}},"/accounts/{account_id}/calls/turn_keys":{"get":{"description":"Lists all TURN keys in the Cloudflare account","operationId":"calls-turn-key-list","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/calls_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_turn_key_collection"}}},"description":"List TURN key response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_api-response-common-failure"}}},"description":"List TURN key response failure"}},"security":[{"api_token":[]}],"summary":"List TURN Keys","tags":["Calls TURN Keys"],"x-api-token-group":["Calls Write","Calls Read"]},"post":{"description":"Creates a new Cloudflare Calls TURN key.","operationId":"calls-turn-key-create","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/calls_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_turn_key_editable_fields"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_turn_key_with_key"}}},"description":"Created a new TURN key"}},"security":[{"api_token":[]}],"summary":"Create a new TURN key","tags":["Calls TURN Keys"],"x-api-token-group":["Calls Write"]}},"/accounts/{account_id}/calls/turn_keys/{key_id}":{"delete":{"description":"Deletes a TURN key from Cloudflare Calls","operationId":"calls-delete-turn-key","parameters":[{"in":"path","name":"key_id","required":true,"schema":{"$ref":"#/components/schemas/calls_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/calls_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_turn_key_response_single"}}},"description":"Delete TURN key response"},"4XX":{"content":{"application/json":{}},"description":"Delete TURN key response failure"}},"security":[{"api_token":[]}],"summary":"Delete TURN key","tags":["Calls TURN Keys"],"x-api-token-group":["Calls Write"]},"get":{"description":"Fetches details for a single TURN key.","operationId":"calls-retrieve-turn-key-details","parameters":[{"in":"path","name":"key_id","required":true,"schema":{"$ref":"#/components/schemas/calls_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/calls_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_turn_key_response_single"}}},"description":"Retrieve TURN key details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_api-response-common-failure"}}},"description":"Retrieve TURN key details failure"}},"security":[{"api_token":[]}],"summary":"Retrieve TURN key details","tags":["Calls TURN Keys"],"x-api-token-group":["Calls Write","Calls Read"]},"put":{"description":"Edit details for a single TURN key.","operationId":"calls-update-turn-key","parameters":[{"in":"path","name":"key_id","required":true,"schema":{"$ref":"#/components/schemas/calls_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/calls_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_turn_key_editable_fields"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_turn_key_response_single"}}},"description":"Edit TURN key details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/calls_api-response-common-failure"}}},"description":"Edit TURN key details response failure"}},"security":[{"api_token":[]}],"summary":"Edit TURN key details","tags":["Calls TURN Keys"],"x-api-token-group":["Calls Write"]}},"/accounts/{account_id}/cfd_tunnel":{"get":{"description":"Lists and filters Cloudflare Tunnels in an account.","operationId":"cloudflare-tunnel-list-cloudflare-tunnels","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"query","name":"name","schema":{"$ref":"#/components/schemas/tunnel_tunnel_name"}},{"in":"query","name":"is_deleted","schema":{"description":"If `true`, only include deleted tunnels. If `false`, exclude deleted tunnels. If empty, all tunnels will be included.","example":true,"type":"boolean"}},{"in":"query","name":"existed_at","schema":{"$ref":"#/components/schemas/tunnel_existed_at"}},{"in":"query","name":"uuid","schema":{"$ref":"#/components/schemas/tunnel_tunnel_id"}},{"in":"query","name":"was_active_at","schema":{"example":"2009-11-10T23:00:00Z","format":"date-time","type":"string"}},{"in":"query","name":"was_inactive_at","schema":{"example":"2009-11-10T23:00:00Z","format":"date-time","type":"string"}},{"in":"query","name":"include_prefix","schema":{"example":"vpc1-","type":"string"}},{"in":"query","name":"exclude_prefix","schema":{"example":"vpc1-","type":"string"}},{"in":"query","name":"status","schema":{"$ref":"#/components/schemas/tunnel_status"}},{"in":"query","name":"per_page","schema":{"$ref":"#/components/schemas/tunnel_per_page"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_tunnel-response-collection"}}},"description":"List Cloudflare Tunnels response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_tunnel-response-collection"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"List Cloudflare Tunnels response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"List Cloudflare Tunnels","tags":["Cloudflare Tunnel"],"x-api-token-group":["Cloudflare One Connectors Write","Cloudflare One Connectors Read","Cloudflare One cloudflared Connectors Write","Cloudflare One cloudflared Connectors Read","Argo Tunnel Write","Argo Tunnel Read"]},"post":{"description":"Creates a new Cloudflare Tunnel in an account.","operationId":"cloudflare-tunnel-create-a-cloudflare-tunnel","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"config_src":{"$ref":"#/components/schemas/tunnel_config_src"},"name":{"$ref":"#/components/schemas/tunnel_tunnel_name"},"tunnel_secret":{"$ref":"#/components/schemas/tunnel_tunnel_secret"}},"required":["name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_tunnel-response-single"}}},"description":"Create a Cloudflare Tunnel response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_tunnel-response-single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Create a Cloudflare Tunnel response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Create a Cloudflare Tunnel","tags":["Cloudflare Tunnel"],"x-api-token-group":["Cloudflare One Connectors Write","Cloudflare One cloudflared Connectors Write","Argo Tunnel Write"]}},"/accounts/{account_id}/cfd_tunnel/{tunnel_id}":{"delete":{"description":"Deletes a Cloudflare Tunnel from an account.","operationId":"cloudflare-tunnel-delete-a-cloudflare-tunnel","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"path","name":"tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_tunnel_id"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_tunnel-response-single"}}},"description":"Delete a Cloudflare Tunnel response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_tunnel-response-single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Delete a Cloudflare Tunnel response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Delete a Cloudflare Tunnel","tags":["Cloudflare Tunnel"],"x-api-token-group":["Cloudflare One Connectors Write","Cloudflare One cloudflared Connectors Write","Argo Tunnel Write"]},"get":{"description":"Fetches a single Cloudflare Tunnel.","operationId":"cloudflare-tunnel-get-a-cloudflare-tunnel","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"path","name":"tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_tunnel_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_tunnel-response-single"}}},"description":"Get a Cloudflare Tunnel response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_tunnel-response-single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Get a Cloudflare Tunnel response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Get a Cloudflare Tunnel","tags":["Cloudflare Tunnel"],"x-api-token-group":["Cloudflare One Connectors Write","Cloudflare One Connectors Read","Cloudflare One cloudflared Connectors Write","Cloudflare One cloudflared Connectors Read","Argo Tunnel Write","Argo Tunnel Read"]},"patch":{"description":"Updates an existing Cloudflare Tunnel.","operationId":"cloudflare-tunnel-update-a-cloudflare-tunnel","parameters":[{"in":"path","name":"tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_tunnel_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"name":{"$ref":"#/components/schemas/tunnel_tunnel_name"},"tunnel_secret":{"$ref":"#/components/schemas/tunnel_tunnel_secret"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_tunnel-response-single"}}},"description":"Update a Cloudflare Tunnel response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_tunnel-response-single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Update a Cloudflare Tunnel response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Update a Cloudflare Tunnel","tags":["Cloudflare Tunnel"],"x-api-token-group":["Cloudflare One Connectors Write","Cloudflare One cloudflared Connectors Write","Argo Tunnel Write"]}},"/accounts/{account_id}/cfd_tunnel/{tunnel_id}/configurations":{"get":{"description":"Gets the configuration for a remotely-managed tunnel","operationId":"cloudflare-tunnel-configuration-get-configuration","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_identifier"}},{"in":"path","name":"tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_tunnel_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_configuration_response"}}},"description":"Get configuration response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}}},"description":"Get configuration response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Get configuration","tags":["Cloudflare Tunnel Configuration"]},"put":{"description":"Adds or updates the configuration for a remotely-managed tunnel.","operationId":"cloudflare-tunnel-configuration-put-configuration","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_identifier"}},{"in":"path","name":"tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_tunnel_id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"config":{"$ref":"#/components/schemas/tunnel_config"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_configuration_response"}}},"description":"Put configuration response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}}},"description":"Put configuration response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Put configuration","tags":["Cloudflare Tunnel Configuration"]}},"/accounts/{account_id}/cfd_tunnel/{tunnel_id}/connections":{"delete":{"description":"Removes a connection (aka Cloudflare Tunnel Connector) from a Cloudflare Tunnel independently of its current state. If no connector id (client_id) is provided all connectors will be removed. We recommend running this command after rotating tokens.","operationId":"cloudflare-tunnel-clean-up-cloudflare-tunnel-connections","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"path","name":"tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_tunnel_id"}},{"in":"query","name":"client_id","schema":{"$ref":"#/components/schemas/tunnel_client_id"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_empty_response"}}},"description":"Clean up Cloudflare Tunnel connections response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_empty_response"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Clean up Cloudflare Tunnel connections response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Clean up Cloudflare Tunnel connections","tags":["Cloudflare Tunnel"]},"get":{"description":"Fetches connection details for a Cloudflare Tunnel.","operationId":"cloudflare-tunnel-list-cloudflare-tunnel-connections","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"path","name":"tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_tunnel_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_tunnel_connections_response"}}},"description":"List Cloudflare Tunnel connections response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_tunnel_connections_response"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"List Cloudflare Tunnel connections response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"List Cloudflare Tunnel connections","tags":["Cloudflare Tunnel"]}},"/accounts/{account_id}/cfd_tunnel/{tunnel_id}/connectors/{connector_id}":{"get":{"description":"Fetches connector and connection details for a Cloudflare Tunnel.","operationId":"cloudflare-tunnel-get-cloudflare-tunnel-connector","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"path","name":"tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_tunnel_id"}},{"in":"path","name":"connector_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_client_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_tunnel_client_response"}}},"description":"Get Cloudflare Tunnel connector response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_tunnel_client_response"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Get Cloudflare Tunnel connector response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Get Cloudflare Tunnel connector","tags":["Cloudflare Tunnel"]}},"/accounts/{account_id}/cfd_tunnel/{tunnel_id}/management":{"post":{"description":"Gets a management token used to access the management resources (i.e. Streaming Logs) of a tunnel.","operationId":"cloudflare-tunnel-get-a-cloudflare-tunnel-management-token","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"path","name":"tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_tunnel_id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"resources":{"items":{"$ref":"#/components/schemas/tunnel_management-resources"},"type":"array"}},"required":["resources"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_tunnel_response_token"}}},"description":"Get a Cloudflare Tunnel management token response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_tunnel_response_token"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Cloudflare API response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Get a Cloudflare Tunnel management token","tags":["Cloudflare Tunnel"]}},"/accounts/{account_id}/cfd_tunnel/{tunnel_id}/token":{"get":{"description":"Gets the token used to associate cloudflared with a specific tunnel.","operationId":"cloudflare-tunnel-get-a-cloudflare-tunnel-token","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"path","name":"tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_tunnel_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_tunnel_response_token"}}},"description":"Get a Cloudflare Tunnel token response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_tunnel_response_token"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Get a Cloudflare Tunnel token response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Get a Cloudflare Tunnel token","tags":["Cloudflare Tunnel"]}},"/accounts/{account_id}/challenges/widgets":{"get":{"description":"Lists all turnstile widgets of an account.","operationId":"accounts-turnstile-widgets-list","responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/turnstile_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/turnstile_result_info"}}},{"properties":{"result":{"items":{"$ref":"#/components/schemas/turnstile_widget_list"},"type":"array"}}}]}}},"description":"List Turnstile Widgets"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/turnstile_api-response-common-failure"}}},"description":"List Turnstile Widgets Error"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Turnstile Widgets","tags":["Turnstile"],"x-api-token-group":["Turnstile Sites Read","Account Settings Read"]},"parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/turnstile_identifier"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":25,"description":"Number of items per page.","maximum":1000,"minimum":5,"type":"number"}},{"in":"query","name":"order","schema":{"description":"Field to order widgets by.","enum":["id","sitekey","name","created_on","modified_on"],"example":"id"}},{"in":"query","name":"direction","schema":{"description":"Direction to order widgets.","enum":["asc","desc"],"example":"asc"}}],"post":{"description":"Lists challenge widgets.","operationId":"accounts-turnstile-widget-create","requestBody":{"content":{"application/json":{"schema":{"properties":{"bot_fight_mode":{"$ref":"#/components/schemas/turnstile_bot_fight_mode"},"clearance_level":{"$ref":"#/components/schemas/turnstile_clearance_level"},"domains":{"$ref":"#/components/schemas/turnstile_domains"},"ephemeral_id":{"$ref":"#/components/schemas/turnstile_ephemeral_id"},"mode":{"$ref":"#/components/schemas/turnstile_mode"},"name":{"$ref":"#/components/schemas/turnstile_name"},"offlabel":{"$ref":"#/components/schemas/turnstile_offlabel"},"region":{"$ref":"#/components/schemas/turnstile_region"}},"required":["name","mode","domains"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/turnstile_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/turnstile_result_info"}}},{"properties":{"result":{"$ref":"#/components/schemas/turnstile_widget_detail"}}}]}}},"description":"Create Turnstile Widget Response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/turnstile_api-response-common-failure"}}},"description":"Create Turnstile Widget Response Error"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create a Turnstile Widget","tags":["Turnstile"]}},"/accounts/{account_id}/challenges/widgets/{sitekey}":{"delete":{"description":"Destroy a Turnstile Widget.","operationId":"accounts-turnstile-widget-delete","responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/turnstile_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/turnstile_widget_detail"}}}]}}},"description":"Delete Turnstile Widget Response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/turnstile_api-response-common-failure"}}},"description":"Delete Turnstile Widget Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete a Turnstile Widget","tags":["Turnstile"]},"get":{"description":"Show a single challenge widget configuration.","operationId":"accounts-turnstile-widget-get","responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/turnstile_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/turnstile_widget_detail"}}}]}}},"description":"Turnstile Widget Details Response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/turnstile_api-response-common-failure"}}},"description":"Turnstile Widget Details Response Error"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Turnstile Widget Details","tags":["Turnstile"],"x-api-token-group":["Turnstile Sites Read","Account Settings Read"]},"parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/turnstile_identifier"}},{"in":"path","name":"sitekey","required":true,"schema":{"$ref":"#/components/schemas/turnstile_sitekey"}}],"put":{"description":"Update the configuration of a widget.","operationId":"accounts-turnstile-widget-update","requestBody":{"content":{"application/json":{"schema":{"properties":{"bot_fight_mode":{"$ref":"#/components/schemas/turnstile_bot_fight_mode"},"clearance_level":{"$ref":"#/components/schemas/turnstile_clearance_level"},"domains":{"$ref":"#/components/schemas/turnstile_domains"},"ephemeral_id":{"$ref":"#/components/schemas/turnstile_ephemeral_id"},"mode":{"$ref":"#/components/schemas/turnstile_mode"},"name":{"$ref":"#/components/schemas/turnstile_name"},"offlabel":{"$ref":"#/components/schemas/turnstile_offlabel"}},"required":["name","mode","domains"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/turnstile_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/turnstile_widget_detail"}}}]}}},"description":"Update Turnstile Widget Response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/turnstile_api-response-common-failure"}}},"description":"Update Turnstile Widget Response Error"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update a Turnstile Widget","tags":["Turnstile"]}},"/accounts/{account_id}/challenges/widgets/{sitekey}/rotate_secret":{"parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/turnstile_identifier"}},{"in":"path","name":"sitekey","required":true,"schema":{"$ref":"#/components/schemas/turnstile_sitekey"}}],"post":{"description":"Generate a new secret key for this widget. If `invalidate_immediately`\nis set to `false`, the previous secret remains valid for 2 hours.\n\nNote that secrets cannot be rotated again during the grace period.\n","operationId":"accounts-turnstile-widget-rotate-secret","requestBody":{"content":{"application/json":{"schema":{"properties":{"invalidate_immediately":{"$ref":"#/components/schemas/turnstile_invalidate_immediately"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/turnstile_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/turnstile_widget_detail"}}}]}}},"description":"Rotate Secret Response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/turnstile_api-response-common-failure"}}},"description":"Rotate Secret Response Error"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Rotate Secret for a Turnstile Widget","tags":["Turnstile"]}},"/accounts/{account_id}/custom_ns":{"get":{"description":"List an account's custom nameservers.","operationId":"account-level-custom-nameservers-list-account-custom-nameservers","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dns-custom-nameservers_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-custom-nameservers_acns_response_collection"}}},"description":"List Account Custom Nameservers response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-custom-nameservers_acns_response_collection"},{"$ref":"#/components/schemas/dns-custom-nameservers_api-response-common-failure"}]}}},"description":"List Account Custom Nameservers response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Account Custom Nameservers","tags":["Account-Level Custom Nameservers"],"x-cfPermissionsRequired":{"enum":["#organization:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}},"post":{"operationId":"account-level-custom-nameservers-add-account-custom-nameserver","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dns-custom-nameservers_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-custom-nameservers_CustomNSInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-custom-nameservers_acns_response_single"}}},"description":"Add Account Custom Nameserver response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-custom-nameservers_acns_response_single"},{"$ref":"#/components/schemas/dns-custom-nameservers_api-response-common-failure"}]}}},"description":"Add Account Custom Nameserver response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Add Account Custom Nameserver","tags":["Account-Level Custom Nameservers"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/custom_ns/availability":{"get":{"operationId":"account-level-custom-nameservers-get-eligible-zones-for-account-custom-nameservers","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dns-custom-nameservers_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-custom-nameservers_availability_response"}}},"description":"Get Eligible Zones for Account Custom Nameservers response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-custom-nameservers_availability_response"},{"$ref":"#/components/schemas/dns-custom-nameservers_api-response-common-failure"}]}}},"description":"Get Eligible Zones for Account Custom Nameservers response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Eligible Zones for Account Custom Nameservers","tags":["Account-Level Custom Nameservers"],"x-cfPermissionsRequired":{"enum":["#organization:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/custom_ns/{custom_ns_id}":{"delete":{"operationId":"account-level-custom-nameservers-delete-account-custom-nameserver","parameters":[{"in":"path","name":"custom_ns_id","required":true,"schema":{"$ref":"#/components/schemas/dns-custom-nameservers_ns_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dns-custom-nameservers_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-custom-nameservers_empty_response"}}},"description":"Delete Account Custom Nameserver response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-custom-nameservers_empty_response"},{"$ref":"#/components/schemas/dns-custom-nameservers_api-response-common-failure"}]}}},"description":"Delete Account Custom Nameserver response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Account Custom Nameserver","tags":["Account-Level Custom Nameservers"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/d1/database":{"get":{"description":"Returns a list of D1 databases.","operationId":"cloudflare-d1-list-databases","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/d1_account-identifier"}},{"in":"query","name":"name","schema":{"description":"a database name to search for.","type":"string"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":1000,"description":"Number of items per page.","maximum":10000,"minimum":10,"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/d1_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/d1_database-response"},"type":"array"},"result_info":{"properties":{"count":{"description":"Total number of results for the requested service","example":1,"type":"number"},"page":{"description":"Current page within paginated list of results","example":1,"type":"number"},"per_page":{"description":"Number of results per page of results","example":20,"type":"number"},"total_count":{"description":"Total results available without any search parameters","example":2000,"type":"number"}},"type":"object"}}}]}}},"description":"List D1 databases response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/d1_api-response-common-failure"}}},"description":"List D1 databases response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List D1 Databases","tags":["D1"],"x-api-token-group":["D1 Read","D1 Write"]},"post":{"description":"Returns the created D1 database.","operationId":"cloudflare-d1-create-database","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/d1_account-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"name":{"$ref":"#/components/schemas/d1_database-name"},"primary_location_hint":{"$ref":"#/components/schemas/d1_primary-location-hint"}},"required":["name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/d1_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/d1_database-details-response"}}}]}}},"description":"Returns the created D1 database's metadata"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/d1_api-response-common-failure"}}},"description":"Database details response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create D1 Database","tags":["D1"],"x-api-token-group":["D1 Write"]}},"/accounts/{account_id}/d1/database/{database_id}":{"delete":{"description":"Deletes the specified D1 database.","operationId":"cloudflare-d1-delete-database","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/d1_account-identifier"}},{"in":"path","name":"database_id","required":true,"schema":{"$ref":"#/components/schemas/d1_database-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/d1_api-response-common"},{"properties":{"result":{"enum":[null],"nullable":true,"type":"object"}}}]}}},"description":"Delete D1 database response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/d1_api-response-common-failure"}}},"description":"Delete D1 database response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete D1 Database","tags":["D1"],"x-api-token-group":["D1 Write"]},"get":{"description":"Returns the specified D1 database.","operationId":"cloudflare-d1-get-database","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/d1_account-identifier"}},{"in":"path","name":"database_id","required":true,"schema":{"$ref":"#/components/schemas/d1_database-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/d1_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/d1_database-details-response"}}}]}}},"description":"Database details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/d1_api-response-common-failure"}}},"description":"Database details response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get D1 Database","tags":["D1"],"x-api-token-group":["D1 Read","D1 Write"]}},"/accounts/{account_id}/d1/database/{database_id}/export":{"post":{"description":"Returns a URL where the SQL contents of your D1 can be downloaded. Note: this process may take\nsome time for larger DBs, during which your D1 will be unavailable to serve queries. To avoid\nblocking your DB unnecessarily, an in-progress export must be continually polled or will automatically cancel.\n","operationId":"cloudflare-d1-export-database","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/d1_account-identifier"}},{"in":"path","name":"database_id","required":true,"schema":{"$ref":"#/components/schemas/d1_database-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"current_bookmark":{"description":"To poll an in-progress export, provide the current bookmark (returned by your first polling response)","type":"string"},"dump_options":{"properties":{"no_data":{"description":"Export only the table definitions, not their contents","type":"boolean"},"no_schema":{"description":"Export only each table's contents, not its definition","type":"boolean"},"tables":{"description":"Filter the export to just one or more tables. Passing an empty array is the same as not passing anything and means: export all tables.","items":{"type":"string"},"type":"array"}},"type":"object"},"output_format":{"description":"Specifies that you will poll this endpoint until the export completes","enum":["polling"],"type":"string"}},"required":["output_format"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/d1_api-response-common"},{"properties":{"result":{"properties":{"at_bookmark":{"description":"The current time-travel bookmark for your D1, used to poll for updates. Will not change for the duration of the export task.","type":"string"},"error":{"description":"Only present when status = 'error'. Contains the error message.","type":"string"},"messages":{"description":"Logs since the last time you polled","items":{"type":"string"},"type":"array"},"result":{"description":"Only present when status = 'complete'","properties":{"filename":{"description":"The generated SQL filename.","type":"string"},"signed_url":{"description":"The URL to download the exported SQL. Available for one hour.","type":"string"}},"type":"object"},"status":{"enum":["complete","error"],"type":"string"},"success":{"type":"boolean"},"type":{"enum":["export"],"type":"string"}},"type":"object"}}}]}}},"description":"Polled successfully, task no longer running (errored or complete)"},"202":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/d1_api-response-common"},{"properties":{"result":{"properties":{"at_bookmark":{"description":"The current time-travel bookmark for your D1, used to poll for updates. Will not change for the duration of the export task.","type":"string"},"messages":{"description":"Logs since the last time you polled","items":{"type":"string"},"type":"array"},"status":{"enum":["active"],"type":"string"},"success":{"type":"boolean"},"type":{"enum":["export"],"type":"string"}},"type":"object"}}}]}}},"description":"Polled successfully, task is currently running"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/d1_api-response-common-failure"}}},"description":"Poll failed (API error)"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Export D1 Database as SQL","tags":["D1"]}},"/accounts/{account_id}/d1/database/{database_id}/import":{"post":{"description":"Generates a temporary URL for uploading an SQL file to, then instructing the D1 to import it\nand polling it for status updates. Imports block the D1 for their duration.\n","operationId":"cloudflare-d1-import-database","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/d1_account-identifier"}},{"in":"path","name":"database_id","required":true,"schema":{"$ref":"#/components/schemas/d1_database-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"action":{"description":"Indicates you have a new SQL file to upload.","enum":["init"],"type":"string"},"etag":{"description":"Required when action is 'init' or 'ingest'. An md5 hash of the file you're uploading. Used to check if it already exists, and validate its contents before ingesting.","type":"string"}},"required":["action","etag"],"type":"object"},{"properties":{"action":{"description":"Indicates you've finished uploading to tell the D1 to start consuming it","enum":["ingest"],"type":"string"},"etag":{"description":"An md5 hash of the file you're uploading. Used to check if it already exists, and validate its contents before ingesting.","type":"string"},"filename":{"description":"The filename you have successfully uploaded.","type":"string"}},"required":["action","etag","filename"],"type":"object"},{"properties":{"action":{"description":"Indicates you've finished uploading to tell the D1 to start consuming it","enum":["poll"],"type":"string"},"current_bookmark":{"description":"This identifies the currently-running import, checking its status.","type":"string"}},"required":["action","current_bookmark"],"type":"object"}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/d1_api-response-common"},{"properties":{"result":{"properties":{"at_bookmark":{"description":"The current time-travel bookmark for your D1, used to poll for updates. Will not change for the duration of the import. Only returned if an import process is currently running or recently finished.","type":"string"},"error":{"description":"Only present when status = 'error'. Contains the error message that prevented the import from succeeding.","type":"string"},"filename":{"description":"Derived from the database ID and etag, to use in avoiding repeated uploads. Only returned when for the 'init' action.","type":"string"},"messages":{"description":"Logs since the last time you polled","items":{"type":"string"},"type":"array"},"result":{"description":"Only present when status = 'complete'","properties":{"final_bookmark":{"description":"The time-travel bookmark if you need restore your D1 to directly after the import succeeded.","type":"string"},"meta":{"$ref":"#/components/schemas/d1_query-meta"},"num_queries":{"description":"The total number of queries that were executed during the import.","type":"number"}},"type":"object"},"status":{"enum":["complete","error"],"type":"string"},"success":{"type":"boolean"},"type":{"enum":["import"],"type":"string"},"upload_url":{"description":"The R2 presigned URL to use for uploading. Only returned when for the 'init' action.","type":"string"}},"type":"object"}}}]}}},"description":"Successful action. Import is either ready to start, under way, or finished (succeeded or failed)."},"202":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/d1_api-response-common"},{"properties":{"result":{"properties":{"at_bookmark":{"description":"The current time-travel bookmark for your D1, used to poll for updates. Will not change for the duration of the import.","type":"string"},"messages":{"description":"Logs since the last time you polled","items":{"type":"string"},"type":"array"},"status":{"enum":["active"],"type":"string"},"success":{"type":"boolean"},"type":{"enum":["import"],"type":"string"}},"type":"object"}}}]}}},"description":"Polled successfully, task is currently running"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/d1_api-response-common-failure"}}},"description":"Poll failed (API error)"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Import SQL into your D1 Database","tags":["D1"]}},"/accounts/{account_id}/d1/database/{database_id}/query":{"post":{"description":"Returns the query result as an object.","operationId":"cloudflare-d1-query-database","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/d1_account-identifier"}},{"in":"path","name":"database_id","required":true,"schema":{"$ref":"#/components/schemas/d1_database-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"params":{"$ref":"#/components/schemas/d1_params"},"sql":{"$ref":"#/components/schemas/d1_sql"}},"required":["sql"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/d1_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/d1_query-result-response"},"type":"array"}}}]}}},"description":"Query response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/d1_api-response-common-failure"}}},"description":"Query response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Query D1 Database","tags":["D1"],"x-api-token-group":["D1 Read","D1 Write"]}},"/accounts/{account_id}/d1/database/{database_id}/raw":{"post":{"description":"Returns the query result rows as arrays rather than objects. This is a performance-optimized version of the /query endpoint.","operationId":"cloudflare-d1-raw-database-query","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/d1_account-identifier"}},{"in":"path","name":"database_id","required":true,"schema":{"$ref":"#/components/schemas/d1_database-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"params":{"$ref":"#/components/schemas/d1_params"},"sql":{"$ref":"#/components/schemas/d1_sql"}},"required":["sql"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/d1_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/d1_raw-result-response"},"type":"array"}}}]}}},"description":"Raw query response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/d1_api-response-common-failure"}}},"description":"Query response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Raw D1 Database query","tags":["D1"]}},"/accounts/{account_id}/devices":{"get":{"description":"Fetches a list of enrolled devices.","operationId":"devices-list-devices","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_devices_response"}}},"description":"List devices response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_devices_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"List devices response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List devices","tags":["Devices"],"x-api-token-group":["Teams Read","Teams Write"]}},"/accounts/{account_id}/devices/dex_tests":{"get":{"description":"Fetch all DEX tests.","operationId":"device-dex-test-details","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_dex-response_collection"}}},"description":"Device DEX test details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_dex-single_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Device DEX test response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Device DEX tests","tags":["Device DEX Tests"],"x-api-token-group":["Cloudflare DEX Write","Cloudflare DEX Read","Teams Report","Teams Read"]},"post":{"description":"Create a DEX test.","operationId":"device-dex-test-create-device-dex-test","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_device-dex-test-schemas-http"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_dex-single_response"}}},"description":"Update Dex test response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_dex-single_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Update Dex test response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create Device DEX test","tags":["Device DEX Tests"],"x-api-token-group":["Cloudflare DEX Write"]}},"/accounts/{account_id}/devices/dex_tests/{dex_test_id}":{"delete":{"description":"Delete a Device DEX test. Returns the remaining device dex tests for the account.","operationId":"device-dex-test-delete-device-dex-test","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}},{"in":"path","name":"dex_test_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_uuid"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_dex-response_collection"}}},"description":"Delete Device DEX test response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_dex-response_collection"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Delete DEX test response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Device DEX test","tags":["Device DEX Tests"],"x-api-token-group":["Cloudflare DEX Write"]},"get":{"description":"Fetch a single DEX test.","operationId":"device-dex-test-get-device-dex-test","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}},{"in":"path","name":"dex_test_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_uuid"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_dex-single_response"}}},"description":"Device DEX test details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_dex-single_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Device DEX test response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Device DEX test","tags":["Device DEX Tests"],"x-api-token-group":["Cloudflare DEX Write","Cloudflare DEX Read","Teams Report","Teams Read"]},"put":{"description":"Update a DEX test.","operationId":"device-dex-test-update-device-dex-test","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}},{"in":"path","name":"dex_test_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_device-dex-test-schemas-http"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_dex-single_response"}}},"description":"Update Dex test response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_dex-single_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Update Dex test response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Device DEX test","tags":["Device DEX Tests"],"x-api-token-group":["Cloudflare DEX Write"]}},"/accounts/{account_id}/devices/networks":{"get":{"description":"Fetches a list of managed networks for an account.","operationId":"device-managed-networks-list-device-managed-networks","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_components-schemas-response_collection"}}},"description":"List your device managed networks response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_components-schemas-response_collection"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"List your device managed networks response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List your device managed networks","tags":["Device Managed Networks"],"x-api-token-group":["Teams Read","Teams Write"]},"post":{"description":"Creates a new device managed network.","operationId":"device-managed-networks-create-device-managed-network","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"config":{"$ref":"#/components/schemas/teams-devices_schemas-config_request"},"name":{"$ref":"#/components/schemas/teams-devices_device-managed-networks_components-schemas-name"},"type":{"$ref":"#/components/schemas/teams-devices_components-schemas-type"}},"required":["name","type","config"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_components-schemas-single_response"}}},"description":"Create a device managed networks response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_components-schemas-single_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Create a device managed networks response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a device managed network","tags":["Device Managed Networks"],"x-api-token-group":["Teams Write"]}},"/accounts/{account_id}/devices/networks/{network_id}":{"delete":{"description":"Deletes a device managed network and fetches a list of the remaining device managed networks for an account.","operationId":"device-managed-networks-delete-device-managed-network","parameters":[{"in":"path","name":"network_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_components-schemas-response_collection"}}},"description":"Delete a device managed network response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_components-schemas-response_collection"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Delete a device managed network response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a device managed network","tags":["Device Managed Networks"],"x-api-token-group":["Teams Write"]},"get":{"description":"Fetches details for a single managed network.","operationId":"device-managed-networks-device-managed-network-details","parameters":[{"in":"path","name":"network_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_components-schemas-single_response"}}},"description":"Get device managed network details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_components-schemas-single_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Get device managed network details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get device managed network details","tags":["Device Managed Networks"],"x-api-token-group":["Teams Read","Teams Write"]},"put":{"description":"Updates a configured device managed network.","operationId":"device-managed-networks-update-device-managed-network","parameters":[{"in":"path","name":"network_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"config":{"$ref":"#/components/schemas/teams-devices_schemas-config_request"},"name":{"$ref":"#/components/schemas/teams-devices_device-managed-networks_components-schemas-name"},"type":{"$ref":"#/components/schemas/teams-devices_components-schemas-type"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_components-schemas-single_response"}}},"description":"Update a device managed network response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_components-schemas-single_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Update a device managed network response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a device managed network","tags":["Device Managed Networks"],"x-api-token-group":["Teams Write"]}},"/accounts/{account_id}/devices/policies":{"get":{"description":"Fetches a list of the device settings profiles for an account.","operationId":"devices-list-device-settings-policies","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_device_settings_response_collection"}}},"description":"List device settings profiles response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_device_settings_response_collection"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"List device settings profiles response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List device settings profiles","tags":["Devices"],"x-api-token-group":["Teams Read","Teams Write"]}},"/accounts/{account_id}/devices/policy":{"get":{"description":"Fetches the default device settings profile for an account.","operationId":"devices-get-default-device-settings-policy","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_default_device_settings_response"}}},"description":"Get the default device settings profile response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_default_device_settings_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Get the default device settings profile response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get the default device settings profile","tags":["Devices"],"x-api-token-group":["Teams Read","Teams Write"]},"patch":{"description":"Updates the default device settings profile for an account.","operationId":"devices-update-default-device-settings-policy","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"allow_mode_switch":{"$ref":"#/components/schemas/teams-devices_allow_mode_switch"},"allow_updates":{"$ref":"#/components/schemas/teams-devices_allow_updates"},"allowed_to_leave":{"$ref":"#/components/schemas/teams-devices_allowed_to_leave"},"auto_connect":{"$ref":"#/components/schemas/teams-devices_auto_connect"},"captive_portal":{"$ref":"#/components/schemas/teams-devices_captive_portal"},"disable_auto_fallback":{"$ref":"#/components/schemas/teams-devices_disable_auto_fallback"},"exclude_office_ips":{"$ref":"#/components/schemas/teams-devices_exclude_office_ips"},"service_mode_v2":{"$ref":"#/components/schemas/teams-devices_service_mode_v2"},"support_url":{"$ref":"#/components/schemas/teams-devices_support_url"},"switch_locked":{"$ref":"#/components/schemas/teams-devices_switch_locked"},"tunnel_protocol":{"$ref":"#/components/schemas/teams-devices_tunnel_protocol"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_default_device_settings_response"}}},"description":"Update the default device settings profile response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_default_device_settings_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Update the default device settings profile response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update the default device settings profile","tags":["Devices"],"x-api-token-group":["Teams Write"]},"post":{"description":"Creates a device settings profile to be applied to certain devices matching the criteria.","operationId":"devices-create-device-settings-policy","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"allow_mode_switch":{"$ref":"#/components/schemas/teams-devices_allow_mode_switch"},"allow_updates":{"$ref":"#/components/schemas/teams-devices_allow_updates"},"allowed_to_leave":{"$ref":"#/components/schemas/teams-devices_allowed_to_leave"},"auto_connect":{"$ref":"#/components/schemas/teams-devices_auto_connect"},"captive_portal":{"$ref":"#/components/schemas/teams-devices_captive_portal"},"description":{"$ref":"#/components/schemas/teams-devices_schemas-description"},"disable_auto_fallback":{"$ref":"#/components/schemas/teams-devices_disable_auto_fallback"},"enabled":{"description":"Whether the policy will be applied to matching devices.","example":true,"type":"boolean"},"exclude_office_ips":{"$ref":"#/components/schemas/teams-devices_exclude_office_ips"},"lan_allow_minutes":{"$ref":"#/components/schemas/teams-devices_lan_allow_minutes"},"lan_allow_subnet_size":{"$ref":"#/components/schemas/teams-devices_lan_allow_subnet_size"},"match":{"$ref":"#/components/schemas/teams-devices_schemas-match"},"name":{"description":"The name of the device settings profile.","example":"Allow Developers","maxLength":100,"type":"string"},"precedence":{"$ref":"#/components/schemas/teams-devices_precedence"},"service_mode_v2":{"$ref":"#/components/schemas/teams-devices_service_mode_v2"},"support_url":{"$ref":"#/components/schemas/teams-devices_support_url"},"switch_locked":{"$ref":"#/components/schemas/teams-devices_switch_locked"},"tunnel_protocol":{"$ref":"#/components/schemas/teams-devices_tunnel_protocol"}},"required":["name","precedence","match"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_device_settings_response"}}},"description":"Create a device settings profile response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_device_settings_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Create a device settings profile response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a device settings profile","tags":["Devices"],"x-api-token-group":["Teams Write"]}},"/accounts/{account_id}/devices/policy/exclude":{"get":{"description":"Fetches the list of routes excluded from the WARP client's tunnel.","operationId":"devices-get-split-tunnel-exclude-list","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_split_tunnel_response_collection"}}},"description":"Get the Split Tunnel exclude list response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_split_tunnel_response_collection"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Get the Split Tunnel exclude list response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get the Split Tunnel exclude list","tags":["Devices"]},"put":{"description":"Sets the list of routes excluded from the WARP client's tunnel.","operationId":"devices-set-split-tunnel-exclude-list","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/teams-devices_split_tunnel"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_split_tunnel_response_collection"}}},"description":"Set the Split Tunnel exclude list response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_split_tunnel_response_collection"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Set the Split Tunnel exclude list response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Set the Split Tunnel exclude list","tags":["Devices"]}},"/accounts/{account_id}/devices/policy/fallback_domains":{"get":{"description":"Fetches a list of domains to bypass Gateway DNS resolution. These domains will use the specified local DNS resolver instead.","operationId":"devices-get-local-domain-fallback-list","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_fallback_domain_response_collection"}}},"description":"Get your Local Domain Fallback list response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_fallback_domain_response_collection"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Get your Local Domain Fallback list response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get your Local Domain Fallback list","tags":["Devices"]},"put":{"description":"Sets the list of domains to bypass Gateway DNS resolution. These domains will use the specified local DNS resolver instead.","operationId":"devices-set-local-domain-fallback-list","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/teams-devices_fallback_domain"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_fallback_domain_response_collection"}}},"description":"Set your Local Domain Fallback list response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_fallback_domain_response_collection"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Set your Local Domain Fallback list response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Set your Local Domain Fallback list","tags":["Devices"]}},"/accounts/{account_id}/devices/policy/include":{"get":{"description":"Fetches the list of routes included in the WARP client's tunnel.","operationId":"devices-get-split-tunnel-include-list","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_split_tunnel_include_response_collection"}}},"description":"Get the Split Tunnel include list response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_split_tunnel_include_response_collection"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Get the Split Tunnel include list response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get the Split Tunnel include list","tags":["Devices"]},"put":{"description":"Sets the list of routes included in the WARP client's tunnel.","operationId":"devices-set-split-tunnel-include-list","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/teams-devices_split_tunnel_include"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_split_tunnel_include_response_collection"}}},"description":"Set the Split Tunnel include list response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_split_tunnel_include_response_collection"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Set the Split Tunnel include list response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Set the Split Tunnel include list","tags":["Devices"]}},"/accounts/{account_id}/devices/policy/{policy_id}":{"delete":{"description":"Deletes a device settings profile and fetches a list of the remaining profiles for an account.","operationId":"devices-delete-device-settings-policy","parameters":[{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_device_settings_response_collection"}}},"description":"Delete a device settings profile response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_device_settings_response_collection"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Delete a device settings profile response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a device settings profile","tags":["Devices"]},"get":{"description":"Fetches a device settings profile by ID.","operationId":"devices-get-device-settings-policy-by-id","parameters":[{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_device_settings_response"}}},"description":"Get device settings profile by ID response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_device_settings_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Get device settings profile by ID response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get device settings profile by ID","tags":["Devices"]},"patch":{"description":"Updates a configured device settings profile.","operationId":"devices-update-device-settings-policy","parameters":[{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"allow_mode_switch":{"$ref":"#/components/schemas/teams-devices_allow_mode_switch"},"allow_updates":{"$ref":"#/components/schemas/teams-devices_allow_updates"},"allowed_to_leave":{"$ref":"#/components/schemas/teams-devices_allowed_to_leave"},"auto_connect":{"$ref":"#/components/schemas/teams-devices_auto_connect"},"captive_portal":{"$ref":"#/components/schemas/teams-devices_captive_portal"},"description":{"$ref":"#/components/schemas/teams-devices_schemas-description"},"disable_auto_fallback":{"$ref":"#/components/schemas/teams-devices_disable_auto_fallback"},"enabled":{"description":"Whether the policy will be applied to matching devices.","example":true,"type":"boolean"},"exclude_office_ips":{"$ref":"#/components/schemas/teams-devices_exclude_office_ips"},"match":{"$ref":"#/components/schemas/teams-devices_schemas-match"},"name":{"description":"The name of the device settings profile.","example":"Allow Developers","maxLength":100,"type":"string"},"precedence":{"$ref":"#/components/schemas/teams-devices_precedence"},"service_mode_v2":{"$ref":"#/components/schemas/teams-devices_service_mode_v2"},"support_url":{"$ref":"#/components/schemas/teams-devices_support_url"},"switch_locked":{"$ref":"#/components/schemas/teams-devices_switch_locked"},"tunnel_protocol":{"$ref":"#/components/schemas/teams-devices_tunnel_protocol"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_device_settings_response"}}},"description":"Update a device settings profile Policy response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_device_settings_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Update a device settings profile Policy response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a device settings profile","tags":["Devices"]}},"/accounts/{account_id}/devices/policy/{policy_id}/exclude":{"get":{"description":"Fetches the list of routes excluded from the WARP client's tunnel for a specific device settings profile.","operationId":"devices-get-split-tunnel-exclude-list-for-a-device-settings-policy","parameters":[{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_split_tunnel_response_collection"}}},"description":"Get the Split Tunnel exclude list for a device settings profile response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_split_tunnel_response_collection"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Get the Split Tunnel exclude list for a device settings profile response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get the Split Tunnel exclude list for a device settings profile","tags":["Devices"]},"put":{"description":"Sets the list of routes excluded from the WARP client's tunnel for a specific device settings profile.","operationId":"devices-set-split-tunnel-exclude-list-for-a-device-settings-policy","parameters":[{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/teams-devices_split_tunnel"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_split_tunnel_response_collection"}}},"description":"Set the Split Tunnel exclude list for a device settings profile response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_split_tunnel_response_collection"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Set the Split Tunnel exclude list for a device settings profile response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Set the Split Tunnel exclude list for a device settings profile","tags":["Devices"]}},"/accounts/{account_id}/devices/policy/{policy_id}/fallback_domains":{"get":{"description":"Fetches the list of domains to bypass Gateway DNS resolution from a specified device settings profile. These domains will use the specified local DNS resolver instead.","operationId":"devices-get-local-domain-fallback-list-for-a-device-settings-policy","parameters":[{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_fallback_domain_response_collection"}}},"description":"Get the Local Domain Fallback list for a device settings profile response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_fallback_domain_response_collection"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Get the Local Domain Fallback list for a device settings profile response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get the Local Domain Fallback list for a device settings profile","tags":["Devices"]},"put":{"description":"Sets the list of domains to bypass Gateway DNS resolution. These domains will use the specified local DNS resolver instead. This will only apply to the specified device settings profile.","operationId":"devices-set-local-domain-fallback-list-for-a-device-settings-policy","parameters":[{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/teams-devices_fallback_domain"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_fallback_domain_response_collection"}}},"description":"Set the Local Domain Fallback list for a device settings profile response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_fallback_domain_response_collection"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Set the Local Domain Fallback list for a device settings profile response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Set the Local Domain Fallback list for a device settings profile","tags":["Devices"]}},"/accounts/{account_id}/devices/policy/{policy_id}/include":{"get":{"description":"Fetches the list of routes included in the WARP client's tunnel for a specific device settings profile.","operationId":"devices-get-split-tunnel-include-list-for-a-device-settings-policy","parameters":[{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_split_tunnel_include_response_collection"}}},"description":"Get the Split Tunnel include list for a device settings profile response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_split_tunnel_include_response_collection"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Get the Split Tunnel include list for a device settings profile response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get the Split Tunnel include list for a device settings profile","tags":["Devices"]},"put":{"description":"Sets the list of routes included in the WARP client's tunnel for a specific device settings profile.","operationId":"devices-set-split-tunnel-include-list-for-a-device-settings-policy","parameters":[{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/teams-devices_split_tunnel_include"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_split_tunnel_include_response_collection"}}},"description":"Set the Split Tunnel include list for a device settings profile response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_split_tunnel_include_response_collection"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Set the Split Tunnel include list for a device settings profile response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Set the Split Tunnel include list for a device settings profile","tags":["Devices"]}},"/accounts/{account_id}/devices/posture":{"get":{"description":"Fetches device posture rules for a Zero Trust account.","operationId":"device-posture-rules-list-device-posture-rules","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_response_collection"}}},"description":"List device posture rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_response_collection"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"List device posture rules response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List device posture rules","tags":["Device posture rules"],"x-api-token-group":["Teams Read","Teams Write"]},"post":{"description":"Creates a new device posture rule.","operationId":"device-posture-rules-create-device-posture-rule","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"$ref":"#/components/schemas/teams-devices_description"},"expiration":{"$ref":"#/components/schemas/teams-devices_expiration"},"input":{"$ref":"#/components/schemas/teams-devices_input"},"match":{"$ref":"#/components/schemas/teams-devices_match"},"name":{"$ref":"#/components/schemas/teams-devices_name"},"schedule":{"$ref":"#/components/schemas/teams-devices_schedule"},"type":{"$ref":"#/components/schemas/teams-devices_type"}},"required":["name","type"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_single_response"}}},"description":"Create device posture rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_single_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Create device posture rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a device posture rule","tags":["Device posture rules"],"x-api-token-group":["Teams Write"]}},"/accounts/{account_id}/devices/posture/integration":{"get":{"description":"Fetches the list of device posture integrations for an account.","operationId":"device-posture-integrations-list-device-posture-integrations","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_schemas-response_collection"}}},"description":"List your device posture integrations response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_schemas-response_collection"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"List your device posture integrations response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List your device posture integrations","tags":["Device Posture Integrations"],"x-api-token-group":["Teams Read","Teams Write"]},"post":{"description":"Create a new device posture integration.","operationId":"device-posture-integrations-create-device-posture-integration","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"config":{"$ref":"#/components/schemas/teams-devices_config_request"},"interval":{"$ref":"#/components/schemas/teams-devices_interval"},"name":{"$ref":"#/components/schemas/teams-devices_components-schemas-name"},"type":{"$ref":"#/components/schemas/teams-devices_schemas-type"}},"required":["name","type","interval","config"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_schemas-single_response"}}},"description":"Create a device posture integration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_schemas-single_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Create a device posture integration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a device posture integration","tags":["Device Posture Integrations"],"x-api-token-group":["Teams Write"]}},"/accounts/{account_id}/devices/posture/integration/{integration_id}":{"delete":{"description":"Delete a configured device posture integration.","operationId":"device-posture-integrations-delete-device-posture-integration","parameters":[{"in":"path","name":"integration_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_schemas-id_response"}}},"description":"Delete a device posture integration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_schemas-id_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Delete a device posture integration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a device posture integration","tags":["Device Posture Integrations"],"x-api-token-group":["Teams Write"]},"get":{"description":"Fetches details for a single device posture integration.","operationId":"device-posture-integrations-device-posture-integration-details","parameters":[{"in":"path","name":"integration_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_schemas-single_response"}}},"description":"Get device posture integration details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_schemas-single_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Get device posture integration details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get device posture integration details","tags":["Device Posture Integrations"],"x-api-token-group":["Teams Read","Teams Write"]},"patch":{"description":"Updates a configured device posture integration.","operationId":"device-posture-integrations-update-device-posture-integration","parameters":[{"in":"path","name":"integration_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"config":{"$ref":"#/components/schemas/teams-devices_config_request"},"interval":{"$ref":"#/components/schemas/teams-devices_interval"},"name":{"$ref":"#/components/schemas/teams-devices_components-schemas-name"},"type":{"$ref":"#/components/schemas/teams-devices_schemas-type"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_schemas-single_response"}}},"description":"Update a device posture integration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_schemas-single_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Update a device posture integration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a device posture integration","tags":["Device Posture Integrations"],"x-api-token-group":["Teams Write"]}},"/accounts/{account_id}/devices/posture/{rule_id}":{"delete":{"description":"Deletes a device posture rule.","operationId":"device-posture-rules-delete-device-posture-rule","parameters":[{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_id_response"}}},"description":"Delete a device posture rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_id_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Delete a device posture rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a device posture rule","tags":["Device posture rules"],"x-api-token-group":["Teams Write"]},"get":{"description":"Fetches a single device posture rule.","operationId":"device-posture-rules-device-posture-rules-details","parameters":[{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_single_response"}}},"description":"Get device posture rule details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_single_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Get device posture rule details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get device posture rule details","tags":["Device posture rules"],"x-api-token-group":["Teams Read","Teams Write"]},"put":{"description":"Updates a device posture rule.","operationId":"device-posture-rules-update-device-posture-rule","parameters":[{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"$ref":"#/components/schemas/teams-devices_description"},"expiration":{"$ref":"#/components/schemas/teams-devices_expiration"},"input":{"$ref":"#/components/schemas/teams-devices_input"},"match":{"$ref":"#/components/schemas/teams-devices_match"},"name":{"$ref":"#/components/schemas/teams-devices_name"},"schedule":{"$ref":"#/components/schemas/teams-devices_schedule"},"type":{"$ref":"#/components/schemas/teams-devices_type"}},"required":["name","type"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_single_response"}}},"description":"Update a device posture rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_single_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Update a device posture rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a device posture rule","tags":["Device posture rules"],"x-api-token-group":["Teams Write"]}},"/accounts/{account_id}/devices/revoke":{"post":{"description":"Revokes a list of devices.","operationId":"devices-revoke-devices","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_revoke_devices_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_api-response-single"}}},"description":"Revoke devices response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-single"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Revoke devices response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Revoke devices","tags":["Devices"],"x-api-token-group":["Teams Write"]}},"/accounts/{account_id}/devices/settings":{"get":{"description":"Describes the current device settings for a Zero Trust account.","operationId":"zero-trust-accounts-get-device-settings-for-zero-trust-account","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_zero-trust-account-device-settings-response"}}},"description":"Get device settings for a Zero Trust account response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_zero-trust-account-device-settings-response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Get device settings for a Zero Trust account response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get device settings for a Zero Trust account","tags":["Zero Trust accounts"],"x-api-token-group":["Teams Read","Teams Write"]},"patch":{"description":"Patches the current device settings for a Zero Trust account.","operationId":"zero-trust-accounts-patch-device-settings-for-the-zero-trust-account","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_zero-trust-account-device-settings"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_zero-trust-account-device-settings-response"}}},"description":"Patch device settings for a Zero Trust account response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_zero-trust-account-device-settings-response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Patch device settings for a Zero Trust account response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Patch device settings for a Zero Trust account","tags":["Zero Trust accounts"],"x-api-token-group":["Teams Write"]},"put":{"description":"Updates the current device settings for a Zero Trust account.","operationId":"zero-trust-accounts-update-device-settings-for-the-zero-trust-account","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_zero-trust-account-device-settings"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_zero-trust-account-device-settings-response"}}},"description":"Update device settings for a Zero Trust account response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_zero-trust-account-device-settings-response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Update device settings for a Zero Trust account response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update device settings for a Zero Trust account","tags":["Zero Trust accounts"],"x-api-token-group":["Teams Write"]}},"/accounts/{account_id}/devices/unrevoke":{"post":{"description":"Unrevokes a list of devices.","operationId":"devices-unrevoke-devices","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_unrevoke_devices_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_api-response-single"}}},"description":"Unrevoke devices response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_api-response-single"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Unrevoke devices response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Unrevoke devices","tags":["Devices"],"x-api-token-group":["Teams Write"]}},"/accounts/{account_id}/devices/{device_id}":{"get":{"description":"Fetches details for a single device.","operationId":"devices-device-details","parameters":[{"in":"path","name":"device_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_device_response"}}},"description":"Get device details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_device_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Get device details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get device details","tags":["Devices"],"x-api-token-group":["Teams Read","Teams Write"]}},"/accounts/{account_id}/devices/{device_id}/override_codes":{"get":{"description":"Fetches a one-time use admin override code for a device. This relies on the **Admin Override** setting being enabled in your device configuration.","operationId":"devices-list-admin-override-code-for-device","parameters":[{"in":"path","name":"device_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_override_codes_response"}}},"description":"Get an admin override code for a device response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_override_codes_response"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Get an admin override code for a device response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get an admin override code for a device","tags":["Devices"],"x-api-token-group":["Teams Read","Teams Write"]}},"/accounts/{account_id}/dex/colos":{"get":{"description":"List Cloudflare colos that account's devices were connected to during a time period, sorted by usage starting from the most used colo. Colos without traffic are also returned and sorted alphabetically.","operationId":"dex-endpoints-list-colos","parameters":[{"description":"unique identifier linked to an account in the API request path.","in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_account_identifier"}},{"description":"Start time for connection period in RFC3339 (ISO 8601) format.","in":"query","name":"from","required":true,"schema":{"example":"2023-08-20T20:45:00Z","type":"string"}},{"description":"End time for connection period in RFC3339 (ISO 8601) format.","in":"query","name":"to","required":true,"schema":{"example":"2023-08-24T20:45:00Z","type":"string"}},{"description":"Type of usage that colos should be sorted by. If unspecified, returns all Cloudflare colos sorted alphabetically.","in":"query","name":"sortBy","schema":{"enum":["fleet-status-usage","application-tests-usage"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-collection"},{"properties":{"result":{"$ref":"#/components/schemas/digital-experience-monitoring_colos_response"}}}]}}},"description":"List colos response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-common-failure"}}},"description":"List colos failure response"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"List Cloudflare colos","tags":["DEX Synthetic Application Monitoring"],"x-cfPermissionsRequired":{"enum":["#dex:read","#teams:report"]}}},"/accounts/{account_id}/dex/fleet-status/devices":{"get":{"description":"List details for devices using WARP","operationId":"dex-fleet-status-devices","parameters":[{"description":"Unique identifier for account","in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_account_identifier"}},{"description":"Time range end in ISO format","in":"query","name":"to","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_timestamp"}},{"description":"Time range beginning in ISO format","in":"query","name":"from","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_timestamp"}},{"description":"Page number","in":"query","name":"page","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_page"}},{"description":"Number of results per page","in":"query","name":"per_page","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_per_page"}},{"description":"Dimension to sort results by","in":"query","name":"sort_by","schema":{"$ref":"#/components/schemas/digital-experience-monitoring_sort_by"}},{"description":"Cloudflare colo","in":"query","name":"colo","schema":{"$ref":"#/components/schemas/digital-experience-monitoring_colo"}},{"description":"Device-specific ID, given as UUID v4","in":"query","name":"device_id","schema":{"$ref":"#/components/schemas/digital-experience-monitoring_device_id"}},{"description":"The mode under which the WARP client is run","in":"query","name":"mode","schema":{"$ref":"#/components/schemas/digital-experience-monitoring_mode"}},{"description":"Network status","in":"query","name":"status","schema":{"$ref":"#/components/schemas/digital-experience-monitoring_status"}},{"description":"Operating system","in":"query","name":"platform","schema":{"$ref":"#/components/schemas/digital-experience-monitoring_platform"}},{"description":"WARP client version","in":"query","name":"version","schema":{"$ref":"#/components/schemas/digital-experience-monitoring_version"}},{"description":"Source:\n * `hourly` - device details aggregated hourly, up to 7 days prior\n * `last_seen` - device details, up to 24 hours prior\n * `raw` - device details, up to 7 days prior\n","in":"query","name":"source","schema":{"$ref":"#/components/schemas/digital-experience-monitoring_source"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_fleet_status_devices_response"}}},"description":"List devices response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-single"},{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-common-failure"}]}}},"description":"List devices response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"List fleet status devices","tags":["DEX Synthetic Application Monitoring"],"x-cfPermissionsRequired":{"enum":["#dex:read","#teams:report"]}}},"/accounts/{account_id}/dex/fleet-status/live":{"get":{"description":"List details for live (up to 60 minutes) devices using WARP","operationId":"dex-fleet-status-live","parameters":[{"description":"Unique identifier for account","in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_account_identifier"}},{"description":"Number of minutes before current time","in":"query","name":"since_minutes","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_since_minutes"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_fleet_status_live_response"}}},"description":"List device details (live) response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-single"},{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-common-failure"}]}}},"description":"List device details (live) response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"List fleet status details by dimension","tags":["DEX Synthetic Application Monitoring"],"x-cfPermissionsRequired":{"enum":["#dex:read","#teams:report"]}}},"/accounts/{account_id}/dex/fleet-status/over-time":{"get":{"description":"List details for devices using WARP, up to 7 days","operationId":"dex-fleet-status-over-time","parameters":[{"description":"Unique identifier for account","in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_account_identifier"}},{"description":"Time range end in ISO format","in":"query","name":"to","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_timestamp"}},{"description":"Time range beginning in ISO format","in":"query","name":"from","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_timestamp"}},{"description":"Cloudflare colo","in":"query","name":"colo","schema":{"$ref":"#/components/schemas/digital-experience-monitoring_colo"}},{"description":"Device-specific ID, given as UUID v4","in":"query","name":"device_id","schema":{"$ref":"#/components/schemas/digital-experience-monitoring_device_id"}}],"responses":{"200":{"description":"List DEX devices response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-single"},{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-common-failure"}]}}},"description":"DEX HTTP test details failure response"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"List fleet status aggregate details by dimension","tags":["DEX Synthetic Application Monitoring"],"x-cfPermissionsRequired":{"enum":["#dex:read","#teams:report"]}}},"/accounts/{account_id}/dex/http-tests/{test_id}":{"get":{"description":"Get test details and aggregate performance metrics for an http test for a given time period between 1 hour and 7 days.","operationId":"dex-endpoints-http-test-details","parameters":[{"description":"unique identifier linked to an account in the API request path.","in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_account_identifier"}},{"description":"unique identifier for a specific test","in":"path","name":"test_id","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_uuid"}},{"description":"Optionally filter result stats to a specific device(s). Cannot be used in combination with colo param.","in":"query","name":"deviceId","schema":{"items":{"type":"string"},"type":"array"}},{"description":"Start time for aggregate metrics in ISO ms","in":"query","name":"from","required":true,"schema":{"example":1689520412000,"type":"string"}},{"description":"End time for aggregate metrics in ISO ms","in":"query","name":"to","required":true,"schema":{"example":1689606812000,"type":"string"}},{"description":"Time interval for aggregate time slots.","in":"query","name":"interval","required":true,"schema":{"enum":["minute","hour"],"type":"string"}},{"description":"Optionally filter result stats to a Cloudflare colo. Cannot be used in combination with deviceId param.","in":"query","name":"colo","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/digital-experience-monitoring_http_details_response"}}}]}}},"description":"DEX HTTP test details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-common-failure"}}},"description":"DEX HTTP test details failure response"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Get details and aggregate metrics for an http test","tags":["DEX Synthetic Application Monitoring"],"x-cfPermissionsRequired":{"enum":["#dex:read","#teams:report"]}}},"/accounts/{account_id}/dex/http-tests/{test_id}/percentiles":{"get":{"description":"Get percentiles for an http test for a given time period between 1 hour and 7 days.","operationId":"dex-endpoints-http-test-percentiles","parameters":[{"description":"unique identifier linked to an account in the API request path.","in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_account_identifier"}},{"description":"unique identifier for a specific test","in":"path","name":"test_id","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_uuid"}},{"description":"Optionally filter result stats to a specific device(s). Cannot be used in combination with colo param.","in":"query","name":"deviceId","schema":{"items":{"type":"string"},"type":"array"}},{"description":"Start time for aggregate metrics in ISO format","in":"query","name":"from","required":true,"schema":{"example":"2023-09-20T17:00:00Z","type":"string"}},{"description":"End time for aggregate metrics in ISO format","in":"query","name":"to","required":true,"schema":{"example":"2023-09-20T17:00:00Z","type":"string"}},{"description":"Optionally filter result stats to a Cloudflare colo. Cannot be used in combination with deviceId param.","in":"query","name":"colo","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/digital-experience-monitoring_http_details_percentiles_response"}}}]}}},"description":"DEX HTTP test percentiles response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-common-failure"}}},"description":"DEX HTTP test percentiles failure response"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Get percentiles for an http test","tags":["DEX Synthetic Application Monitoring"],"x-cfPermissionsRequired":{"enum":["#dex:read","#teams:report"]}}},"/accounts/{account_id}/dex/tests/overview":{"get":{"description":"List DEX tests with overview metrics","operationId":"dex-endpoints-list-tests-overview","parameters":[{"description":"unique identifier linked to an account in the API request path.","in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_account_identifier"}},{"description":"Optionally filter result stats to a Cloudflare colo. Cannot be used in combination with deviceId param.","in":"query","name":"colo","schema":{"type":"string"}},{"description":"Optionally filter results by test name","in":"query","name":"testName","schema":{"type":"string"}},{"description":"Optionally filter result stats to a specific device(s). Cannot be used in combination with colo param.","in":"query","name":"deviceId","schema":{"items":{"type":"string"},"type":"array"}},{"description":"Page number of paginated results","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"number"}},{"description":"Number of items per page","in":"query","name":"per_page","schema":{"default":10,"maximum":50,"minimum":1,"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/digital-experience-monitoring_tests_response"},"result_info":{"$ref":"#/components/schemas/digital-experience-monitoring_result_info"}}}]}}},"description":"success response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-common-failure"}}},"description":"failure response"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"List DEX test analytics","tags":["DEX Synthetic Application Monitoring"],"x-cfPermissionsRequired":{"enum":["#dex:read","#teams:report"]}}},"/accounts/{account_id}/dex/tests/unique-devices":{"get":{"description":"Returns unique count of devices that have run synthetic application monitoring tests in the past 7 days.","operationId":"dex-endpoints-tests-unique-devices","parameters":[{"description":"unique identifier linked to an account in the API request path.","in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_account_identifier"}},{"description":"Optionally filter results by test name","in":"query","name":"testName","schema":{"type":"string"}},{"description":"Optionally filter result stats to a specific device(s). Cannot be used in combination with colo param.","in":"query","name":"deviceId","schema":{"items":{"type":"string"},"type":"array"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/digital-experience-monitoring_unique_devices_response"}}}]}}},"description":"DEX unique devices targeted response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-common-failure"}}},"description":"DEX unique devices targeted failure response"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Get count of devices targeted","tags":["DEX Synthetic Application Monitoring"],"x-cfPermissionsRequired":{"enum":["#dex:read","#teams:report"]}}},"/accounts/{account_id}/dex/traceroute-test-results/{test_result_id}/network-path":{"get":{"description":"Get a breakdown of hops and performance metrics for a specific traceroute test run","operationId":"dex-endpoints-traceroute-test-result-network-path","parameters":[{"description":"unique identifier linked to an account","in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_account_identifier"}},{"description":"unique identifier for a specific traceroute test","in":"path","name":"test_result_id","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_uuid"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/digital-experience-monitoring_traceroute_test_result_network_path_response"}}}]}}},"description":"DEX traceroute test result network path response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-common-failure"}}},"description":"DEX traceroute test result network path failure response"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Get details for a specific traceroute test run","tags":["DEX Synthetic Application Monitoring"],"x-cfPermissionsRequired":{"enum":["#dex:read","#teams:report"]}}},"/accounts/{account_id}/dex/traceroute-tests/{test_id}":{"get":{"description":"Get test details and aggregate performance metrics for an traceroute test for a given time period between 1 hour and 7 days.","operationId":"dex-endpoints-traceroute-test-details","parameters":[{"description":"Unique identifier linked to an account","in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_account_identifier"}},{"description":"Unique identifier for a specific test","in":"path","name":"test_id","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_uuid"}},{"description":"Optionally filter result stats to a specific device(s). Cannot be used in combination with colo param.","in":"query","name":"deviceId","schema":{"items":{"type":"string"},"type":"array"}},{"description":"Start time for aggregate metrics in ISO ms","in":"query","name":"from","required":true,"schema":{"example":1689520412000,"type":"string"}},{"description":"End time for aggregate metrics in ISO ms","in":"query","name":"to","required":true,"schema":{"example":1689606812000,"type":"string"}},{"description":"Time interval for aggregate time slots.","in":"query","name":"interval","required":true,"schema":{"enum":["minute","hour"],"type":"string"}},{"description":"Optionally filter result stats to a Cloudflare colo. Cannot be used in combination with deviceId param.","in":"query","name":"colo","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/digital-experience-monitoring_traceroute_details_response"}}}]}}},"description":"DEX traceroute test details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-common-failure"}}},"description":"DEX traceroute test details response failure response"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Get details and aggregate metrics for a traceroute test","tags":["DEX Synthetic Application Monitoring"],"x-cfPermissionsRequired":{"enum":["#dex:read","#teams:report"]}}},"/accounts/{account_id}/dex/traceroute-tests/{test_id}/network-path":{"get":{"description":"Get a breakdown of metrics by hop for individual traceroute test runs","operationId":"dex-endpoints-traceroute-test-network-path","parameters":[{"description":"unique identifier linked to an account","in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_account_identifier"}},{"description":"unique identifier for a specific test","in":"path","name":"test_id","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_uuid"}},{"description":"Device to filter tracroute result runs to","in":"query","name":"deviceId","required":true,"schema":{"type":"string"}},{"description":"Start time for aggregate metrics in ISO ms","in":"query","name":"from","required":true,"schema":{"example":1689520412000,"type":"string"}},{"description":"End time for aggregate metrics in ISO ms","in":"query","name":"to","required":true,"schema":{"example":1689606812000,"type":"string"}},{"description":"Time interval for aggregate time slots.","in":"query","name":"interval","required":true,"schema":{"enum":["minute","hour"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/digital-experience-monitoring_traceroute_test_network_path_response"}}}]}}},"description":"DEX traceroute test network path response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-common-failure"}}},"description":"DEX traceroute test network path failure response"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Get network path breakdown for a traceroute test","tags":["DEX Synthetic Application Monitoring"],"x-cfPermissionsRequired":{"enum":["#dex:read","#teams:report"]}}},"/accounts/{account_id}/dex/traceroute-tests/{test_id}/percentiles":{"get":{"description":"Get percentiles for a traceroute test for a given time period between 1 hour and 7 days.","operationId":"dex-endpoints-traceroute-test-percentiles","parameters":[{"description":"unique identifier linked to an account in the API request path.","in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_account_identifier"}},{"description":"unique identifier for a specific test","in":"path","name":"test_id","required":true,"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_uuid"}},{"description":"Optionally filter result stats to a specific device(s). Cannot be used in combination with colo param.","in":"query","name":"deviceId","schema":{"items":{"type":"string"},"type":"array"}},{"description":"Start time for aggregate metrics in ISO format","in":"query","name":"from","required":true,"schema":{"example":"2023-09-20T17:00:00Z","type":"string"}},{"description":"End time for aggregate metrics in ISO format","in":"query","name":"to","required":true,"schema":{"example":"2023-09-20T17:00:00Z","type":"string"}},{"description":"Optionally filter result stats to a Cloudflare colo. Cannot be used in combination with deviceId param.","in":"query","name":"colo","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/digital-experience-monitoring_traceroute_details_percentiles_response"}}}]}}},"description":"DEX Traceroute test percentiles response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/digital-experience-monitoring_api-response-common-failure"}}},"description":"DEX Traceroute test percentiles failure response"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Get percentiles for a traceroute test","tags":["DEX Synthetic Application Monitoring"],"x-cfPermissionsRequired":{"enum":["#dex:read","#teams:report"]}}},"/accounts/{account_id}/diagnostics/traceroute":{"post":{"description":"Run traceroutes from Cloudflare colos.","operationId":"diagnostics-traceroute","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-transit_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"colos":{"$ref":"#/components/schemas/magic-transit_colos"},"options":{"$ref":"#/components/schemas/magic-transit_options"},"targets":{"$ref":"#/components/schemas/magic-transit_targets"}},"required":["targets"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-transit_traceroute_response_collection"}}},"description":"Traceroute response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic-transit_traceroute_response_collection"},{"$ref":"#/components/schemas/magic-transit_api-response-common-failure"}]}}},"description":"Traceroute response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Traceroute","tags":["Diagnostics"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/dlp/datasets":{"get":{"operationId":"dlp-datasets-read-all","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_DatasetArray"}},"type":"object"}]}}},"description":"Datasets read successfully"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Datasets read failed"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Fetch all datasets","tags":["DLP Datasets"]},"post":{"operationId":"dlp-datasets-create","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_NewDataset"}}},"description":"Dataset description","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_DatasetCreation"}},"type":"object"}]}}},"description":"Dataset created successfully"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Dataset creation failed"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create a new dataset","tags":["DLP Datasets"]}},"/accounts/{account_id}/dlp/datasets/{dataset_id}":{"delete":{"description":"This deletes all versions of the dataset.","operationId":"dlp-datasets-delete","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"dataset_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Dataset deleted successfully"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Dataset delete failed"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete a dataset","tags":["DLP Datasets"]},"get":{"operationId":"dlp-datasets-read","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"dataset_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_Dataset"}},"type":"object"}]}}},"description":"Dataset read successfully"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Dataset read failed"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Fetch a specific dataset","tags":["DLP Datasets"]},"put":{"operationId":"dlp-datasets-update","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"dataset_id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_DatasetUpdate"}}},"description":"Dataset description","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_Dataset"}},"type":"object"}]}}},"description":"Dataset updated successfully"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Dataset update failed"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update details about a dataset","tags":["DLP Datasets"]}},"/accounts/{account_id}/dlp/datasets/{dataset_id}/upload":{"post":{"operationId":"dlp-datasets-create-version","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"dataset_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_DatasetNewVersion"}},"type":"object"}]}}},"description":"Dataset version created successfully"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Dataset version creation failed"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Prepare to upload a new version of a dataset","tags":["DLP Datasets"]}},"/accounts/{account_id}/dlp/datasets/{dataset_id}/upload/{version}":{"post":{"description":"This is used for single-column EDMv1 and Custom Word Lists. The EDM format\ncan only be created in the Cloudflare dashboard. For other clients, this\noperation can only be used for non-secret Custom Word Lists. The body must\nbe a UTF-8 encoded, newline (NL or CRNL) separated list of words to be matched.","operationId":"dlp-datasets-upload-version","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"dataset_id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"version","required":true,"schema":{"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/octet-stream":{"schema":{"type":"string"}}},"description":"Dataset. For custom wordlists this contains UTF-8 patterns separated by newline characters.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_Dataset"}},"type":"object"}]}}},"description":"Dataset version uploaded successfully"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Dataset version upload failed"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Upload a new version of a dataset","tags":["DLP Datasets"]}},"/accounts/{account_id}/dlp/datasets/{dataset_id}/versions/{version}":{"post":{"description":"This is used for multi-column EDMv2 datasets. The EDMv2 format can only be\ncreated in the Cloudflare dashboard. The columns in the response appear in\nthe same order as in the request.","operationId":"dlp-datasets-define-columns","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"dataset_id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"version","required":true,"schema":{"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/dlp_NewDatasetColumn"},"type":"array"}}},"description":"array of new columns to create for this dataset version","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_DatasetColumnArray"}},"type":"object"}]}}},"description":"Dataset columns created successfully"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Failed to create dataset columns"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Sets the column information for a multi-column upload","tags":["DLP Datasets"]}},"/accounts/{account_id}/dlp/datasets/{dataset_id}/versions/{version}/entries/{entry_id}":{"post":{"description":"This is used for multi-column EDMv2 datasets. The EDMv2 format can only be\ncreated in the Cloudflare dashboard.","operationId":"dlp-datasets-upload-dataset-column","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"dataset_id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"version","required":true,"schema":{"format":"int64","type":"integer"}},{"in":"path","name":"entry_id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/octet-stream":{"schema":{"type":"string"}}},"description":"Dataset content","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_DatasetColumn"}},"type":"object"}]}}},"description":"Dataset column uploaded successfully"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Failed to upload dataset column"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Upload a new version of a multi-column dataset","tags":["DLP Datasets"]}},"/accounts/{account_id}/dlp/limits":{"get":{"operationId":"dlp-limits-get","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_Limits"}},"type":"object"}]}}},"description":"Limits retrieved successfully"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Limits get failed"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Fetch limits associated with DLP for account","tags":["DLP Settings"]}},"/accounts/{account_id}/dlp/patterns/validate":{"post":{"description":"Validates whether this pattern is a valid regular expression. Rejects it if\nthe regular expression is too complex or can match an unbounded-length\nstring. The regex will be rejected if it uses `*` or `+`. Bound the maximum\nnumber of characters that can be matched using a range, e.g. `{1,100}`.","operationId":"dlp-pattern-validate","parameters":[{"description":"Account ID","in":"path","name":"account_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_RegexValidationQuery"}}},"description":"Validation query","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_RegexValidationResult"}},"type":"object"}]}}},"description":"Validation response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Failed to validate"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Validate a DLP regex pattern","tags":["DLP Settings"]}},"/accounts/{account_id}/dlp/payload_log":{"get":{"operationId":"dlp-payload-log-get","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_PayloadLogSetting"}},"type":"object"}]}}},"description":"Payload log settings"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Failed to get payload log settings"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get payload log settings","tags":["DLP Settings"]},"put":{"operationId":"dlp-payload-log-put","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_PayloadLogSettingUpdate"}}},"description":"New payload log settings","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_PayloadLogSetting"}},"type":"object"}]}}},"description":"Payload log settings"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Failed to set payload log settings"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Set payload log settings","tags":["DLP Settings"]}},"/accounts/{account_id}/dlp/profiles":{"get":{"description":"Lists all DLP profiles in an account.","operationId":"dlp-profiles-list-all-profiles","parameters":[{"description":"Return all profiles, including those that current account does not have access to.","in":"query","name":"all","schema":{"type":"boolean"}},{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_ProfileArray"}},"type":"object"}]}}},"description":"List all profiles response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"List all profiles failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List all profiles","tags":["DLP Profiles"]}},"/accounts/{account_id}/dlp/profiles/custom":{"post":{"description":"Creates a set of DLP custom profiles.","operationId":"dlp-profiles-create-custom-profiles","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_NewCustomProfiles"}}},"description":"A list of new profiles to create.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_ProfileArray"}},"type":"object"}]}}},"description":"New custom profile response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"New custom profile failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create custom profiles","tags":["DLP Profiles"]}},"/accounts/{account_id}/dlp/profiles/custom/{profile_id}":{"delete":{"description":"Deletes a DLP custom profile.","operationId":"dlp-profiles-delete-custom-profile","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"profile_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_Empty"}},"type":"object"}]}}},"description":"Delete custom profile response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Delete custom profile failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete custom profile","tags":["DLP Profiles"]},"get":{"description":"Fetches a custom DLP profile by id.","operationId":"dlp-profiles-get-custom-profile","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"profile_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_Profile"}},"type":"object"}]}}},"description":"Custom profile response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Custom profile failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get custom profile","tags":["DLP Profiles"]},"put":{"description":"Updates a DLP custom profile.","operationId":"dlp-profiles-update-custom-profile","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"profile_id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_CustomProfileUpdate"}}},"description":"The updated parameters for the profile.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_Profile"}},"type":"object"}]}}},"description":"Update custom profile response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Update custom profile failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update custom profile","tags":["DLP Profiles"]}},"/accounts/{account_id}/dlp/profiles/predefined/{profile_id}":{"get":{"description":"Fetches a predefined DLP profile by id.","operationId":"dlp-profiles-get-predefined-profile","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"profile_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_Profile"}},"type":"object"}]}}},"description":"Predefined profile response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Predefined profile failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get predefined profile","tags":["DLP Profiles"]},"put":{"description":"Updates a DLP predefined profile. Only supports enabling/disabling entries.","operationId":"dlp-profiles-update-predefined-profile","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"profile_id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_PredefinedProfileUpdate"}}},"description":"The updated parameters for the predefined profile.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_Profile"}},"type":"object"}]}}},"description":"Update predefined profile response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Update predefined profile failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update predefined profile","tags":["DLP Profiles"]}},"/accounts/{account_id}/dlp/profiles/{profile_id}":{"get":{"description":"Fetches a DLP profile by ID","operationId":"dlp-profiles-get-dlp-profile","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"profile_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_Profile"}},"type":"object"}]}}},"description":"Get profile response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Get profile failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get DLP Profile","tags":["DLP Profiles"]}},"/accounts/{account_id}/dns_firewall":{"get":{"description":"List DNS Firewall clusters for an account","operationId":"dns-firewall-list-dns-firewall-clusters","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dns-firewall_identifier"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":20,"description":"Number of clusters per page","maximum":100,"minimum":1,"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-firewall_dns_firewall_response_collection"}}},"description":"List DNS Firewall Clusters response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-firewall_dns_firewall_response_collection"},{"$ref":"#/components/schemas/dns-firewall_api-response-common-failure"}]}}},"description":"List DNS Firewall Clusters response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List DNS Firewall Clusters","tags":["DNS Firewall"],"x-api-token-group":["DNS Firewall Write","DNS Firewall Read"],"x-cfPermissionsRequired":{"enum":["#dns_records:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Create a DNS Firewall cluster","operationId":"dns-firewall-create-dns-firewall-cluster","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dns-firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-firewall_dns-firewall-cluster-post"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-firewall_dns_firewall_single_response"}}},"description":"Create DNS Firewall Cluster response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-firewall_dns_firewall_single_response"},{"$ref":"#/components/schemas/dns-firewall_api-response-common-failure"}]}}},"description":"Create DNS Firewall Cluster response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create DNS Firewall Cluster","tags":["DNS Firewall"],"x-api-token-group":["DNS Firewall Write"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/dns_firewall/{dns_firewall_id}":{"delete":{"description":"Delete a DNS Firewall cluster","operationId":"dns-firewall-delete-dns-firewall-cluster","parameters":[{"in":"path","name":"dns_firewall_id","required":true,"schema":{"$ref":"#/components/schemas/dns-firewall_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dns-firewall_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-firewall_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/dns-firewall_identifier"}}}}}]}}},"description":"Delete DNS Firewall Cluster response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/dns-firewall_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/dns-firewall_identifier"}}}}}]},{"$ref":"#/components/schemas/dns-firewall_api-response-common-failure"}]}}},"description":"Delete DNS Firewall Cluster response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete DNS Firewall Cluster","tags":["DNS Firewall"],"x-api-token-group":["DNS Firewall Write"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"description":"Show a single DNS Firewall cluster for an account","operationId":"dns-firewall-dns-firewall-cluster-details","parameters":[{"in":"path","name":"dns_firewall_id","required":true,"schema":{"$ref":"#/components/schemas/dns-firewall_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dns-firewall_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-firewall_dns_firewall_single_response"}}},"description":"DNS Firewall Cluster Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-firewall_dns_firewall_single_response"},{"$ref":"#/components/schemas/dns-firewall_api-response-common-failure"}]}}},"description":"DNS Firewall Cluster Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"DNS Firewall Cluster Details","tags":["DNS Firewall"],"x-api-token-group":["DNS Firewall Write","DNS Firewall Read"],"x-cfPermissionsRequired":{"enum":["#dns_records:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"patch":{"description":"Modify the configuration of a DNS Firewall cluster","operationId":"dns-firewall-update-dns-firewall-cluster","parameters":[{"in":"path","name":"dns_firewall_id","required":true,"schema":{"$ref":"#/components/schemas/dns-firewall_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dns-firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-firewall_dns-firewall-cluster-patch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-firewall_dns_firewall_single_response"}}},"description":"Update DNS Firewall Cluster response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-firewall_dns_firewall_single_response"},{"$ref":"#/components/schemas/dns-firewall_api-response-common-failure"}]}}},"description":"Update DNS Firewall Cluster response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update DNS Firewall Cluster","tags":["DNS Firewall"],"x-api-token-group":["DNS Firewall Write"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/dns_firewall/{dns_firewall_id}/dns_analytics/report":{"get":{"description":"Retrieves a list of summarised aggregate metrics over a given time period.\n\nSee [Analytics API properties](https://developers.cloudflare.com/dns/reference/analytics-api-properties/) for detailed information about the available query parameters.","operationId":"dns-firewall-analytics-table","parameters":[{"in":"path","name":"dns_firewall_id","required":true,"schema":{"$ref":"#/components/schemas/dns-analytics_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dns-analytics_identifier"}},{"in":"query","name":"metrics","schema":{"$ref":"#/components/schemas/dns-analytics_metrics"}},{"in":"query","name":"dimensions","schema":{"$ref":"#/components/schemas/dns-analytics_dimensions"}},{"in":"query","name":"since","schema":{"$ref":"#/components/schemas/dns-analytics_since"}},{"in":"query","name":"until","schema":{"$ref":"#/components/schemas/dns-analytics_until"}},{"in":"query","name":"limit","schema":{"$ref":"#/components/schemas/dns-analytics_limit"}},{"in":"query","name":"sort","schema":{"$ref":"#/components/schemas/dns-analytics_sort"}},{"in":"query","name":"filters","schema":{"$ref":"#/components/schemas/dns-analytics_filters"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-analytics_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dns-analytics_report"}},"type":"object"}]}}},"description":"Table response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/dns-analytics_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dns-analytics_report"}},"type":"object"}]},{"$ref":"#/components/schemas/dns-analytics_api-response-common-failure"}]}}},"description":"Table response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Table","tags":["DNS Firewall Analytics"],"x-cfPermissionsRequired":{"enum":["#analytics:read"]}}},"/accounts/{account_id}/dns_firewall/{dns_firewall_id}/dns_analytics/report/bytime":{"get":{"description":"Retrieves a list of aggregate metrics grouped by time interval.\n\nSee [Analytics API properties](https://developers.cloudflare.com/dns/reference/analytics-api-properties/) for detailed information about the available query parameters.","operationId":"dns-firewall-analytics-by-time","parameters":[{"in":"path","name":"dns_firewall_id","required":true,"schema":{"$ref":"#/components/schemas/dns-analytics_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dns-analytics_identifier"}},{"in":"query","name":"metrics","schema":{"$ref":"#/components/schemas/dns-analytics_metrics"}},{"in":"query","name":"dimensions","schema":{"$ref":"#/components/schemas/dns-analytics_dimensions"}},{"in":"query","name":"since","schema":{"$ref":"#/components/schemas/dns-analytics_since"}},{"in":"query","name":"until","schema":{"$ref":"#/components/schemas/dns-analytics_until"}},{"in":"query","name":"limit","schema":{"$ref":"#/components/schemas/dns-analytics_limit"}},{"in":"query","name":"sort","schema":{"$ref":"#/components/schemas/dns-analytics_sort"}},{"in":"query","name":"filters","schema":{"$ref":"#/components/schemas/dns-analytics_filters"}},{"in":"query","name":"time_delta","schema":{"$ref":"#/components/schemas/dns-analytics_time_delta"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-analytics_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dns-analytics_report_bytime"}},"type":"object"}]}}},"description":"By Time response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/dns-analytics_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dns-analytics_report_bytime"}},"type":"object"}]},{"$ref":"#/components/schemas/dns-analytics_api-response-common-failure"}]}}},"description":"By Time response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"By Time","tags":["DNS Firewall Analytics"],"x-cfPermissionsRequired":{"enum":["#analytics:read"]}}},"/accounts/{account_id}/dns_firewall/{dns_firewall_id}/reverse_dns":{"get":{"description":"Show reverse DNS configuration (PTR records) for a DNS Firewall cluster","operationId":"dns-firewall-show-dns-firewall-cluster-reverse-dns","parameters":[{"in":"path","name":"dns_firewall_id","required":true,"schema":{"$ref":"#/components/schemas/dns-firewall_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dns-firewall_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-firewall_dns_firewall_reverse_dns_response"}}},"description":"Show DNS Firewall Cluster Reverse DNS response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-firewall_dns_firewall_reverse_dns_response"},{"$ref":"#/components/schemas/dns-firewall_api-response-common-failure"}]}}},"description":"Show DNS Firewall Cluster Reverse DNS response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Show DNS Firewall Cluster Reverse DNS","tags":["DNS Firewall"],"x-api-token-group":["DNS Firewall Write","DNS Firewall Read"],"x-cfPermissionsRequired":{"enum":["#dns_records:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"patch":{"description":"Update reverse DNS configuration (PTR records) for a DNS Firewall cluster","operationId":"dns-firewall-update-dns-firewall-cluster-reverse-dns","parameters":[{"in":"path","name":"dns_firewall_id","required":true,"schema":{"$ref":"#/components/schemas/dns-firewall_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dns-firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-firewall_dns-firewall-reverse-dns-patch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-firewall_dns_firewall_reverse_dns_response"}}},"description":"Update DNS Firewall Cluster Reverse DNS response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-firewall_dns_firewall_reverse_dns_response"},{"$ref":"#/components/schemas/dns-firewall_api-response-common-failure"}]}}},"description":"Update DNS Firewall Cluster Reverse DNS response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update DNS Firewall Cluster Reverse DNS","tags":["DNS Firewall"],"x-api-token-group":["DNS Firewall Write"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/dns_settings":{"get":{"description":"Show DNS settings for an account","operationId":"dns-settings-for-an-account-list-dns-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dns-settings_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-settings_dns_response_single"}}},"description":"Show DNS Settings response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-settings_dns_response_single"},{"$ref":"#/components/schemas/dns-settings_api-response-common-failure"}]}}},"description":"Show DNS Settings response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Show DNS Settings","tags":["DNS Settings for an Account"],"x-api-token-group":["Account DNS Settings Write","Account DNS Settings Read"],"x-cfPermissionsRequired":{"enum":["#dns_records:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Update DNS settings for an account","operationId":"dns-settings-for-an-account-update-dns-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/dns-settings_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-settings_account_settings"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-settings_dns_response_single"}}},"description":"Show DNS Settings response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-settings_dns_response_single"},{"$ref":"#/components/schemas/dns-settings_api-response-common-failure"}]}}},"description":"Show DNS Settings response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update DNS Settings","tags":["DNS Settings for an Account"],"x-api-token-group":["Account DNS Settings Write"],"x-cfPermissionsRequired":{"enum":["#dns_records:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/email-security/investigate":{"get":{"description":"This endpoint returns information for each email that matches the search parameter(s).","operationId":"email_security_investigate","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"description":"The beginning of the search date range.\nDefaults to `now - 30 days`.","example":"2022-07-25T14:30:00Z","in":"query","name":"start","schema":{"format":"date-time","type":"string"}},{"description":"The end of the search date range.\nDefaults to `now`.","example":"2022-06-25T14:30:00Z","in":"query","name":"end","schema":{"format":"date-time","type":"string"}},{"description":"Space delimited query term(s).\nThe search is case-insensitive.\n\nThe content of the following email metadata fields are searched:\n* alert_id\n* CC\n* From (envelope_from)\n* From Name\n* final_disposition\n* md5 hash (of any attachment)\n* sha1 hash (of any attachment)\n* sha256 hash (of any attachment)\n* name (of any attachment)\n* Reason\n* Received DateTime (yyyy-mm-ddThh:mm:ss)\n* Sent DateTime (yyyy-mm-ddThh:mm:ss)\n* ReplyTo\n* To (envelope_to)\n* To Name\n* Message-ID\n* smtp_helo_server_ip\n* smtp_previous_hop_ip\n* x_originating_ip\n* Subject","example":"bob jones","in":"query","name":"query","schema":{"type":"string"}},{"description":"If `false`, the search includes non-detections.","in":"query","name":"detections_only","schema":{"default":true,"type":"boolean"}},{"description":"Controls whether the message action log in included in the response.","in":"query","name":"action_log","schema":{"default":true,"type":"boolean"}},{"description":"Filter messages by the provided disposition.","in":"query","name":"final_disposition","schema":{"allOf":[{"enum":["MALICIOUS","SUSPICIOUS","SPOOF","SPAM","BULK"],"type":"string"}]}},{"in":"query","name":"metric","schema":{"type":"string"}},{"description":"Filter messages by actions applied to them","in":"query","name":"message_action","schema":{"allOf":[{"enum":["PREVIEW","QUARANTINE_RELEASED","MOVED"],"type":"string"}]}},{"example":"me@example.com","in":"query","name":"recipient","schema":{"type":"string"}},{"example":"noreply@example.com","in":"query","name":"sender","schema":{"type":"string"}},{"example":"4Njp3P0STMz2c02Q-2022-12-30T02:44:49","in":"query","name":"alert_id","schema":{"type":"string"}},{"description":"Filter by the sender domain","example":"example.com","in":"query","name":"domain","schema":{"type":"string"}},{"example":"\u003c4VAZPrAdg7IGNxdt1DWRNu0gvOeL_iZiwP4BQfo4DaE.Yw-woXuugQbeFhBpzwFQtqq_v2v1HOKznoMBqbciQpE@example.com\u003e","in":"query","name":"message_id","schema":{"type":"string"}},{"description":"Page number of paginated results.","in":"query","name":"page","schema":{"default":1,"format":"int32","minimum":1,"type":"integer"}},{"description":"Number of results to display.","in":"query","name":"per_page","schema":{"default":20,"format":"int32","minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/email-security_MailsearchMessage"},"type":"array"},"result_info":{"$ref":"#/components/schemas/email-security_ResultInfo"}},"required":["result","result_info"],"type":"object"}]}}},"description":"Search results for the provided query"},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Search email messages","tags":["Email Security"],"x-api-token-group":["Cloud Email Security: Write","Cloud Email Security: Read"]}},"/accounts/{account_id}/email-security/investigate/{postfix_id}":{"get":{"operationId":"email_security_get_message","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"in":"path","name":"postfix_id","required":true,"schema":{"description":"Message identifier","example":"4Njp3P0STMz2c02Q","title":"postfix_id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"allOf":[{"properties":{"action_log":{},"alert_id":{"nullable":true,"type":"string"},"client_recipients":{"items":{"type":"string"},"type":"array"},"delivery_mode":{"allOf":[{"$ref":"#/components/schemas/email-security_MessageDeliveryMode"},{"nullable":true,"type":"string"}]},"detection_reasons":{"items":{"type":"string"},"type":"array"},"edf_hash":{"nullable":true,"type":"string"},"final_disposition":{"allOf":[{"$ref":"#/components/schemas/email-security_DispositionLabel"},{"nullable":true,"type":"string"}]},"from":{"nullable":true,"type":"string"},"from_name":{"nullable":true,"type":"string"},"is_phish_submission":{"type":"boolean"},"is_quarantined":{"type":"boolean"},"message_id":{"type":"string"},"postfix_id":{"$ref":"#/components/schemas/email-security_PostfixId"},"sent_date":{"nullable":true,"type":"string"},"subject":{"nullable":true,"type":"string"},"threat_categories":{"items":{"type":"string"},"nullable":true,"type":"array"},"to":{"items":{"type":"string"},"nullable":true,"type":"array"},"to_name":{"items":{"type":"string"},"nullable":true,"type":"array"},"ts":{"type":"string"},"validation":{"allOf":[{"properties":{"comment":{"nullable":true,"type":"string"},"dkim":{"allOf":[{"$ref":"#/components/schemas/email-security_ValidationStatus"},{"nullable":true,"type":"string"}]},"dmarc":{"allOf":[{"$ref":"#/components/schemas/email-security_ValidationStatus"},{"nullable":true,"type":"string"}]},"spf":{"allOf":[{"$ref":"#/components/schemas/email-security_ValidationStatus"},{"nullable":true,"type":"string"}]}},"type":"object"},{"nullable":true,"type":"object"}]}},"required":["ts","message_id","client_recipients","postfix_id","detection_reasons","action_log","is_quarantined","is_phish_submission"],"type":"object"},{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}],"example":{"action_log":[],"alert_id":"4Njp3P0STMz2c02Q-2022-12-30T02:44:49","client_recipients":["email@example.com"],"delivery_mode":"DIRECT","detection_reasons":["Selector is a source of spam/uce : Smtp-Helo-Server-Ip=\u003cb\u003e127.0.0[dot]186\u003c/b\u003e"],"edf_hash":null,"final_disposition":"MALICIOUS","from":"d1994@example.com","from_name":"Sender Name","id":"47JJcT1w6GztQV7-email@example.com","is_phish_submission":false,"is_quarantined":false,"message_id":"\u003c4VAZPrAdg7IGNxdt1DWRNu0gvOeL_iZiwP4BQfo4DaE.Yw-woXuugQbeFhBpzwFQtqq_v2v1HOKznoMBqbciQpE@example.com\u003e","postfix_id":"47JJcT1w6GztQV7","sent_date":"2019-11-21T00:22:01","subject":"listen, I highly recommend u to read that email, just to ensure not a thing will take place","threat_categories":["IPReputation","ASNReputation"],"to":["email@example.com"],"to_name":["Recipient Name"],"ts":"2019-11-20T23:22:01","validation":{"comment":null,"dkim":"pass","dmarc":"none","spf":"fail"}}}},"required":["result"],"type":"object"}]}}},"description":"Email message details"},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get message details","tags":["Email Security"]}},"/accounts/{account_id}/email-security/investigate/{postfix_id}/detections":{"get":{"description":"For emails that have a detection, this endpoint returns detection details\nsuch as threat categories, sender information, and links.","operationId":"email_security_get_message_detections","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"in":"path","name":"postfix_id","required":true,"schema":{"description":"Message identifier","example":"4Njp3P0STMz2c02Q","title":"postfix_id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"example":{"action":"QUARANTINED","attachments":[],"final_disposition":"MALICIOUS","headers":[{"name":"From","value":"Sender Name \u003cd1994@example.com\u003e"},{"name":"Subject","value":"listen, I highly recommend u to read that email, just to ensure not a thing will take place"}],"links":[{"href":"https://example.com","text":"Click here!"}],"sender_info":{"as_name":"AS0","as_number":0,"geo":"US/-/-","ip":"127.0.0.1","pld":"example.com"},"threat_categories":[{"description":null,"id":1234,"name":"IP Reputation"}],"validation":{"comment":null,"dkim":"pass","dmarc":"none","spf":"fail"}},"properties":{"action":{"type":"string"},"attachments":{"items":{"$ref":"#/components/schemas/email-security_Attachment"},"type":"array"},"final_disposition":{"allOf":[{"$ref":"#/components/schemas/email-security_DispositionLabel"},{"nullable":true,"type":"string"}]},"headers":{"items":{"$ref":"#/components/schemas/email-security_MessageHeader"},"type":"array"},"links":{"items":{"$ref":"#/components/schemas/email-security_Link"},"type":"array"},"sender_info":{"properties":{"as_name":{"description":"Name of the autonomous system","nullable":true,"type":"string"},"as_number":{"description":"Number of the autonomous system","format":"int64","nullable":true,"type":"integer"},"geo":{"nullable":true,"type":"string"},"ip":{"nullable":true,"type":"string"},"pld":{"nullable":true,"type":"string"}},"type":"object"},"threat_categories":{"items":{"$ref":"#/components/schemas/email-security_ThreatCategory"},"type":"array"},"validation":{"properties":{"comment":{"nullable":true,"type":"string"},"dkim":{"allOf":[{"$ref":"#/components/schemas/email-security_ValidationStatus"},{"nullable":true,"type":"string"}]},"dmarc":{"allOf":[{"$ref":"#/components/schemas/email-security_ValidationStatus"},{"nullable":true,"type":"string"}]},"spf":{"allOf":[{"$ref":"#/components/schemas/email-security_ValidationStatus"},{"nullable":true,"type":"string"}]}},"type":"object"}},"required":["validation","headers","threat_categories","sender_info","links","action","attachments"],"type":"object"}},"required":["result"],"type":"object"}]}}},"description":"Email detection details"},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get message detection details","tags":["Email Security"]}},"/accounts/{account_id}/email-security/investigate/{postfix_id}/preview":{"get":{"description":"For emails that have a detection, this endpoint returns a preview of the\nmessage body as a base64 encoded PNG image.","operationId":"email_security_get_message_preview","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"in":"path","name":"postfix_id","required":true,"schema":{"description":"Message identifier","example":"4Njp3P0STMz2c02Q","title":"postfix_id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"example":{"screenshot":"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"},"properties":{"screenshot":{"description":"Base64 encoded PNG image","type":"string"}},"required":["screenshot"],"type":"object"}},"required":["result"],"type":"object"}]}}},"description":"Email preview"},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get email preview","tags":["Email Security"],"x-api-token-group":["Cloud Email Security: Write","Cloud Email Security: Read"]}},"/accounts/{account_id}/email-security/investigate/{postfix_id}/raw":{"get":{"description":"For emails that have a detection, this endpoint returns the raw email\nas an EML file.","operationId":"email_security_get_message_raw","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"in":"path","name":"postfix_id","required":true,"schema":{"description":"Message identifier","example":"4Njp3P0STMz2c02Q","title":"postfix_id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"example":{"raw":"MIME-Version: 1.0\nContent-Type: text/plain; charset=\"utf-8\"\n\nFrom: sender@example.com\nTo: recipient@example.com\nSubject: Test Email\n\nThis is a test email."},"properties":{"raw":{"description":"UTF-8 encoded eml file","type":"string"}},"required":["raw"],"type":"object"}},"required":["result"],"type":"object"}]}}},"description":"Raw email content"},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get raw email content","tags":["Email Security"],"x-api-token-group":["Cloud Email Security: Write","Cloud Email Security: Read"]}},"/accounts/{account_id}/email-security/investigate/{postfix_id}/trace":{"get":{"operationId":"email_security_get_message_trace","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"in":"path","name":"postfix_id","required":true,"schema":{"description":"Message identifier","example":"4Njp3P0STMz2c02Q","title":"postfix_id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"properties":{"inbound":{"properties":{"lines":{"items":{"$ref":"#/components/schemas/email-security_TraceLine"},"nullable":true,"type":"array"}},"type":"object"},"outbound":{"properties":{"lines":{"items":{"$ref":"#/components/schemas/email-security_TraceLine"},"nullable":true,"type":"array"}},"type":"object"}},"required":["inbound","outbound"],"type":"object"}},"required":["result"],"type":"object"}]}}},"description":"Email trace"},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get email trace","tags":["Email Security"],"x-api-token-group":["Cloud Email Security: Write","Cloud Email Security: Read"]}},"/accounts/{account_id}/email-security/phishguard/reports":{"get":{"operationId":"email_security_get_phishguard_reports","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"example":"2020-08-01","in":"query","name":"from_date","required":true,"schema":{"format":"date","type":"string"}},{"example":"2020-09-01","in":"query","name":"to_date","required":true,"schema":{"format":"date","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/email-security_PhishGuardReport"},"type":"array"}},"required":["result"],"type":"object"}]}}},"description":"PhishGuard reports"},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get PhishGuard reports","tags":["Email Security"]}},"/accounts/{account_id}/email-security/settings/allow_patterns":{"delete":{"operationId":"email_security_delete_allow_patterns","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"properties":{"id":{"example":2401,"format":"int32","title":"identifier","type":"integer"}},"required":["id"],"type":"object"},"minItems":1,"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"items":{"properties":{"id":{"example":2401,"format":"int32","title":"identifier","type":"integer"}},"required":["id"],"type":"object"},"minItems":1,"type":"array"}},"required":["result"],"type":"object"}]}}},"description":""},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete multiple email allow patterns","tags":["Email Security Settings"]},"get":{"description":"List, search, and sort an accounts's email allow patterns.","operationId":"email_security_list_allow_patterns","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"description":"Page number of paginated results.","in":"query","name":"page","schema":{"default":1,"format":"int32","minimum":1,"type":"integer"}},{"description":"Number of results to display.","in":"query","name":"per_page","schema":{"default":20,"format":"int32","minimum":1,"type":"integer"}},{"description":"The field to sort by.","in":"query","name":"order","schema":{"enum":["pattern","created_at"],"type":"string"}},{"description":"The sorting direction.","in":"query","name":"direction","schema":{"allOf":[{"$ref":"#/components/schemas/email-security_SortingDirection"}]}},{"description":"Allows searching in multiple properties of a record simultaneously.\nThis parameter is intended for human users, not automation. Its exact\nbehavior is intentionally left unspecified and is subject to change\nin the future.","in":"query","name":"search","schema":{"type":"string"}},{"in":"query","name":"is_sender","schema":{"type":"boolean"}},{"in":"query","name":"is_recipient","schema":{"type":"boolean"}},{"in":"query","name":"is_spoof","schema":{"type":"boolean"}},{"in":"query","name":"verify_sender","schema":{"type":"boolean"}},{"in":"query","name":"pattern_type","schema":{"allOf":[{"$ref":"#/components/schemas/email-security_PatternType"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/email-security_AllowPattern"},"type":"array"},"result_info":{"$ref":"#/components/schemas/email-security_ResultInfo"}},"required":["result","result_info"],"type":"object"}]}}},"description":"List of allow-patterns for the provided account"},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List email allow patterns","tags":["Email Security Settings"]},"post":{"operationId":"email_security_create_allow_pattern","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/email-security_CreateAllowPattern"},{"items":{"$ref":"#/components/schemas/email-security_CreateAllowPattern"},"type":"array"}]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"oneOf":[{"$ref":"#/components/schemas/email-security_AllowPattern"},{"items":{"$ref":"#/components/schemas/email-security_AllowPattern"},"type":"array"}]}},"required":["result"],"type":"object"}]}}},"description":"Returns the newly created patterns in the same shape as the request body"},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create an email allow pattern","tags":["Email Security Settings"]}},"/accounts/{account_id}/email-security/settings/allow_patterns/{pattern_id}":{"delete":{"operationId":"email_security_delete_allow_pattern","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"in":"path","name":"pattern_id","required":true,"schema":{"example":2401,"format":"int32","title":"identifier","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"properties":{"id":{"example":2401,"format":"int32","title":"identifier","type":"integer"}},"required":["id"],"type":"object"}},"required":["result"],"type":"object"}]}}},"description":""},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete an email allow pattern","tags":["Email Security Settings"]},"get":{"operationId":"email_security_get_allow_pattern","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"in":"path","name":"pattern_id","required":true,"schema":{"example":2401,"format":"int32","title":"identifier","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"allOf":[{"additionalProperties":false,"example":{"comments":"Trust all messages send from test@example.com","is_recipient":false,"is_regex":false,"is_sender":true,"is_spoof":false,"pattern":"test@example.com","pattern_type":"EMAIL","verify_sender":true},"properties":{"comments":{"nullable":true,"type":"string"},"is_recipient":{"type":"boolean"},"is_regex":{"type":"boolean"},"is_sender":{"type":"boolean"},"is_spoof":{"type":"boolean"},"pattern":{"minLength":1,"type":"string"},"pattern_type":{"$ref":"#/components/schemas/email-security_PatternType"},"verify_sender":{"type":"boolean"}},"required":["is_recipient","is_sender","is_spoof","pattern","is_regex","verify_sender","pattern_type"],"type":"object"},{"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"example":2401,"format":"int32","title":"identifier","type":"integer"},"last_modified":{"format":"date-time","type":"string"}},"required":["id","created_at","last_modified"],"type":"object"}],"example":{"comments":"Trust all messages send from test@example.com","created_at":"2023-11-14T22:13:20Z","id":2401,"is_recipient":false,"is_regex":false,"is_sender":true,"is_spoof":false,"last_modified":"2023-11-14T22:13:20Z","pattern":"test@example.com","pattern_type":"EMAIL","verify_sender":true}}},"required":["result"],"type":"object"}]}}},"description":""},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get an email allow pattern","tags":["Email Security Settings"]},"patch":{"operationId":"email_security_update_allow_pattern","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"in":"path","name":"pattern_id","required":true,"schema":{"example":2401,"format":"int32","title":"identifier","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"comments":{"nullable":true,"type":"string"},"is_recipient":{"nullable":true,"type":"boolean"},"is_regex":{"nullable":true,"type":"boolean"},"is_sender":{"nullable":true,"type":"boolean"},"is_spoof":{"nullable":true,"type":"boolean"},"pattern":{"minLength":1,"nullable":true,"type":"string"},"pattern_type":{"allOf":[{"$ref":"#/components/schemas/email-security_PatternType"},{"nullable":true,"type":"string"}]},"verify_sender":{"nullable":true,"type":"boolean"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"allOf":[{"additionalProperties":false,"example":{"comments":"Trust all messages send from test@example.com","is_recipient":false,"is_regex":false,"is_sender":true,"is_spoof":false,"pattern":"test@example.com","pattern_type":"EMAIL","verify_sender":true},"properties":{"comments":{"nullable":true,"type":"string"},"is_recipient":{"type":"boolean"},"is_regex":{"type":"boolean"},"is_sender":{"type":"boolean"},"is_spoof":{"type":"boolean"},"pattern":{"minLength":1,"type":"string"},"pattern_type":{"$ref":"#/components/schemas/email-security_PatternType"},"verify_sender":{"type":"boolean"}},"required":["is_recipient","is_sender","is_spoof","pattern","is_regex","verify_sender","pattern_type"],"type":"object"},{"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"example":2401,"format":"int32","title":"identifier","type":"integer"},"last_modified":{"format":"date-time","type":"string"}},"required":["id","created_at","last_modified"],"type":"object"}],"example":{"comments":"Trust all messages send from test@example.com","created_at":"2023-11-14T22:13:20Z","id":2401,"is_recipient":false,"is_regex":false,"is_sender":true,"is_spoof":false,"last_modified":"2023-11-14T22:13:20Z","pattern":"test@example.com","pattern_type":"EMAIL","verify_sender":true}}},"required":["result"],"type":"object"}]}}},"description":""},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an email allow pattern","tags":["Email Security Settings"]}},"/accounts/{account_id}/email-security/settings/block_senders":{"delete":{"operationId":"email_security_delete_blocked_senders","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"properties":{"id":{"example":2402,"format":"int32","title":"identifier","type":"integer"}},"required":["id"],"type":"object"},"minItems":1,"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"items":{"properties":{"id":{"example":2402,"format":"int32","title":"identifier","type":"integer"}},"required":["id"],"type":"object"},"minItems":1,"type":"array"}},"required":["result"],"type":"object"}]}}},"description":""},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete multiple blocked email senders","tags":["Email Security Settings"]},"get":{"operationId":"email_security_list_blocked_senders","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"description":"Page number of paginated results.","in":"query","name":"page","schema":{"default":1,"format":"int32","minimum":1,"type":"integer"}},{"description":"Number of results to display.","in":"query","name":"per_page","schema":{"default":20,"format":"int32","minimum":1,"type":"integer"}},{"description":"The field to sort by.","in":"query","name":"order","schema":{"enum":["pattern","created_at"],"type":"string"}},{"description":"The sorting direction.","in":"query","name":"direction","schema":{"allOf":[{"$ref":"#/components/schemas/email-security_SortingDirection"}]}},{"description":"Allows searching in multiple properties of a record simultaneously.\nThis parameter is intended for human users, not automation. Its exact\nbehavior is intentionally left unspecified and is subject to change\nin the future.","in":"query","name":"search","schema":{"type":"string"}},{"in":"query","name":"pattern_type","schema":{"allOf":[{"$ref":"#/components/schemas/email-security_PatternType"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/email-security_BlockedSender"},"type":"array"},"result_info":{"$ref":"#/components/schemas/email-security_ResultInfo"}},"required":["result","result_info"],"type":"object"}]}}},"description":"List of blocked senders for the provided account"},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List blocked email senders","tags":["Email Security Settings"]},"post":{"operationId":"email_security_create_blocked_sender","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/email-security_CreateBlockedSender"},{"items":{"$ref":"#/components/schemas/email-security_CreateBlockedSender"},"type":"array"}]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"oneOf":[{"$ref":"#/components/schemas/email-security_BlockedSender"},{"items":{"$ref":"#/components/schemas/email-security_BlockedSender"},"type":"array"}]}},"required":["result"],"type":"object"}]}}},"description":"Returns the newly created patterns in the same shape as the request body"},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a blocked email sender","tags":["Email Security Settings"]}},"/accounts/{account_id}/email-security/settings/block_senders/{pattern_id}":{"delete":{"operationId":"email_security_delete_blocked_sender","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"in":"path","name":"pattern_id","required":true,"schema":{"example":2402,"format":"int32","title":"identifier","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"properties":{"id":{"example":2402,"format":"int32","title":"identifier","type":"integer"}},"required":["id"],"type":"object"}},"required":["result"],"type":"object"}]}}},"description":""},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a blocked email sender","tags":["Email Security Settings"]},"get":{"operationId":"email_security_get_blocked_sender","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"in":"path","name":"pattern_id","required":true,"schema":{"example":2402,"format":"int32","title":"identifier","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"allOf":[{"additionalProperties":false,"example":{"comments":"block sender with email test@example.com","is_regex":false,"pattern":"test@example.com","pattern_type":"EMAIL"},"properties":{"comments":{"nullable":true,"type":"string"},"is_regex":{"type":"boolean"},"pattern":{"minLength":1,"type":"string"},"pattern_type":{"$ref":"#/components/schemas/email-security_PatternType"}},"required":["pattern","is_regex","pattern_type"],"type":"object"},{"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"example":2402,"format":"int32","title":"identifier","type":"integer"},"last_modified":{"format":"date-time","type":"string"}},"required":["id","created_at","last_modified"],"type":"object"}],"example":{"comments":"block sender with email test@example.com","created_at":"2023-11-14T22:13:20Z","id":2402,"is_regex":false,"last_modified":"2023-11-14T22:13:20Z","pattern":"test@example.com","pattern_type":"EMAIL"}}},"required":["result"],"type":"object"}]}}},"description":""},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a blocked email sender","tags":["Email Security Settings"]},"patch":{"operationId":"email_security_update_blocked_sender","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"in":"path","name":"pattern_id","required":true,"schema":{"example":2402,"format":"int32","title":"identifier","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"comments":{"nullable":true,"type":"string"},"is_regex":{"nullable":true,"type":"boolean"},"pattern":{"minLength":1,"nullable":true,"type":"string"},"pattern_type":{"allOf":[{"$ref":"#/components/schemas/email-security_PatternType"},{"nullable":true,"type":"string"}]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"allOf":[{"additionalProperties":false,"example":{"comments":"block sender with email test@example.com","is_regex":false,"pattern":"test@example.com","pattern_type":"EMAIL"},"properties":{"comments":{"nullable":true,"type":"string"},"is_regex":{"type":"boolean"},"pattern":{"minLength":1,"type":"string"},"pattern_type":{"$ref":"#/components/schemas/email-security_PatternType"}},"required":["pattern","is_regex","pattern_type"],"type":"object"},{"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"example":2402,"format":"int32","title":"identifier","type":"integer"},"last_modified":{"format":"date-time","type":"string"}},"required":["id","created_at","last_modified"],"type":"object"}],"example":{"comments":"block sender with email test@example.com","created_at":"2023-11-14T22:13:20Z","id":2402,"is_regex":false,"last_modified":"2023-11-14T22:13:20Z","pattern":"test@example.com","pattern_type":"EMAIL"}}},"required":["result"],"type":"object"}]}}},"description":""},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a blocked email sender","tags":["Email Security Settings"]}},"/accounts/{account_id}/email-security/settings/domains":{"delete":{"operationId":"email_security_delete_domains","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"properties":{"id":{"description":"Unique domain identifier","example":2400,"format":"int32","type":"integer"}},"required":["id"],"type":"object"},"minItems":1,"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"items":{"properties":{"id":{"description":"Unique domain identifier","example":2400,"format":"int32","type":"integer"}},"required":["id"],"type":"object"},"minItems":1,"type":"array"}},"required":["result"],"type":"object"}]}}},"description":""},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Unprotect multiple email domains","tags":["Email Security Settings"]},"get":{"description":"List, search, and sort an account's email domains.","operationId":"email_security_list_domains","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"description":"Page number of paginated results.","in":"query","name":"page","schema":{"default":1,"format":"int32","minimum":1,"type":"integer"}},{"description":"Number of results to display.","in":"query","name":"per_page","schema":{"default":20,"format":"int32","minimum":1,"type":"integer"}},{"description":"The field to sort by.","in":"query","name":"order","schema":{"enum":["domain","created_at"],"type":"string"}},{"description":"The sorting direction.","in":"query","name":"direction","schema":{"allOf":[{"$ref":"#/components/schemas/email-security_SortingDirection"}]}},{"description":"Allows searching in multiple properties of a record simultaneously.\nThis parameter is intended for human users, not automation. Its exact\nbehavior is intentionally left unspecified and is subject to change\nin the future.","in":"query","name":"search","schema":{"type":"string"}},{"description":"If present, the response contains only domains with the provided delivery mode.","in":"query","name":"allowed_delivery_mode","schema":{"allOf":[{"$ref":"#/components/schemas/email-security_DeliveryMode"}]}},{"description":"Filter result by the provided domains.\nAllows for multiple occurrences, e.g., `domain=example.com\u0026domain=example.xyz`.","in":"query","name":"domain","schema":{"items":{"type":"string"},"type":"array"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/email-security_Domain"},"type":"array"},"result_info":{"$ref":"#/components/schemas/email-security_ResultInfo"}},"required":["result","result_info"],"type":"object"}]}}},"description":"List of domains for the provided account"},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List protected email domains","tags":["Email Security Settings"]}},"/accounts/{account_id}/email-security/settings/domains/{domain_id}":{"delete":{"operationId":"email_security_delete_domain","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"in":"path","name":"domain_id","required":true,"schema":{"description":"Unique domain identifier","example":2400,"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"properties":{"id":{"description":"Unique domain identifier","example":2400,"format":"int32","type":"integer"}},"required":["id"],"type":"object"}},"required":["result"],"type":"object"}]}}},"description":"Delete the domain with the provided id"},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Unprotect an email domain","tags":["Email Security Settings"]},"patch":{"operationId":"email_security_update_domain","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"in":"path","name":"domain_id","required":true,"schema":{"description":"Unique domain identifier","example":2400,"format":"int32","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"domain":{"nullable":true,"type":"string"},"lookback_hops":{"format":"int32","maximum":20,"minimum":1,"nullable":true,"type":"integer"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"example":{"allowed_delivery_modes":["API"],"created_at":"2023-11-14T22:13:20Z","domain":"example.com","folder":"Inbox","id":2400,"integration_id":"a5dbb180-60ea-4578-84bb-d01a5d4e50c3","last_modified":"2023-11-14T22:13:20Z","lookback_hops":2,"o365_tenant_id":"c3c3239d-8858-47df-9618-0e2d9bdf6aa8"},"properties":{"allowed_delivery_modes":{"items":{"$ref":"#/components/schemas/email-security_DeliveryMode"},"type":"array"},"created_at":{"format":"date-time","type":"string"},"domain":{"type":"string"},"folder":{"allOf":[{"$ref":"#/components/schemas/email-security_ScannableFolder"},{"nullable":true,"type":"string"}]},"id":{"description":"Unique domain identifier","example":2400,"format":"int32","type":"integer"},"integration_id":{"format":"uuid","nullable":true,"type":"string"},"last_modified":{"format":"date-time","type":"string"},"lookback_hops":{"format":"int32","type":"integer"},"o365_tenant_id":{"nullable":true,"type":"string"}},"required":["id","created_at","last_modified","domain","allowed_delivery_modes","lookback_hops"],"type":"object"}},"required":["result"],"type":"object"}]}}},"description":""},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an email domain","tags":["Email Security Settings"]}},"/accounts/{account_id}/email-security/settings/impersonation_registry":{"delete":{"operationId":"email_security_delete_display_names","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"properties":{"id":{"example":2403,"format":"int32","title":"identifier","type":"integer"}},"required":["id"],"type":"object"},"minItems":1,"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"items":{"properties":{"id":{"example":2403,"format":"int32","title":"identifier","type":"integer"}},"required":["id"],"type":"object"},"minItems":1,"type":"array"}},"required":["result"],"type":"object"}]}}},"description":""},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete multiple entries from impersonation registry","tags":["Email Security Settings"]},"get":{"description":"List, search, and sort entries in impersonation registry.","operationId":"email_security_list_display_names","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"description":"Page number of paginated results.","in":"query","name":"page","schema":{"default":1,"format":"int32","minimum":1,"type":"integer"}},{"description":"Number of results to display.","in":"query","name":"per_page","schema":{"default":20,"format":"int32","minimum":1,"type":"integer"}},{"description":"The field to sort by.","in":"query","name":"order","schema":{"enum":["name","email","created_at"],"type":"string"}},{"description":"The sorting direction.","in":"query","name":"direction","schema":{"allOf":[{"$ref":"#/components/schemas/email-security_SortingDirection"}]}},{"description":"Allows searching in multiple properties of a record simultaneously.\nThis parameter is intended for human users, not automation. Its exact\nbehavior is intentionally left unspecified and is subject to change\nin the future.","in":"query","name":"search","schema":{"type":"string"}},{"in":"query","name":"provenance","schema":{"allOf":[{"enum":["A1S_INTERNAL","SNOOPY-CASB_OFFICE_365","SNOOPY-OFFICE_365","SNOOPY-GOOGLE_DIRECTORY"],"type":"string"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/email-security_DisplayName"},"type":"array"},"result_info":{"$ref":"#/components/schemas/email-security_ResultInfo"}},"required":["result","result_info"],"type":"object"}]}}},"description":"List of impersonation registry entries for the provided account"},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List entries in impersonation registry","tags":["Email Security Settings"]},"post":{"operationId":"email_security_create_display_name","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/email-security_CreateDisplayName"},{"items":{"$ref":"#/components/schemas/email-security_CreateDisplayName"},"type":"array"}]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"oneOf":[{"$ref":"#/components/schemas/email-security_DisplayName"},{"items":{"$ref":"#/components/schemas/email-security_DisplayName"},"type":"array"}]}},"required":["result"],"type":"object"}]}}},"description":"Returns the newly created entry in the same shape as the request body"},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create an entry in impersonation registry","tags":["Email Security Settings"]}},"/accounts/{account_id}/email-security/settings/impersonation_registry/{display_name_id}":{"delete":{"operationId":"email_security_delete_display_name","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"in":"path","name":"display_name_id","required":true,"schema":{"example":2403,"format":"int32","title":"identifier","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"properties":{"id":{"example":2403,"format":"int32","title":"identifier","type":"integer"}},"required":["id"],"type":"object"}},"required":["result"],"type":"object"}]}}},"description":""},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete an entry from impersonation registry","tags":["Email Security Settings"]},"get":{"operationId":"email_security_get_display_name","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"in":"path","name":"display_name_id","required":true,"schema":{"example":2403,"format":"int32","title":"identifier","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"properties":{"comments":{"nullable":true,"type":"string"},"created_at":{"format":"date-time","type":"string"},"directory_id":{"allOf":[{"format":"int64","type":"integer"},{"nullable":true,"type":"integer"}]},"directory_node_id":{"allOf":[{"format":"int32","type":"integer"},{"nullable":true,"type":"integer"}]},"email":{"nullable":true,"type":"string"},"external_directory_node_id":{"deprecated":true,"nullable":true,"type":"string"},"id":{"example":2403,"format":"int32","title":"identifier","type":"integer"},"is_email_regex":{"type":"boolean"},"last_modified":{"format":"date-time","type":"string"},"name":{"type":"string"},"provenance":{"nullable":true,"type":"string"}},"required":["id","created_at","last_modified","name","is_email_regex"],"type":"object"}},"required":["result"],"type":"object"}]}}},"description":""},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get an entry in impersonation registry","tags":["Email Security Settings"]},"patch":{"operationId":"email_security_update_display_name","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"in":"path","name":"display_name_id","required":true,"schema":{"example":2403,"format":"int32","title":"identifier","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"email":{"nullable":true,"type":"string"},"is_email_regex":{"nullable":true,"type":"boolean"},"name":{"nullable":true,"type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"properties":{"comments":{"nullable":true,"type":"string"},"created_at":{"format":"date-time","type":"string"},"directory_id":{"allOf":[{"format":"int64","type":"integer"},{"nullable":true,"type":"integer"}]},"directory_node_id":{"allOf":[{"format":"int32","type":"integer"},{"nullable":true,"type":"integer"}]},"email":{"nullable":true,"type":"string"},"external_directory_node_id":{"deprecated":true,"nullable":true,"type":"string"},"id":{"example":2403,"format":"int32","title":"identifier","type":"integer"},"is_email_regex":{"type":"boolean"},"last_modified":{"format":"date-time","type":"string"},"name":{"type":"string"},"provenance":{"nullable":true,"type":"string"}},"required":["id","created_at","last_modified","name","is_email_regex"],"type":"object"}},"required":["result"],"type":"object"}]}}},"description":""},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an entry in impersonation registry","tags":["Email Security Settings"]}},"/accounts/{account_id}/email-security/settings/trusted_domains":{"delete":{"operationId":"email_security_delete_trusted_domains","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"properties":{"id":{"example":2401,"format":"int32","title":"identifier","type":"integer"}},"required":["id"],"type":"object"},"minItems":1,"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"items":{"properties":{"id":{"example":2401,"format":"int32","title":"identifier","type":"integer"}},"required":["id"],"type":"object"},"minItems":1,"type":"array"}},"required":["result"],"type":"object"}]}}},"description":""},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete multiple trusted email domains","tags":["Email Security Settings"]},"get":{"description":"List, search, and sort an account's trusted email domains.","operationId":"email_security_list_trusted_domains","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"description":"Page number of paginated results.","in":"query","name":"page","schema":{"default":1,"format":"int32","minimum":1,"type":"integer"}},{"description":"Number of results to display.","in":"query","name":"per_page","schema":{"default":20,"format":"int32","minimum":1,"type":"integer"}},{"description":"The field to sort by.","in":"query","name":"order","schema":{"enum":["pattern","created_at"],"type":"string"}},{"description":"The sorting direction.","in":"query","name":"direction","schema":{"allOf":[{"$ref":"#/components/schemas/email-security_SortingDirection"}]}},{"description":"Allows searching in multiple properties of a record simultaneously.\nThis parameter is intended for human users, not automation. Its exact\nbehavior is intentionally left unspecified and is subject to change\nin the future.","in":"query","name":"search","schema":{"type":"string"}},{"in":"query","name":"is_recent","schema":{"type":"boolean"}},{"in":"query","name":"is_similarity","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/email-security_TrustedDomain"},"type":"array"},"result_info":{"$ref":"#/components/schemas/email-security_ResultInfo"}},"required":["result","result_info"],"type":"object"}]}}},"description":"List of trusted domains for the provided account"},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List trusted email domains","tags":["Email Security Settings"]},"post":{"operationId":"email_security_create_trusted_domain","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/email-security_CreateTrustedDomain"},{"items":{"$ref":"#/components/schemas/email-security_CreateTrustedDomain"},"type":"array"}]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"oneOf":[{"$ref":"#/components/schemas/email-security_TrustedDomain"},{"items":{"$ref":"#/components/schemas/email-security_TrustedDomain"},"type":"array"}]}},"required":["result"],"type":"object"}]}}},"description":"Returns the newly created trusted domains in the same shape as the request body"},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a trusted email domain","tags":["Email Security Settings"]}},"/accounts/{account_id}/email-security/settings/trusted_domains/{pattern_id}":{"delete":{"operationId":"email_security_delete_trusted_domain","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"in":"path","name":"pattern_id","required":true,"schema":{"example":2401,"format":"int32","title":"identifier","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"properties":{"id":{"example":2401,"format":"int32","title":"identifier","type":"integer"}},"required":["id"],"type":"object"}},"required":["result"],"type":"object"}]}}},"description":""},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a trusted email domain","tags":["Email Security Settings"]},"get":{"operationId":"email_security_get_trusted_domain","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"in":"path","name":"pattern_id","required":true,"schema":{"example":2401,"format":"int32","title":"identifier","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"allOf":[{"additionalProperties":false,"example":{"comments":null,"is_recent":true,"is_regex":false,"is_similarity":false,"pattern":"example.com"},"properties":{"comments":{"nullable":true,"type":"string"},"is_recent":{"type":"boolean"},"is_regex":{"type":"boolean"},"is_similarity":{"type":"boolean"},"pattern":{"minLength":1,"type":"string"}},"required":["is_recent","is_similarity","is_regex","pattern"],"type":"object"},{"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"example":2401,"format":"int32","title":"identifier","type":"integer"},"last_modified":{"format":"date-time","type":"string"}},"required":["id","created_at","last_modified"],"type":"object"}],"example":{"comments":null,"created_at":"2023-11-14T22:13:20Z","id":2401,"is_recent":true,"is_regex":false,"is_similarity":false,"last_modified":"2023-11-14T22:13:20Z","pattern":"example.com"}}},"required":["result"],"type":"object"}]}}},"description":""},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a trusted email domain","tags":["Email Security Settings"]},"patch":{"operationId":"email_security_update_trusted_domain","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email-security_AccountId"}},{"in":"path","name":"pattern_id","required":true,"schema":{"example":2401,"format":"int32","title":"identifier","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"comments":{"nullable":true,"type":"string"},"is_recent":{"nullable":true,"type":"boolean"},"is_regex":{"nullable":true,"type":"boolean"},"is_similarity":{"nullable":true,"type":"boolean"},"pattern":{"minLength":1,"nullable":true,"type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/email-security_ApiResponseCommon"},{"properties":{"result":{"allOf":[{"additionalProperties":false,"example":{"comments":null,"is_recent":true,"is_regex":false,"is_similarity":false,"pattern":"example.com"},"properties":{"comments":{"nullable":true,"type":"string"},"is_recent":{"type":"boolean"},"is_regex":{"type":"boolean"},"is_similarity":{"type":"boolean"},"pattern":{"minLength":1,"type":"string"}},"required":["is_recent","is_similarity","is_regex","pattern"],"type":"object"},{"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"example":2401,"format":"int32","title":"identifier","type":"integer"},"last_modified":{"format":"date-time","type":"string"}},"required":["id","created_at","last_modified"],"type":"object"}],"example":{"comments":null,"created_at":"2023-11-14T22:13:20Z","id":2401,"is_recent":true,"is_regex":false,"is_similarity":false,"last_modified":"2023-11-14T22:13:20Z","pattern":"example.com"}}},"required":["result"],"type":"object"}]}}},"description":""},"4XX":{"$ref":"#/components/responses/email-security_ClientError"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a trusted email domain","tags":["Email Security Settings"]}},"/accounts/{account_id}/email/routing/addresses":{"get":{"description":"Lists existing destination addresses.","operationId":"email-routing-destination-addresses-list-destination-addresses","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email_identifier"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":20,"description":"Maximum number of results per page.","maximum":50,"minimum":5,"type":"number"}},{"in":"query","name":"direction","schema":{"default":"asc","description":"Sorts results in an ascending or descending order.","enum":["asc","desc"],"example":"asc","type":"string"}},{"in":"query","name":"verified","schema":{"default":true,"description":"Filter by verified destination addresses.","enum":[true,false],"example":true,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_destination_addresses_response_collection"}}},"description":"List destination addresses response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List destination addresses","tags":["Email Routing destination addresses"],"x-api-token-group":["Email Routing Addresses Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.email.routing.address.list"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Create a destination address to forward your emails to. Destination addresses need to be verified before they can be used.","operationId":"email-routing-destination-addresses-create-a-destination-address","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_create_destination_address_properties"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_destination_address_response_single"}}},"description":"Create a destination address response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a destination address","tags":["Email Routing destination addresses"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.email.routing.address.create"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/email/routing/addresses/{destination_address_identifier}":{"delete":{"description":"Deletes a specific destination address.","operationId":"email-routing-destination-addresses-delete-destination-address","parameters":[{"in":"path","name":"destination_address_identifier","required":true,"schema":{"$ref":"#/components/schemas/email_destination_address_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_destination_address_response_single"}}},"description":"Delete destination address response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete destination address","tags":["Email Routing destination addresses"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.email.routing.address.delete"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Gets information for a specific destination email already created.","operationId":"email-routing-destination-addresses-get-a-destination-address","parameters":[{"in":"path","name":"destination_address_identifier","required":true,"schema":{"$ref":"#/components/schemas/email_destination_address_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/email_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_destination_address_response_single"}}},"description":"Get a destination address response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a destination address","tags":["Email Routing destination addresses"],"x-api-token-group":["Email Routing Addresses Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.email.routing.address.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/event_notifications/r2/{bucket_name}/configuration":{"get":{"description":"List all event notification rules for a bucket.","operationId":"r2-get-event-notification-configs","parameters":[{"in":"path","name":"bucket_name","required":true,"schema":{"$ref":"#/components/schemas/r2_bucket_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/r2_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/r2_v4_response"},{"properties":{"result":{"$ref":"#/components/schemas/r2_bucket-config"}},"type":"object"}]}}},"description":"Read Configuration response"},"404":{"content":{"application/json":{"example":{"errors":[{"code":11015,"message":"workers.api.error.no_configs_found_for_bucket"}],"messages":[],"result":null,"success":false},"schema":{"$ref":"#/components/schemas/r2_v4_response_failure"}}},"description":"No Configuration Found response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_v4_response_failure"}}},"description":"Read Configuration failure"}},"security":[{"api_token":[]}],"summary":"List Event Notification Rules","tags":["R2 Bucket"],"x-api-token-group":["Workers R2 Storage Read"]}},"/accounts/{account_id}/event_notifications/r2/{bucket_name}/configuration/queues/{queue_id}":{"delete":{"description":"Delete an event notification rule. **If no body is provided, all rules for specified queue will be deleted**.","operationId":"r2-event-notification-delete-config","parameters":[{"in":"path","name":"queue_id","required":true,"schema":{"$ref":"#/components/schemas/r2_queue_identifier"}},{"in":"path","name":"bucket_name","required":true,"schema":{"$ref":"#/components/schemas/r2_bucket_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/r2_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"ruleIds":{"description":"Array of rule ids to delete","items":{"description":"rule ids to be deleted","type":"string"},"type":"array"}},"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/r2_v4_response"},{"type":"object"}]}}},"description":"Delete Configuration response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_v4_response_failure"}}},"description":"Delete Configuration failure"}},"security":[{"api_token":[]}],"summary":"Delete Event Notification Rules","tags":["R2 Bucket"]},"put":{"description":"Create event notification rule.","operationId":"r2-put-event-notification-config","parameters":[{"in":"path","name":"queue_id","required":true,"schema":{"$ref":"#/components/schemas/r2_queue_identifier"}},{"in":"path","name":"bucket_name","required":true,"schema":{"$ref":"#/components/schemas/r2_bucket_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/r2_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"rules":{"description":"Array of rules to drive notifications","items":{"$ref":"#/components/schemas/r2_rule"},"type":"array"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/r2_v4_response"},{"type":"object"}]}}},"description":"Create Configuration response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_v4_response_failure"}}},"description":"Create Configuration failure"}},"security":[{"api_token":[]}],"summary":"Create Event Notification Rule","tags":["R2 Bucket"]}},"/accounts/{account_id}/gateway":{"get":{"description":"Gets information about the current Zero Trust account.","operationId":"zero-trust-accounts-get-zero-trust-account-information","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_gateway_account"}}},"description":"Get Zero Trust account information response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_gateway_account"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Get Zero Trust account information response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Zero Trust account information","tags":["Zero Trust accounts"],"x-api-token-group":["Teams Read","Teams Write"]},"post":{"description":"Creates a Zero Trust account with an existing Cloudflare account.","operationId":"zero-trust-accounts-create-zero-trust-account","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_gateway_account"}}},"description":"Create Zero Trust account response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_gateway_account"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Create Zero Trust account response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create Zero Trust account","tags":["Zero Trust accounts"],"x-api-token-group":["Teams Write"]}},"/accounts/{account_id}/gateway/app_types":{"get":{"description":"Fetches all application and application type mappings.","operationId":"zero-trust-gateway-application-and-application-type-mappings-list-application-and-application-type-mappings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_app-types_components-schemas-response_collection"}}},"description":"List application and application type mappings response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_app-types_components-schemas-response_collection"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"List application and application type mappings response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List application and application type mappings","tags":["Zero Trust Gateway application and application type mappings"]}},"/accounts/{account_id}/gateway/audit_ssh_settings":{"get":{"description":"Get all Zero Trust Audit SSH settings for an account.","operationId":"zero-trust-get-audit-ssh-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_audit_ssh_settings_components-schemas-single_response"}}},"description":"Get Zero Trust Audit SSH settings response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_audit_ssh_settings_components-schemas-single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Get Zero Trust Audit SSH Settings response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Zero Trust Audit SSH settings","tags":["Zero Trust Audit SSH Settings"]},"put":{"description":"Updates Zero Trust Audit SSH settings.","operationId":"zero-trust-update-audit-ssh-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"public_key":{"$ref":"#/components/schemas/zero-trust-gateway_public_key"},"seed_id":{"$ref":"#/components/schemas/zero-trust-gateway_audit_ssh_settings_components-schemas-uuid"}},"required":["public_key"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_audit_ssh_settings_components-schemas-single_response"}}},"description":"Update Zero Trust Audit SSH Setting response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_audit_ssh_settings_components-schemas-single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Update Zero Trust Audit SSH Setting response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Zero Trust Audit SSH settings","tags":["Zero Trust Audit SSH Settings"]}},"/accounts/{account_id}/gateway/categories":{"get":{"description":"Fetches a list of all categories.","operationId":"zero-trust-gateway-categories-list-categories","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_categories_components-schemas-response_collection"}}},"description":"List categories response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_categories_components-schemas-response_collection"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"List categories response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List categories","tags":["Zero Trust Gateway categories"]}},"/accounts/{account_id}/gateway/certificates":{"get":{"description":"Fetches all Zero Trust certificates for an account.","operationId":"zero-trust-certificates-list-zero-trust-certificates","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_response_collection"}}},"description":"List Zero Trust certificates response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_response_collection"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"List Zero Trust certificates response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Zero Trust certificates","tags":["Zero Trust certificates"]},"post":{"description":"Creates a new Zero Trust certificate.","operationId":"zero-trust-certificates-create-zero-trust-certificate","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_generate-cert-request"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_single_response"}}},"description":"Create Zero Trust certificate response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Create Zero Trust certificate response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create Zero Trust certificate","tags":["Zero Trust certificates"]}},"/accounts/{account_id}/gateway/certificates/{certificate_id}":{"delete":{"description":"Deletes a gateway-managed Zero Trust certificate. A certificate must be deactivated from the edge (inactive) before it is deleted.","operationId":"zero-trust-certificates-delete-zero-trust-certificate","parameters":[{"in":"path","name":"certificate_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_single_response"}}},"description":"Delete Zero Trust certificate response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Delete Zero Trust certificate response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Zero Trust certificate","tags":["Zero Trust certificates"]},"get":{"description":"Fetches a single Zero Trust certificate.","operationId":"zero-trust-certificates-zero-trust-certificate-details","parameters":[{"in":"path","name":"certificate_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_single_response"}}},"description":"Get Zero Trust certificate details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Get Zero Trust certificate details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Zero Trust certificate details","tags":["Zero Trust certificates"]}},"/accounts/{account_id}/gateway/certificates/{certificate_id}/activate":{"post":{"description":"Binds a single Zero Trust certificate to the edge.","operationId":"zero-trust-certificates-activate-zero-trust-certificate","parameters":[{"in":"path","name":"certificate_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_single_response"}}},"description":"Activate Zero Trust certificate details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Activate Zero Trust certificate details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Activate a Zero Trust certificate","tags":["Zero Trust certificates"]}},"/accounts/{account_id}/gateway/certificates/{certificate_id}/deactivate":{"post":{"description":"Unbinds a single Zero Trust certificate from the edge","operationId":"zero-trust-certificates-deactivate-zero-trust-certificate","parameters":[{"in":"path","name":"certificate_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_single_response"}}},"description":"Deactivate Zero Trust certificate details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Deactivate Zero Trust certificate details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Deactivate a Zero Trust certificate","tags":["Zero Trust certificates"]}},"/accounts/{account_id}/gateway/configuration":{"get":{"description":"Fetches the current Zero Trust account configuration.","operationId":"zero-trust-accounts-get-zero-trust-account-configuration","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_gateway_account_config"}}},"description":"Get Zero Trust account configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_gateway_account_config"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Get Zero Trust account configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Zero Trust account configuration","tags":["Zero Trust accounts"]},"patch":{"description":"Patches the current Zero Trust account configuration. This endpoint can update a single subcollection of settings such as `antivirus`, `tls_decrypt`, `activity_log`, `block_page`, `browser_isolation`, `fips`, `body_scanning`, or `certificate`, without updating the entire configuration object. Returns an error if any collection of settings is not properly configured.","operationId":"zero-trust-accounts-patch-zero-trust-account-configuration","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_gateway-account-settings"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_gateway_account_config"}}},"description":"Update Zero Trust account configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_gateway_account_config"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Update Zero Trust account configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Patch Zero Trust account configuration","tags":["Zero Trust accounts"]},"put":{"description":"Updates the current Zero Trust account configuration.","operationId":"zero-trust-accounts-update-zero-trust-account-configuration","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_gateway-account-settings"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_gateway_account_config"}}},"description":"Update Zero Trust account configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_gateway_account_config"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Update Zero Trust account configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Zero Trust account configuration","tags":["Zero Trust accounts"]}},"/accounts/{account_id}/gateway/configuration/custom_certificate":{"get":{"description":"Fetches the current Zero Trust certificate configuration.","operationId":"zero-trust-accounts-get-zero-trust-certificate-configuration","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_custom-certificate-settings"}}},"description":"Get Zero Trust account configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_custom-certificate-settings"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Get Zero Trust account configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Zero Trust certificate configuration","tags":["Zero Trust accounts"]}},"/accounts/{account_id}/gateway/lists":{"get":{"description":"Fetches all Zero Trust lists for an account.","operationId":"zero-trust-lists-list-zero-trust-lists","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}},{"in":"query","name":"type","schema":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-type"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-response_collection"}}},"description":"List Zero Trust lists response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_schemas-response_collection"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"List Zero Trust lists response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Zero Trust lists","tags":["Zero Trust lists"]},"post":{"description":"Creates a new Zero Trust list.","operationId":"zero-trust-lists-create-zero-trust-list","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"$ref":"#/components/schemas/zero-trust-gateway_description"},"items":{"$ref":"#/components/schemas/zero-trust-gateway_items"},"name":{"$ref":"#/components/schemas/zero-trust-gateway_name"},"type":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-type"}},"required":["name","type"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_single_response_with_list_items"}}},"description":"Create Zero Trust list response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_single_response_with_list_items"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Create Zero Trust list response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create Zero Trust list","tags":["Zero Trust lists"]}},"/accounts/{account_id}/gateway/lists/{list_id}":{"delete":{"description":"Deletes a Zero Trust list.","operationId":"zero-trust-lists-delete-zero-trust-list","parameters":[{"in":"path","name":"list_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_empty_response"}}},"description":"Delete Zero Trust list response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_empty_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Delete Zero Trust list response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Zero Trust list","tags":["Zero Trust lists"]},"get":{"description":"Fetches a single Zero Trust list.","operationId":"zero-trust-lists-zero-trust-list-details","parameters":[{"in":"path","name":"list_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-single_response"}}},"description":"Get Zero Trust list details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_schemas-single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Get Zero Trust list details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Zero Trust list details","tags":["Zero Trust lists"]},"patch":{"description":"Appends or removes an item from a configured Zero Trust list.","operationId":"zero-trust-lists-patch-zero-trust-list","parameters":[{"in":"path","name":"list_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"append":{"$ref":"#/components/schemas/zero-trust-gateway_items"},"remove":{"description":"A list of the item values you want to remove.","items":{"$ref":"#/components/schemas/zero-trust-gateway_value"},"type":"array"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-single_response"}}},"description":"Patch Zero Trust list response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_schemas-single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Patch Zero Trust list response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Patch Zero Trust list","tags":["Zero Trust lists"]},"put":{"description":"Updates a configured Zero Trust list.","operationId":"zero-trust-lists-update-zero-trust-list","parameters":[{"in":"path","name":"list_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"$ref":"#/components/schemas/zero-trust-gateway_description"},"name":{"$ref":"#/components/schemas/zero-trust-gateway_name"}},"required":["name"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-single_response"}}},"description":"Update Zero Trust list response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_schemas-single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Update Zero Trust list response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Zero Trust list","tags":["Zero Trust lists"]}},"/accounts/{account_id}/gateway/lists/{list_id}/items":{"get":{"description":"Fetches all items in a single Zero Trust list.","operationId":"zero-trust-lists-zero-trust-list-items","parameters":[{"in":"path","name":"list_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_list_item_response_collection"}}},"description":"Get Zero Trust list items response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_list_item_response_collection"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Get Zero Trust list items response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Zero Trust list items","tags":["Zero Trust lists"]}},"/accounts/{account_id}/gateway/locations":{"get":{"description":"Fetches Zero Trust Gateway locations for an account.","operationId":"zero-trust-gateway-locations-list-zero-trust-gateway-locations","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-response_collection"}}},"description":"List Zero Trust Gateway locations response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-response_collection"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"List Zero Trust Gateway locations response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Zero Trust Gateway locations","tags":["Zero Trust Gateway locations"]},"post":{"description":"Creates a new Zero Trust Gateway location.","operationId":"zero-trust-gateway-locations-create-zero-trust-gateway-location","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"client_default":{"$ref":"#/components/schemas/zero-trust-gateway_client-default"},"dns_destination_ips_id":{"$ref":"#/components/schemas/zero-trust-gateway_dns-destination-ips-id-write"},"ecs_support":{"$ref":"#/components/schemas/zero-trust-gateway_ecs-support"},"endpoints":{"$ref":"#/components/schemas/zero-trust-gateway_endpoints"},"name":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-name"},"networks":{"$ref":"#/components/schemas/zero-trust-gateway_ipv4_networks"}},"required":["name"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-single_response"}}},"description":"Create a Zero Trust Gateway location response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Create a Zero Trust Gateway location response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a Zero Trust Gateway location","tags":["Zero Trust Gateway locations"]}},"/accounts/{account_id}/gateway/locations/{location_id}":{"delete":{"description":"Deletes a configured Zero Trust Gateway location.","operationId":"zero-trust-gateway-locations-delete-zero-trust-gateway-location","parameters":[{"in":"path","name":"location_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_empty_response"}}},"description":"Delete a Zero Trust Gateway location response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_empty_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Delete a Zero Trust Gateway location response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a Zero Trust Gateway location","tags":["Zero Trust Gateway locations"]},"get":{"description":"Fetches a single Zero Trust Gateway location.","operationId":"zero-trust-gateway-locations-zero-trust-gateway-location-details","parameters":[{"in":"path","name":"location_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-single_response"}}},"description":"Get Zero Trust Gateway location details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Get Zero Trust Gateway location details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Zero Trust Gateway location details","tags":["Zero Trust Gateway locations"]},"put":{"description":"Updates a configured Zero Trust Gateway location.","operationId":"zero-trust-gateway-locations-update-zero-trust-gateway-location","parameters":[{"in":"path","name":"location_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"client_default":{"$ref":"#/components/schemas/zero-trust-gateway_client-default"},"dns_destination_ips_id":{"$ref":"#/components/schemas/zero-trust-gateway_dns-destination-ips-id-write"},"ecs_support":{"$ref":"#/components/schemas/zero-trust-gateway_ecs-support"},"endpoints":{"$ref":"#/components/schemas/zero-trust-gateway_endpoints"},"name":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-name"},"networks":{"$ref":"#/components/schemas/zero-trust-gateway_ipv4_networks"}},"required":["name"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-single_response"}}},"description":"Update a Zero Trust Gateway location response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Update a Zero Trust Gateway location response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a Zero Trust Gateway location","tags":["Zero Trust Gateway locations"]}},"/accounts/{account_id}/gateway/logging":{"get":{"description":"Fetches the current logging settings for Zero Trust account.","operationId":"zero-trust-accounts-get-logging-settings-for-the-zero-trust-account","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_gateway-account-logging-settings-response"}}},"description":"Get logging settings for the Zero Trust account response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_gateway-account-logging-settings-response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Get logging settings for the Zero Trust account response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get logging settings for the Zero Trust account","tags":["Zero Trust accounts"]},"put":{"description":"Updates logging settings for the current Zero Trust account.","operationId":"zero-trust-accounts-update-logging-settings-for-the-zero-trust-account","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_gateway-account-logging-settings"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_gateway-account-logging-settings-response"}}},"description":"Update logging settings for the Zero Trust account response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_gateway-account-logging-settings-response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Update logging settings for the Zero Trust account response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Zero Trust account logging settings","tags":["Zero Trust accounts"]}},"/accounts/{account_id}/gateway/proxy_endpoints":{"get":{"description":"Fetches all Zero Trust Gateway proxy endpoints for an account.","operationId":"zero-trust-gateway-proxy-endpoints-list-proxy-endpoints","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_proxy-endpoints_components-schemas-single_response"}}},"description":"List proxy endpoints response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_proxy-endpoints_components-schemas-single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"List proxy endpoints response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List proxy endpoints","tags":["Zero Trust Gateway proxy endpoints"]},"post":{"description":"Creates a new Zero Trust Gateway proxy endpoint.","operationId":"zero-trust-gateway-proxy-endpoints-create-proxy-endpoint","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"ips":{"$ref":"#/components/schemas/zero-trust-gateway_ips"},"name":{"$ref":"#/components/schemas/zero-trust-gateway_proxy-endpoints_components-schemas-name"}},"required":["name","ips"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_proxy-endpoints_components-schemas-single_response"}}},"description":"Create a proxy endpoint response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_proxy-endpoints_components-schemas-single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Create a proxy endpoint response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a proxy endpoint","tags":["Zero Trust Gateway proxy endpoints"]}},"/accounts/{account_id}/gateway/proxy_endpoints/{proxy_endpoint_id}":{"delete":{"description":"Deletes a configured Zero Trust Gateway proxy endpoint.","operationId":"zero-trust-gateway-proxy-endpoints-delete-proxy-endpoint","parameters":[{"in":"path","name":"proxy_endpoint_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_empty_response"}}},"description":"Delete a proxy endpoint response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_empty_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Delete a proxy endpoint response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a proxy endpoint","tags":["Zero Trust Gateway proxy endpoints"]},"get":{"description":"Fetches a single Zero Trust Gateway proxy endpoint.","operationId":"zero-trust-gateway-proxy-endpoints-proxy-endpoint-details","parameters":[{"in":"path","name":"proxy_endpoint_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_proxy-endpoints_components-schemas-response_collection"}}},"description":"Get a proxy endpoint response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_proxy-endpoints_components-schemas-response_collection"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Get a proxy endpoint response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a proxy endpoint","tags":["Zero Trust Gateway proxy endpoints"]},"patch":{"description":"Updates a configured Zero Trust Gateway proxy endpoint.","operationId":"zero-trust-gateway-proxy-endpoints-update-proxy-endpoint","parameters":[{"in":"path","name":"proxy_endpoint_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"ips":{"$ref":"#/components/schemas/zero-trust-gateway_ips"},"name":{"$ref":"#/components/schemas/zero-trust-gateway_proxy-endpoints_components-schemas-name"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_proxy-endpoints_components-schemas-single_response"}}},"description":"Update a proxy endpoint response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_proxy-endpoints_components-schemas-single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Update a proxy endpoint response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a proxy endpoint","tags":["Zero Trust Gateway proxy endpoints"]}},"/accounts/{account_id}/gateway/rules":{"get":{"description":"Fetches the Zero Trust Gateway rules for an account.","operationId":"zero-trust-gateway-rules-list-zero-trust-gateway-rules","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_rules_components-schemas-response_collection"}}},"description":"List Zero Trust Gateway rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_rules_components-schemas-response_collection"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"List Zero Trust Gateway rules response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Zero Trust Gateway rules","tags":["Zero Trust Gateway rules"]},"post":{"description":"Creates a new Zero Trust Gateway rule.","operationId":"zero-trust-gateway-rules-create-zero-trust-gateway-rule","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"action":{"$ref":"#/components/schemas/zero-trust-gateway_action"},"description":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-description"},"device_posture":{"$ref":"#/components/schemas/zero-trust-gateway_device_posture"},"enabled":{"$ref":"#/components/schemas/zero-trust-gateway_enabled"},"expiration":{"$ref":"#/components/schemas/zero-trust-gateway_expiration"},"filters":{"$ref":"#/components/schemas/zero-trust-gateway_filters"},"identity":{"$ref":"#/components/schemas/zero-trust-gateway_identity"},"name":{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-name"},"precedence":{"$ref":"#/components/schemas/zero-trust-gateway_precedence"},"rule_settings":{"$ref":"#/components/schemas/zero-trust-gateway_rule-settings"},"schedule":{"$ref":"#/components/schemas/zero-trust-gateway_schedule"},"traffic":{"$ref":"#/components/schemas/zero-trust-gateway_traffic"}},"required":["name","action"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_rules_components-schemas-single_response"}}},"description":"Create a Zero Trust Gateway rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_rules_components-schemas-single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Create a Zero Trust Gateway rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a Zero Trust Gateway rule","tags":["Zero Trust Gateway rules"]}},"/accounts/{account_id}/gateway/rules/{rule_id}":{"delete":{"description":"Deletes a Zero Trust Gateway rule.","operationId":"zero-trust-gateway-rules-delete-zero-trust-gateway-rule","parameters":[{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_rules_components-schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_empty_response"}}},"description":"Delete a Zero Trust Gateway rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_empty_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Delete a Zero Trust Gateway rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a Zero Trust Gateway rule","tags":["Zero Trust Gateway rules"]},"get":{"description":"Fetches a single Zero Trust Gateway rule.","operationId":"zero-trust-gateway-rules-zero-trust-gateway-rule-details","parameters":[{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_rules_components-schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_rules_components-schemas-single_response"}}},"description":"Get Zero Trust Gateway rule details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_rules_components-schemas-single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Get Zero Trust Gateway rule details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Zero Trust Gateway rule details","tags":["Zero Trust Gateway rules"]},"put":{"description":"Updates a configured Zero Trust Gateway rule.","operationId":"zero-trust-gateway-rules-update-zero-trust-gateway-rule","parameters":[{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_rules_components-schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"action":{"$ref":"#/components/schemas/zero-trust-gateway_action"},"description":{"$ref":"#/components/schemas/zero-trust-gateway_schemas-description"},"device_posture":{"$ref":"#/components/schemas/zero-trust-gateway_device_posture"},"enabled":{"$ref":"#/components/schemas/zero-trust-gateway_enabled"},"expiration":{"$ref":"#/components/schemas/zero-trust-gateway_expiration"},"filters":{"$ref":"#/components/schemas/zero-trust-gateway_filters"},"identity":{"$ref":"#/components/schemas/zero-trust-gateway_identity"},"name":{"$ref":"#/components/schemas/zero-trust-gateway_components-schemas-name"},"precedence":{"$ref":"#/components/schemas/zero-trust-gateway_precedence"},"rule_settings":{"$ref":"#/components/schemas/zero-trust-gateway_rule-settings"},"schedule":{"$ref":"#/components/schemas/zero-trust-gateway_schedule"},"traffic":{"$ref":"#/components/schemas/zero-trust-gateway_traffic"}},"required":["name","action"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_rules_components-schemas-single_response"}}},"description":"Update a Zero Trust Gateway rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_rules_components-schemas-single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Update a Zero Trust Gateway rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a Zero Trust Gateway rule","tags":["Zero Trust Gateway rules"]}},"/accounts/{account_id}/gateway/rules/{rule_id}/reset_expiration":{"post":{"description":"Resets the expiration of a Zero Trust Gateway Rule if its duration has elapsed and it has a default duration.\n\nThe Zero Trust Gateway Rule must have values for both `expiration.expires_at` and `expiration.duration`.\n","operationId":"zero-trust-gateway-rules-reset-expiration-zero-trust-gateway-rule","parameters":[{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_rules_components-schemas-uuid"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/zero-trust-gateway_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zero-trust-gateway_rules_components-schemas-single_response"}}},"description":"Reset the expiration of a Zero Trust Gateway rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zero-trust-gateway_rules_components-schemas-single_response"},{"$ref":"#/components/schemas/zero-trust-gateway_api-response-common-failure"}]}}},"description":"Reset the expiration of a Zero Trust Gateway rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Reset the expiration of a Zero Trust Gateway Rule","tags":["Zero Trust Gateway rules"]}},"/accounts/{account_id}/hyperdrive/configs":{"get":{"description":"Returns a list of Hyperdrives","operationId":"list-hyperdrive","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/hyperdrive_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/hyperdrive_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/hyperdrive_hyperdrive-with-identifier"},"type":"array"}}}]}}},"description":"List Hyperdrives Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/hyperdrive_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/hyperdrive_api-response-common-failure"}]}}},"description":"List Hyperdrives Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Hyperdrives","tags":["Hyperdrive"],"x-api-token-group":["Hyperdrive Write","Hyperdrive Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.hyperdrive.database.list"]}},"post":{"description":"Creates and returns a new Hyperdrive configuration.","operationId":"create-hyperdrive","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/hyperdrive_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/hyperdrive_create-update-hyperdrive-config"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/hyperdrive_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/hyperdrive_hyperdrive-with-identifier"}}}]}}},"description":"Create Hyperdrive Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/hyperdrive_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/hyperdrive_api-response-common-failure"}]}}},"description":"Create Hyperdrive Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create Hyperdrive","tags":["Hyperdrive"],"x-api-token-group":["Hyperdrive Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.hyperdrive.database.create"]}}},"/accounts/{account_id}/hyperdrive/configs/{hyperdrive_id}":{"delete":{"description":"Deletes the specified Hyperdrive.","operationId":"delete-hyperdrive","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/hyperdrive_identifier"}},{"in":"path","name":"hyperdrive_id","required":true,"schema":{"$ref":"#/components/schemas/hyperdrive_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/hyperdrive_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}}}]}}},"description":"Delete Hyperdrive Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/hyperdrive_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/hyperdrive_api-response-common-failure"}]}}},"description":"Delete Hyperdrive Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Hyperdrive","tags":["Hyperdrive"],"x-api-token-group":["Hyperdrive Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.hyperdrive.database.delete"]}},"get":{"description":"Returns the specified Hyperdrive configuration.","operationId":"get-hyperdrive","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/hyperdrive_identifier"}},{"in":"path","name":"hyperdrive_id","required":true,"schema":{"$ref":"#/components/schemas/hyperdrive_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/hyperdrive_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/hyperdrive_hyperdrive-with-identifier"}}}]}}},"description":"Get Hyperdrive Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/hyperdrive_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/hyperdrive_api-response-common-failure"}]}}},"description":"Get Hyperdrive Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Hyperdrive","tags":["Hyperdrive"],"x-api-token-group":["Hyperdrive Write","Hyperdrive Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.hyperdrive.database.read"]}},"patch":{"description":"Patches and returns the specified Hyperdrive configuration. Updates to the origin and caching settings are applied with an all-or-nothing approach.","operationId":"patch-hyperdrive","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/hyperdrive_identifier"}},{"in":"path","name":"hyperdrive_id","required":true,"schema":{"$ref":"#/components/schemas/hyperdrive_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/hyperdrive_patch-hyperdrive-config"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/hyperdrive_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/hyperdrive_hyperdrive-with-identifier"}}}]}}},"description":"Patch Hyperdrive Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/hyperdrive_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/hyperdrive_api-response-common-failure"}]}}},"description":"Patch Hyperdrive Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Patch Hyperdrive","tags":["Hyperdrive"],"x-api-token-group":["Hyperdrive Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.hyperdrive.database.update"]}},"put":{"description":"Updates and returns the specified Hyperdrive configuration.","operationId":"update-hyperdrive","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/hyperdrive_identifier"}},{"in":"path","name":"hyperdrive_id","required":true,"schema":{"$ref":"#/components/schemas/hyperdrive_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/hyperdrive_create-update-hyperdrive-config"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/hyperdrive_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/hyperdrive_hyperdrive-with-identifier"}}}]}}},"description":"Update Hyperdrive Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/hyperdrive_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/hyperdrive_api-response-common-failure"}]}}},"description":"Update Hyperdrive Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update Hyperdrive","tags":["Hyperdrive"],"x-api-token-group":["Hyperdrive Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.hyperdrive.database.update"]}}},"/accounts/{account_id}/iam/permission_groups":{"get":{"description":"List all the permissions groups for an account.","operationId":"account-permission-group-list","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/iam_account_identifier"}},{"in":"query","name":"id","schema":{"description":"ID of the permission group to be fetched.","example":"6d7f2f5f5b1d4a0e9081fdc98d432fd1","maxLength":32,"minLength":32,"type":"string"}},{"in":"query","name":"name","schema":{"description":"Name of the permission group to be fetched.","example":"NameOfThePermissionGroup","type":"string"}},{"in":"query","name":"label","schema":{"description":"Label of the permission group to be fetched.","example":"labelOfThePermissionGroup","type":"string"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":20,"description":"Maximum number of results per page.","maximum":50,"minimum":5,"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_collection_permission_groups_response"}}},"description":"List Permission Groups response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"List Permission Groups response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Account Permission Groups","tags":["Account Permission Groups"],"x-api-token-group":["Cloudflare Zero Trust PII Read","DDoS Botnet Feed Write","DDoS Botnet Feed Read","Workers R2 Storage Write","Workers R2 Storage Read","DDoS Protection Write","DDoS Protection Read","Workers Tail Read","Workers KV Storage Write","Workers KV Storage Read","Workers Scripts Write","Workers Scripts Read","Load Balancing: Monitors and Pools Write","Load Balancing: Monitors and Pools Read","Account Firewall Access Rules Write","Account Firewall Access Rules Read","DNS Firewall Write","DNS Firewall Read","Billing Write","Billing Read","Account Settings Write","Account Settings Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.iam.permission-group.list"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/iam/permission_groups/{permission_group_id}":{"get":{"description":"Get information about a specific permission group in an account.","operationId":"account-permission-group-details","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/iam_account_identifier"}},{"in":"path","name":"permission_group_id","required":true,"schema":{"$ref":"#/components/schemas/iam_permission_group_components-schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_permission_group"}}},"description":"Permission Group Details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Permission Group Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Permission Group Details","tags":["Account Permission Groups"],"x-api-token-group":["Cloudflare Zero Trust PII Read","DDoS Botnet Feed Write","DDoS Botnet Feed Read","Workers R2 Storage Write","Workers R2 Storage Read","DDoS Protection Write","DDoS Protection Read","Workers Tail Read","Workers KV Storage Write","Workers KV Storage Read","Workers Scripts Write","Workers Scripts Read","Load Balancing: Monitors and Pools Write","Load Balancing: Monitors and Pools Read","Account Firewall Access Rules Write","Account Firewall Access Rules Read","DNS Firewall Write","DNS Firewall Read","Billing Write","Billing Read","Account Settings Write","Account Settings Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.iam.permission-group.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/iam/resource_groups":{"get":{"description":"List all the resource groups for an account.","operationId":"account-resource-group-list","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/iam_account_identifier"}},{"in":"query","name":"id","schema":{"description":"ID of the resource group to be fetched.","example":"6d7f2f5f5b1d4a0e9081fdc98d432fd1","maxLength":32,"minLength":32,"type":"string"}},{"in":"query","name":"name","schema":{"description":"Name of the resource group to be fetched.","example":"NameOfTheResourceGroup","type":"string"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":20,"description":"Maximum number of results per page.","maximum":50,"minimum":5,"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_collection_resource_groups_response"}}},"description":"List Resource Groups response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"List Resource Groups response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Resource Groups","tags":["Account Resource Groups"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.iam.resource-group.list"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Create a new Resource Group under the specified account.","operationId":"account-resource-group-create","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/iam_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_create_resource_group"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_created_resource_group_response"}}},"description":"Add Resource Group response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Add Member response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create Resource Group","tags":["Account Resource Groups"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.iam.resource-group.create"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/iam/resource_groups/{resource_group_id}":{"delete":{"description":"Remove a resource group from an account.","operationId":"account-resource-group-delete","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/iam_account_identifier"}},{"in":"path","name":"resource_group_id","required":true,"schema":{"$ref":"#/components/schemas/iam_resource_group_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-single-id"}}},"description":"Remove Resource Group response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Remove Member response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Remove Resource Group","tags":["Account Resource Groups"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.iam.resource-group.delete"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Get information about a specific resource group in an account.","operationId":"account-resource-group-details","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/iam_account_identifier"}},{"in":"path","name":"resource_group_id","required":true,"schema":{"$ref":"#/components/schemas/iam_resource_group_components-schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_resource_group"}}},"description":"Resource Group Details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Resource Group Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Resource Group Details","tags":["Account Resource Groups"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.iam.resource-group.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Modify an existing resource group.","operationId":"account-resource-group-update","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/iam_account_identifier"}},{"in":"path","name":"resource_group_id","required":true,"schema":{"$ref":"#/components/schemas/iam_resource_group_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_create_resource_group"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_resource_group"}}},"description":"Update Resource Group response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Update Resource Group response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Resource Group","tags":["Account Resource Groups"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.iam.resource-group.update"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/images/v1":{"get":{"deprecated":true,"description":"List up to 100 images with one request. Use the optional parameters below to get a specific range of images.","operationId":"cloudflare-images-list-images","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/images_account_identifier"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":1000,"description":"Number of items per page.","maximum":10000,"minimum":10,"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/images_images_list_response"}}},"description":"List images response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/images_images_list_response"},{"$ref":"#/components/schemas/images_api-response-common-failure"}]}}},"description":"List images response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List images","tags":["Cloudflare Images"],"x-api-token-group":["Images Read","Images Write"]},"post":{"description":"Upload an image with up to 10 Megabytes using a single HTTP POST (multipart/form-data) request.\nAn image can be uploaded by sending an image file or passing an accessible to an API url.\n","operationId":"cloudflare-images-upload-an-image-via-url","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/images_account_identifier"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/images_image_basic_upload"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/images_image_response_single"}}},"description":"Upload an image response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/images_image_response_single"},{"$ref":"#/components/schemas/images_api-response-common-failure"}]}}},"description":"Upload an image response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Upload an image","tags":["Cloudflare Images"],"x-api-token-group":["Images Write"]}},"/accounts/{account_id}/images/v1/keys":{"get":{"description":"Lists your signing keys. These can be found on your Cloudflare Images dashboard.","operationId":"cloudflare-images-keys-list-signing-keys","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/images_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/images_image_key_response_collection"}}},"description":"List Signing Keys response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/images_image_key_response_collection"},{"$ref":"#/components/schemas/images_api-response-common-failure"}]}}},"description":"List Signing Keys response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Signing Keys","tags":["Cloudflare Images Keys"],"x-api-token-group":["Images Read","Images Write"]}},"/accounts/{account_id}/images/v1/keys/{signing_key_name}":{"delete":{"description":"Delete signing key with specified name. Returns all keys available.\nWhen last key is removed, a new default signing key will be generated.\n","operationId":"cloudflare-images-keys-delete-signing-key","parameters":[{"in":"path","name":"signing_key_name","required":true,"schema":{"$ref":"#/components/schemas/images_signing_key_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/images_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/images_image_key_response_collection"}}},"description":"Delete Signing Key response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/images_image_key_response_collection"},{"$ref":"#/components/schemas/images_api-response-common-failure"}]}}},"description":"Delete Signing Key response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Signing Key","tags":["Cloudflare Images Keys"]},"put":{"description":"Create a new signing key with specified name. Returns all keys available.","operationId":"cloudflare-images-keys-add-signing-key","parameters":[{"in":"path","name":"signing_key_name","required":true,"schema":{"$ref":"#/components/schemas/images_signing_key_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/images_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/images_image_key_response_collection"}}},"description":"Add Signing Key response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/images_image_key_response_collection"},{"$ref":"#/components/schemas/images_api-response-common-failure"}]}}},"description":"Add Signing Key response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create a new Signing Key","tags":["Cloudflare Images Keys"]}},"/accounts/{account_id}/images/v1/stats":{"get":{"description":"Fetch usage statistics details for Cloudflare Images.","operationId":"cloudflare-images-images-usage-statistics","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/images_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/images_images_stats_response"}}},"description":"Images usage statistics response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/images_images_stats_response"},{"$ref":"#/components/schemas/images_api-response-common-failure"}]}}},"description":"Images usage statistics response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Images usage statistics","tags":["Cloudflare Images"],"x-api-token-group":["Images Read","Images Write"]}},"/accounts/{account_id}/images/v1/variants":{"get":{"description":"Lists existing variants.","operationId":"cloudflare-images-variants-list-variants","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/images_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/images_image_variant_list_response"}}},"description":"List variants response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/images_image_variant_list_response"},{"$ref":"#/components/schemas/images_api-response-common-failure"}]}}},"description":"List variants response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List variants","tags":["Cloudflare Images Variants"],"x-api-token-group":["Images Read","Images Write"]},"post":{"description":"Specify variants that allow you to resize images for different use cases.","operationId":"cloudflare-images-variants-create-a-variant","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/images_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/images_image_variant_definition"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/images_image_variant_simple_response"}}},"description":"Create a variant response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/images_image_variant_simple_response"},{"$ref":"#/components/schemas/images_api-response-common-failure"}]}}},"description":"Create a variant response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create a variant","tags":["Cloudflare Images Variants"],"x-api-token-group":["Images Write"]}},"/accounts/{account_id}/images/v1/variants/{variant_id}":{"delete":{"description":"Deleting a variant purges the cache for all images associated with the variant.","operationId":"cloudflare-images-variants-delete-a-variant","parameters":[{"in":"path","name":"variant_id","required":true,"schema":{"$ref":"#/components/schemas/images_image_variant_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/images_account_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/images_deleted_response"}}},"description":"Delete a variant response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/images_deleted_response"},{"$ref":"#/components/schemas/images_api-response-common-failure"}]}}},"description":"Delete a variant response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete a variant","tags":["Cloudflare Images Variants"],"x-api-token-group":["Images Write"]},"get":{"description":"Fetch details for a single variant.","operationId":"cloudflare-images-variants-variant-details","parameters":[{"in":"path","name":"variant_id","required":true,"schema":{"$ref":"#/components/schemas/images_image_variant_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/images_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/images_image_variant_simple_response"}}},"description":"Variant details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/images_image_variant_simple_response"},{"$ref":"#/components/schemas/images_api-response-common-failure"}]}}},"description":"Variant details response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Variant details","tags":["Cloudflare Images Variants"],"x-api-token-group":["Images Read","Images Write"]},"patch":{"description":"Updating a variant purges the cache for all images associated with the variant.","operationId":"cloudflare-images-variants-update-a-variant","parameters":[{"in":"path","name":"variant_id","required":true,"schema":{"$ref":"#/components/schemas/images_image_variant_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/images_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/images_image_variant_patch_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/images_image_variant_simple_response"}}},"description":"Update a variant response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/images_image_variant_simple_response"},{"$ref":"#/components/schemas/images_api-response-common-failure"}]}}},"description":"Update a variant response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update a variant","tags":["Cloudflare Images Variants"],"x-api-token-group":["Images Write"]}},"/accounts/{account_id}/images/v1/{image_id}":{"delete":{"description":"Delete an image on Cloudflare Images. On success, all copies of the image are deleted and purged from cache.","operationId":"cloudflare-images-delete-image","parameters":[{"in":"path","name":"image_id","required":true,"schema":{"$ref":"#/components/schemas/images_image_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/images_account_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/images_deleted_response"}}},"description":"Delete image response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/images_deleted_response"},{"$ref":"#/components/schemas/images_api-response-common-failure"}]}}},"description":"Delete image response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete image","tags":["Cloudflare Images"],"x-api-token-group":["Images Write"]},"get":{"description":"Fetch details for a single image.","operationId":"cloudflare-images-image-details","parameters":[{"in":"path","name":"image_id","required":true,"schema":{"$ref":"#/components/schemas/images_image_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/images_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/images_image_response_single"}}},"description":"Image details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/images_image_response_single"},{"$ref":"#/components/schemas/images_api-response-common-failure"}]}}},"description":"Image details response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Image details","tags":["Cloudflare Images"],"x-api-token-group":["Images Read","Images Write"]},"patch":{"description":"Update image access control. On access control change, all copies of the image are purged from cache.","operationId":"cloudflare-images-update-image","parameters":[{"in":"path","name":"image_id","required":true,"schema":{"$ref":"#/components/schemas/images_image_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/images_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/images_image_patch_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/images_image_response_single"}}},"description":"Update image response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/images_image_response_single"},{"$ref":"#/components/schemas/images_api-response-common-failure"}]}}},"description":"Update image response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update image","tags":["Cloudflare Images"],"x-api-token-group":["Images Write"]}},"/accounts/{account_id}/images/v1/{image_id}/blob":{"get":{"description":"Fetch base image. For most images this will be the originally uploaded file. For larger images it can be a near-lossless version of the original.","operationId":"cloudflare-images-base-image","parameters":[{"in":"path","name":"image_id","required":true,"schema":{"$ref":"#/components/schemas/images_image_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/images_account_identifier"}}],"responses":{"200":{"content":{"image/*":{"schema":{"format":"binary","type":"string"}}},"description":"Base image response. Returns uploaded image data."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/images_image_response_blob"},{"$ref":"#/components/schemas/images_api-response-common-failure"}]}}},"description":"Base image response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Base image","tags":["Cloudflare Images"],"x-api-token-group":["Images Read","Images Write"]}},"/accounts/{account_id}/images/v2":{"get":{"description":"List up to 10000 images with one request. Use the optional parameters below to get a specific range of images.\nEndpoint returns continuation_token if more images are present.\n","operationId":"cloudflare-images-list-images-v2","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/images_account_identifier"}},{"in":"query","name":"continuation_token","schema":{"description":"Continuation token for a next page. List images V2 returns continuation_token","nullable":true,"type":"string"}},{"in":"query","name":"per_page","schema":{"default":1000,"description":"Number of items per page.","maximum":10000,"minimum":10,"type":"number"}},{"in":"query","name":"sort_order","schema":{"default":"desc","description":"Sorting order by upload time.","enum":["asc","desc"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/images_images_list_response_v2"}}},"description":"List images response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/images_images_list_response_v2"},{"$ref":"#/components/schemas/images_api-response-common-failure"}]}}},"description":"List images response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List images V2","tags":["Cloudflare Images"],"x-api-token-group":["Images Read","Images Write"]}},"/accounts/{account_id}/images/v2/direct_upload":{"post":{"description":"Direct uploads allow users to upload images without API keys. A common use case are web apps, client-side applications, or mobile devices where users upload content directly to Cloudflare Images. This method creates a draft record for a future image. It returns an upload URL and an image identifier. To verify if the image itself has been uploaded, send an image details request (accounts/:account_identifier/images/v1/:identifier), and check that the `draft: true` property is not present.","operationId":"cloudflare-images-create-authenticated-direct-upload-url-v-2","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/images_account_identifier"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/images_image_direct_upload_request_v2"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/images_image_direct_upload_response_v2"}}},"description":"Create authenticated direct upload URL V2 response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/images_image_direct_upload_response_v2"},{"$ref":"#/components/schemas/images_api-response-common-failure"}]}}},"description":"Create authenticated direct upload URL V2 response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create authenticated direct upload URL V2","tags":["Cloudflare Images"],"x-api-token-group":["Images Write"]}},"/accounts/{account_id}/infrastructure/targets":{"get":{"operationId":"infra-targets-list","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/infra_AccountTag"}},{"description":"Hostname of a target","in":"query","name":"hostname","schema":{"nullable":true,"type":"string"}},{"description":"Partial match to the hostname of a target","in":"query","name":"hostname_contains","schema":{"nullable":true,"type":"string"}},{"description":"Private virtual network identifier of the target","in":"query","name":"virtual_network_id","schema":{"format":"uuid","nullable":true,"type":"string"}},{"description":"IPv4 address of the target","in":"query","name":"ip_v4","schema":{"nullable":true,"type":"string"}},{"description":"IPv6 address of the target","in":"query","name":"ip_v6","schema":{"nullable":true,"type":"string"}},{"description":"Date and time at which the target was created","in":"query","name":"created_after","schema":{"format":"date-time","nullable":true,"type":"string"}},{"description":"Date and time at which the target was modified","in":"query","name":"modified_after","schema":{"format":"date-time","nullable":true,"type":"string"}},{"description":"Current page in the response","in":"query","name":"page","schema":{"default":1,"format":"int32","minimum":1,"type":"integer"}},{"description":"Max amount of entries returned per page","in":"query","name":"per_page","schema":{"default":1000,"format":"int32","maximum":1000,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/infra_api-response-collection"},{"properties":{"result":{"$ref":"#/components/schemas/infra_TargetArray"}},"type":"object"}]}}},"description":"Successfully retrieved all targets in the account"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/infra_api-response-common-failure"}}},"description":"Failed to retrieve all targets in the account"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List all targets","tags":["Infrastructure Access Targets"],"x-api-token-group":["Teams Read","Teams Write"]},"post":{"operationId":"infra-targets-post","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/infra_AccountTag"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"hostname":{"description":"A non-unique field that refers to a target. Case insensitive, maximum\nlength of 255 characters, supports the use of special characters dash\nand period, does not support spaces, and must start and end with an\nalphanumeric character.","example":"infra-access-target","type":"string"},"ip":{"$ref":"#/components/schemas/infra_IPInfo"}},"required":["hostname","ip"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/infra_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/infra_Target"}},"type":"object"}]}}},"description":"Successfully created the target"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/infra_api-response-common-failure"}}},"description":"Failed to create the target"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create new target","tags":["Infrastructure Access Targets"],"x-api-token-group":["Teams Write"]}},"/accounts/{account_id}/infrastructure/targets/{target_id}":{"delete":{"operationId":"infra-targets-delete","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/infra_AccountTag"}},{"in":"path","name":"target_id","required":true,"schema":{"$ref":"#/components/schemas/infra_TargetId"}}],"responses":{"200":{"description":"Successfully deleted the target"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/infra_api-response-common-failure"}}},"description":"Failed to delete the target"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete target","tags":["Infrastructure Access Targets"]},"get":{"operationId":"infra-targets-get","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/infra_AccountTag"}},{"in":"path","name":"target_id","required":true,"schema":{"$ref":"#/components/schemas/infra_TargetId"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/infra_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/infra_Target"}},"type":"object"}]}}},"description":"Successfully retrieved the target"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/infra_api-response-common-failure"}}},"description":"Failed to retrieve the target"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get target","tags":["Infrastructure Access Targets"]},"put":{"operationId":"infra-targets-put","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/infra_AccountTag"}},{"in":"path","name":"target_id","required":true,"schema":{"$ref":"#/components/schemas/infra_TargetId"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"hostname":{"description":"A non-unique field that refers to a target. Case insensitive, maximum\nlength of 255 characters, supports the use of special characters dash\nand period, does not support spaces, and must start and end with an\nalphanumeric character.","example":"infra-access-target","type":"string"},"ip":{"$ref":"#/components/schemas/infra_IPInfo"}},"required":["hostname","ip"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/infra_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/infra_Target"}},"type":"object"}]}}},"description":"Successfully updated the target"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/infra_api-response-common-failure"}}},"description":"Failed to update the target"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update target","tags":["Infrastructure Access Targets"]}},"/accounts/{account_id}/intel/asn/{asn}":{"get":{"operationId":"asn-intelligence-get-asn-overview","parameters":[{"in":"path","name":"asn","required":true,"schema":{"$ref":"#/components/schemas/intel_asn"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/intel_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/intel_asn_components-schemas-response"}}},"description":"Get ASN Overview response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/intel_asn_components-schemas-response"},{"$ref":"#/components/schemas/intel_api-response-common-failure"}]}}},"description":"Get ASN Overview response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get ASN Overview","tags":["ASN Intelligence"]}},"/accounts/{account_id}/intel/asn/{asn}/subnets":{"get":{"operationId":"asn-intelligence-get-asn-subnets","parameters":[{"in":"path","name":"asn","required":true,"schema":{"$ref":"#/components/schemas/intel_asn"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/intel_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"asn":{"$ref":"#/components/schemas/intel_asn"},"count":{"$ref":"#/components/schemas/intel_count"},"ip_count_total":{"type":"integer"},"page":{"$ref":"#/components/schemas/intel_page"},"per_page":{"$ref":"#/components/schemas/intel_per_page"},"subnets":{"example":["192.0.2.0/24","2001:DB8::/32"],"items":{"type":"string"},"type":"array"}},"type":"object"}}},"description":"Get ASN Subnets response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"properties":{"asn":{"$ref":"#/components/schemas/intel_asn"},"count":{"$ref":"#/components/schemas/intel_count"},"ip_count_total":{"type":"integer"},"page":{"$ref":"#/components/schemas/intel_page"},"per_page":{"$ref":"#/components/schemas/intel_per_page"},"subnets":{"example":["192.0.2.0/24","2001:DB8::/32"],"items":{"type":"string"},"type":"array"}},"type":"object"},{"$ref":"#/components/schemas/intel_api-response-common-failure"}]}}},"description":"Get ASN Subnets response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get ASN Subnets","tags":["ASN Intelligence"]}},"/accounts/{account_id}/intel/attack-surface-report/issue-types":{"get":{"operationId":"get-security-center-issue-types","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/security-center_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/security-center_api-response-common"},{"properties":{"result":{"anyOf":[{"items":{"type":"string"},"type":"array"}]}}}]}}},"description":"OK"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/security-center_api-response-common-failure"}}},"description":"Client Error"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"Get Security Center Issues Types","tags":["Security Center Insights"]}},"/accounts/{account_id}/intel/attack-surface-report/issues":{"get":{"operationId":"get-security-center-issues","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/security-center_identifier"}},{"in":"query","name":"dismissed","schema":{"$ref":"#/components/schemas/security-center_dismissed"}},{"in":"query","name":"issue_class","schema":{"$ref":"#/components/schemas/security-center_issueClasses"}},{"in":"query","name":"issue_type","schema":{"$ref":"#/components/schemas/security-center_issueTypes"}},{"in":"query","name":"product","schema":{"$ref":"#/components/schemas/security-center_products"}},{"in":"query","name":"severity","schema":{"$ref":"#/components/schemas/security-center_severityQueryParam"}},{"in":"query","name":"subject","schema":{"$ref":"#/components/schemas/security-center_subjects"}},{"in":"query","name":"issue_class~neq","schema":{"$ref":"#/components/schemas/security-center_issueClasses"}},{"in":"query","name":"issue_type~neq","schema":{"$ref":"#/components/schemas/security-center_issueTypes"}},{"in":"query","name":"product~neq","schema":{"$ref":"#/components/schemas/security-center_products"}},{"in":"query","name":"severity~neq","schema":{"$ref":"#/components/schemas/security-center_severityQueryParam"}},{"in":"query","name":"subject~neq","schema":{"$ref":"#/components/schemas/security-center_subjects"}},{"in":"query","name":"page","schema":{"allOf":[{"$ref":"#/components/schemas/security-center_page"}],"default":1}},{"in":"query","name":"per_page","schema":{"allOf":[{"$ref":"#/components/schemas/security-center_perPage"}],"default":25}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/security-center_api-response-common"},{"properties":{"result":{"anyOf":[{"properties":{"count":{"$ref":"#/components/schemas/security-center_count"},"issues":{"items":{"$ref":"#/components/schemas/security-center_issue"},"type":"array"},"page":{"$ref":"#/components/schemas/security-center_page"},"per_page":{"$ref":"#/components/schemas/security-center_perPage"}},"type":"object"}]}}}]}}},"description":"OK"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/security-center_api-response-common-failure"}}},"description":"Client Error"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"Get Security Center Issues","tags":["Security Center Insights"]}},"/accounts/{account_id}/intel/attack-surface-report/issues/class":{"get":{"operationId":"get-security-center-issue-counts-by-class","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/security-center_identifier"}},{"in":"query","name":"dismissed","schema":{"$ref":"#/components/schemas/security-center_dismissed"}},{"in":"query","name":"issue_class","schema":{"$ref":"#/components/schemas/security-center_issueClasses"}},{"in":"query","name":"issue_type","schema":{"$ref":"#/components/schemas/security-center_issueTypes"}},{"in":"query","name":"product","schema":{"$ref":"#/components/schemas/security-center_products"}},{"in":"query","name":"severity","schema":{"$ref":"#/components/schemas/security-center_severityQueryParam"}},{"in":"query","name":"subject","schema":{"$ref":"#/components/schemas/security-center_subjects"}},{"in":"query","name":"issue_class~neq","schema":{"$ref":"#/components/schemas/security-center_issueClasses"}},{"in":"query","name":"issue_type~neq","schema":{"$ref":"#/components/schemas/security-center_issueTypes"}},{"in":"query","name":"product~neq","schema":{"$ref":"#/components/schemas/security-center_products"}},{"in":"query","name":"severity~neq","schema":{"$ref":"#/components/schemas/security-center_severityQueryParam"}},{"in":"query","name":"subject~neq","schema":{"$ref":"#/components/schemas/security-center_subjects"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/security-center_valueCountsResponse"}}},"description":"OK"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/security-center_api-response-common-failure"}}},"description":"Client Error"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"Get Security Center Issue Counts by Class","tags":["Security Center Insights"]}},"/accounts/{account_id}/intel/attack-surface-report/issues/severity":{"get":{"operationId":"get-security-center-issue-counts-by-severity","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/security-center_identifier"}},{"in":"query","name":"dismissed","schema":{"$ref":"#/components/schemas/security-center_dismissed"}},{"in":"query","name":"issue_class","schema":{"$ref":"#/components/schemas/security-center_issueClasses"}},{"in":"query","name":"issue_type","schema":{"$ref":"#/components/schemas/security-center_issueTypes"}},{"in":"query","name":"product","schema":{"$ref":"#/components/schemas/security-center_products"}},{"in":"query","name":"severity","schema":{"$ref":"#/components/schemas/security-center_severityQueryParam"}},{"in":"query","name":"subject","schema":{"$ref":"#/components/schemas/security-center_subjects"}},{"in":"query","name":"issue_class~neq","schema":{"$ref":"#/components/schemas/security-center_issueClasses"}},{"in":"query","name":"issue_type~neq","schema":{"$ref":"#/components/schemas/security-center_issueTypes"}},{"in":"query","name":"product~neq","schema":{"$ref":"#/components/schemas/security-center_products"}},{"in":"query","name":"severity~neq","schema":{"$ref":"#/components/schemas/security-center_severityQueryParam"}},{"in":"query","name":"subject~neq","schema":{"$ref":"#/components/schemas/security-center_subjects"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/security-center_valueCountsResponse"}}},"description":"OK"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/security-center_api-response-common-failure"}}},"description":"Client Error"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"Get Security Center Issue Counts by Severity","tags":["Security Center Insights"]}},"/accounts/{account_id}/intel/attack-surface-report/issues/type":{"get":{"operationId":"get-security-center-issue-counts-by-type","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/security-center_identifier"}},{"in":"query","name":"dismissed","schema":{"$ref":"#/components/schemas/security-center_dismissed"}},{"in":"query","name":"issue_class","schema":{"$ref":"#/components/schemas/security-center_issueClasses"}},{"in":"query","name":"issue_type","schema":{"$ref":"#/components/schemas/security-center_issueTypes"}},{"in":"query","name":"product","schema":{"$ref":"#/components/schemas/security-center_products"}},{"in":"query","name":"severity","schema":{"$ref":"#/components/schemas/security-center_severityQueryParam"}},{"in":"query","name":"subject","schema":{"$ref":"#/components/schemas/security-center_subjects"}},{"in":"query","name":"issue_class~neq","schema":{"$ref":"#/components/schemas/security-center_issueClasses"}},{"in":"query","name":"issue_type~neq","schema":{"$ref":"#/components/schemas/security-center_issueTypes"}},{"in":"query","name":"product~neq","schema":{"$ref":"#/components/schemas/security-center_products"}},{"in":"query","name":"severity~neq","schema":{"$ref":"#/components/schemas/security-center_severityQueryParam"}},{"in":"query","name":"subject~neq","schema":{"$ref":"#/components/schemas/security-center_subjects"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/security-center_valueCountsResponse"}}},"description":"OK"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/security-center_api-response-common-failure"}}},"description":"Client Error"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"Get Security Center Issue Counts by Type","tags":["Security Center Insights"]}},"/accounts/{account_id}/intel/attack-surface-report/{issue_id}/dismiss":{"put":{"operationId":"archive-security-center-insight","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/security-center_identifier"}},{"in":"path","name":"issue_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"dismiss":{"default":true,"type":"boolean"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/security-center_api-response-single"}]}}},"description":"OK"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/security-center_api-response-common-failure"}}},"description":"Client Error"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"Archive Security Center Insight","tags":["Security Center Insights"]}},"/accounts/{account_id}/intel/dns":{"get":{"operationId":"passive-dns-by-ip-get-passive-dns-by-ip","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/intel_identifier"}},{"in":"query","name":"start_end_params","schema":{"$ref":"#/components/schemas/intel_start_end_params"}},{"in":"query","name":"ipv4","schema":{"type":"string"}},{"in":"query","name":"page","schema":{"description":"Requested page within paginated list of results.","example":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"description":"Maximum number of results requested.","example":20,"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/intel_components-schemas-single_response"}}},"description":"Get Passive DNS by IP response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/intel_components-schemas-single_response"},{"$ref":"#/components/schemas/intel_api-response-common-failure"}]}}},"description":"Get Passive DNS by IP response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Passive DNS by IP","tags":["Passive DNS by IP"]}},"/accounts/{account_id}/intel/domain":{"get":{"operationId":"domain-intelligence-get-domain-details","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/intel_identifier"}},{"in":"query","name":"domain","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/intel_single_response"}}},"description":"Get Domain Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/intel_single_response"},{"$ref":"#/components/schemas/intel_api-response-common-failure"}]}}},"description":"Get Domain Details response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Domain Details","tags":["Domain Intelligence"]}},"/accounts/{account_id}/intel/domain-history":{"get":{"operationId":"domain-history-get-domain-history","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/intel_identifier"}},{"in":"query","name":"domain","schema":{"example":"example.com"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/intel_response"}}},"description":"Get Domain History response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/intel_response"},{"$ref":"#/components/schemas/intel_api-response-common-failure"}]}}},"description":"Get Domain History response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Domain History","tags":["Domain History"]}},"/accounts/{account_id}/intel/domain/bulk":{"get":{"operationId":"domain-intelligence-get-multiple-domain-details","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/intel_identifier"}},{"in":"query","name":"domain","schema":{"description":"Accepts multiple values, i.e. `?domain=cloudflare.com\u0026domain=example.com`."}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/intel_collection_response"}}},"description":"Get Multiple Domain Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/intel_collection_response"},{"$ref":"#/components/schemas/intel_api-response-common-failure"}]}}},"description":"Get Multiple Domain Details response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Multiple Domain Details","tags":["Domain Intelligence"]}},"/accounts/{account_id}/intel/indicator-feeds":{"get":{"operationId":"custom-indicator-feeds-get-indicator-feeds","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_indicator_feed_response"}}},"description":"Get indicator feeds response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_indicator_feed_response"},{"$ref":"#/components/schemas/custom-indicator-feeds_api_response_common_failure"}]}}},"description":"Get indicator feeds response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get indicator feeds owned by this account","tags":["Custom Indicator Feeds"],"x-api-token-group":["Intel Read"]},"post":{"operationId":"custom-indicator-feeds-create-indicator-feeds","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_create_feed"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_create_feed_response"}}},"description":"Create indicator feed response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_create_feed_response"},{"$ref":"#/components/schemas/custom-indicator-feeds_api_response_common_failure"}]}}},"description":"Get indicator feeds failure response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create new indicator feed","tags":["Custom Indicator Feeds"]}},"/accounts/{account_id}/intel/indicator-feeds/permissions/add":{"put":{"operationId":"custom-indicator-feeds-add-permission","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_permissions_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_permissions_response"}}},"description":"Get indicator feed metadata"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_permissions_response"},{"$ref":"#/components/schemas/custom-indicator-feeds_api_response_common_failure"}]}}},"description":"Get indicator feeds response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Grant permission to indicator feed","tags":["Custom Indicator Feeds"]}},"/accounts/{account_id}/intel/indicator-feeds/permissions/remove":{"put":{"operationId":"custom-indicator-feeds-remove-permission","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_permissions_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_permissions_response"}}},"description":"Get indicator feed metadata"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_permissions_response"},{"$ref":"#/components/schemas/custom-indicator-feeds_api_response_common_failure"}]}}},"description":"Get indicator feeds response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Revoke permission to indicator feed","tags":["Custom Indicator Feeds"]}},"/accounts/{account_id}/intel/indicator-feeds/permissions/view":{"get":{"operationId":"custom-indicator-feeds-view-permissions","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_permission_list_item_response"}}},"description":"Get indicator feed metadata"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_permission_list_item_response"},{"$ref":"#/components/schemas/custom-indicator-feeds_api_response_common_failure"}]}}},"description":"Get indicator feeds response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List indicator feed permissions","tags":["Custom Indicator Feeds"]}},"/accounts/{account_id}/intel/indicator-feeds/{feed_id}":{"get":{"operationId":"custom-indicator-feeds-get-indicator-feed-metadata","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_identifier"}},{"in":"path","name":"feed_id","required":true,"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_feed_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_indicator_feed_metadata_response"}}},"description":"Get indicator feed metadata"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_indicator_feed_metadata_response"},{"$ref":"#/components/schemas/custom-indicator-feeds_api_response_common_failure"}]}}},"description":"Get indicator feeds response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get indicator feed metadata","tags":["Custom Indicator Feeds"]},"put":{"operationId":"custom-indicator-feeds-update-indicator-feed-metadata","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_identifier"}},{"in":"path","name":"feed_id","required":true,"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_feed_id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_update_public_field_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_update_public_field_response"}}},"description":"Get update public field response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_update_public_field_response"},{"$ref":"#/components/schemas/custom-indicator-feeds_api_response_common_failure"}]}}},"description":"Get update public field response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update indicator feed metadata","tags":["Custom Indicator Feeds"]}},"/accounts/{account_id}/intel/indicator-feeds/{feed_id}/data":{"get":{"operationId":"custom-indicator-feeds-get-indicator-feed-data","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_identifier"}},{"in":"path","name":"feed_id","required":true,"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_feed_id"}}],"responses":{"200":{"content":{"text/csv":{"schema":{"type":"string"}}},"description":"Get indicator feed metadata"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_api_response_common_failure"}]}}},"description":"Get indicator feeds response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get indicator feed data","tags":["Custom Indicator Feeds"]}},"/accounts/{account_id}/intel/indicator-feeds/{feed_id}/snapshot":{"put":{"operationId":"custom-indicator-feeds-update-indicator-feed-data","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_identifier"}},{"in":"path","name":"feed_id","required":true,"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_feed_id"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"source":{"description":"The file to upload","example":"@/Users/me/test.stix2","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_update_feed_response"}}},"description":"Get indicator feed metadata"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_api_response_common_failure"}]}}},"description":"Get indicator feeds response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update indicator feed data","tags":["Custom Indicator Feeds"]}},"/accounts/{account_id}/intel/indicator_feeds/{feed_id}/download":{"get":{"operationId":"custom-indicator-feeds-download-indicator-feed-data","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_identifier"}},{"in":"path","name":"feed_id","required":true,"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_feed_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/custom-indicator-feeds_update_feed_response"}}},"description":"Get indicator feed metadata"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/custom-indicator-feeds_api_response_common_failure"}]}}},"description":"Get indicator feeds response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Download indicator feed data","tags":["Custom Indicator Feeds"]}},"/accounts/{account_id}/intel/ip":{"get":{"operationId":"ip-intelligence-get-ip-overview","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/intel_identifier"}},{"in":"query","name":"ipv4","schema":{"type":"string"}},{"in":"query","name":"ipv6","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/intel_schemas-response"}}},"description":"Get IP Overview response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/intel_schemas-response"},{"$ref":"#/components/schemas/intel_api-response-common-failure"}]}}},"description":"Get IP Overview response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get IP Overview","tags":["IP Intelligence"]}},"/accounts/{account_id}/intel/ip-list":{"get":{"operationId":"ip-list-get-ip-lists","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/intel_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/intel_components-schemas-response"}}},"description":"Get IP Lists response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/intel_components-schemas-response"},{"$ref":"#/components/schemas/intel_api-response-common-failure"}]}}},"description":"Get IP Lists response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get IP Lists","tags":["IP List"]}},"/accounts/{account_id}/intel/miscategorization":{"post":{"operationId":"miscategorization-create-miscategorization","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/intel_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/intel_miscategorization"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/intel_api-response-single"}}},"description":"Create Miscategorization response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/intel_api-response-single"},{"$ref":"#/components/schemas/intel_api-response-common-failure"}]}}},"description":"Create Miscategorization response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create Miscategorization","tags":["Miscategorization"]}},"/accounts/{account_id}/intel/sinkholes":{"get":{"operationId":"sinkhole-config-get-sinkholes","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/intel-sinkholes_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/intel-sinkholes_get_sinkholes_response"}}},"description":"Successful Response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List sinkholes owned by this account","tags":["Sinkhole Config"],"x-api-token-group":["Intel Read"]}},"/accounts/{account_id}/intel/whois":{"get":{"operationId":"whois-record-get-whois-record","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/cloudforce-one_identifier"}},{"in":"query","name":"domain","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudforce-one_schemas-single_response"}}},"description":"Get WHOIS Record response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloudforce-one_schemas-single_response"},{"$ref":"#/components/schemas/cloudforce-one_api-response-common-failure"}]}}},"description":"Get WHOIS Record response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get WHOIS Record","tags":["WHOIS Record"],"x-api-token-group":["Intel Read"]}},"/accounts/{account_id}/load_balancers/monitors":{"get":{"description":"List configured monitors for an account.","operationId":"account-load-balancer-monitors-list-monitors","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_monitor-response-collection"}}},"description":"List Monitors response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-response-collection"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"List Monitors response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Monitors","tags":["Account Load Balancer Monitors"],"x-api-token-group":["Load Balancing: Monitors and Pools Write","Load Balancing: Monitors and Pools Read"]},"post":{"description":"Create a configured monitor.","operationId":"account-load-balancer-monitors-create-monitor","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-editable"},{"required":["expected_codes"]}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_monitor-response-single"}}},"description":"Create Monitor response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-response-single"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Create Monitor response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create Monitor","tags":["Account Load Balancer Monitors"],"x-api-token-group":["Load Balancing: Monitors and Pools Write"]}},"/accounts/{account_id}/load_balancers/monitors/{monitor_id}":{"delete":{"description":"Delete a configured monitor.","operationId":"account-load-balancer-monitors-delete-monitor","parameters":[{"in":"path","name":"monitor_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_id_response"}}},"description":"Delete Monitor response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_id_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Delete Monitor response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete Monitor","tags":["Account Load Balancer Monitors"],"x-api-token-group":["Load Balancing: Monitors and Pools Write"]},"get":{"description":"List a single configured monitor for an account.","operationId":"account-load-balancer-monitors-monitor-details","parameters":[{"in":"path","name":"monitor_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_monitor-response-single"}}},"description":"Monitor Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-response-single"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Monitor Details response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Monitor Details","tags":["Account Load Balancer Monitors"],"x-api-token-group":["Load Balancing: Monitors and Pools Write","Load Balancing: Monitors and Pools Read"]},"patch":{"description":"Apply changes to an existing monitor, overwriting the supplied properties.","operationId":"account-load-balancer-monitors-patch-monitor","parameters":[{"in":"path","name":"monitor_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-editable"},{"required":["expected_codes"]}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_monitor-response-single"}}},"description":"Patch Monitor response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-response-single"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Patch Monitor response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Patch Monitor","tags":["Account Load Balancer Monitors"],"x-api-token-group":["Load Balancing: Monitors and Pools Write"]},"put":{"description":"Modify a configured monitor.","operationId":"account-load-balancer-monitors-update-monitor","parameters":[{"in":"path","name":"monitor_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-editable"},{"required":["expected_codes"]}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_monitor-response-single"}}},"description":"Update Monitor response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-response-single"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Update Monitor response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update Monitor","tags":["Account Load Balancer Monitors"],"x-api-token-group":["Load Balancing: Monitors and Pools Write"]}},"/accounts/{account_id}/load_balancers/monitors/{monitor_id}/preview":{"post":{"description":"Preview pools using the specified monitor with provided monitor details. The returned preview_id can be used in the preview endpoint to retrieve the results.","operationId":"account-load-balancer-monitors-preview-monitor","parameters":[{"in":"path","name":"monitor_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-editable"},{"required":["expected_codes"]}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_preview_response"}}},"description":"Preview Monitor response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_preview_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Preview Monitor response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Preview Monitor","tags":["Account Load Balancer Monitors"]}},"/accounts/{account_id}/load_balancers/monitors/{monitor_id}/references":{"get":{"description":"Get the list of resources that reference the provided monitor.","operationId":"account-load-balancer-monitors-list-monitor-references","parameters":[{"in":"path","name":"monitor_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_monitor-references-response"}}},"description":"List Monitor References response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-references-response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"List Monitor References response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Monitor References","tags":["Account Load Balancer Monitors"]}},"/accounts/{account_id}/load_balancers/pools":{"get":{"description":"List configured pools.","operationId":"account-load-balancer-pools-list-pools","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}},{"in":"query","name":"monitor","schema":{"description":"The ID of the Monitor to use for checking the health of origins within this pool.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_schemas-response_collection"}}},"description":"List Pools response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_schemas-response_collection"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"List Pools response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Pools","tags":["Account Load Balancer Pools"],"x-api-token-group":["Load Balancing: Monitors and Pools Write","Load Balancing: Monitors and Pools Read"]},"patch":{"description":"Apply changes to a number of existing pools, overwriting the supplied properties. Pools are ordered by ascending `name`. Returns the list of affected pools. Supports the standard pagination query parameters, either `limit`/`offset` or `per_page`/`page`.","operationId":"account-load-balancer-pools-patch-pools","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"notification_email":{"$ref":"#/components/schemas/load-balancing_patch_pools_notification_email"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_schemas-response_collection"}}},"description":"Patch Pools response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_schemas-response_collection"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Patch Pools response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Patch Pools","tags":["Account Load Balancer Pools"],"x-api-token-group":["Load Balancing: Monitors and Pools Write"]},"post":{"description":"Create a new pool.","operationId":"account-load-balancer-pools-create-pool","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"$ref":"#/components/schemas/load-balancing_schemas-description"},"enabled":{"$ref":"#/components/schemas/load-balancing_enabled"},"latitude":{"$ref":"#/components/schemas/load-balancing_latitude"},"load_shedding":{"$ref":"#/components/schemas/load-balancing_load_shedding"},"longitude":{"$ref":"#/components/schemas/load-balancing_longitude"},"minimum_origins":{"$ref":"#/components/schemas/load-balancing_minimum_origins"},"monitor":{"$ref":"#/components/schemas/load-balancing_monitor_id"},"name":{"$ref":"#/components/schemas/load-balancing_name"},"notification_email":{"$ref":"#/components/schemas/load-balancing_notification_email"},"notification_filter":{"$ref":"#/components/schemas/load-balancing_notification_filter"},"origin_steering":{"$ref":"#/components/schemas/load-balancing_origin_steering"},"origins":{"$ref":"#/components/schemas/load-balancing_origins"}},"required":["origins","name"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_schemas-single_response"}}},"description":"Create Pool response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_schemas-single_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Create Pool response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create Pool","tags":["Account Load Balancer Pools"],"x-api-token-group":["Load Balancing: Monitors and Pools Write"]}},"/accounts/{account_id}/load_balancers/pools/{pool_id}":{"delete":{"description":"Delete a configured pool.","operationId":"account-load-balancer-pools-delete-pool","parameters":[{"in":"path","name":"pool_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_schemas-id_response"}}},"description":"Delete Pool response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_schemas-id_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Delete Pool response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete Pool","tags":["Account Load Balancer Pools"],"x-api-token-group":["Load Balancing: Monitors and Pools Write"]},"get":{"description":"Fetch a single configured pool.","operationId":"account-load-balancer-pools-pool-details","parameters":[{"in":"path","name":"pool_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_schemas-single_response"}}},"description":"Pool Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_schemas-single_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Pool Details response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Pool Details","tags":["Account Load Balancer Pools"],"x-api-token-group":["Load Balancing: Monitors and Pools Write","Load Balancing: Monitors and Pools Read"]},"patch":{"description":"Apply changes to an existing pool, overwriting the supplied properties.","operationId":"account-load-balancer-pools-patch-pool","parameters":[{"in":"path","name":"pool_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"check_regions":{"$ref":"#/components/schemas/load-balancing_check_regions"},"description":{"$ref":"#/components/schemas/load-balancing_schemas-description"},"disabled_at":{"$ref":"#/components/schemas/load-balancing_schemas-disabled_at"},"enabled":{"$ref":"#/components/schemas/load-balancing_enabled"},"latitude":{"$ref":"#/components/schemas/load-balancing_latitude"},"load_shedding":{"$ref":"#/components/schemas/load-balancing_load_shedding"},"longitude":{"$ref":"#/components/schemas/load-balancing_longitude"},"minimum_origins":{"$ref":"#/components/schemas/load-balancing_minimum_origins"},"monitor":{"$ref":"#/components/schemas/load-balancing_monitor_id"},"name":{"$ref":"#/components/schemas/load-balancing_name"},"notification_email":{"$ref":"#/components/schemas/load-balancing_notification_email"},"notification_filter":{"$ref":"#/components/schemas/load-balancing_notification_filter"},"origin_steering":{"$ref":"#/components/schemas/load-balancing_origin_steering"},"origins":{"$ref":"#/components/schemas/load-balancing_origins"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_schemas-single_response"}}},"description":"Patch Pool response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_schemas-single_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Patch Pool response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Patch Pool","tags":["Account Load Balancer Pools"],"x-api-token-group":["Load Balancing: Monitors and Pools Write"]},"put":{"description":"Modify a configured pool.","operationId":"account-load-balancer-pools-update-pool","parameters":[{"in":"path","name":"pool_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"check_regions":{"$ref":"#/components/schemas/load-balancing_check_regions"},"description":{"$ref":"#/components/schemas/load-balancing_schemas-description"},"disabled_at":{"$ref":"#/components/schemas/load-balancing_schemas-disabled_at"},"enabled":{"$ref":"#/components/schemas/load-balancing_enabled"},"latitude":{"$ref":"#/components/schemas/load-balancing_latitude"},"load_shedding":{"$ref":"#/components/schemas/load-balancing_load_shedding"},"longitude":{"$ref":"#/components/schemas/load-balancing_longitude"},"minimum_origins":{"$ref":"#/components/schemas/load-balancing_minimum_origins"},"monitor":{"$ref":"#/components/schemas/load-balancing_monitor_id"},"name":{"$ref":"#/components/schemas/load-balancing_name"},"notification_email":{"$ref":"#/components/schemas/load-balancing_notification_email"},"notification_filter":{"$ref":"#/components/schemas/load-balancing_notification_filter"},"origin_steering":{"$ref":"#/components/schemas/load-balancing_origin_steering"},"origins":{"$ref":"#/components/schemas/load-balancing_origins"}},"required":["origins","name"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_schemas-single_response"}}},"description":"Update Pool response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_schemas-single_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Update Pool response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update Pool","tags":["Account Load Balancer Pools"],"x-api-token-group":["Load Balancing: Monitors and Pools Write"]}},"/accounts/{account_id}/load_balancers/pools/{pool_id}/health":{"get":{"description":"Fetch the latest pool health status for a single pool.","operationId":"account-load-balancer-pools-pool-health-details","parameters":[{"in":"path","name":"pool_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_health_details"}}},"description":"Pool Health Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_health_details"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Pool Health Details response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Pool Health Details","tags":["Account Load Balancer Pools"]}},"/accounts/{account_id}/load_balancers/pools/{pool_id}/preview":{"post":{"description":"Preview pool health using provided monitor details. The returned preview_id can be used in the preview endpoint to retrieve the results.","operationId":"account-load-balancer-pools-preview-pool","parameters":[{"in":"path","name":"pool_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-editable"},{"required":["expected_codes"]}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_preview_response"}}},"description":"Preview Pool response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_preview_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Preview Pool response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Preview Pool","tags":["Account Load Balancer Pools"]}},"/accounts/{account_id}/load_balancers/pools/{pool_id}/references":{"get":{"description":"Get the list of resources that reference the provided pool.","operationId":"account-load-balancer-pools-list-pool-references","parameters":[{"in":"path","name":"pool_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_pools-references-response"}}},"description":"List Pool References response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_pools-references-response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"List Pool References response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Pool References","tags":["Account Load Balancer Pools"]}},"/accounts/{account_id}/load_balancers/preview/{preview_id}":{"get":{"description":"Get the result of a previous preview operation using the provided preview_id.","operationId":"account-load-balancer-monitors-preview-result","parameters":[{"in":"path","name":"preview_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_schemas-preview_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_preview_result_response"}}},"description":"Preview Result response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_preview_result_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Preview Result response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Preview Result","tags":["Account Load Balancer Monitors"],"x-api-token-group":["Load Balancing: Monitors and Pools Read"]}},"/accounts/{account_id}/load_balancers/regions":{"get":{"description":"List all region mappings.","operationId":"load-balancer-regions-list-regions","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}},{"in":"query","name":"subdivision_code","schema":{"$ref":"#/components/schemas/load-balancing_subdivision_code_a2"}},{"in":"query","name":"subdivision_code_a2","schema":{"$ref":"#/components/schemas/load-balancing_subdivision_code_a2"}},{"in":"query","name":"country_code_a2","schema":{"description":"Two-letter alpha-2 country code followed in ISO 3166-1.","example":"US","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_region_components-schemas-response_collection"}}},"description":"List Regions response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_region_components-schemas-response_collection"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"List Regions response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Regions","tags":["Load Balancer Regions"],"x-api-token-group":["Load Balancing: Monitors and Pools Read"]}},"/accounts/{account_id}/load_balancers/regions/{region_id}":{"get":{"description":"Get a single region mapping.","operationId":"load-balancer-regions-get-region","parameters":[{"in":"path","name":"region_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_region_code"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-single_response"}}},"description":"Get Region response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_components-schemas-single_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Get Region response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Region","tags":["Load Balancer Regions"]}},"/accounts/{account_id}/load_balancers/search":{"get":{"description":"Search for Load Balancing resources.","operationId":"account-load-balancer-search-search-resources","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-identifier"}},{"in":"query","name":"search_params","schema":{"$ref":"#/components/schemas/load-balancing_search_params"}},{"in":"query","name":"page","schema":{"minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":25,"maximum":1000,"minimum":1,"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-paginated-response-collection"},{"$ref":"#/components/schemas/load-balancing_search_result"}]}}},"description":"Search Resources response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/load-balancing_api-paginated-response-collection"},{"$ref":"#/components/schemas/load-balancing_search_result"}]},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Search Resources response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Search Resources","tags":["Account Load Balancer Search"],"x-api-token-group":["Load Balancing: Monitors and Pools Read"]}},"/accounts/{account_id}/logpush/datasets/{dataset_id}/fields":{"get":{"description":"Lists all fields available for a dataset. The response result is an object with key-value pairs, where keys are field names, and values are descriptions.","operationId":"get-accounts-account_id-logpush-datasets-dataset_id-fields","parameters":[{"example":"gateway_dns","in":"path","name":"dataset_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_dataset"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logpush_logpush_field_response_collection"}}},"description":"List fields response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"List fields response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List fields","tags":["Logpush jobs for an account"],"x-api-token-group":["Logs Write","Logs Read"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/logpush/datasets/{dataset_id}/jobs":{"get":{"description":"Lists Logpush jobs for an account for a dataset.","operationId":"get-accounts-account_id-logpush-datasets-dataset_id-jobs","parameters":[{"example":"gateway_dns","in":"path","name":"dataset_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_dataset"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"responses":{"200":{"content":{"application/json":{"example":{"errors":[],"messages":[],"result":[{"dataset":"gateway_dns","destination_conf":"s3://mybucket/logs?region=us-west-2","enabled":false,"error_message":null,"id":1,"kind":"","last_complete":null,"last_error":null,"max_upload_bytes":5000000,"max_upload_interval_seconds":30,"max_upload_records":1000,"name":"example.com","output_options":{"CVE-2021-4428":false,"batch_prefix":"","batch_suffix":"","field_delimiter":",","field_names":["Datetime","DstIP","SrcIP"],"output_type":"ndjson","record_delimiter":"","record_prefix":"{","record_suffix":"}\n","record_template":"","sample_rate":1,"timestamp_format":"unixnano"}}],"success":true},"schema":{"$ref":"#/components/schemas/logpush_logpush_job_response_collection"}}},"description":"List Logpush jobs for a dataset response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"List Logpush jobs for a dataset response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Logpush jobs for a dataset","tags":["Logpush jobs for an account"],"x-api-token-group":["Logs Write","Logs Read"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/logpush/jobs":{"get":{"description":"Lists Logpush jobs for an account.","operationId":"get-accounts-account_id-logpush-jobs","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"responses":{"200":{"content":{"application/json":{"example":{"errors":[],"messages":[],"result":[{"dataset":"gateway_dns","destination_conf":"s3://mybucket/logs?region=us-west-2","enabled":false,"error_message":null,"id":1,"kind":"","last_complete":null,"last_error":null,"max_upload_bytes":5000000,"max_upload_interval_seconds":30,"max_upload_records":1000,"name":"example.com","output_options":{"CVE-2021-4428":false,"batch_prefix":"","batch_suffix":"","field_delimiter":",","field_names":["Datetime","DstIP","SrcIP"],"output_type":"ndjson","record_delimiter":"","record_prefix":"{","record_suffix":"}\n","record_template":"","sample_rate":1,"timestamp_format":"unixnano"}}],"success":true},"schema":{"$ref":"#/components/schemas/logpush_logpush_job_response_collection"}}},"description":"List Logpush jobs response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"List Logpush jobs response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Logpush jobs","tags":["Logpush jobs for an account"],"x-api-token-group":["Logs Write","Logs Read"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Creates a new Logpush job for an account.","operationId":"post-accounts-account_id-logpush-jobs","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"requestBody":{"content":{"application/json":{"example":{"dataset":"gateway_dns","destination_conf":"s3://mybucket/logs?region=us-west-2","enabled":false,"kind":"","max_upload_bytes":5000000,"max_upload_interval_seconds":30,"max_upload_records":1000,"name":"example.com","output_options":{"CVE-2021-4428":false,"batch_prefix":"","batch_suffix":"","field_delimiter":",","field_names":["Datetime","DstIP","SrcIP"],"output_type":"ndjson","record_delimiter":"","record_prefix":"{","record_suffix":"}\n","record_template":"","sample_rate":1,"timestamp_format":"unixnano"},"ownership_challenge\"":"00000000000000000000"},"schema":{"properties":{"dataset":{"$ref":"#/components/schemas/logpush_dataset"},"destination_conf":{"$ref":"#/components/schemas/logpush_destination_conf"},"enabled":{"$ref":"#/components/schemas/logpush_enabled"},"frequency":{"$ref":"#/components/schemas/logpush_frequency"},"kind":{"$ref":"#/components/schemas/logpush_kind"},"logpull_options":{"$ref":"#/components/schemas/logpush_logpull_options"},"max_upload_bytes":{"$ref":"#/components/schemas/logpush_max_upload_bytes"},"max_upload_interval_seconds":{"$ref":"#/components/schemas/logpush_max_upload_interval_seconds"},"max_upload_records":{"$ref":"#/components/schemas/logpush_max_upload_records"},"name":{"$ref":"#/components/schemas/logpush_name"},"output_options":{"$ref":"#/components/schemas/logpush_output_options"},"ownership_challenge":{"$ref":"#/components/schemas/logpush_ownership_challenge"}},"required":["destination_conf"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"example":{"errors":[],"messages":[],"result":{"dataset":"gateway_dns","destination_conf":"s3://mybucket/logs?region=us-west-2","enabled":false,"error_message":null,"id":1,"kind":"","last_complete":null,"last_error":null,"max_upload_bytes":5000000,"max_upload_interval_seconds":30,"max_upload_records":1000,"name":"example.com","output_options":{"CVE-2021-4428":false,"batch_prefix":"","batch_suffix":"","field_delimiter":",","field_names":["Datetime","DstIP","SrcIP"],"output_type":"ndjson","record_delimiter":"","record_prefix":"{","record_suffix":"}\n","record_template":"","sample_rate":1,"timestamp_format":"unixnano"}},"success":true},"schema":{"$ref":"#/components/schemas/logpush_logpush_job_response_single"}}},"description":"Create Logpush job response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"Create Logpush job response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create Logpush job","tags":["Logpush jobs for an account"],"x-api-token-group":["Logs Write"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/logpush/jobs/{job_id}":{"delete":{"description":"Deletes a Logpush job.","operationId":"delete-accounts-account_id-logpush-jobs-job_id","parameters":[{"in":"path","name":"job_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/logpush_id"}},"type":"object"}}}]}}},"description":"Delete Logpush job response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"Delete Logpush job response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete Logpush job","tags":["Logpush jobs for an account"],"x-api-token-group":["Logs Write"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"description":"Gets the details of a Logpush job.","operationId":"get-accounts-account_id-logpush-jobs-job_id","parameters":[{"in":"path","name":"job_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"responses":{"200":{"content":{"application/json":{"example":{"errors":[],"messages":[],"result":{"dataset":"gateway_dns","destination_conf":"s3://mybucket/logs?region=us-west-2","enabled":false,"error_message":null,"id":1,"kind":"","last_complete":null,"last_error":null,"max_upload_bytes":5000000,"max_upload_interval_seconds":30,"max_upload_records":1000,"name":"example.com","output_options":{"CVE-2021-4428":false,"batch_prefix":"","batch_suffix":"","field_delimiter":",","field_names":["Datetime","DstIP","SrcIP"],"output_type":"ndjson","record_delimiter":"","record_prefix":"{","record_suffix":"}\n","record_template":"","sample_rate":1,"timestamp_format":"unixnano"}},"success":true},"schema":{"$ref":"#/components/schemas/logpush_logpush_job_response_single"}}},"description":"Get Logpush job details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"Get Logpush job details response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Logpush job details","tags":["Logpush jobs for an account"],"x-api-token-group":["Logs Write","Logs Read"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Updates a Logpush job.","operationId":"put-accounts-account_id-logpush-jobs-job_id","parameters":[{"in":"path","name":"job_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"requestBody":{"content":{"application/json":{"example":{"destination_conf":"s3://mybucket/logs?region=us-west-2","enabled":false,"kind":"","max_upload_bytes":5000000,"max_upload_interval_seconds":30,"max_upload_records":1000,"output_options":{"CVE-2021-4428":false,"batch_prefix":"","batch_suffix":"","field_delimiter":",","field_names":["Datetime","DstIP","SrcIP"],"output_type":"ndjson","record_delimiter":"","record_prefix":"{","record_suffix":"}\n","record_template":"","sample_rate":1,"timestamp_format":"unixnano"},"ownership_challenge\"":"00000000000000000000"},"schema":{"properties":{"destination_conf":{"$ref":"#/components/schemas/logpush_destination_conf"},"enabled":{"$ref":"#/components/schemas/logpush_enabled"},"frequency":{"$ref":"#/components/schemas/logpush_frequency"},"kind":{"$ref":"#/components/schemas/logpush_kind"},"logpull_options":{"$ref":"#/components/schemas/logpush_logpull_options"},"max_upload_bytes":{"$ref":"#/components/schemas/logpush_max_upload_bytes"},"max_upload_interval_seconds":{"$ref":"#/components/schemas/logpush_max_upload_interval_seconds"},"max_upload_records":{"$ref":"#/components/schemas/logpush_max_upload_records"},"output_options":{"$ref":"#/components/schemas/logpush_output_options"},"ownership_challenge":{"$ref":"#/components/schemas/logpush_ownership_challenge"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"example":{"errors":[],"messages":[],"result":{"dataset":"gateway_dns","destination_conf":"s3://mybucket/logs?region=us-west-2","enabled":false,"error_message":null,"id":1,"kind":"","last_complete":null,"last_error":null,"max_upload_bytes":5000000,"max_upload_interval_seconds":30,"max_upload_records":1000,"name":"example.com","output_options":{"CVE-2021-4428":false,"batch_prefix":"","batch_suffix":"","field_delimiter":",","field_names":["Datetime","DstIP","SrcIP"],"output_type":"ndjson","record_delimiter":"","record_prefix":"{","record_suffix":"}\n","record_template":"","sample_rate":1,"timestamp_format":"unixnano"}},"success":true},"schema":{"$ref":"#/components/schemas/logpush_logpush_job_response_single"}}},"description":"Update Logpush job response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"Update Logpush job response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update Logpush job","tags":["Logpush jobs for an account"],"x-api-token-group":["Logs Write"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/logpush/ownership":{"post":{"description":"Gets a new ownership challenge sent to your destination.","operationId":"post-accounts-account_id-logpush-ownership","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"destination_conf":{"$ref":"#/components/schemas/logpush_destination_conf"}},"required":["destination_conf"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logpush_get_ownership_response"}}},"description":"Get ownership challenge response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"Get ownership challenge response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get ownership challenge","tags":["Logpush jobs for an account"],"x-api-token-group":["Logs Write"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/logpush/ownership/validate":{"post":{"description":"Validates ownership challenge of the destination.","operationId":"post-accounts-account_id-logpush-ownership-validate","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"destination_conf":{"$ref":"#/components/schemas/logpush_destination_conf"},"ownership_challenge":{"$ref":"#/components/schemas/logpush_ownership_challenge"}},"required":["destination_conf","ownership_challenge"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logpush_validate_ownership_response"}}},"description":"Validate ownership challenge response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"Validate ownership challenge response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Validate ownership challenge","tags":["Logpush jobs for an account"],"x-api-token-group":["Logs Write"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/logpush/validate/destination/exists":{"post":{"description":"Checks if there is an existing job with a destination.","operationId":"delete-accounts-account_id-logpush-validate-destination-exists","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"destination_conf":{"$ref":"#/components/schemas/logpush_destination_conf"}},"required":["destination_conf"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logpush_destination_exists_response"}}},"description":"Check destination exists response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"Check destination exists response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Check destination exists","tags":["Logpush jobs for an account"],"x-api-token-group":["Logs Write"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/logpush/validate/origin":{"post":{"description":"Validates logpull origin with logpull_options.","operationId":"post-accounts-account_id-logpush-validate-origin","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"logpull_options":{"$ref":"#/components/schemas/logpush_logpull_options"}},"required":["logpull_options"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logpush_validate_response"}}},"description":"Validate origin response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"Validate origin response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Validate origin","tags":["Logpush jobs for an account"],"x-api-token-group":["Logs Write"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/logs/control/cmb/config":{"delete":{"description":"Deletes CMB config.","operationId":"delete-accounts-account_id-logs-control-cmb-config","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/logcontrol_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logcontrol_api-response-common"},{"properties":{"result":{"enum":[null],"nullable":true,"type":"object"}}}]}}},"description":"Delete CMB config response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logcontrol_api-response-common-failure"}]}}},"description":"Delete CMB config response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete CMB config","tags":["Logcontrol CMB config for an account"],"x-api-token-group":["Logs Write"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]}},"get":{"description":"Gets CMB config.","operationId":"get-accounts-account_id-logs-control-cmb-config","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/logcontrol_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logcontrol_cmb_config_response_single"}}},"description":"Get CMB config response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logcontrol_api-response-common-failure"}]}}},"description":"Get CMB config response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get CMB config","tags":["Logcontrol CMB config for an account"],"x-api-token-group":["Logs Write","Logs Read"],"x-cfPermissionsRequired":{"enum":["#logs:read","#analytics:read"]}},"post":{"description":"Updates CMB config.","operationId":"post-accounts-account_id-logs-control-cmb-config","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/logcontrol_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logcontrol_cmb_config"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logcontrol_cmb_config_response_single"}}},"description":"Update CMB config response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logcontrol_api-response-common-failure"}]}}},"description":"Update CMB config response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update CMB config","tags":["Logcontrol CMB config for an account"],"x-api-token-group":["Logs Write"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]}}},"/accounts/{account_id}/magic/apps":{"get":{"description":"Lists Apps associated with an account.","operationId":"magic-account-apps-list-apps","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_apps_collection_response"}}},"description":"List Apps response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"List Apps response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Apps","tags":["Magic Account Apps"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Creates a new App for an account","operationId":"magic-account-apps-add-app","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_app_add_single_request"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_app_single_response"}}},"description":"Create Account App response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Create Account App response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a new App","tags":["Magic Account Apps"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/apps/{account_app_id}":{"delete":{"description":"Deletes specific Account App.","operationId":"magic-account-apps-delete-app","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_app_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_app_single_response"}}},"description":"Delete App response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Delete App response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Account App","tags":["Magic Account Apps"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Updates an Account App","operationId":"magic-account-apps-update-app","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_app_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_app_update_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_app_single_response"}}},"description":"Update App response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Update App response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an App","tags":["Magic Account Apps"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/cf_interconnects":{"get":{"description":"Lists interconnects associated with an account.","operationId":"magic-interconnects-list-interconnects","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"description":"If true, the health check target in the response body will be presented using the new object format. Defaults to false.","in":"header","name":"x-magic-new-hc-target","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_components-schemas-tunnels_collection_response"}}},"description":"List interconnects response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_components-schemas-tunnels_collection_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"List interconnects response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List interconnects","tags":["Magic Interconnects"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Updates multiple interconnects associated with an account. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes.","operationId":"magic-interconnects-update-multiple-interconnects","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"description":"If true, the health check target in the request and response bodies will be presented using the new object format. Defaults to false.","in":"header","name":"x-magic-new-hc-target","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["id"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_components-schemas-modified_tunnels_collection_response"}}},"description":"Update multiple interconnects response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_components-schemas-modified_tunnels_collection_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"Update multiple interconnects response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update multiple interconnects","tags":["Magic Interconnects"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/cf_interconnects/{cf_interconnect_id}":{"get":{"description":"Lists details for a specific interconnect.","operationId":"magic-interconnects-list-interconnect-details","parameters":[{"in":"path","name":"cf_interconnect_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"description":"If true, the health check target in the response body will be presented using the new object format. Defaults to false.","in":"header","name":"x-magic-new-hc-target","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_components-schemas-tunnel_single_response"}}},"description":"List interconnect Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_components-schemas-tunnel_single_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"List interconnect Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List interconnect Details","tags":["Magic Interconnects"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Updates a specific interconnect associated with an account. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes.","operationId":"magic-interconnects-update-interconnect","parameters":[{"in":"path","name":"cf_interconnect_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"description":"If true, the health check target in the request and response bodies will be presented using the new object format. Defaults to false.","in":"header","name":"x-magic-new-hc-target","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_interconnect_tunnel_update_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_components-schemas-tunnel_modified_response"}}},"description":"Update interconnect response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_components-schemas-tunnel_modified_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"Update interconnect response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update interconnect","tags":["Magic Interconnects"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/connectors":{"get":{"operationId":"mconn-connector-list","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/mconn_account_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_customer_connector_list_response"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_bad_response"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_bad_response"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_bad_response"}}},"description":"Forbidden"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_bad_response"}}},"description":"Internal Server Error"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Connectors","tags":["Magic Connectors"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/connectors/{connector_id}":{"get":{"operationId":"mconn-connector-fetch","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/mconn_account_id"}},{"in":"path","name":"connector_id","required":true,"schema":{"$ref":"#/components/schemas/mconn_uuid"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_customer_connector_fetch_response"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_bad_response"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_bad_response"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_bad_response"}}},"description":"Forbidden"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_bad_response"}}},"description":"Internal Server Error"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Fetch Connector","tags":["Magic Connectors"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"patch":{"operationId":"mconn-connector-update","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/mconn_account_id"}},{"in":"path","name":"connector_id","required":true,"schema":{"$ref":"#/components/schemas/mconn_uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_customer_connector_update_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_customer_connector_update_response"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_bad_response"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_bad_response"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_bad_response"}}},"description":"Forbidden"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_bad_response"}}},"description":"Internal Server Error"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update Connector","tags":["Magic Connectors"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"operationId":"mconn-connector-replace","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/mconn_account_id"}},{"in":"path","name":"connector_id","required":true,"schema":{"$ref":"#/components/schemas/mconn_uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_customer_connector_update_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_customer_connector_update_response"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_bad_response"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_bad_response"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_bad_response"}}},"description":"Forbidden"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/mconn_bad_response"}}},"description":"Internal Server Error"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Replace Connector","tags":["Magic Connectors"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/gre_tunnels":{"get":{"description":"Lists GRE tunnels associated with an account.","operationId":"magic-gre-tunnels-list-gre-tunnels","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"description":"If true, the health check target in the response body will be presented using the new object format. Defaults to false.","in":"header","name":"x-magic-new-hc-target","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_tunnels_collection_response"}}},"description":"List GRE tunnels response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_tunnels_collection_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"List GRE tunnels response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List GRE tunnels","tags":["Magic GRE tunnels"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Creates new GRE tunnels. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes.","operationId":"magic-gre-tunnels-create-gre-tunnels","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"description":"If true, the health check target in the request and response bodies will be presented using the new object format. Defaults to false.","in":"header","name":"x-magic-new-hc-target","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["name","customer_gre_endpoint","cloudflare_gre_endpoint","interface_address"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_tunnels_collection_response"}}},"description":"Create GRE tunnels response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_tunnels_collection_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"Create GRE tunnels response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create GRE tunnels","tags":["Magic GRE tunnels"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Updates multiple GRE tunnels. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes.","operationId":"magic-gre-tunnels-update-multiple-gre-tunnels","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"description":"If true, the health check target in the request and response bodies will be presented using the new object format. Defaults to false.","in":"header","name":"x-magic-new-hc-target","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["id"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_modified_tunnels_collection_response"}}},"description":"Update multiple GRE tunnels response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_modified_tunnels_collection_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"Update multiple GRE tunnels response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update multiple GRE tunnels","tags":["Magic GRE tunnels"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/gre_tunnels/{gre_tunnel_id}":{"delete":{"description":"Disables and removes a specific static GRE tunnel. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes.","operationId":"magic-gre-tunnels-delete-gre-tunnel","parameters":[{"in":"path","name":"gre_tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"description":"If true, the health check target in the response body will be presented using the new object format. Defaults to false.","in":"header","name":"x-magic-new-hc-target","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_tunnel_deleted_response"}}},"description":"Delete GRE Tunnel response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_tunnel_deleted_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"Delete GRE Tunnel response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete GRE Tunnel","tags":["Magic GRE tunnels"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"description":"Lists informtion for a specific GRE tunnel.","operationId":"magic-gre-tunnels-list-gre-tunnel-details","parameters":[{"in":"path","name":"gre_tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"description":"If true, the health check target in the response body will be presented using the new object format. Defaults to false.","in":"header","name":"x-magic-new-hc-target","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_tunnel_single_response"}}},"description":"List GRE Tunnel Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_tunnel_single_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"List GRE Tunnel Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List GRE Tunnel Details","tags":["Magic GRE tunnels"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Updates a specific GRE tunnel. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes.","operationId":"magic-gre-tunnels-update-gre-tunnel","parameters":[{"in":"path","name":"gre_tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"description":"If true, the health check target in the request and response bodies will be presented using the new object format. Defaults to false.","in":"header","name":"x-magic-new-hc-target","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_gre_tunnel_update_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_tunnel_modified_response"}}},"description":"Update GRE Tunnel response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_tunnel_modified_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"Update GRE Tunnel response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update GRE Tunnel","tags":["Magic GRE tunnels"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/ipsec_tunnels":{"get":{"description":"Lists IPsec tunnels associated with an account.","operationId":"magic-ipsec-tunnels-list-ipsec-tunnels","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"description":"If true, the health check target in the response body will be presented using the new object format. Defaults to false.","in":"header","name":"x-magic-new-hc-target","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_schemas-tunnels_collection_response"}}},"description":"List IPsec tunnels response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_schemas-tunnels_collection_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"List IPsec tunnels response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List IPsec tunnels","tags":["Magic IPsec tunnels"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Creates new IPsec tunnels associated with an account. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes.","operationId":"magic-ipsec-tunnels-create-ipsec-tunnels","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"description":"If true, the health check target in the request and response bodies will be presented using the new object format. Defaults to false.","in":"header","name":"x-magic-new-hc-target","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_ipsec_tunnel_add_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_schemas-tunnels_collection_response"}}},"description":"Create IPsec tunnels response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_schemas-tunnels_collection_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"Create IPsec tunnels response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create IPsec tunnels","tags":["Magic IPsec tunnels"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Update multiple IPsec tunnels associated with an account. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes.","operationId":"magic-ipsec-tunnels-update-multiple-ipsec-tunnels","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"description":"If true, the health check target in the request and response bodies will be presented using the new object format. Defaults to false.","in":"header","name":"x-magic-new-hc-target","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["id"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_schemas-modified_tunnels_collection_response"}}},"description":"Update multiple IPsec tunnels response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_schemas-modified_tunnels_collection_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"Update multiple IPsec tunnels response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update multiple IPsec tunnels","tags":["Magic IPsec tunnels"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/ipsec_tunnels/{ipsec_tunnel_id}":{"delete":{"description":"Disables and removes a specific static IPsec Tunnel associated with an account. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes.","operationId":"magic-ipsec-tunnels-delete-ipsec-tunnel","parameters":[{"in":"path","name":"ipsec_tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"description":"If true, the health check target in the response body will be presented using the new object format. Defaults to false.","in":"header","name":"x-magic-new-hc-target","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_schemas-tunnel_deleted_response"}}},"description":"Delete IPsec Tunnel response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_schemas-tunnel_deleted_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"Delete IPsec Tunnel response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete IPsec Tunnel","tags":["Magic IPsec tunnels"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"description":"Lists details for a specific IPsec tunnel.","operationId":"magic-ipsec-tunnels-list-ipsec-tunnel-details","parameters":[{"in":"path","name":"ipsec_tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"description":"If true, the health check target in the response body will be presented using the new object format. Defaults to false.","in":"header","name":"x-magic-new-hc-target","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_schemas-tunnel_single_response"}}},"description":"List IPsec tunnel details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_schemas-tunnel_single_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"List IPsec tunnel details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List IPsec tunnel details","tags":["Magic IPsec tunnels"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Updates a specific IPsec tunnel associated with an account. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes.","operationId":"magic-ipsec-tunnels-update-ipsec-tunnel","parameters":[{"in":"path","name":"ipsec_tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"description":"If true, the health check target in the request and response bodies will be presented using the new object format. Defaults to false.","in":"header","name":"x-magic-new-hc-target","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_ipsec_tunnel_add_single_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_schemas-tunnel_modified_response"}}},"description":"Update IPsec Tunnel response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_schemas-tunnel_modified_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"Update IPsec Tunnel response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update IPsec Tunnel","tags":["Magic IPsec tunnels"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/ipsec_tunnels/{ipsec_tunnel_id}/psk_generate":{"post":{"description":"Generates a Pre Shared Key for a specific IPsec tunnel used in the IKE session. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes. After a PSK is generated, the PSK is immediately persisted to Cloudflare's edge and cannot be retrieved later. Note the PSK in a safe place.","operationId":"magic-ipsec-tunnels-generate-pre-shared-key-(-psk)-for-ipsec-tunnels","parameters":[{"in":"path","name":"ipsec_tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_psk_generation_response"}}},"description":"Generate Pre Shared Key (PSK) for IPsec tunnels response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_psk_generation_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"Generate Pre Shared Key (PSK) for IPsec tunnels response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Generate Pre Shared Key (PSK) for IPsec tunnels","tags":["Magic IPsec tunnels"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/routes":{"delete":{"description":"Delete multiple Magic static routes.","operationId":"magic-static-routes-delete-many-routes","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_route_delete_many_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_multiple_route_delete_response"}}},"description":"Delete Many Routes response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_multiple_route_delete_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"Delete Many Routes response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Many Routes","tags":["Magic Static Routes"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"description":"List all Magic static routes.","operationId":"magic-static-routes-list-routes","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_routes_collection_response"}}},"description":"List Routes response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_routes_collection_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"List Routes response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Routes","tags":["Magic Static Routes"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Creates a new Magic static route. Use `?validate_only=true` as an optional query parameter to run validation only without persisting changes.","operationId":"magic-static-routes-create-routes","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["prefix","nexthop","priority"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_routes_collection_response"}}},"description":"Create Routes response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_routes_collection_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"Create Routes response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create Routes","tags":["Magic Static Routes"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Update multiple Magic static routes. Use `?validate_only=true` as an optional query parameter to run validation only without persisting changes. Only fields for a route that need to be changed need be provided.","operationId":"magic-static-routes-update-many-routes","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_route_update_many_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_multiple_route_modified_response"}}},"description":"Update Many Routes response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_multiple_route_modified_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"Update Many Routes response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Many Routes","tags":["Magic Static Routes"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/routes/{route_id}":{"delete":{"description":"Disable and remove a specific Magic static route.","operationId":"magic-static-routes-delete-route","parameters":[{"in":"path","name":"route_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_route_deleted_response"}}},"description":"Delete Route response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_route_deleted_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"Delete Route response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Route","tags":["Magic Static Routes"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"description":"Get a specific Magic static route.","operationId":"magic-static-routes-route-details","parameters":[{"in":"path","name":"route_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_route_single_response"}}},"description":"Route Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_route_single_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"Route Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Route Details","tags":["Magic Static Routes"],"x-cfPermissionsRequired":{"enum":["#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Update a specific Magic static route. Use `?validate_only=true` as an optional query parameter to run validation only without persisting changes.","operationId":"magic-static-routes-update-route","parameters":[{"in":"path","name":"route_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_route_update_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_route_modified_response"}}},"description":"Update Route response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic_route_modified_response"},{"$ref":"#/components/schemas/magic_api-response-common-failure"}]}}},"description":"Update Route response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Route","tags":["Magic Static Routes"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/sites":{"get":{"description":"Lists Sites associated with an account. Use connector_identifier query param to return sites where connector_identifier matches either site.ConnectorID or site.SecondaryConnectorID.","operationId":"magic-sites-list-sites","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"query","name":"connector_identifier","schema":{"$ref":"#/components/schemas/magic_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_sites_collection_response"}}},"description":"List Sites response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"List Sites response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Sites","tags":["Magic Sites"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Creates a new Site","operationId":"magic-sites-create-site","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_sites_add_single_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_site_single_response"}}},"description":"Create Site response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Create Site response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a new Site","tags":["Magic Sites"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/sites/{site_id}":{"delete":{"description":"Remove a specific Site.","operationId":"magic-sites-delete-site","parameters":[{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_site_deleted_response"}}},"description":"Delete Site response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Delete Site response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Site","tags":["Magic Sites"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"description":"Get a specific Site.","operationId":"magic-sites-site-details","parameters":[{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"description":"If true, the health check target in the response body will be presented using the new object format. Defaults to false.","in":"header","name":"x-magic-new-hc-target","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_site_single_response"}}},"description":"Site Details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Site Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Site Details","tags":["Magic Sites"],"x-cfPermissionsRequired":{"enum":["#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"patch":{"description":"Patch a specific Site.","operationId":"magic-sites-patch-site","parameters":[{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_site_update_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_site_modified_response"}}},"description":"Patch Site response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Patch Site response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Patch Site","tags":["Magic Sites"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Update a specific Site.","operationId":"magic-sites-update-site","parameters":[{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_site_update_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_site_modified_response"}}},"description":"Update Site response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Update Site response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Site","tags":["Magic Sites"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/sites/{site_id}/acls":{"get":{"description":"Lists Site ACLs associated with an account.","operationId":"magic-site-acls-list-acls","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_acls_collection_response"}}},"description":"List Site ACLs response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"List Site ACLs response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Site ACLs","tags":["Magic Site ACLs"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Creates a new Site ACL.","operationId":"magic-site-acls-create-acl","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_acls_add_single_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_acl_single_response"}}},"description":"Create Site ACL response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Create Site ACL response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a new Site ACL","tags":["Magic Site ACLs"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/sites/{site_id}/acls/{acl_id}":{"delete":{"description":"Remove a specific Site ACL.","operationId":"magic-site-acls-delete-acl","parameters":[{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"acl_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_acl_deleted_response"}}},"description":"Delete Site ACL response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Delete Site ACL response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Site ACL","tags":["Magic Site ACLs"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"description":"Get a specific Site ACL.","operationId":"magic-site-acls-acl-details","parameters":[{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"acl_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_acl_single_response"}}},"description":"Site ACL Details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Site ACL Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Site ACL Details","tags":["Magic Site ACLs"],"x-cfPermissionsRequired":{"enum":["#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"patch":{"description":"Patch a specific Site ACL.","operationId":"magic-site-acls-patch-acl","parameters":[{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"acl_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_acl_update_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_acl_modified_response"}}},"description":"Patch Site ACL response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Patch Site ACL response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Patch Site ACL","tags":["Magic Site ACLs"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Update a specific Site ACL.","operationId":"magic-site-acls-update-acl","parameters":[{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"acl_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_acl_update_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_acl_modified_response"}}},"description":"Update Site ACL response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Update Site ACL response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Site ACL","tags":["Magic Site ACLs"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/sites/{site_id}/app_configs":{"get":{"description":"Lists App Configs associated with a site.","operationId":"magic-site-app-configs-list-app-configs","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_app_configs_collection_response"}}},"description":"List App Configs response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"List App Configs response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List App Configs","tags":["Magic Site App Configs"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Creates a new App Config for a site","operationId":"magic-site-app-configs-add-app-config","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_app_config_add_single_request"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_app_config_single_response"}}},"description":"Create Site App Config response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Create Site App Config response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a new App Config","tags":["Magic Site App Configs"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/sites/{site_id}/app_configs/{app_config_id}":{"delete":{"description":"Deletes specific App Config associated with a site.","operationId":"magic-site-app-configs-delete-app-config","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"app_config_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_app_config_single_response"}}},"description":"Delete App Config response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Delete App Config response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete App Config","tags":["Magic Site App Configs"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Updates an App Config for a site","operationId":"magic-site-app-configs-update-app-config","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"app_config_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_app_config_update_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_app_config_single_response"}}},"description":"Update Site App Config response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Update Site App Config response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an App Config","tags":["Magic Site App Configs"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/sites/{site_id}/lans":{"get":{"description":"Lists Site LANs associated with an account.","operationId":"magic-site-lans-list-lans","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_lans_collection_response"}}},"description":"List Site LANs response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"List Site LANs response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Site LANs","tags":["Magic Site LANs"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Creates a new Site LAN. If the site is in high availability mode, static_addressing is required along with secondary and virtual address.","operationId":"magic-site-lans-create-lan","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_lans_add_single_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_lans_collection_response"}}},"description":"Create Site LAN response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Create Site LAN response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a new Site LAN","tags":["Magic Site LANs"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/sites/{site_id}/lans/{lan_id}":{"delete":{"description":"Remove a specific Site LAN.","operationId":"magic-site-lans-delete-lan","parameters":[{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"lan_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_lan_deleted_response"}}},"description":"Delete Site LAN response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Delete Site LAN response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Site LAN","tags":["Magic Site LANs"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"description":"Get a specific Site LAN.","operationId":"magic-site-lans-lan-details","parameters":[{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"lan_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_lan_single_response"}}},"description":"Site LAN Details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Site LAN Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Site LAN Details","tags":["Magic Site LANs"],"x-cfPermissionsRequired":{"enum":["#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"patch":{"description":"Patch a specific Site LAN.","operationId":"magic-site-lans-patch-lan","parameters":[{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"lan_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_lan_update_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_lan_modified_response"}}},"description":"Patch Site LAN response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Patch Site LAN response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Patch Site LAN","tags":["Magic Site LANs"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Update a specific Site LAN.","operationId":"magic-site-lans-update-lan","parameters":[{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"lan_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_lan_update_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_lan_modified_response"}}},"description":"Update Site LAN response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Update Site LAN response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Site LAN","tags":["Magic Site LANs"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/sites/{site_id}/wans":{"get":{"description":"Lists Site WANs associated with an account.","operationId":"magic-site-wans-list-wans","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_wans_collection_response"}}},"description":"List Site WANs response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"List Site WANs response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Site WANs","tags":["Magic Site WANs"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Creates a new Site WAN.","operationId":"magic-site-wans-create-wan","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_wans_add_single_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_wans_collection_response"}}},"description":"Create Site WAN response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Create Site WAN response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a new Site WAN","tags":["Magic Site WANs"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/magic/sites/{site_id}/wans/{wan_id}":{"delete":{"description":"Remove a specific Site WAN.","operationId":"magic-site-wans-delete-wan","parameters":[{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"wan_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_wan_deleted_response"}}},"description":"Delete Site WAN response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Delete Site WAN response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Site WAN","tags":["Magic Site WANs"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"description":"Get a specific Site WAN.","operationId":"magic-site-wans-wan-details","parameters":[{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"wan_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_wan_single_response"}}},"description":"Site WAN Details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Site WAN Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Site WAN Details","tags":["Magic Site WANs"],"x-cfPermissionsRequired":{"enum":["#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"patch":{"description":"Patch a specific Site WAN.","operationId":"magic-site-wans-patch-wan","parameters":[{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"wan_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_wan_update_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_wan_modified_response"}}},"description":"Patch Site WAN response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Patch Site WAN response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Patch Site WAN","tags":["Magic Site WANs"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Update a specific Site WAN.","operationId":"magic-site-wans-update-wan","parameters":[{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}},{"in":"path","name":"wan_id","required":true,"schema":{"$ref":"#/components/schemas/magic_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_wan_update_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_wan_modified_response"}}},"description":"Update Site WAN response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic_api-response-common-failure"}}},"description":"Update Site WAN response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Site WAN","tags":["Magic Site WANs"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/members":{"get":{"description":"List all members of an account.","operationId":"account-members-list-members","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/iam_account_identifier"}},{"in":"query","name":"order","schema":{"description":"Field to order results by.","enum":["user.first_name","user.last_name","user.email","status"],"example":"status"}},{"in":"query","name":"status","schema":{"description":"A member's status in the account.","enum":["accepted","pending","rejected"],"example":"accepted","type":"string"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":20,"description":"Maximum number of results per page.","maximum":50,"minimum":5,"type":"number"}},{"in":"query","name":"direction","schema":{"description":"Direction to order results.","enum":["asc","desc"],"example":"desc","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_collection_member_response_with_policies"}}},"description":"List Members response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"List Members response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Members","tags":["Account Members"],"x-api-token-group":["Account Settings Write","Account Settings Read"],"x-cfPermissionsRequired":{"enum":["#organization:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Add a user to the list of members for this account.","operationId":"account-members-add-member","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/iam_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/iam_create-member-with-roles"},{"$ref":"#/components/schemas/iam_create-member-with-policies"}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_single_member_response_with_policies"}}},"description":"Add Member response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Add Member response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Add Member","tags":["Account Members"],"x-api-token-group":["Account Settings Write"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/members/{member_id}":{"delete":{"description":"Remove a member from an account.","operationId":"account-members-remove-member","parameters":[{"in":"path","name":"member_id","required":true,"schema":{"$ref":"#/components/schemas/iam_membership_components-schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/iam_account_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-single-id"}}},"description":"Remove Member response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Remove Member response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Remove Member","tags":["Account Members"],"x-api-token-group":["Account Settings Write"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Get information about a specific member of an account.","operationId":"account-members-member-details","parameters":[{"in":"path","name":"member_id","required":true,"schema":{"$ref":"#/components/schemas/iam_membership_components-schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/iam_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_single_member_response_with_policies"}}},"description":"Member Details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Member Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Member Details","tags":["Account Members"],"x-api-token-group":["Account Settings Write","Account Settings Read"],"x-cfPermissionsRequired":{"enum":["#organization:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Modify an account member.","operationId":"account-members-update-member","parameters":[{"in":"path","name":"member_id","required":true,"schema":{"$ref":"#/components/schemas/iam_membership_components-schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/iam_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/iam_update-member-with-roles"},{"$ref":"#/components/schemas/iam_update-member-with-policies"}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_single_member_response_with_policies"}}},"description":"Update Member response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Update Member response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Member","tags":["Account Members"],"x-api-token-group":["Account Settings Write"],"x-cfPermissionsRequired":{"enum":["#organization:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/mnm/config":{"delete":{"description":"Delete an existing network monitoring configuration.","operationId":"magic-network-monitoring-configuration-delete-account-configuration","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_account_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_mnm_config_single_response"}}},"description":"Delete account configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_mnm_config_single_response"},{"$ref":"#/components/schemas/magic-visibility_api-response-common-failure"}]}}},"description":"Delete account configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete account configuration","tags":["Magic Network Monitoring Configuration"],"x-api-token-group":["Magic Network Monitoring Admin"]},"get":{"description":"Lists default sampling, router IPs and warp devices for account.","operationId":"magic-network-monitoring-configuration-list-account-configuration","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_mnm_config_single_response"}}},"description":"List account configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_mnm_config_single_response"},{"$ref":"#/components/schemas/magic-visibility_api-response-common-failure"}]}}},"description":"List account configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List account configuration","tags":["Magic Network Monitoring Configuration"],"x-api-token-group":["Magic Network Monitoring Admin","Magic Network Monitoring Config Write","Magic Network Monitoring Config Read"]},"patch":{"description":"Update fields in an existing network monitoring configuration.","operationId":"magic-network-monitoring-configuration-update-account-configuration-fields","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"default_sampling":{"$ref":"#/components/schemas/magic-visibility_mnm_config_default_sampling"},"name":{"$ref":"#/components/schemas/magic-visibility_mnm_config_name"},"router_ips":{"$ref":"#/components/schemas/magic-visibility_mnm_config_router_ips"},"warp_devices":{"$ref":"#/components/schemas/magic-visibility_mnm_config_warp_devices"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_mnm_config_single_response"}}},"description":"Update account configuration fields response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_mnm_config_single_response"},{"$ref":"#/components/schemas/magic-visibility_api-response-common-failure"}]}}},"description":"Update account configuration fields response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update account configuration fields","tags":["Magic Network Monitoring Configuration"],"x-api-token-group":["Magic Network Monitoring Admin","Magic Network Monitoring Config Write"]},"post":{"description":"Create a new network monitoring configuration.","operationId":"magic-network-monitoring-configuration-create-account-configuration","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"default_sampling":{"$ref":"#/components/schemas/magic-visibility_mnm_config_default_sampling"},"name":{"$ref":"#/components/schemas/magic-visibility_mnm_config_name"},"router_ips":{"$ref":"#/components/schemas/magic-visibility_mnm_config_router_ips"},"warp_devices":{"$ref":"#/components/schemas/magic-visibility_mnm_config_warp_devices"}},"required":["name","default_sampling"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_mnm_config_single_response"}}},"description":"Create account configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_mnm_config_single_response"},{"$ref":"#/components/schemas/magic-visibility_api-response-common-failure"}]}}},"description":"Create account configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create account configuration","tags":["Magic Network Monitoring Configuration"],"x-api-token-group":["Magic Network Monitoring Admin"]},"put":{"description":"Update an existing network monitoring configuration, requires the entire configuration to be updated at once.","operationId":"magic-network-monitoring-configuration-update-an-entire-account-configuration","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"default_sampling":{"$ref":"#/components/schemas/magic-visibility_mnm_config_default_sampling"},"name":{"$ref":"#/components/schemas/magic-visibility_mnm_config_name"},"router_ips":{"$ref":"#/components/schemas/magic-visibility_mnm_config_router_ips"},"warp_devices":{"$ref":"#/components/schemas/magic-visibility_mnm_config_warp_devices"}},"required":["name","default_sampling"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_mnm_config_single_response"}}},"description":"Update an entire account configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_mnm_config_single_response"},{"$ref":"#/components/schemas/magic-visibility_api-response-common-failure"}]}}},"description":"Update an entire account configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an entire account configuration","tags":["Magic Network Monitoring Configuration"],"x-api-token-group":["Magic Network Monitoring Admin","Magic Network Monitoring Config Write"]}},"/accounts/{account_id}/mnm/config/full":{"get":{"description":"Lists default sampling, router IPs, warp devices, and rules for account.","operationId":"magic-network-monitoring-configuration-list-rules-and-account-configuration","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_mnm_config_single_response"}}},"description":"List rules and account configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_mnm_config_single_response"},{"$ref":"#/components/schemas/magic-visibility_api-response-common-failure"}]}}},"description":"List rules and account configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List rules and account configuration","tags":["Magic Network Monitoring Configuration"],"x-api-token-group":["Magic Network Monitoring Admin","Magic Network Monitoring Config Write","Magic Network Monitoring Config Read"]}},"/accounts/{account_id}/mnm/rules":{"get":{"description":"Lists network monitoring rules for account.","operationId":"magic-network-monitoring-rules-list-rules","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_mnm_rules_collection_response"}}},"description":"List rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_mnm_rules_collection_response"},{"$ref":"#/components/schemas/magic-visibility_api-response-common-failure"}]}}},"description":"List rules response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List rules","tags":["Magic Network Monitoring Rules"],"x-api-token-group":["Magic Network Monitoring Admin","Magic Network Monitoring Config Write","Magic Network Monitoring Config Read"]},"post":{"description":"Create network monitoring rules for account. Currently only supports creating a single rule per API request.","operationId":"magic-network-monitoring-rules-create-rules","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"automatic_advertisement":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_automatic_advertisement"},"bandwidth":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_bandwidth_threshold"},"duration":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_duration"},"name":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_name"},"packet_threshold":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_packet_threshold"},"prefixes":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_ip_prefixes"}},"required":["duration","name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_mnm_rules_single_response"}}},"description":"Create rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_mnm_rules_single_response"},{"$ref":"#/components/schemas/magic-visibility_api-response-common-failure"}]}}},"description":"Create rules response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create rules","tags":["Magic Network Monitoring Rules"],"x-api-token-group":["Magic Network Monitoring Admin","Magic Network Monitoring Config Write"]},"put":{"description":"Update network monitoring rules for account.","operationId":"magic-network-monitoring-rules-update-rules","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"automatic_advertisement":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_automatic_advertisement"},"bandwidth":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_bandwidth_threshold"},"duration":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_duration"},"id":{"$ref":"#/components/schemas/magic-visibility_rule_identifier"},"name":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_name"},"packet_threshold":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_packet_threshold"},"prefixes":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_ip_prefixes"}},"required":["ID","duration","name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_mnm_rules_single_response"}}},"description":"Update rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_mnm_rules_single_response"},{"$ref":"#/components/schemas/magic-visibility_api-response-common-failure"}]}}},"description":"Update rules response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update rules","tags":["Magic Network Monitoring Rules"],"x-api-token-group":["Magic Network Monitoring Admin","Magic Network Monitoring Config Write"]}},"/accounts/{account_id}/mnm/rules/{rule_id}":{"delete":{"description":"Delete a network monitoring rule for account.","operationId":"magic-network-monitoring-rules-delete-rule","parameters":[{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_rule_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_account_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_mnm_rules_single_response"}}},"description":"Delete rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_mnm_rules_single_response"},{"$ref":"#/components/schemas/magic-visibility_api-response-common-failure"}]}}},"description":"Delete rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete rule","tags":["Magic Network Monitoring Rules"],"x-api-token-group":["Magic Network Monitoring Admin","Magic Network Monitoring Config Write"]},"get":{"description":"List a single network monitoring rule for account.","operationId":"magic-network-monitoring-rules-get-rule","parameters":[{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_rule_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_mnm_rules_single_response"}}},"description":"Get rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_mnm_rules_single_response"},{"$ref":"#/components/schemas/magic-visibility_api-response-common-failure"}]}}},"description":"Get rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get rule","tags":["Magic Network Monitoring Rules"],"x-api-token-group":["Magic Network Monitoring Admin","Magic Network Monitoring Config Write","Magic Network Monitoring Config Read"]},"patch":{"description":"Update a network monitoring rule for account.","operationId":"magic-network-monitoring-rules-update-rule","parameters":[{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_rule_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"automatic_advertisement":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_automatic_advertisement"},"bandwidth":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_bandwidth_threshold"},"duration":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_duration"},"name":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_name"},"packet_threshold":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_packet_threshold"},"prefixes":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_ip_prefixes"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_mnm_rules_single_response"}}},"description":"Update rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_mnm_rules_single_response"},{"$ref":"#/components/schemas/magic-visibility_api-response-common-failure"}]}}},"description":"Update rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update rule","tags":["Magic Network Monitoring Rules"],"x-api-token-group":["Magic Network Monitoring Admin","Magic Network Monitoring Config Write"]}},"/accounts/{account_id}/mnm/rules/{rule_id}/advertisement":{"patch":{"description":"Update advertisement for rule.","operationId":"magic-network-monitoring-rules-update-advertisement-for-rule","parameters":[{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_rule_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_account_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_mnm_rule_advertisement_single_response"}}},"description":"Update advertisement for rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/magic-visibility_mnm_rule_advertisement_single_response"},{"$ref":"#/components/schemas/magic-visibility_api-response-common-failure"}]}}},"description":"Update advertisement for rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update advertisement for rule","tags":["Magic Network Monitoring Rules"],"x-api-token-group":["Magic Network Monitoring Admin","Magic Network Monitoring Config Write"]}},"/accounts/{account_id}/mtls_certificates":{"get":{"description":"Lists all mTLS certificates.","operationId":"m-tls-certificate-management-list-m-tls-certificates","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_mtls-management_components-schemas-certificate_response_collection"}}},"description":"List mTLS certificates response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_mtls-management_components-schemas-certificate_response_collection"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"List mTLS certificates response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List mTLS certificates","tags":["mTLS Certificate Management"],"x-api-token-group":["Account: SSL and Certificates Read","Account: SSL and Certificates Write"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Upload a certificate that you want to use with mTLS-enabled Cloudflare services.","operationId":"m-tls-certificate-management-upload-m-tls-certificate","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"ca":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_ca"},"certificates":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-certificates"},"name":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-name"},"private_key":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-private_key"}},"required":["certificates","ca"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_response_single_post"}}},"description":"Upload mTLS certificate response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_response_single_post"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Upload mTLS certificate response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Upload mTLS certificate","tags":["mTLS Certificate Management"],"x-api-token-group":["Account: SSL and Certificates Write"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/mtls_certificates/{mtls_certificate_id}":{"delete":{"description":"Deletes the mTLS certificate unless the certificate is in use by one or more Cloudflare services.","operationId":"m-tls-certificate-management-delete-m-tls-certificate","parameters":[{"in":"path","name":"mtls_certificate_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_mtls-management_components-schemas-certificate_response_single"}}},"description":"Delete mTLS certificate response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_mtls-management_components-schemas-certificate_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Delete mTLS certificate response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete mTLS certificate","tags":["mTLS Certificate Management"],"x-api-token-group":["Account: SSL and Certificates Write"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Fetches a single mTLS certificate.","operationId":"m-tls-certificate-management-get-m-tls-certificate","parameters":[{"in":"path","name":"mtls_certificate_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_mtls-management_components-schemas-certificate_response_single"}}},"description":"Get mTLS certificate response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_mtls-management_components-schemas-certificate_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Get mTLS certificate response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get mTLS certificate","tags":["mTLS Certificate Management"],"x-api-token-group":["Account: SSL and Certificates Read","Account: SSL and Certificates Write"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/mtls_certificates/{mtls_certificate_id}/associations":{"get":{"description":"Lists all active associations between the certificate and Cloudflare services.","operationId":"m-tls-certificate-management-list-m-tls-certificate-associations","parameters":[{"in":"path","name":"mtls_certificate_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_association_response_collection"}}},"description":"List mTLS certificate associations response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_association_response_collection"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"List mTLS certificate associations response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List mTLS certificate associations","tags":["mTLS Certificate Management"],"x-api-token-group":["Account: SSL and Certificates Read","Account: SSL and Certificates Write"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/pages/projects":{"get":{"description":"Fetch a list of all user projects.","operationId":"pages-project-get-projects","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pages_projects-response"}}},"description":"Get projects response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/pages_projects-response"},{"$ref":"#/components/schemas/pages_api-response-common-failure"}]}}},"description":"Get projects response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get projects","tags":["Pages Project"]},"post":{"description":"Create a new project.","operationId":"pages-project-create-project","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pages_project-object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pages_project-response"}}},"description":"Create project response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/pages_project-response"},{"$ref":"#/components/schemas/pages_api-response-common-failure"}]}}},"description":"Create project response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create project","tags":["Pages Project"]}},"/accounts/{account_id}/pages/projects/{project_name}":{"delete":{"description":"Delete a project by name.","operationId":"pages-project-delete-project","parameters":[{"in":"path","name":"project_name","required":true,"schema":{"$ref":"#/components/schemas/pages_project_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/pages_api-response-common"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]}}},"description":"Delete project response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"example":{"errors":[],"messages":[],"result":null,"success":true}},{"$ref":"#/components/schemas/pages_api-response-common-failure"}]}}},"description":"Delete project response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete project","tags":["Pages Project"]},"get":{"description":"Fetch a project by name.","operationId":"pages-project-get-project","parameters":[{"in":"path","name":"project_name","required":true,"schema":{"$ref":"#/components/schemas/pages_project_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pages_project-response"}}},"description":"Get project response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/pages_project-response"},{"$ref":"#/components/schemas/pages_api-response-common-failure"}]}}},"description":"Get project response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get project","tags":["Pages Project"]},"patch":{"description":"Set new attributes for an existing project. Modify environment variables. To delete an environment variable, set the key to null.","operationId":"pages-project-update-project","parameters":[{"in":"path","name":"project_name","required":true,"schema":{"$ref":"#/components/schemas/pages_project_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pages_project-patch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pages_project-response"}}},"description":"Update project response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/pages_project-response"},{"$ref":"#/components/schemas/pages_api-response-common-failure"}]}}},"description":"Update project response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update project","tags":["Pages Project"]}},"/accounts/{account_id}/pages/projects/{project_name}/deployments":{"get":{"description":"Fetch a list of project deployments.","operationId":"pages-deployment-get-deployments","parameters":[{"in":"path","name":"project_name","required":true,"schema":{"$ref":"#/components/schemas/pages_project_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}},{"in":"query","name":"env","schema":{"description":"What type of deployments to fetch.","enum":["production","preview"],"example":"preview","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pages_deployment-list-response"}}},"description":"Get deployments response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/pages_deployment-list-response"},{"$ref":"#/components/schemas/pages_api-response-common-failure"}]}}},"description":"Get deployments response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get deployments","tags":["Pages Deployment"]},"post":{"description":"Start a new deployment from production. The repository and account must have already been authorized on the Cloudflare Pages dashboard.","operationId":"pages-deployment-create-deployment","parameters":[{"in":"path","name":"project_name","required":true,"schema":{"$ref":"#/components/schemas/pages_project_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"branch":{"description":"The branch to build the new deployment from. The `HEAD` of the branch will be used. If omitted, the production branch will be used by default.","example":"staging","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pages_deployment-new-deployment"}}},"description":"Create deployment response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/pages_deployment-new-deployment"},{"$ref":"#/components/schemas/pages_api-response-common-failure"}]}}},"description":"Create deployment response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create deployment","tags":["Pages Deployment"]}},"/accounts/{account_id}/pages/projects/{project_name}/deployments/{deployment_id}":{"delete":{"description":"Delete a deployment.","operationId":"pages-deployment-delete-deployment","parameters":[{"in":"path","name":"deployment_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}},{"in":"path","name":"project_name","required":true,"schema":{"$ref":"#/components/schemas/pages_project_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/pages_api-response-common"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]}}},"description":"Delete deployment response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"example":{"errors":[],"messages":[],"result":null,"success":true}},{"$ref":"#/components/schemas/pages_api-response-common-failure"}]}}},"description":"Delete deployment response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete deployment","tags":["Pages Deployment"]},"get":{"description":"Fetch information about a deployment.","operationId":"pages-deployment-get-deployment-info","parameters":[{"in":"path","name":"deployment_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}},{"in":"path","name":"project_name","required":true,"schema":{"$ref":"#/components/schemas/pages_project_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pages_deployment-response-details"}}},"description":"Get deployment info response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/pages_deployment-response-details"},{"$ref":"#/components/schemas/pages_api-response-common-failure"}]}}},"description":"Get deployment info response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get deployment info","tags":["Pages Deployment"]}},"/accounts/{account_id}/pages/projects/{project_name}/deployments/{deployment_id}/history/logs":{"get":{"description":"Fetch deployment logs for a project.","operationId":"pages-deployment-get-deployment-logs","parameters":[{"in":"path","name":"deployment_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}},{"in":"path","name":"project_name","required":true,"schema":{"$ref":"#/components/schemas/pages_project_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pages_deployment-response-logs"}}},"description":"Get deployment logs response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/pages_deployment-response-logs"},{"$ref":"#/components/schemas/pages_api-response-common-failure"}]}}},"description":"Get deployment logs response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get deployment logs","tags":["Pages Deployment"]}},"/accounts/{account_id}/pages/projects/{project_name}/deployments/{deployment_id}/retry":{"post":{"description":"Retry a previous deployment.","operationId":"pages-deployment-retry-deployment","parameters":[{"in":"path","name":"deployment_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}},{"in":"path","name":"project_name","required":true,"schema":{"$ref":"#/components/schemas/pages_project_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pages_deployment-new-deployment"}}},"description":"Retry deployment response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/pages_deployment-new-deployment"},{"$ref":"#/components/schemas/pages_api-response-common-failure"}]}}},"description":"Retry deployment response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Retry deployment","tags":["Pages Deployment"]}},"/accounts/{account_id}/pages/projects/{project_name}/deployments/{deployment_id}/rollback":{"post":{"description":"Rollback the production deployment to a previous deployment. You can only rollback to succesful builds on production.","operationId":"pages-deployment-rollback-deployment","parameters":[{"in":"path","name":"deployment_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}},{"in":"path","name":"project_name","required":true,"schema":{"$ref":"#/components/schemas/pages_project_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pages_deployment-response-details"}}},"description":"Rollback deployment response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/pages_deployment-response-details"},{"$ref":"#/components/schemas/pages_api-response-common-failure"}]}}},"description":"Rollback deployment response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Rollback deployment","tags":["Pages Deployment"]}},"/accounts/{account_id}/pages/projects/{project_name}/domains":{"get":{"description":"Fetch a list of all domains associated with a Pages project.","operationId":"pages-domains-get-domains","parameters":[{"in":"path","name":"project_name","required":true,"schema":{"$ref":"#/components/schemas/pages_project_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pages_domain-response-collection"}}},"description":"Get domains response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/pages_domain-response-collection"},{"$ref":"#/components/schemas/pages_api-response-common-failure"}]}}},"description":"Get domains response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get domains","tags":["Pages Domains"]},"post":{"description":"Add a new domain for the Pages project.","operationId":"pages-domains-add-domain","parameters":[{"in":"path","name":"project_name","required":true,"schema":{"$ref":"#/components/schemas/pages_project_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pages_domains-post"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pages_domain-response-single"}}},"description":"Add domain response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/pages_domain-response-single"},{"$ref":"#/components/schemas/pages_api-response-common-failure"}]}}},"description":"Add domain response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Add domain","tags":["Pages Domains"]}},"/accounts/{account_id}/pages/projects/{project_name}/domains/{domain_name}":{"delete":{"description":"Delete a Pages project's domain.","operationId":"pages-domains-delete-domain","parameters":[{"in":"path","name":"domain_name","required":true,"schema":{"$ref":"#/components/schemas/pages_domain_name"}},{"in":"path","name":"project_name","required":true,"schema":{"$ref":"#/components/schemas/pages_project_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/pages_api-response-common"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]}}},"description":"Delete domain response."},"4xx":{"content":{"application/json":{"schema":{"allOf":[{"example":{"errors":[],"messages":[],"result":null,"success":true}},{"$ref":"#/components/schemas/pages_api-response-common-failure"}]}}},"description":"Delete domain response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete domain","tags":["Pages Domains"]},"get":{"description":"Fetch a single domain.","operationId":"pages-domains-get-domain","parameters":[{"in":"path","name":"domain_name","required":true,"schema":{"$ref":"#/components/schemas/pages_domain_name"}},{"in":"path","name":"project_name","required":true,"schema":{"$ref":"#/components/schemas/pages_project_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pages_domain-response-single"}}},"description":"Get domain response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/pages_domain-response-single"},{"$ref":"#/components/schemas/pages_api-response-common-failure"}]}}},"description":"Get domain response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get domain","tags":["Pages Domains"]},"patch":{"description":"Retry the validation status of a single domain.","operationId":"pages-domains-patch-domain","parameters":[{"in":"path","name":"domain_name","required":true,"schema":{"$ref":"#/components/schemas/pages_domain_name"}},{"in":"path","name":"project_name","required":true,"schema":{"$ref":"#/components/schemas/pages_project_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pages_domain-response-single"}}},"description":"Patch domain response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/pages_domain-response-single"},{"$ref":"#/components/schemas/pages_api-response-common-failure"}]}}},"description":"Patch domain response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Patch domain","tags":["Pages Domains"]}},"/accounts/{account_id}/pages/projects/{project_name}/purge_build_cache":{"post":{"description":"Purge all cached build artifacts for a Pages project","operationId":"pages-purge-build-cache","parameters":[{"in":"path","name":"project_name","required":true,"schema":{"$ref":"#/components/schemas/pages_project_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/pages_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/pages_api-response-common"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]}}},"description":"Purge build cache response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/pages_api-response-common-failure"}]}}},"description":"Purge build cache failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Purge build cache","tags":["Pages Build Cache"]}},"/accounts/{account_id}/pcaps":{"get":{"description":"Lists all packet capture requests for an account.","operationId":"magic-pcap-collection-list-packet-capture-requests","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_pcaps_collection_response"}}},"description":"List packet capture requests response"},"default":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/magic-visibility_pcaps_collection_response"},{"$ref":"#/components/schemas/magic-visibility_api-response-common-failure"}]}}},"description":"List packet capture requests response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List packet capture requests","tags":["Magic PCAP collection"],"x-api-token-group":["Magic Firewall Packet Captures - Write PCAPs API","Magic Firewall Packet Captures - Read PCAPs API"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Create new PCAP request for account.","operationId":"magic-pcap-collection-create-pcap-request","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_pcaps_request_pcap"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_pcaps_single_response"}}},"description":"Create PCAP request response"},"default":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/magic-visibility_pcaps_single_response"},{"$ref":"#/components/schemas/magic-visibility_api-response-common-failure"}]}}},"description":"Create PCAP request response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create PCAP request","tags":["Magic PCAP collection"],"x-api-token-group":["Magic Firewall Packet Captures - Write PCAPs API"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/pcaps/ownership":{"get":{"description":"List all buckets configured for use with PCAPs API.","operationId":"magic-pcap-collection-list-pca-ps-bucket-ownership","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_pcaps_ownership_collection"}}},"description":"List PCAPs Bucket Ownership response"},"default":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/magic-visibility_pcaps_ownership_collection"},{"$ref":"#/components/schemas/magic-visibility_api-response-common-failure"}]}}},"description":"List PCAPs Bucket Ownership response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List PCAPs Bucket Ownership","tags":["Magic PCAP collection"],"x-api-token-group":["Magic Firewall Packet Captures - Write PCAPs API","Magic Firewall Packet Captures - Read PCAPs API"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Adds an AWS or GCP bucket to use with full packet captures.","operationId":"magic-pcap-collection-add-buckets-for-full-packet-captures","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_pcaps_ownership_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_pcaps_ownership_single_response"}}},"description":"Add buckets for full packet captures response"},"default":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/magic-visibility_pcaps_ownership_single_response"},{"$ref":"#/components/schemas/magic-visibility_api-response-common-failure"}]}}},"description":"Add buckets for full packet captures response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Add buckets for full packet captures","tags":["Magic PCAP collection"],"x-api-token-group":["Magic Firewall Packet Captures - Write PCAPs API"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/pcaps/ownership/validate":{"post":{"description":"Validates buckets added to the packet captures API.","operationId":"magic-pcap-collection-validate-buckets-for-full-packet-captures","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_pcaps_ownership_validate_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_pcaps_ownership_single_response"}}},"description":"Validate buckets for full packet captures response"},"default":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/magic-visibility_pcaps_ownership_single_response"},{"$ref":"#/components/schemas/magic-visibility_api-response-common-failure"}]}}},"description":"Validate buckets for full packet captures response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Validate buckets for full packet captures","tags":["Magic PCAP collection"],"x-api-token-group":["Magic Firewall Packet Captures - Write PCAPs API"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/pcaps/ownership/{ownership_id}":{"delete":{"description":"Deletes buckets added to the packet captures API.","operationId":"magic-pcap-collection-delete-buckets-for-full-packet-captures","parameters":[{"in":"path","name":"ownership_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_identifier"}}],"responses":{"204":{"description":"Delete buckets for full packet captures response"},"default":{"content":{"application/json":{}},"description":"Delete buckets for full packet captures response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete buckets for full packet captures","tags":["Magic PCAP collection"],"x-api-token-group":["Magic Firewall Packet Captures - Write PCAPs API"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/pcaps/{pcap_id}":{"get":{"description":"Get information for a PCAP request by id.","operationId":"magic-pcap-collection-get-pcap-request","parameters":[{"in":"path","name":"pcap_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/magic-visibility_pcaps_single_response"}}},"description":"Get PCAP request response"},"default":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/magic-visibility_pcaps_single_response"},{"$ref":"#/components/schemas/magic-visibility_api-response-common-failure"}]}}},"description":"Get PCAP request response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get PCAP request","tags":["Magic PCAP collection"],"x-api-token-group":["Magic Firewall Packet Captures - Write PCAPs API","Magic Firewall Packet Captures - Read PCAPs API"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/pcaps/{pcap_id}/download":{"get":{"description":"Download PCAP information into a file. Response is a binary PCAP file.","operationId":"magic-pcap-collection-download-simple-pcap","parameters":[{"in":"path","name":"pcap_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/magic-visibility_identifier"}}],"responses":{"200":{"content":{"application/vnd.tcpdump.pcap":{}},"description":"Download Simple PCAP response"},"default":{"content":{"application/json":{}},"description":"Download Simple PCAP response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Download Simple PCAP","tags":["Magic PCAP collection"],"x-api-token-group":["Magic Firewall Packet Captures - Write PCAPs API","Magic Firewall Packet Captures - Read PCAPs API"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/queues":{"get":{"description":"Returns the queues owned by an account.","operationId":"queue-v2-list-queues","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"errors":{}}},{"properties":{"messages":{}}},{"properties":{"result_info":{"properties":{"count":{"example":1},"page":{"example":1},"per_page":{"example":100},"total_count":{"example":1},"total_pages":{"example":1}},"type":"object"}}},{"properties":{"result":{"items":{"$ref":"#/components/schemas/mq_queue"},"type":"array"}},"required":["queue_id","queue_name","created_on","modified_on","producers_total_count","producers","consumers_total_count","consumers"],"type":"object"}]}}},"description":"List Queues response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"errors":{}}},{"properties":{"messages":{}}},{"properties":{"result_info":{"properties":{"count":{"example":1},"page":{"example":1},"per_page":{"example":100},"total_count":{"example":1},"total_pages":{"example":1}},"type":"object"}}},{"properties":{"result":{"items":{"$ref":"#/components/schemas/mq_queue"},"type":"array"}},"required":["queue_id","queue_name","created_on","modified_on","producers_total_count","producers","consumers_total_count","consumers"],"type":"object"}]},{"$ref":"#/components/schemas/mq_api-response-common-failure"}]}}},"description":"List Queues response failure."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Queues","tags":["Queue"],"x-api-token-group":["Queues Write","Queues Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.queue.list"]}},"post":{"description":"Creates a new queue.","operationId":"queue-v2-create-queue","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"queue_name":"example-queue"},"properties":{"queue_name":{"type":"string"}},"required":["queue_name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/mq_queue_created"}],"type":"object"}},"required":["queue_id","queue_name","created_on","modified_on"],"type":"object"}]}}},"description":"Create Queue response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/mq_queue_created"}],"type":"object"}},"required":["queue_id","queue_name","created_on","modified_on"],"type":"object"}]},{"$ref":"#/components/schemas/mq_api-response-common-failure"}]}}},"description":"Create Queue response failure."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create Queue","tags":["Queue"],"x-api-token-group":["Queues Write","Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.queue.create"]}}},"/accounts/{account_id}/queues/{queue_id}":{"delete":{"description":"Deletes a queue.","operationId":"queue-v2-delete-queue","parameters":[{"in":"path","name":"queue_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"result":{}}}]}}},"description":"Delete Queue response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"result":{}}}]},{"$ref":"#/components/schemas/mq_api-response-common-failure"}]}}},"description":"Delete Queue response failure."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete Queue","tags":["Queue"],"x-api-token-group":["Queues Write","Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.queue.delete"]}},"get":{"description":"Get information about a specific queue.","operationId":"queue-v2-queue-details","parameters":[{"in":"path","name":"queue_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/mq_queue"}],"type":"object"}},"required":["queue_id","queue_name","created_on","modified_on"],"type":"object"}]}}},"description":"Queue Details response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/mq_queue"}],"type":"object"}},"required":["queue_id","queue_name","created_on","modified_on"],"type":"object"}]},{"$ref":"#/components/schemas/mq_api-response-common-failure"}]}}},"description":"Queue Details response failure."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Queue Details","tags":["Queue"],"x-api-token-group":["Queues Write","Queues Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.queue.read"]}},"put":{"description":"Updates a queue.","operationId":"queue-v2-update-queue","parameters":[{"in":"path","name":"queue_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"queue_name":"renamed-example-queue"}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/mq_queue_updated"}],"type":"object"}},"required":["queue_id","queue_name","created_on","modified_on"],"type":"object"}]}}},"description":"Update Queue response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/mq_queue_updated"}],"type":"object"}},"required":["queue_id","queue_name","created_on","modified_on"],"type":"object"}]},{"$ref":"#/components/schemas/mq_api-response-common-failure"}]}}},"description":"Update Queue response failure."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update Queue","tags":["Queue"],"x-api-token-group":["Queues Write","Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.queue.update"]}}},"/accounts/{account_id}/queues/{queue_id}/consumers":{"get":{"description":"Returns the consumers for a queue.","operationId":"queue-v2-list-queue-consumers","parameters":[{"in":"path","name":"queue_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"errors":{}}},{"properties":{"messages":{}}},{"properties":{"result_info":{"properties":{"count":{"example":1},"page":{"example":1},"per_page":{"example":100},"total_count":{"example":1},"total_pages":{"example":1}},"type":"object"}}},{"properties":{"result":{"items":{"$ref":"#/components/schemas/mq_consumer"},"type":"array"}},"required":["queue_name","created_on","settings"],"type":"object"}]}}},"description":"List Queue Consumers response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"errors":{}}},{"properties":{"messages":{}}},{"properties":{"result_info":{"properties":{"count":{"example":1},"page":{"example":1},"per_page":{"example":100},"total_count":{"example":1},"total_pages":{"example":1}},"type":"object"}}},{"properties":{"result":{"items":{"$ref":"#/components/schemas/mq_consumer"},"type":"array"}},"required":["queue_name","created_on","settings"],"type":"object"}]},{"$ref":"#/components/schemas/mq_api-response-common-failure"}]}}},"description":"List Queue Consumers response failure."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Queue Consumers","tags":["Queue"],"x-api-token-group":["Queues Write","Queues Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.queue.list"]}},"post":{"description":"Creates a new consumer for a queue.","operationId":"queue-v2-create-queue-consumer","parameters":[{"in":"path","name":"queue_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"dead_letter_queue":"example-dlq","environment":"production","script_name":"example-consumer","settings":{"batch_size":10,"max_retries":3,"max_wait_time_ms":5000},"type":"worker"}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/mq_consumer_created"}],"type":"object"}},"required":["queue_name","script_name","settings","dead_letter_queue","created_on"],"type":"object"}]}}},"description":"Create Queue Consumer response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/mq_consumer_created"}],"type":"object"}},"required":["queue_name","script_name","settings","dead_letter_queue","created_on"],"type":"object"}]},{"$ref":"#/components/schemas/mq_api-response-common-failure"}]}}},"description":"Create Queue Consumer response failure."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create Queue Consumer","tags":["Queue"],"x-api-token-group":["Queues Write","Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.queue.create"]}}},"/accounts/{account_id}/queues/{queue_id}/consumers/{consumer_id}":{"delete":{"description":"Deletes the consumer for a queue.","operationId":"queue-v2-delete-queue-consumer","parameters":[{"in":"path","name":"consumer_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}},{"in":"path","name":"queue_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"result":{}}}]}}},"description":"Delete Queue Consumer response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"result":{}}}]},{"$ref":"#/components/schemas/mq_api-response-common-failure"}]}}},"description":"Delete Queue Consumer response failure."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete Queue Consumer","tags":["Queue"],"x-api-token-group":["Queues Write","Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.queue.delete"]}},"put":{"description":"Updates the consumer for a queue, or creates one if it does not exist.","operationId":"queue-v2-update-queue-consumer","parameters":[{"in":"path","name":"consumer_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}},{"in":"path","name":"queue_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"dead_letter_queue":"updated-example-dlq","environment":"production","script_name":"example-consumer","settings":{"batch_size":100}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/mq_consumer_updated"}],"type":"object"}},"required":["queue_name","script_name","settings","dead_letter_queue","created_on"],"type":"object"}]}}},"description":"Update Queue Consumer response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/mq_consumer_updated"}],"type":"object"}},"required":["queue_name","script_name","settings","dead_letter_queue","created_on"],"type":"object"}]},{"$ref":"#/components/schemas/mq_api-response-common-failure"}]}}},"description":"Update Queue Consumer response failure."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update Queue Consumer","tags":["Queue"],"x-api-token-group":["Queues Write","Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.queue.update"]}}},"/accounts/{account_id}/queues/{queue_id}/messages/ack":{"post":{"description":"Acknowledge + Retry messages from a Queue.","operationId":"queue-v2-messages-ack","parameters":[{"in":"path","name":"queue_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"acks":{"items":{"properties":{"lease_id":{"description":"Lease ID for a message to acknowledge.","example":"eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIn0..Q8p21d7dceR6vUfwftONdQ.JVqZgAS-Zk7MqmqccYtTHeeMElNHaOMigeWdb8LyMOg.T2_HV99CYzGaQuhTyW8RsgbnpTRZHRM6N7UoSaAKeK0","type":"string"}},"type":"object"},"type":"array"},"retries":{"items":{"properties":{"delay_seconds":{"description":"The number of seconds to delay before making the message available for another attempt.","example":10,"type":"number"},"lease_id":{"description":"Lease ID for a message to retry.","example":"eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIn0..Q8p21d7dceR6vUfwftONdQ.JVqZgAS-Zk7MqmqccYtTHeeMElNHaOMigeWdb8LyMOg.T2_HV99CYzGaQuhTyW8RsgbnpTRZHRM6N7UoSaAKeK0","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"result":{"properties":{"ackCount":{"description":"The number of messages that were succesfully acknowledged.","example":5,"type":"number"},"retryCount":{"description":"The number of messages that were succesfully retried.","example":5,"type":"number"},"warnings":{"items":{"type":"string"},"type":"array"}},"type":"object"}}}]}}},"description":"Acknoweldge Queue Messages response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"result":{}}}]},{"$ref":"#/components/schemas/mq_api-response-common-failure"}]}}},"description":"Acknoweldge Queue Messages response failure."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Acknowledge + Retry Queue Messages","tags":["Queue"],"x-api-token-group":["Queues Write","Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.queue.update"]}}},"/accounts/{account_id}/queues/{queue_id}/messages/pull":{"post":{"description":"Pull a batch of messages from a Queue.","operationId":"queue-v2-messages-pull","parameters":[{"in":"path","name":"queue_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/mq_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"batch_size":{"$ref":"#/components/schemas/mq_batch_size"},"visibility_timeout":{"$ref":"#/components/schemas/mq_visibility_timeout"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/mq_queue_message"},"type":"array"}}}]}}},"description":"Pull Queue Messages response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/mq_api-response-collection"},{"properties":{"result":{}}}]},{"$ref":"#/components/schemas/mq_api-response-common-failure"}]}}},"description":"Pull Queue Messages response failure."}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Pull Queue Messages","tags":["Queue"],"x-api-token-group":["Queues Write","Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.queue.update"]}}},"/accounts/{account_id}/r2/buckets":{"get":{"description":"Lists all R2 buckets on your account","operationId":"r2-list-buckets","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/r2_account_identifier"}},{"in":"query","name":"name_contains","schema":{"description":"Bucket names to filter by. Only buckets with this phrase in their name will be returned.","example":"my-bucket","type":"string"}},{"in":"query","name":"start_after","schema":{"description":"Bucket name to start searching after. Buckets are ordered lexicographically.","example":"my-bucket","type":"string"}},{"in":"query","name":"per_page","schema":{"default":20,"description":"Maximum number of buckets to return in a single call","maximum":1000,"minimum":1,"type":"number"}},{"in":"query","name":"order","schema":{"description":"Field to order buckets by","enum":["name"],"type":"string"}},{"in":"query","name":"direction","schema":{"description":"Direction to order buckets","enum":["asc","desc"],"example":"desc","type":"string"}},{"in":"query","name":"cursor","schema":{"description":"Pagination cursor received during the last List Buckets call. R2 buckets are paginated using cursors instead of page numbers.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/r2_v4_response_list"},{"properties":{"result":{"properties":{"buckets":{"items":{"$ref":"#/components/schemas/r2_bucket"},"type":"array"}},"type":"object"}},"type":"object"}]}}},"description":"List Buckets response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_v4_response_failure"}}},"description":"List Buckets response failure"}},"security":[{"api_token":[]}],"summary":"List Buckets","tags":["R2 Bucket"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.r2.bucket.list"]}},"post":{"description":"Creates a new R2 bucket.","operationId":"r2-create-bucket","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/r2_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"example":"{\"name\": \"example-bucket\"}","properties":{"locationHint":{"$ref":"#/components/schemas/r2_bucket_location"},"name":{"$ref":"#/components/schemas/r2_bucket_name"},"storageClass":{"$ref":"#/components/schemas/r2_storage_class"}},"required":["name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/r2_v4_response"},{"properties":{"result":{"$ref":"#/components/schemas/r2_bucket"}},"type":"object"}]}}},"description":"Create Bucket response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_v4_response_failure"}}},"description":"Create Bucket response failure"}},"security":[{"api_token":[]}],"summary":"Create Bucket","tags":["R2 Bucket"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.r2.bucket.create"]}}},"/accounts/{account_id}/r2/buckets/{bucket_name}":{"delete":{"description":"Deletes an existing R2 bucket.","operationId":"r2-delete-bucket","parameters":[{"in":"path","name":"bucket_name","required":true,"schema":{"$ref":"#/components/schemas/r2_bucket_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/r2_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_v4_response"}}},"description":"Delete Bucket response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_v4_response_failure"}}},"description":"Delete Bucket response failure"}},"security":[{"api_token":[]}],"summary":"Delete Bucket","tags":["R2 Bucket"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.r2.bucket.delete"]}},"get":{"description":"Gets metadata for an existing R2 bucket.","operationId":"r2-get-bucket","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/r2_account_identifier"}},{"in":"path","name":"bucket_name","required":true,"schema":{"$ref":"#/components/schemas/r2_bucket_name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/r2_v4_response"},{"properties":{"result":{"$ref":"#/components/schemas/r2_bucket"}},"type":"object"}]}}},"description":"Get Bucket response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_v4_response_failure"}}},"description":"Get Bucket response failure"}},"security":[{"api_token":[]}],"summary":"Get Bucket","tags":["R2 Bucket"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.r2.bucket.read"]}}},"/accounts/{account_id}/r2/buckets/{bucket_name}/domains/custom":{"get":{"description":"Gets a list of all custom domains registered with an existing R2 bucket.","operationId":"r2-list-custom-domains","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/r2_account_identifier"}},{"in":"path","name":"bucket_name","required":true,"schema":{"$ref":"#/components/schemas/r2_bucket_name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/r2_v4_response"},{"properties":{"result":{"$ref":"#/components/schemas/r2_list_custom_domains_response"}},"type":"object"}]}}},"description":"List Custom Domains response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_v4_response_failure"}}},"description":"List Custom Domains response failure"}},"security":[{"api_token":[]}],"summary":"List Custom Domains of Bucket","tags":["R2 Bucket"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.r2.bucket.read"]}},"post":{"description":"Register a new custom domain for an existing R2 bucket.","operationId":"r2-add-custom-domain","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/r2_account_identifier"}},{"in":"path","name":"bucket_name","required":true,"schema":{"$ref":"#/components/schemas/r2_bucket_name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_add_custom_domain_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/r2_v4_response"},{"properties":{"result":{"$ref":"#/components/schemas/r2_add_custom_domain_response"}},"type":"object"}]}}},"description":"Add Custom Domain response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_v4_response_failure"}}},"description":"Add Custom Domain response failure"}},"security":[{"api_token":[]}],"summary":"Attach Custom Domain To Bucket","tags":["R2 Bucket"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.r2.bucket.write"]}}},"/accounts/{account_id}/r2/buckets/{bucket_name}/domains/custom/{domain_name}":{"delete":{"description":"Remove custom domain registration from an existing R2 bucket","operationId":"r2-delete-custom-domain","parameters":[{"in":"path","name":"bucket_name","required":true,"schema":{"$ref":"#/components/schemas/r2_bucket_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/r2_account_identifier"}},{"in":"path","name":"domain_name","required":true,"schema":{"$ref":"#/components/schemas/r2_domain_name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/r2_v4_response"},{"properties":{"result":{"$ref":"#/components/schemas/r2_remove_custom_domain_response"}},"type":"object"}]}}},"description":"Delete Custom Domain response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_v4_response_failure"}}},"description":"Delete Custom Domain response failure"}},"security":[{"api_token":[]}],"summary":"Remove Custom Domain From Bucket","tags":["R2 Bucket"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.r2.bucket.delete"]}},"put":{"description":"Edit the configuration for a custom domain on an existing R2 bucket.","operationId":"r2-edit-custom-domain-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/r2_account_identifier"}},{"in":"path","name":"bucket_name","required":true,"schema":{"$ref":"#/components/schemas/r2_bucket_name"}},{"in":"path","name":"domain_name","required":true,"schema":{"$ref":"#/components/schemas/r2_domain_name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_edit_custom_domain_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/r2_v4_response"},{"properties":{"result":{"allOf":[{"$ref":"#/components/schemas/r2_edit_custom_domain_response"}]}},"type":"object"}]}}},"description":"Edit Custom Domain Configuration response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_v4_response_failure"}}},"description":"Edit Custom Domain Configuration response failure"}},"security":[{"api_token":[]}],"summary":"Configure Custom Domain Settings","tags":["R2 Bucket"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.r2.bucket.write"]}}},"/accounts/{account_id}/r2/buckets/{bucket_name}/domains/managed":{"get":{"description":"Gets state of public access over the bucket's R2-managed (r2.dev) domain.","operationId":"r2-get-bucket-public-policy","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/r2_account_identifier"}},{"in":"path","name":"bucket_name","required":true,"schema":{"$ref":"#/components/schemas/r2_bucket_name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/r2_v4_response"},{"properties":{"result":{"$ref":"#/components/schemas/r2_managed_domain_response"}},"type":"object"}]}}},"description":"Get Managed Subdomain response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_v4_response_failure"}}},"description":"Get Managed Subdomain response failure"}},"security":[{"api_token":[]}],"summary":"Get r2.dev Domain of Bucket","tags":["R2 Bucket"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.r2.bucket.read"]}},"put":{"description":"Updates state of public access over the bucket's R2-managed (r2.dev) domain.","operationId":"r2-put-bucket-public-policy","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/r2_account_identifier"}},{"in":"path","name":"bucket_name","required":true,"schema":{"$ref":"#/components/schemas/r2_bucket_name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_edit_managed_domain_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/r2_v4_response"},{"properties":{"result":{"$ref":"#/components/schemas/r2_managed_domain_response"}},"type":"object"}]}}},"description":"Update Managed Subdomain response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_v4_response_failure"}}},"description":"Update Managed Subdomain response failure"}},"security":[{"api_token":[]}],"summary":"Update r2.dev Domain of Bucket","tags":["R2 Bucket"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.r2.bucket.write"]}}},"/accounts/{account_id}/r2/buckets/{bucket_name}/sippy":{"delete":{"description":"Disables Sippy on this bucket","operationId":"r2-delete-bucket-sippy-config","parameters":[{"in":"path","name":"bucket_name","required":true,"schema":{"$ref":"#/components/schemas/r2_bucket_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/r2_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/r2_v4_response"},{"properties":{"result":{"properties":{"enabled":{"enum":[false],"type":"boolean"}},"type":"object"}},"type":"object"}]}}},"description":"Delete Sippy Configuration response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_v4_response_failure"}}},"description":"Delete Sippy Configuration response failure"}},"security":[{"api_token":[]}],"summary":"Disable Sippy","tags":["R2 Bucket"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.r2.bucket.delete"]}},"get":{"description":"Gets configuration for Sippy for an existing R2 bucket.","operationId":"r2-get-bucket-sippy-config","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/r2_account_identifier"}},{"in":"path","name":"bucket_name","required":true,"schema":{"$ref":"#/components/schemas/r2_bucket_name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/r2_v4_response"},{"properties":{"result":{"$ref":"#/components/schemas/r2_sippy"}},"type":"object"}]}}},"description":"Get Sippy Configuration response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_v4_response_failure"}}},"description":"Get Sippy Configuration response failure"}},"security":[{"api_token":[]}],"summary":"Get Sippy Configuration","tags":["R2 Bucket"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.r2.bucket.read"]}},"put":{"description":"Sets configuration for Sippy for an existing R2 bucket.","operationId":"r2-put-bucket-sippy-config","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/r2_account_identifier"}},{"in":"path","name":"bucket_name","required":true,"schema":{"$ref":"#/components/schemas/r2_bucket_name"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/r2_enable_sippy_aws"},{"$ref":"#/components/schemas/r2_enable_sippy_gcs"}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/r2_v4_response"},{"properties":{"result":{"$ref":"#/components/schemas/r2_sippy"}},"type":"object"}]}}},"description":"Set Sippy Configuration response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_v4_response_failure"}}},"description":"Get Sippy Configuration response failure"}},"security":[{"api_token":[]}],"summary":"Enable Sippy","tags":["R2 Bucket"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.r2.bucket.write"]}}},"/accounts/{account_id}/r2/temp-access-credentials":{"post":{"description":"Creates temporary access credentials on a bucket that can be optionally scoped to prefixes or objects.","operationId":"r2-create-temp-access-credentials","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/r2_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_temp_access_creds_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/r2_v4_response"},{"properties":{"result":{"$ref":"#/components/schemas/r2_temp_access_creds_response"}},"type":"object"}]}}},"description":"Create temporary access credentials response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/r2_v4_response_failure"}}},"description":"Create temporary access credentials response failure"}},"security":[{"api_token":[]}],"summary":"Create Temporary Access Credentials","tags":["R2 Bucket"]}},"/accounts/{account_id}/registrar/domains":{"get":{"description":"List domains handled by Registrar.","operationId":"registrar-domains-list-domains","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/registrar-api_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/registrar-api_domain_response_collection"}}},"description":"List domains response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/registrar-api_domain_response_collection"},{"$ref":"#/components/schemas/registrar-api_api-response-common-failure"}]}}},"description":"List domains response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List domains","tags":["Registrar Domains"]}},"/accounts/{account_id}/registrar/domains/{domain_name}":{"get":{"description":"Show individual domain.","operationId":"registrar-domains-get-domain","parameters":[{"in":"path","name":"domain_name","required":true,"schema":{"$ref":"#/components/schemas/registrar-api_domain_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/registrar-api_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/registrar-api_domain_response_single"}}},"description":"Get domain response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/registrar-api_domain_response_single"},{"$ref":"#/components/schemas/registrar-api_api-response-common-failure"}]}}},"description":"Get domain response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get domain","tags":["Registrar Domains"]},"put":{"description":"Update individual domain.","operationId":"registrar-domains-update-domain","parameters":[{"in":"path","name":"domain_name","required":true,"schema":{"$ref":"#/components/schemas/registrar-api_domain_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/registrar-api_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/registrar-api_domain_update_properties"}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/registrar-api_domain_response_single"}}},"description":"Update domain response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/registrar-api_domain_response_single"},{"$ref":"#/components/schemas/registrar-api_api-response-common-failure"}]}}},"description":"Update domain response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update domain","tags":["Registrar Domains"]}},"/accounts/{account_id}/request-tracer/trace":{"post":{"operationId":"account-request-tracer-request-trace","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/request-tracer_identifier"}}],"requestBody":{"content":{"application/json":{"example":{"body":{"base64":"c29tZV9yZXF1ZXN0X2JvZHk="},"context":{"geoloc":{"city":"London"},"skip_challenge":true},"cookies":{"cookie_name_1":"cookie_value_1","cookie_name_2":"cookie_value_2"},"headers":{"header_name_1":"header_value_1","header_name_2":"header_value_2"},"method":"PUT","protocol":"HTTP/1.1","url":"https://some.zone/some_path"},"schema":{"properties":{"body":{"properties":{"base64":{"description":"Base64 encoded request body","example":"c29tZV9yZXF1ZXN0X2JvZHk=","type":"string"},"json":{"description":"Arbitrary json as request body","type":"object"},"plain_text":{"description":"Request body as plain text","type":"string"}},"type":"object"},"context":{"description":"Additional request parameters","properties":{"bot_score":{"description":"Bot score used for evaluating tracing request processing","type":"integer"},"geoloc":{"description":"Geodata for tracing request","properties":{"city":{"example":"London","type":"string"},"continent":{"type":"string"},"is_eu_country":{"type":"boolean"},"iso_code":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"postal_code":{"type":"string"},"region_code":{"type":"string"},"subdivision_2_iso_code":{"type":"string"},"timezone":{"type":"string"}},"type":"object"},"skip_challenge":{"description":"Whether to skip any challenges for tracing request (e.g.: captcha)","example":true,"type":"boolean"},"threat_score":{"description":"Threat score used for evaluating tracing request processing","type":"integer"}},"type":"object"},"cookies":{"additionalProperties":{"type":"string"},"description":"Cookies added to tracing request","example":{"cookie_name_1":"cookie_value_1","cookie_name_2":"cookie_value_2"},"type":"object"},"headers":{"additionalProperties":{"type":"string"},"description":"Headers added to tracing request","example":{"header_name_1":"header_value_1","header_name_2":"header_value_2"},"type":"object"},"method":{"description":"HTTP Method of tracing request","example":"PUT","type":"string"},"protocol":{"description":"HTTP Protocol of tracing request","example":"HTTP/1.1","type":"string"},"skip_response":{"description":"Skip sending the request to the Origin server after all rules evaluation","type":"boolean"},"url":{"description":"URL to which perform tracing request","example":"https://some.zone/some_path","type":"string"}},"required":["url","method"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/request-tracer_api-response-common"},{"properties":{"result":{"description":"Trace result with an origin status code","properties":{"status_code":{"description":"HTTP Status code of zone response","type":"integer"},"trace":{"$ref":"#/components/schemas/request-tracer_trace"}},"type":"object"}},"type":"object"}],"type":"object"}}},"description":"Request Trace response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/request-tracer_api-response-common-failure"}]}}},"description":"Request Trace response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Request Trace","tags":["Account Request Tracer"],"x-api-token-group":["Allow Request Tracer Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/roles":{"get":{"description":"Get all available roles for an account.","operationId":"account-roles-list-roles","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/iam_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_collection_role_response"}}},"description":"List Roles response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"List Roles response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Roles","tags":["Account Roles"],"x-cfPermissionsRequired":{"enum":["#organization:read"]}}},"/accounts/{account_id}/roles/{role_id}":{"get":{"description":"Get information about a specific role for an account.","operationId":"account-roles-role-details","parameters":[{"in":"path","name":"role_id","required":true,"schema":{"$ref":"#/components/schemas/iam_role_components-schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/iam_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_single_role_response"}}},"description":"Role Details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Role Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Role Details","tags":["Account Roles"],"x-cfPermissionsRequired":{"enum":["#organization:read"]}}},"/accounts/{account_id}/rules/lists":{"get":{"description":"Fetches all lists in the account.","operationId":"lists-get-lists","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/lists_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/lists_lists-response-collection"}}},"description":"Get lists response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/lists_lists-response-collection"},{"$ref":"#/components/schemas/lists_api-response-common-failure"}]}}},"description":"Get lists response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get lists","tags":["Lists"],"x-api-token-group":["Account Rule Lists Write","Account Rule Lists Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Creates a new list of the specified type.","operationId":"lists-create-a-list","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/lists_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"$ref":"#/components/schemas/lists_description"},"kind":{"$ref":"#/components/schemas/lists_kind"},"name":{"$ref":"#/components/schemas/lists_name"}},"required":["name","kind"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/lists_list-response-collection"}}},"description":"Create a list response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/lists_list-response-collection"},{"$ref":"#/components/schemas/lists_api-response-common-failure"}]}}},"description":"Create a list response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a list","tags":["Lists"],"x-api-token-group":["Account Rule Lists Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/rules/lists/{list_id}":{"delete":{"description":"Deletes a specific list and all its items.","operationId":"lists-delete-a-list","parameters":[{"in":"path","name":"list_id","required":true,"schema":{"$ref":"#/components/schemas/lists_list_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/lists_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/lists_list-delete-response-collection"}}},"description":"Delete a list response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/lists_list-delete-response-collection"},{"$ref":"#/components/schemas/lists_api-response-common-failure"}]}}},"description":"Delete a list response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a list","tags":["Lists"],"x-api-token-group":["Account Rule Lists Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Fetches the details of a list.","operationId":"lists-get-a-list","parameters":[{"in":"path","name":"list_id","required":true,"schema":{"$ref":"#/components/schemas/lists_list_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/lists_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/lists_list-response-collection"}}},"description":"Get a list response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/lists_list-response-collection"},{"$ref":"#/components/schemas/lists_api-response-common-failure"}]}}},"description":"Get a list response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a list","tags":["Lists"],"x-api-token-group":["Account Rule Lists Write","Account Rule Lists Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Updates the description of a list.","operationId":"lists-update-a-list","parameters":[{"in":"path","name":"list_id","required":true,"schema":{"$ref":"#/components/schemas/lists_list_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/lists_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"$ref":"#/components/schemas/lists_description"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/lists_list-response-collection"}}},"description":"Update a list response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/lists_list-response-collection"},{"$ref":"#/components/schemas/lists_api-response-common-failure"}]}}},"description":"Update a list response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a list","tags":["Lists"],"x-api-token-group":["Account Rule Lists Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/rules/lists/{list_id}/items":{"delete":{"description":"Removes one or more items from a list.\n\nThis operation is asynchronous. To get current the operation status, invoke the [Get bulk operation status](/operations/lists-get-bulk-operation-status) endpoint with the returned `operation_id`.","operationId":"lists-delete-list-items","parameters":[{"in":"path","name":"list_id","required":true,"schema":{"$ref":"#/components/schemas/lists_list_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/lists_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"items":{"items":{"properties":{"id":{"$ref":"#/components/schemas/lists_item_id"}}},"minItems":1,"type":"array"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/lists_lists-async-response"}}},"description":"Delete list items response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/lists_lists-async-response"},{"$ref":"#/components/schemas/lists_api-response-common-failure"}]}}},"description":"Delete list items response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete list items","tags":["Lists"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Fetches all the items in the list.","operationId":"lists-get-list-items","parameters":[{"in":"path","name":"list_id","required":true,"schema":{"$ref":"#/components/schemas/lists_list_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/lists_identifier"}},{"in":"query","name":"cursor","schema":{"description":"The pagination cursor. An opaque string token indicating the position from which to continue when requesting the next/previous set of records. Cursor values are provided under `result_info.cursors` in the response. You should make no assumptions about a cursor's content or length.","example":"zzz","type":"string"}},{"in":"query","name":"per_page","schema":{"description":"Amount of results to include in each paginated response. A non-negative 32 bit integer.","maximum":500,"minimum":1,"type":"integer"}},{"in":"query","name":"search","schema":{"description":"A search query to filter returned items. Its meaning depends on the list type: IP addresses must start with the provided string, hostnames and bulk redirects must contain the string, and ASNs must match the string exactly.","example":"1.1.1.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/lists_items-list-response-collection"}}},"description":"Get list items response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/lists_items-list-response-collection"},{"$ref":"#/components/schemas/lists_api-response-common-failure"}]}}},"description":"Get list items response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get list items","tags":["Lists"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Appends new items to the list.\n\nThis operation is asynchronous. To get current the operation status, invoke the [Get bulk operation status](/operations/lists-get-bulk-operation-status) endpoint with the returned `operation_id`.","operationId":"lists-create-list-items","parameters":[{"in":"path","name":"list_id","required":true,"schema":{"$ref":"#/components/schemas/lists_list_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/lists_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/lists_items-update-request-collection"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/lists_lists-async-response"}}},"description":"Create list items response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/lists_lists-async-response"},{"$ref":"#/components/schemas/lists_api-response-common-failure"}]}}},"description":"Create list items response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create list items","tags":["Lists"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Removes all existing items from the list and adds the provided items to the list.\n\nThis operation is asynchronous. To get current the operation status, invoke the [Get bulk operation status](/operations/lists-get-bulk-operation-status) endpoint with the returned `operation_id`.","operationId":"lists-update-all-list-items","parameters":[{"in":"path","name":"list_id","required":true,"schema":{"$ref":"#/components/schemas/lists_list_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/lists_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/lists_items-update-request-collection"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/lists_lists-async-response"}}},"description":"Update all list items response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/lists_lists-async-response"},{"$ref":"#/components/schemas/lists_api-response-common-failure"}]}}},"description":"Update all list items response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update all list items","tags":["Lists"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/rulesets":{"get":{"description":"Fetches all rulesets at the account level.","operationId":"listAccountRulesets","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_AccountId"}}],"responses":{"200":{"$ref":"#/components/responses/rulesets_Rulesets"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"List account rulesets","tags":["Account Rulesets"],"x-api-token-group":["Account WAF Read","Account Rulesets Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Creates a ruleset at the account level.","operationId":"createAccountRuleset","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_AccountId"}}],"requestBody":{"$ref":"#/components/requestBodies/rulesets_CreateRuleset"},"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Create an account ruleset","tags":["Account Rulesets"],"x-api-token-group":["Mass URL Redirects Write","Magic Firewall Write","L4 DDoS Managed Ruleset Write","Transform Rules Write","Select Configuration Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/rulesets/phases/{ruleset_phase}/entrypoint":{"get":{"description":"Fetches the latest version of the account entry point ruleset for a given phase.","operationId":"getAccountEntrypointRuleset","parameters":[{"in":"path","name":"ruleset_phase","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetPhase"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_AccountId"}}],"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Get an account entry point ruleset","tags":["Account Rulesets"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Updates an account entry point ruleset, creating a new version.","operationId":"updateAccountEntrypointRuleset","parameters":[{"in":"path","name":"ruleset_phase","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetPhase"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_AccountId"}}],"requestBody":{"$ref":"#/components/requestBodies/rulesets_UpdateEntrypointRuleset"},"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Update an account entry point ruleset","tags":["Account Rulesets"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/rulesets/phases/{ruleset_phase}/entrypoint/versions":{"get":{"description":"Fetches the versions of an account entry point ruleset.","operationId":"listAccountEntrypointRulesetVersions","parameters":[{"in":"path","name":"ruleset_phase","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetPhase"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_AccountId"}}],"responses":{"200":{"$ref":"#/components/responses/rulesets_Rulesets"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"List an account entry point ruleset's versions","tags":["Account Rulesets"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/rulesets/phases/{ruleset_phase}/entrypoint/versions/{ruleset_version}":{"get":{"description":"Fetches a specific version of an account entry point ruleset.","operationId":"getAccountEntrypointRulesetVersion","parameters":[{"in":"path","name":"ruleset_version","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetVersion"}},{"in":"path","name":"ruleset_phase","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetPhase"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_AccountId"}}],"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Get an account entry point ruleset version","tags":["Account Rulesets"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/rulesets/{ruleset_id}":{"delete":{"description":"Deletes all versions of an existing account ruleset.","operationId":"deleteAccountRuleset","parameters":[{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetId"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_AccountId"}}],"responses":{"204":{"$ref":"#/components/responses/rulesets_Empty"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Delete an account ruleset","tags":["Account Rulesets"],"x-api-token-group":["Mass URL Redirects Write","Magic Firewall Write","L4 DDoS Managed Ruleset Write","Transform Rules Write","Select Configuration Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Fetches the latest version of an account ruleset.","operationId":"getAccountRuleset","parameters":[{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetId"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_AccountId"}}],"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Get an account ruleset","tags":["Account Rulesets"],"x-api-token-group":["Mass URL Redirects Write","Mass URL Redirects Read","Magic Firewall Write","Magic Firewall Read","L4 DDoS Managed Ruleset Write","L4 DDoS Managed Ruleset Read","Transform Rules Write","Transform Rules Read","Select Configuration Write","Select Configuration Read","Account WAF Read","Account Rulesets Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Updates an account ruleset, creating a new version.","operationId":"updateAccountRuleset","parameters":[{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetId"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_AccountId"}}],"requestBody":{"$ref":"#/components/requestBodies/rulesets_UpdateRuleset"},"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Update an account ruleset","tags":["Account Rulesets"],"x-api-token-group":["Mass URL Redirects Write","Magic Firewall Write","L4 DDoS Managed Ruleset Write","Transform Rules Write","Select Configuration Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/rulesets/{ruleset_id}/rules":{"post":{"description":"Adds a new rule to an account ruleset. The rule will be added to the end of the existing list of rules in the ruleset by default.","operationId":"createAccountRulesetRule","parameters":[{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetId"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_AccountId"}}],"requestBody":{"$ref":"#/components/requestBodies/rulesets_Rule"},"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Create an account ruleset rule","tags":["Account Rulesets"],"x-api-token-group":["Mass URL Redirects Write","Magic Firewall Write","L4 DDoS Managed Ruleset Write","Transform Rules Write","Select Configuration Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/rulesets/{ruleset_id}/rules/{rule_id}":{"delete":{"description":"Deletes an existing rule from an account ruleset.","operationId":"deleteAccountRulesetRule","parameters":[{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RuleId"}},{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetId"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_AccountId"}}],"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Delete an account ruleset rule","tags":["Account Rulesets"],"x-api-token-group":["Mass URL Redirects Write","Magic Firewall Write","L4 DDoS Managed Ruleset Write","Transform Rules Write","Select Configuration Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Updates an existing rule in an account ruleset.","operationId":"updateAccountRulesetRule","parameters":[{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RuleId"}},{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetId"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_AccountId"}}],"requestBody":{"$ref":"#/components/requestBodies/rulesets_Rule"},"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Update an account ruleset rule","tags":["Account Rulesets"],"x-api-token-group":["Mass URL Redirects Write","Magic Firewall Write","L4 DDoS Managed Ruleset Write","Transform Rules Write","Select Configuration Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/rulesets/{ruleset_id}/versions":{"get":{"description":"Fetches the versions of an account ruleset.","operationId":"listAccountRulesetVersions","parameters":[{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetId"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_AccountId"}}],"responses":{"200":{"$ref":"#/components/responses/rulesets_Rulesets"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"List an account ruleset's versions","tags":["Account Rulesets"],"x-api-token-group":["Mass URL Redirects Write","Mass URL Redirects Read","Magic Firewall Write","Magic Firewall Read","L4 DDoS Managed Ruleset Write","L4 DDoS Managed Ruleset Read","Transform Rules Write","Transform Rules Read","Select Configuration Write","Select Configuration Read","Account WAF Read","Account Rulesets Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/rulesets/{ruleset_id}/versions/{ruleset_version}":{"delete":{"description":"Deletes an existing version of an account ruleset.","operationId":"deleteAccountRulesetVersion","parameters":[{"in":"path","name":"ruleset_version","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetVersion"}},{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetId"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_AccountId"}}],"responses":{"204":{"$ref":"#/components/responses/rulesets_Empty"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Delete an account ruleset version","tags":["Account Rulesets"],"x-api-token-group":["Mass URL Redirects Write","Magic Firewall Write","L4 DDoS Managed Ruleset Write","Transform Rules Write","Select Configuration Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Fetches a specific version of an account ruleset.","operationId":"getAccountRulesetVersion","parameters":[{"in":"path","name":"ruleset_version","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetVersion"}},{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetId"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_AccountId"}}],"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Get an account ruleset version","tags":["Account Rulesets"],"x-api-token-group":["Mass URL Redirects Write","Mass URL Redirects Read","Magic Firewall Write","Magic Firewall Read","L4 DDoS Managed Ruleset Write","L4 DDoS Managed Ruleset Read","Transform Rules Write","Transform Rules Read","Select Configuration Write","Select Configuration Read","Account WAF Read","Account Rulesets Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/rulesets/{ruleset_id}/versions/{ruleset_version}/by_tag/{rule_tag}":{"get":{"description":"Fetches the rules of a managed account ruleset version for a given tag.","operationId":"listAccountRulesetVersionRulesByTag","parameters":[{"in":"path","name":"rule_tag","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RuleCategory"}},{"in":"path","name":"ruleset_version","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetVersion"}},{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetId"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_AccountId"}}],"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"List an account ruleset version's rules by tag","tags":["Account Rulesets"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/rum/site_info":{"post":{"description":"Creates a new Web Analytics site.","operationId":"web-analytics-create-site","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rum_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_create-site-request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_site-response-single"}}},"description":"Created Web Analytics site"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create a Web Analytics site","tags":["Web Analytics"],"x-api-token-group":["Account Settings Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/rum/site_info/list":{"get":{"description":"Lists all Web Analytics sites of an account.","operationId":"web-analytics-list-sites","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rum_identifier"}},{"in":"query","name":"per_page","schema":{"$ref":"#/components/schemas/rum_per_page"}},{"in":"query","name":"page","schema":{"$ref":"#/components/schemas/rum_page"}},{"in":"query","name":"order_by","schema":{"$ref":"#/components/schemas/rum_order_by"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_sites-response-collection"}}},"description":"List of Web Analytics sites"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Web Analytics sites","tags":["Web Analytics"],"x-api-token-group":["Account Settings Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/rum/site_info/{site_id}":{"delete":{"description":"Deletes an existing Web Analytics site.","operationId":"web-analytics-delete-site","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rum_identifier"}},{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/rum_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_site-tag-response-single"}}},"description":"Deleted Web Analytics site identifier"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete a Web Analytics site","tags":["Web Analytics"],"x-api-token-group":["Account Settings Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Retrieves a Web Analytics site.","operationId":"web-analytics-get-site","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rum_identifier"}},{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/rum_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_site-response-single"}}},"description":"Web Analytics site"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get a Web Analytics site","tags":["Web Analytics"],"x-api-token-group":["Account Settings Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Updates an existing Web Analytics site.","operationId":"web-analytics-update-site","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rum_identifier"}},{"in":"path","name":"site_id","required":true,"schema":{"$ref":"#/components/schemas/rum_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_create-site-request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_site-response-single"}}},"description":"Updated Web Analytics site"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update a Web Analytics site","tags":["Web Analytics"],"x-api-token-group":["Account Settings Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/rum/v2/{ruleset_id}/rule":{"post":{"description":"Creates a new rule in a Web Analytics ruleset.","operationId":"web-analytics-create-rule","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rum_identifier"}},{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rum_ruleset_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_create-rule-request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_rule-response-single"}}},"description":"Created Web Analytics rule"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create a Web Analytics rule","tags":["Web Analytics"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/accounts/{account_id}/rum/v2/{ruleset_id}/rule/{rule_id}":{"delete":{"description":"Deletes an existing rule from a Web Analytics ruleset.","operationId":"web-analytics-delete-rule","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rum_identifier"}},{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rum_ruleset_identifier"}},{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/rum_rule_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_rule-id-response-single"}}},"description":"Deleted Web Analytics rule identifier"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete a Web Analytics rule","tags":["Web Analytics"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"put":{"description":"Updates a rule in a Web Analytics ruleset.","operationId":"web-analytics-update-rule","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rum_identifier"}},{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rum_ruleset_identifier"}},{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/rum_rule_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_create-rule-request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_rule-response-single"}}},"description":"Updated Web Analytics rule"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update a Web Analytics rule","tags":["Web Analytics"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/accounts/{account_id}/rum/v2/{ruleset_id}/rules":{"get":{"description":"Lists all the rules in a Web Analytics ruleset.","operationId":"web-analytics-list-rules","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rum_identifier"}},{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rum_ruleset_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_rules-response-collection"}}},"description":"List of Web Analytics rules in the ruleset"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List rules in Web Analytics ruleset","tags":["Web Analytics"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Modifies one or more rules in a Web Analytics ruleset with a single request.","operationId":"web-analytics-modify-rules","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/rum_identifier"}},{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rum_ruleset_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_modify-rules-request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_rules-response-collection"}}},"description":"List of modified Web Analytics rules"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update Web Analytics rules","tags":["Web Analytics"],"x-api-token-group":["Account Settings Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/accounts/{account_id}/secondary_dns/acls":{"get":{"description":"List ACLs.","operationId":"secondary-dns-(-acl)-list-ac-ls","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_components-schemas-response_collection"}}},"description":"List ACLs response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_components-schemas-response_collection"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"List ACLs response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List ACLs","tags":["Secondary DNS (ACL)"],"x-cfPermissionsRequired":{"enum":["#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Create ACL.","operationId":"secondary-dns-(-acl)-create-acl","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"ip_range":{"$ref":"#/components/schemas/secondary-dns_ip_range"},"name":{"$ref":"#/components/schemas/secondary-dns_acl_components-schemas-name"}},"required":["name","ip_range"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_components-schemas-single_response"}}},"description":"Create ACL response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_components-schemas-single_response"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Create ACL response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create ACL","tags":["Secondary DNS (ACL)"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit","#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/secondary_dns/acls/{acl_id}":{"delete":{"description":"Delete ACL.","operationId":"secondary-dns-(-acl)-delete-acl","parameters":[{"in":"path","name":"acl_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_components-schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_account_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_components-schemas-id_response"}}},"description":"Delete ACL response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_components-schemas-id_response"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Delete ACL response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete ACL","tags":["Secondary DNS (ACL)"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit","#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"description":"Get ACL.","operationId":"secondary-dns-(-acl)-acl-details","parameters":[{"in":"path","name":"acl_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_components-schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_components-schemas-single_response"}}},"description":"ACL Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_components-schemas-single_response"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"ACL Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"ACL Details","tags":["Secondary DNS (ACL)"],"x-cfPermissionsRequired":{"enum":["#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Modify ACL.","operationId":"secondary-dns-(-acl)-update-acl","parameters":[{"in":"path","name":"acl_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_components-schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_acl"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_components-schemas-single_response"}}},"description":"Update ACL response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_components-schemas-single_response"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Update ACL response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update ACL","tags":["Secondary DNS (ACL)"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit","#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/secondary_dns/peers":{"get":{"description":"List Peers.","operationId":"secondary-dns-(-peer)-list-peers","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_schemas-response_collection"}}},"description":"List Peers response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_schemas-response_collection"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"List Peers response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Peers","tags":["Secondary DNS (Peer)"],"x-cfPermissionsRequired":{"enum":["#dns_records:read","#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Create Peer.","operationId":"secondary-dns-(-peer)-create-peer","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"name":{"$ref":"#/components/schemas/secondary-dns_components-schemas-name"}},"required":["name"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_schemas-single_response"}}},"description":"Create Peer response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_schemas-single_response"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Create Peer response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create Peer","tags":["Secondary DNS (Peer)"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit","#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/secondary_dns/peers/{peer_id}":{"delete":{"description":"Delete Peer.","operationId":"secondary-dns-(-peer)-delete-peer","parameters":[{"in":"path","name":"peer_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_components-schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_account_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_components-schemas-id_response"}}},"description":"Delete Peer response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_components-schemas-id_response"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Delete Peer response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Peer","tags":["Secondary DNS (Peer)"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit","#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"description":"Get Peer.","operationId":"secondary-dns-(-peer)-peer-details","parameters":[{"in":"path","name":"peer_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_components-schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_schemas-single_response"}}},"description":"Peer Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_schemas-single_response"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Peer Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Peer Details","tags":["Secondary DNS (Peer)"],"x-cfPermissionsRequired":{"enum":["#dns_records:read","#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Modify Peer.","operationId":"secondary-dns-(-peer)-update-peer","parameters":[{"in":"path","name":"peer_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_components-schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_peer"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_schemas-single_response"}}},"description":"Update Peer response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_schemas-single_response"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Update Peer response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Peer","tags":["Secondary DNS (Peer)"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit","#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/secondary_dns/tsigs":{"get":{"description":"List TSIGs.","operationId":"secondary-dns-(-tsig)-list-tsi-gs","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_response_collection"}}},"description":"List TSIGs response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_response_collection"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"List TSIGs response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List TSIGs","tags":["Secondary DNS (TSIG)"],"x-cfPermissionsRequired":{"enum":["#dns_records:read","#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Create TSIG.","operationId":"secondary-dns-(-tsig)-create-tsig","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_tsig"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_single_response"}}},"description":"Create TSIG response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_single_response"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Create TSIG response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create TSIG","tags":["Secondary DNS (TSIG)"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit","#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/secondary_dns/tsigs/{tsig_id}":{"delete":{"description":"Delete TSIG.","operationId":"secondary-dns-(-tsig)-delete-tsig","parameters":[{"in":"path","name":"tsig_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_account_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_schemas-id_response"}}},"description":"Delete TSIG response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_schemas-id_response"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Delete TSIG response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete TSIG","tags":["Secondary DNS (TSIG)"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit","#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"description":"Get TSIG.","operationId":"secondary-dns-(-tsig)-tsig-details","parameters":[{"in":"path","name":"tsig_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_single_response"}}},"description":"TSIG Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_single_response"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"TSIG Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"TSIG Details","tags":["Secondary DNS (TSIG)"],"x-cfPermissionsRequired":{"enum":["#dns_records:read","#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Modify TSIG.","operationId":"secondary-dns-(-tsig)-update-tsig","parameters":[{"in":"path","name":"tsig_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_tsig"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_single_response"}}},"description":"Update TSIG response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_single_response"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Update TSIG response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update TSIG","tags":["Secondary DNS (TSIG)"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit","#organization:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/accounts/{account_id}/storage/analytics":{"get":{"description":"Retrieves Workers KV request metrics for the given account.","operationId":"workers-kv-request-analytics-query-request-analytics","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_identifier"}},{"in":"query","name":"query","schema":{"allOf":[{"$ref":"#/components/schemas/workers-kv_query"},{"properties":{"dimensions":{"example":["accountId","responseCode"],"items":{"enum":["accountId","responseCode","requestType"]}},"filters":{"example":"requestType==read AND responseCode!=200"},"metrics":{"default":"[\"requests\"]","example":["requests","readKiB"],"items":{"enum":["requests","writeKiB","readKiB"]}},"sort":{"example":["+requests","-responseCode"]}}}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers-kv_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers-kv_schemas-result"}},"type":"object"}]}}},"description":"Query Request Analytics response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/workers-kv_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers-kv_result"}},"type":"object"}]},{"$ref":"#/components/schemas/workers-kv_api-response-common-failure"}]}}},"description":"Query Request Analytics response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Query Request Analytics","tags":["Workers KV Request Analytics"],"x-api-token-group":["Workers KV Storage Write","Workers KV Storage Read"]}},"/accounts/{account_id}/storage/analytics/stored":{"get":{"description":"Retrieves Workers KV stored data metrics for the given account.","operationId":"workers-kv-stored-data-analytics-query-stored-data-analytics","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_identifier"}},{"in":"query","name":"query","schema":{"allOf":[{"$ref":"#/components/schemas/workers-kv_query"},{"properties":{"dimensions":{"example":["namespaceId"],"items":{"enum":["namespaceId"]}},"filters":{"example":"namespaceId==a4e8cbb7-1b58-4990-925e-e026d40c4c64"},"metrics":{"default":"[\"storedBytes\"]","example":["storedBytes","storedKeys"],"items":{"enum":["storedBytes","storedKeys"]}},"sort":{"example":["+storedBytes","-namespaceId"]}}}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers-kv_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers-kv_components-schemas-result"}},"type":"object"}]}}},"description":"Query Stored Data Analytics response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/workers-kv_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers-kv_result"}},"type":"object"}]},{"$ref":"#/components/schemas/workers-kv_api-response-common-failure"}]}}},"description":"Query Stored Data Analytics response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Query Stored Data Analytics","tags":["Workers KV Stored Data Analytics"],"x-api-token-group":["Workers KV Storage Write","Workers KV Storage Read"]}},"/accounts/{account_id}/storage/kv/namespaces":{"get":{"description":"Returns the namespaces owned by an account.","operationId":"workers-kv-namespace-list-namespaces","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_identifier"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":20,"description":"Maximum number of results per page.","maximum":100,"minimum":5,"type":"number"}},{"in":"query","name":"order","schema":{"description":"Field to order results by.","enum":["id","title"],"example":"id"}},{"in":"query","name":"direction","schema":{"description":"Direction to order namespaces.","enum":["asc","desc"],"example":"asc"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers-kv_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/workers-kv_namespace"},"type":"array"}},"type":"object"}]}}},"description":"List Namespaces response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-failure"}}},"description":"List Namespaces response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Namespaces","tags":["Workers KV Namespace"],"x-api-token-group":["Workers KV Storage Write","Workers KV Storage Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.storage.kv.namespace.list"]}},"post":{"description":"Creates a namespace under the given title. A `400` is returned if the account already owns a namespace with this title. A namespace must be explicitly deleted to be replaced.","operationId":"workers-kv-namespace-create-a-namespace","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_create_rename_namespace_body"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers-kv_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers-kv_namespace"}},"type":"object"}]}}},"description":"Create a Namespace response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-failure"}}},"description":"Create a Namespace response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create a Namespace","tags":["Workers KV Namespace"],"x-api-token-group":["Workers KV Storage Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.storage.kv.namespace.create"]}}},"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}":{"delete":{"description":"Deletes the namespace corresponding to the given ID.","operationId":"workers-kv-namespace-remove-a-namespace","parameters":[{"in":"path","name":"namespace_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_namespace_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-no-result"}}},"description":"Remove a Namespace response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-failure"}}},"description":"Remove a Namespace response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Remove a Namespace","tags":["Workers KV Namespace"],"x-api-token-group":["Workers KV Storage Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.storage.kv.namespace.delete"]}},"get":{"description":"Get the namespace corresponding to the given ID.","operationId":"workers-kv-namespace-get-a-namespace","parameters":[{"in":"path","name":"namespace_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_namespace_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers-kv_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers-kv_namespace"}},"type":"object"}]}}},"description":"Get a Namespace response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-failure"}}},"description":"Get a Namespace response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get a Namespace","tags":["Workers KV Namespace"],"x-api-token-group":["Workers KV Storage Write","Workers KV Storage Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.storage.kv.namespace.read"]}},"put":{"description":"Modifies a namespace's title.","operationId":"workers-kv-namespace-rename-a-namespace","parameters":[{"in":"path","name":"namespace_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_namespace_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_create_rename_namespace_body"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-no-result"}}},"description":"Rename a Namespace response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-failure"}}},"description":"Rename a Namespace response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Rename a Namespace","tags":["Workers KV Namespace"],"x-api-token-group":["Workers KV Storage Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.storage.kv.namespace.delete"]}}},"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk":{"delete":{"deprecated":true,"description":"Remove multiple KV pairs from the namespace. Body should be an array of up to 10,000 keys to be removed.","operationId":"workers-kv-namespace-delete-multiple-key-value-pairs-deprecated","parameters":[{"in":"path","name":"namespace_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_namespace_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_bulk_delete"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-no-result"}}},"description":"Delete multiple key-value pairs response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-failure"}}},"description":"Delete multiple key-value pairs response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete multiple key-value pairs","tags":["Workers KV Namespace"],"x-api-token-group":["Workers KV Storage Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.storage.kv.key.delete"]}},"put":{"description":"Write multiple keys and values at once. Body should be an array of up to 10,000 key-value pairs to be stored, along with optional expiration information. Existing values and expirations will be overwritten. If neither `expiration` nor `expiration_ttl` is specified, the key-value pair will never expire. If both are set, `expiration_ttl` is used and `expiration` is ignored. The entire request size must be 100 megabytes or less.","operationId":"workers-kv-namespace-write-multiple-key-value-pairs","parameters":[{"in":"path","name":"namespace_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_namespace_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_bulk_write"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-no-result"}}},"description":"Write multiple key-value pairs response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-failure"}}},"description":"Write multiple key-value pairs response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Write multiple key-value pairs","tags":["Workers KV Namespace"],"x-api-token-group":["Workers KV Storage Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.storage.kv.key.update"]}}},"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk/delete":{"post":{"description":"Remove multiple KV pairs from the namespace. Body should be an array of up to 10,000 keys to be removed.","operationId":"workers-kv-namespace-delete-multiple-key-value-pairs","parameters":[{"in":"path","name":"namespace_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_namespace_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_bulk_delete"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-no-result"}}},"description":"Delete multiple key-value pairs response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-failure"}}},"description":"Delete multiple key-value pairs response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete multiple key-value pairs","tags":["Workers KV Namespace"],"x-api-token-group":["Workers KV Storage Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.storage.kv.key.delete"]}}},"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/keys":{"get":{"description":"Lists a namespace's keys.","operationId":"workers-kv-namespace-list-a-namespace'-s-keys","parameters":[{"in":"path","name":"namespace_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_namespace_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_identifier"}},{"in":"query","name":"limit","schema":{"default":1000,"description":"The number of keys to return. The cursor attribute may be used to iterate over the next batch of keys if there are more than the limit.","maximum":1000,"minimum":10,"type":"number"}},{"in":"query","name":"prefix","schema":{"description":"A string prefix used to filter down which keys will be returned. Exact matches and any key names that begin with the prefix will be returned.","example":"My-Prefix","type":"string"}},{"in":"query","name":"cursor","schema":{"description":"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","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers-kv_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/workers-kv_key"},"type":"array"},"result_info":{"properties":{"count":{"description":"Total results returned based on your list parameters.","example":1,"type":"number"},"cursor":{"$ref":"#/components/schemas/workers-kv_cursor"}}}}}]}}},"description":"List a Namespace's Keys response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-failure"}}},"description":"List a Namespace's Keys response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List a Namespace's Keys","tags":["Workers KV Namespace"],"x-api-token-group":["Workers KV Storage Write","Workers KV Storage Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.storage.kv.key.list"]}}},"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/metadata/{key_name}":{"get":{"description":"Returns the metadata associated with the given key in the given namespace. Use URL-encoding to use special characters (for example, `:`, `!`, `%`) in the key name.","operationId":"workers-kv-namespace-read-the-metadata-for-a-key","parameters":[{"in":"path","name":"key_name","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_key_name"}},{"in":"path","name":"namespace_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_namespace_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers-kv_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers-kv_list_metadata"}}}]}}},"description":"Read the metadata for a key response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-failure"}}},"description":"Read the metadata for a key response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Read the metadata for a key","tags":["Workers KV Namespace"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.storage.kv.key.read"]}}},"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/values/{key_name}":{"delete":{"description":"Remove a KV pair from the namespace. Use URL-encoding to use special characters (for example, `:`, `!`, `%`) in the key name.","operationId":"workers-kv-namespace-delete-key-value-pair","parameters":[{"in":"path","name":"key_name","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_key_name"}},{"in":"path","name":"namespace_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_namespace_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-no-result"}}},"description":"Delete key-value pair response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-failure"}}},"description":"Delete key-value pair response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete key-value pair","tags":["Workers KV Namespace"],"x-api-token-group":["Workers KV Storage Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.storage.kv.key.delete"]}},"get":{"description":"Returns the value associated with the given key in the given namespace. Use URL-encoding to use special characters (for example, `:`, `!`, `%`) in the key name. If the KV-pair is set to expire at some point, the expiration time as measured in seconds since the UNIX epoch will be returned in the `expiration` response header.","operationId":"workers-kv-namespace-read-key-value-pair","parameters":[{"in":"path","name":"key_name","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_key_name"}},{"in":"path","name":"namespace_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_namespace_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_identifier"}}],"responses":{"200":{"content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/workers-kv_value"}}},"description":"Read key-value pair response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-failure"}}},"description":"Read key-value pair response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Read key-value pair","tags":["Workers KV Namespace"],"x-api-token-group":["Workers KV Storage Write","Workers KV Storage Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.storage.kv.key.read"]}},"put":{"description":"Write a value identified by a key. Use URL-encoding to use special characters (for example, `:`, `!`, `%`) in the key name. Body should be the value to be stored along with JSON metadata to be associated with the key/value pair. Existing values, expirations, and metadata will be overwritten. If neither `expiration` nor `expiration_ttl` is specified, the key-value pair will never expire. If both are set, `expiration_ttl` is used and `expiration` is ignored.","operationId":"workers-kv-namespace-write-key-value-pair-with-metadata","parameters":[{"in":"path","name":"key_name","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_key_name"}},{"in":"path","name":"namespace_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_namespace_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers-kv_identifier"}}],"requestBody":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/workers-kv_value"}},"multipart/form-data":{"schema":{"properties":{"metadata":{"$ref":"#/components/schemas/workers-kv_metadata"},"value":{"$ref":"#/components/schemas/workers-kv_value"}},"required":["value","metadata"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-no-result"}}},"description":"Write key-value pair with metadata response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers-kv_api-response-common-failure"}}},"description":"Write key-value pair with metadata response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Write key-value pair with metadata","tags":["Workers KV Namespace"],"x-api-token-group":["Workers KV Storage Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.storage.kv.key.update"]}}},"/accounts/{account_id}/stream":{"get":{"description":"Lists up to 1000 videos from a single request. For a specific range, refer to the optional parameters.","operationId":"stream-videos-list-videos","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}},{"in":"query","name":"status","schema":{"$ref":"#/components/schemas/stream_media_state"}},{"in":"query","name":"creator","schema":{"$ref":"#/components/schemas/stream_creator"}},{"in":"query","name":"type","schema":{"$ref":"#/components/schemas/stream_type"}},{"in":"query","name":"asc","schema":{"$ref":"#/components/schemas/stream_asc"}},{"in":"query","name":"search","schema":{"$ref":"#/components/schemas/stream_search"}},{"in":"query","name":"start","schema":{"$ref":"#/components/schemas/stream_start"}},{"in":"query","name":"end","schema":{"$ref":"#/components/schemas/stream_end"}},{"in":"query","name":"include_counts","schema":{"$ref":"#/components/schemas/stream_include_counts"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_video_response_collection"}}},"description":"List videos response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"List videos response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List videos","tags":["Stream Videos"],"x-api-token-group":["Stream Write","Stream Read"]},"post":{"description":"Initiates a video upload using the TUS protocol. On success, the server responds with a status code 201 (created) and includes a `location` header to indicate where the content should be uploaded. Refer to https://tus.io for protocol details.","operationId":"stream-videos-initiate-video-uploads-using-tus","parameters":[{"in":"header","name":"Tus-Resumable","required":true,"schema":{"$ref":"#/components/schemas/stream_tus_resumable"}},{"in":"header","name":"Upload-Creator","schema":{"$ref":"#/components/schemas/stream_creator"}},{"in":"header","name":"Upload-Length","required":true,"schema":{"$ref":"#/components/schemas/stream_upload_length"}},{"in":"header","name":"Upload-Metadata","schema":{"$ref":"#/components/schemas/stream_upload_metadata"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{}},"description":"Initiate video uploads using TUS response"},"4XX":{"content":{"application/json":{}},"description":"Initiate video uploads using TUS response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Initiate video uploads using TUS","tags":["Stream Videos"],"x-api-token-group":["Stream Write"]}},"/accounts/{account_id}/stream/clip":{"post":{"description":"Clips a video based on the specified start and end times provided in seconds.","operationId":"stream-video-clipping-clip-videos-given-a-start-and-end-time","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_videoClipStandard"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_clipResponseSingle"}}},"description":"Clip videos given a start and end time response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Clip videos given a start and end time response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Clip videos given a start and end time","tags":["Stream Video Clipping"]}},"/accounts/{account_id}/stream/copy":{"post":{"description":"Uploads a video to Stream from a provided URL.","operationId":"stream-videos-upload-videos-from-a-url","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}},{"in":"header","name":"Upload-Creator","schema":{"$ref":"#/components/schemas/stream_creator"}},{"in":"header","name":"Upload-Metadata","schema":{"$ref":"#/components/schemas/stream_upload_metadata"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_video_copy_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_video_response_single"}}},"description":"Upload videos from a URL response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Upload videos from a URL response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Upload videos from a URL","tags":["Stream Videos"]}},"/accounts/{account_id}/stream/direct_upload":{"post":{"description":"Creates a direct upload that allows video uploads without an API key.","operationId":"stream-videos-upload-videos-via-direct-upload-ur-ls","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}},{"in":"header","name":"Upload-Creator","schema":{"$ref":"#/components/schemas/stream_creator"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_direct_upload_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_direct_upload_response"}}},"description":"Upload videos via direct upload URLs response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Upload videos via direct upload URLs response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Upload videos via direct upload URLs","tags":["Stream Videos"]}},"/accounts/{account_id}/stream/keys":{"get":{"description":"Lists the video ID and creation date and time when a signing key was created.","operationId":"stream-signing-keys-list-signing-keys","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_key_response_collection"}}},"description":"List signing keys response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"List signing keys response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List signing keys","tags":["Stream Signing Keys"],"x-api-token-group":["Stream Write","Stream Read"]},"post":{"description":"Creates an RSA private key in PEM and JWK formats. Key files are only displayed once after creation. Keys are created, used, and deleted independently of videos, and every key can sign any video.","operationId":"stream-signing-keys-create-signing-keys","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_key_generation_response"}}},"description":"Create signing keys response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Create signing keys response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create signing keys","tags":["Stream Signing Keys"],"x-api-token-group":["Stream Write"]}},"/accounts/{account_id}/stream/keys/{identifier}":{"delete":{"description":"Deletes signing keys and revokes all signed URLs generated with the key.","operationId":"stream-signing-keys-delete-signing-keys","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_deleted_response"}}},"description":"Delete signing keys response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Delete signing keys response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete signing keys","tags":["Stream Signing Keys"],"x-api-token-group":["Stream Write"]}},"/accounts/{account_id}/stream/live_inputs":{"get":{"description":"Lists the live inputs created for an account. To get the credentials needed to stream to a specific live input, request a single live input.","operationId":"stream-live-inputs-list-live-inputs","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}},{"in":"query","name":"include_counts","schema":{"$ref":"#/components/schemas/stream_include_counts"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_live_input_response_collection"}}},"description":"List live inputs response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"List live inputs response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List live inputs","tags":["Stream Live Inputs"],"x-api-token-group":["Stream Write","Stream Read"]},"post":{"description":"Creates a live input, and returns credentials that you or your users can use to stream live video to Cloudflare Stream.","operationId":"stream-live-inputs-create-a-live-input","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_create_input_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_live_input_response_single"}}},"description":"Create a live input response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Create a live input response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create a live input","tags":["Stream Live Inputs"],"x-api-token-group":["Stream Write"]}},"/accounts/{account_id}/stream/live_inputs/{live_input_identifier}":{"delete":{"description":"Prevents a live input from being streamed to and makes the live input inaccessible to any future API calls.","operationId":"stream-live-inputs-delete-a-live-input","parameters":[{"in":"path","name":"live_input_identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_live_input_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{}},"description":"Delete a live input response"},"4XX":{"content":{"application/json":{}},"description":"Delete a live input response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete a live input","tags":["Stream Live Inputs"],"x-api-token-group":["Stream Write"]},"get":{"description":"Retrieves details of an existing live input.","operationId":"stream-live-inputs-retrieve-a-live-input","parameters":[{"in":"path","name":"live_input_identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_live_input_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_live_input_response_single"}}},"description":"Retrieve a live input response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Retrieve a live input response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Retrieve a live input","tags":["Stream Live Inputs"],"x-api-token-group":["Stream Write","Stream Read"]},"put":{"description":"Updates a specified live input.","operationId":"stream-live-inputs-update-a-live-input","parameters":[{"in":"path","name":"live_input_identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_live_input_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_update_input_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_live_input_response_single"}}},"description":"Update a live input response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Update a live input response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update a live input","tags":["Stream Live Inputs"],"x-api-token-group":["Stream Write"]}},"/accounts/{account_id}/stream/live_inputs/{live_input_identifier}/outputs":{"get":{"description":"Retrieves all outputs associated with a specified live input.","operationId":"stream-live-inputs-list-all-outputs-associated-with-a-specified-live-input","parameters":[{"in":"path","name":"live_input_identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_live_input_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_output_response_collection"}}},"description":"List all outputs associated with a specified live input response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"List all outputs associated with a specified live input response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List all outputs associated with a specified live input","tags":["Stream Live Inputs"]},"post":{"description":"Creates a new output that can be used to simulcast or restream live video to other RTMP or SRT destinations. Outputs are always linked to a specific live input — one live input can have many outputs.","operationId":"stream-live-inputs-create-a-new-output,-connected-to-a-live-input","parameters":[{"in":"path","name":"live_input_identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_live_input_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_create_output_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_output_response_single"}}},"description":"Create a new output, connected to a live input response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Create a new output, connected to a live input response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create a new output, connected to a live input","tags":["Stream Live Inputs"]}},"/accounts/{account_id}/stream/live_inputs/{live_input_identifier}/outputs/{output_identifier}":{"delete":{"description":"Deletes an output and removes it from the associated live input.","operationId":"stream-live-inputs-delete-an-output","parameters":[{"in":"path","name":"output_identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_output_identifier"}},{"in":"path","name":"live_input_identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_live_input_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{}},"description":"Delete an output response"},"4XX":{"content":{"application/json":{}},"description":"Delete an output response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete an output","tags":["Stream Live Inputs"]},"put":{"description":"Updates the state of an output.","operationId":"stream-live-inputs-update-an-output","parameters":[{"in":"path","name":"output_identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_output_identifier"}},{"in":"path","name":"live_input_identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_live_input_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_update_output_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_output_response_single"}}},"description":"Update an output response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Update an output response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update an output","tags":["Stream Live Inputs"]}},"/accounts/{account_id}/stream/storage-usage":{"get":{"description":"Returns information about an account's storage use.","operationId":"stream-videos-storage-usage","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}},{"in":"query","name":"creator","schema":{"$ref":"#/components/schemas/stream_creator"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_storage_use_response"}}},"description":"Returns information about an account's storage use response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Returns information about an account's storage use response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Storage use","tags":["Stream Videos"]}},"/accounts/{account_id}/stream/watermarks":{"get":{"description":"Lists all watermark profiles for an account.","operationId":"stream-watermark-profile-list-watermark-profiles","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_watermark_response_collection"}}},"description":"List watermark profiles response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"List watermark profiles response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List watermark profiles","tags":["Stream Watermark Profile"],"x-api-token-group":["Stream Write","Stream Read"]},"post":{"description":"Creates watermark profiles using a single `HTTP POST multipart/form-data` request.","operationId":"stream-watermark-profile-create-watermark-profiles-via-basic-upload","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/stream_watermark_basic_upload"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_watermark_response_single"}}},"description":"Create watermark profiles via basic upload response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Create watermark profiles via basic upload response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create watermark profiles via basic upload","tags":["Stream Watermark Profile"],"x-api-token-group":["Stream Write"]}},"/accounts/{account_id}/stream/watermarks/{identifier}":{"delete":{"description":"Deletes a watermark profile.","operationId":"stream-watermark-profile-delete-watermark-profiles","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_watermark_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-single"},{"properties":{"result":{"example":"","type":"string"}}}]}}},"description":"Delete watermark profiles response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Delete watermark profiles response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete watermark profiles","tags":["Stream Watermark Profile"],"x-api-token-group":["Stream Write"]},"get":{"description":"Retrieves details for a single watermark profile.","operationId":"stream-watermark-profile-watermark-profile-details","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_watermark_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_watermark_response_single"}}},"description":"Watermark profile details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Watermark profile details response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Watermark profile details","tags":["Stream Watermark Profile"],"x-api-token-group":["Stream Write","Stream Read"]}},"/accounts/{account_id}/stream/webhook":{"delete":{"description":"Deletes a webhook.","operationId":"stream-webhook-delete-webhooks","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_deleted_response"}}},"description":"Delete webhooks response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Delete webhooks response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete webhooks","tags":["Stream Webhook"],"x-api-token-group":["Stream Write"]},"get":{"description":"Retrieves a list of webhooks.","operationId":"stream-webhook-view-webhooks","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_webhook_response_single"}}},"description":"View webhooks response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"View webhooks response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"View webhooks","tags":["Stream Webhook"],"x-api-token-group":["Stream Write","Stream Read"]},"put":{"description":"Creates a webhook notification.","operationId":"stream-webhook-create-webhooks","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_webhook_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_webhook_response_single"}}},"description":"Create webhooks response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Create webhooks response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create webhooks","tags":["Stream Webhook"],"x-api-token-group":["Stream Write"]}},"/accounts/{account_id}/stream/{identifier}":{"delete":{"description":"Deletes a video and its copies from Cloudflare Stream.","operationId":"stream-videos-delete-video","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{}},"description":"Delete video response"},"4XX":{"content":{"application/json":{}},"description":"Delete video response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete video","tags":["Stream Videos"],"x-api-token-group":["Stream Write"]},"get":{"description":"Fetches details for a single video.","operationId":"stream-videos-retrieve-video-details","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_video_response_single"}}},"description":"Retrieve video details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Retrieve video details response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Retrieve video details","tags":["Stream Videos"],"x-api-token-group":["Stream Write","Stream Read"]},"post":{"description":"Edit details for a single video.","operationId":"stream-videos-update-video-details","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_video_update"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_video_response_single"}}},"description":"Edit video details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Edit video details response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Edit video details","tags":["Stream Videos"]}},"/accounts/{account_id}/stream/{identifier}/audio":{"get":{"description":"Lists additional audio tracks on a video. Note this API will not return information for audio attached to the video upload.","operationId":"list-audio-tracks","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}},{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_listAudioTrackResponse"}}},"description":"Lists additional audio tracks on a video"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Lists additional audio tracks on a video response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List additional audio tracks on a video","tags":["Stream Audio Tracks"]}},"/accounts/{account_id}/stream/{identifier}/audio/copy":{"post":{"description":"Adds an additional audio track to a video using the provided audio track URL.","operationId":"add-audio-track","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}},{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_copyAudioTrack"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_addAudioTrackResponse"}}},"description":"Add audio tracks to a video"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Add audio tracks to a video response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Add audio tracks to a video","tags":["Stream Audio Tracks"]}},"/accounts/{account_id}/stream/{identifier}/audio/{audio_identifier}":{"delete":{"description":"Deletes additional audio tracks on a video. Deleting a default audio track is not allowed. You must assign another audio track as default prior to deletion.","operationId":"delete-audio-tracks","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}},{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_identifier"}},{"in":"path","name":"audio_identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_audio_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_deleted_response"}}},"description":"Deletes additional audio tracks on a video"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_deleted_response"}}},"description":"Deletes additional audio tracks on a video response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete additional audio tracks on a video","tags":["Stream Audio Tracks"]},"patch":{"description":"Edits additional audio tracks on a video. Editing the default status of an audio track to `true` will mark all other audio tracks on the video default status to `false`.","operationId":"edit-audio-tracks","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}},{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_identifier"}},{"in":"path","name":"audio_identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_audio_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_editAudioTrack"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_addAudioTrackResponse"}}},"description":"Edits additional audio tracks on a video"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Edits additional audio tracks on a video response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Edit additional audio tracks on a video","tags":["Stream Audio Tracks"]}},"/accounts/{account_id}/stream/{identifier}/captions":{"get":{"description":"Lists the available captions or subtitles for a specific video.","operationId":"stream-subtitles/-captions-list-captions-or-subtitles","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_language_response_collection"}}},"description":"List captions or subtitles response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"List captions or subtitles response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List captions or subtitles","tags":["Stream Subtitles/Captions"]}},"/accounts/{account_id}/stream/{identifier}/captions/{language}":{"delete":{"description":"Removes the captions or subtitles from a video.","operationId":"stream-subtitles/-captions-delete-captions-or-subtitles","parameters":[{"in":"path","name":"language","required":true,"schema":{"$ref":"#/components/schemas/stream_language"}},{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/stream_api-response-common"},{"properties":{"result":{"example":"","type":"string"}}}]}}},"description":"Delete captions or subtitles response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Delete captions or subtitles response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete captions or subtitles","tags":["Stream Subtitles/Captions"]},"get":{"description":"Lists the captions or subtitles for provided language.","operationId":"stream-subtitles/-captions-get-caption-or-subtitle-for-language","parameters":[{"in":"path","name":"language","required":true,"schema":{"$ref":"#/components/schemas/stream_language"}},{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_language_response_single"}}},"description":"List captions or subtitles response for a provided language"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"List captions or subtitles response for a provided language"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List captions or subtitles for a provided language","tags":["Stream Subtitles/Captions"]},"put":{"description":"Uploads the caption or subtitle file to the endpoint for a specific BCP47 language. One caption or subtitle file per language is allowed.","operationId":"stream-subtitles/-captions-upload-captions-or-subtitles","parameters":[{"in":"path","name":"language","required":true,"schema":{"$ref":"#/components/schemas/stream_language"}},{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/stream_caption_basic_upload"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_language_response_single"}}},"description":"Upload captions or subtitles response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Upload captions or subtitles response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Upload captions or subtitles","tags":["Stream Subtitles/Captions"]}},"/accounts/{account_id}/stream/{identifier}/captions/{language}/generate":{"post":{"description":"Generate captions or subtitles for provided language via AI.","operationId":"stream-subtitles/-captions-generate-caption-or-subtitle-for-language","parameters":[{"in":"path","name":"language","required":true,"schema":{"$ref":"#/components/schemas/stream_language"}},{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_language_response_single"}}},"description":"Generate captions or subtitles response for a provided language"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Generate captions or subtitles response for a provided language"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Generate captions or subtitles for a provided language via AI","tags":["Stream Subtitles/Captions"]}},"/accounts/{account_id}/stream/{identifier}/captions/{language}/vtt":{"get":{"description":"Return WebVTT captions for a provided language.","operationId":"stream-subtitles/-captions-get-vtt-caption-or-subtitle","parameters":[{"in":"path","name":"language","required":true,"schema":{"$ref":"#/components/schemas/stream_language"}},{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"text/vtt":{"schema":{"example":"'WEBVTT\n 00:00:00.000 --\u003e 00:00:02.480\n This is example response'\n","type":"string"}}},"description":"Return WebVTT caption or subtitle response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Return WebVTT caption or subtitle response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Return WebVTT captions for a provided language","tags":["Stream Subtitles/Captions"]}},"/accounts/{account_id}/stream/{identifier}/downloads":{"delete":{"description":"Delete the downloads for a video.","operationId":"stream-m-p-4-downloads-delete-downloads","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_deleted_response"}}},"description":"Delete downloads response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Delete downloads response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete downloads","tags":["Stream MP4 Downloads"]},"get":{"description":"Lists the downloads created for a video.","operationId":"stream-m-p-4-downloads-list-downloads","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_downloads_response"}}},"description":"List downloads response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"List downloads response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List downloads","tags":["Stream MP4 Downloads"]},"post":{"description":"Creates a download for a video when a video is ready to view.","operationId":"stream-m-p-4-downloads-create-downloads","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_downloads_response"}}},"description":"Create downloads response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Create downloads response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create downloads","tags":["Stream MP4 Downloads"]}},"/accounts/{account_id}/stream/{identifier}/embed":{"get":{"description":"Fetches an HTML code snippet to embed a video in a web page delivered through Cloudflare. On success, returns an HTML fragment for use on web pages to display a video. On failure, returns a JSON response body.","operationId":"stream-videos-retreieve-embed-code-html","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"example":"\u003cstream id=\"ea95132c15732412d22c1476fa83f27a\"\u003e\u003c/stream\u003e\u003cscript data-cfasync=\"false\" defer type=\"text/javascript\" src=\"https://embed.cloudflarestream.com/embed/we4g.fla9.latest.js\"\u003e\u003c/script\u003e"}}},"description":"Retreieve embed Code HTML response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Retreieve embed Code HTML response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Retrieve embed Code HTML","tags":["Stream Videos"]}},"/accounts/{account_id}/stream/{identifier}/token":{"post":{"description":"Creates a signed URL token for a video. If a body is not provided in the request, a token is created with default values.","operationId":"stream-videos-create-signed-url-tokens-for-videos","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/stream_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/stream_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_signed_token_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_signed_token_response"}}},"description":"Create signed URL tokens for videos response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/stream_api-response-common-failure"}}},"description":"Create signed URL tokens for videos response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create signed URL tokens for videos","tags":["Stream Videos"]}},"/accounts/{account_id}/subscriptions":{"get":{"description":"Lists all of an account's subscriptions.","operationId":"account-subscriptions-list-subscriptions","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/bill-subs-api_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bill-subs-api_account_subscription_response_collection"}}},"description":"List Subscriptions response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_account_subscription_response_collection"},{"$ref":"#/components/schemas/bill-subs-api_api-response-common-failure"}]}}},"description":"List Subscriptions response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Subscriptions","tags":["Account Subscriptions"],"x-api-token-group":["Billing Write","Billing Read"],"x-cfPermissionsRequired":{"enum":["#billing:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Creates an account subscription.","operationId":"account-subscriptions-create-subscription","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/bill-subs-api_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bill-subs-api_subscription-v2"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bill-subs-api_account_subscription_response_single"}}},"description":"Create Subscription response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_account_subscription_response_single"},{"$ref":"#/components/schemas/bill-subs-api_api-response-common-failure"}]}}},"description":"Create Subscription response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create Subscription","tags":["Account Subscriptions"],"x-api-token-group":["Billing Write"],"x-cfPermissionsRequired":{"enum":["#billing:read","#billing:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/subscriptions/{subscription_identifier}":{"delete":{"description":"Deletes an account's subscription.","operationId":"account-subscriptions-delete-subscription","parameters":[{"in":"path","name":"subscription_identifier","required":true,"schema":{"$ref":"#/components/schemas/bill-subs-api_schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/bill-subs-api_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_api-response-single"},{"properties":{"result":{"properties":{"subscription_id":{"$ref":"#/components/schemas/bill-subs-api_schemas-identifier"}},"type":"object"}}}]}}},"description":"Delete Subscription response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_api-response-single"},{"properties":{"result":{"properties":{"subscription_id":{"$ref":"#/components/schemas/bill-subs-api_schemas-identifier"}},"type":"object"}}}]},{"$ref":"#/components/schemas/bill-subs-api_api-response-common-failure"}]}}},"description":"Delete Subscription response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete Subscription","tags":["Account Subscriptions"],"x-api-token-group":["Billing Write"],"x-cfPermissionsRequired":{"enum":["#billing:edit"]}},"put":{"description":"Updates an account subscription.","operationId":"account-subscriptions-update-subscription","parameters":[{"in":"path","name":"subscription_identifier","required":true,"schema":{"$ref":"#/components/schemas/bill-subs-api_schemas-identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/bill-subs-api_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bill-subs-api_subscription-v2"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bill-subs-api_account_subscription_response_single"}}},"description":"Update Subscription response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_account_subscription_response_single"},{"$ref":"#/components/schemas/bill-subs-api_api-response-common-failure"}]}}},"description":"Update Subscription response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update Subscription","tags":["Account Subscriptions"],"x-api-token-group":["Billing Write"],"x-cfPermissionsRequired":{"enum":["#billing:read","#billing:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/accounts/{account_id}/teamnet/routes":{"get":{"description":"Lists and filters private network routes in an account.","operationId":"tunnel-route-list-tunnel-routes","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"query","name":"comment","schema":{"$ref":"#/components/schemas/tunnel_comment"}},{"in":"query","name":"is_deleted","schema":{"description":"If `true`, only include deleted routes. If `false`, exclude deleted routes. If empty, all routes will be included.","type":"boolean"}},{"in":"query","name":"network_subset","schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_ip_network"}],"description":"If set, only list routes that are contained within this IP range."}},{"in":"query","name":"network_superset","schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_ip_network"}],"description":"If set, only list routes that contain this IP range."}},{"in":"query","name":"existed_at","schema":{"$ref":"#/components/schemas/tunnel_existed_at"}},{"in":"query","name":"tunnel_id","schema":{"$ref":"#/components/schemas/tunnel_tunnel_id"}},{"in":"query","name":"route_id","schema":{"$ref":"#/components/schemas/tunnel_route_id"}},{"in":"query","name":"tun_types","schema":{"$ref":"#/components/schemas/tunnel_tunnel_types"}},{"in":"query","name":"virtual_network_id","schema":{"$ref":"#/components/schemas/tunnel_virtual_network_id"}},{"in":"query","name":"per_page","schema":{"$ref":"#/components/schemas/tunnel_per_page"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_teamnet_response_collection"}}},"description":"List tunnel routes response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_teamnet_response_collection"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"List tunnel routes response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"List tunnel routes","tags":["Tunnel Routing"],"x-api-token-group":["Cloudflare One Networks Write","Cloudflare One Networks Read","Argo Tunnel Write","Argo Tunnel Read"]},"post":{"description":"Routes a private network through a Cloudflare Tunnel.","operationId":"tunnel-route-create-a-tunnel-route","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"comment":{"$ref":"#/components/schemas/tunnel_comment"},"network":{"$ref":"#/components/schemas/tunnel_ip_network"},"tunnel_id":{"$ref":"#/components/schemas/tunnel_tunnel_id"},"virtual_network_id":{"$ref":"#/components/schemas/tunnel_virtual_network_id"}},"required":["network","tunnel_id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_route_response_single"}}},"description":"Create a tunnel route response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_route_response_single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Create a tunnel route response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Create a tunnel route","tags":["Tunnel Routing"],"x-api-token-group":["Cloudflare One Networks Write","Argo Tunnel Write"]}},"/accounts/{account_id}/teamnet/routes/ip/{ip}":{"get":{"description":"Fetches routes that contain the given IP address.","operationId":"tunnel-route-get-tunnel-route-by-ip","parameters":[{"in":"path","name":"ip","required":true,"schema":{"$ref":"#/components/schemas/tunnel_ip"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"query","name":"virtual_network_id","schema":{"$ref":"#/components/schemas/tunnel_virtual_network_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_teamnet_response_single"}}},"description":"Get tunnel route by IP response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_teamnet_response_single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Get tunnel route by IP response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Get tunnel route by IP","tags":["Tunnel Routing"]}},"/accounts/{account_id}/teamnet/routes/network/{ip_network_encoded}":{"delete":{"deprecated":true,"description":"Deletes a private network route from an account. The CIDR in `ip_network_encoded` must be written in URL-encoded format. If no virtual_network_id is provided it will delete the route from the default vnet. If no tun_type is provided it will fetch the type from the tunnel_id or if that is missing it will assume Cloudflare Tunnel as default. If tunnel_id is provided it will delete the route from that tunnel, otherwise it will delete the route based on the vnet and tun_type.\n","operationId":"tunnel-route-delete-a-tunnel-route-with-cidr","parameters":[{"in":"path","name":"ip_network_encoded","required":true,"schema":{"$ref":"#/components/schemas/tunnel_ip_network_encoded"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"query","name":"virtual_network_id","schema":{"$ref":"#/components/schemas/tunnel_virtual_network_id"}},{"in":"query","name":"tun_type","schema":{"$ref":"#/components/schemas/tunnel_tunnel_type"}},{"in":"query","name":"tunnel_id","schema":{"$ref":"#/components/schemas/tunnel_tunnel_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_route_response_single"}}},"description":"Delete a tunnel route response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_route_response_single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Delete a tunnel route response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Delete a tunnel route (CIDR Endpoint)","tags":["Tunnel Routing"],"x-api-token-group":["Cloudflare One Networks Write","Argo Tunnel Write"],"x-cfDeprecation":{"description":"This endpoint and its related APIs are deprecated in favor of the equivalent Tunnel Route (without CIDR) APIs.","display":true,"eol":"2025-09-30","id":"teamnet_routes_with_cidr_deprecation"}},"patch":{"deprecated":true,"description":"Updates an existing private network route in an account. The CIDR in `ip_network_encoded` must be written in URL-encoded format.","operationId":"tunnel-route-update-a-tunnel-route-with-cidr","parameters":[{"in":"path","name":"ip_network_encoded","required":true,"schema":{"$ref":"#/components/schemas/tunnel_ip_network_encoded"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_route_response_single"}}},"description":"Update a tunnel route response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_route_response_single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Update a tunnel route response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Update a tunnel route (CIDR Endpoint)","tags":["Tunnel Routing"],"x-api-token-group":["Cloudflare One Networks Write","Argo Tunnel Write"],"x-cfDeprecation":{"description":"This endpoint and its related APIs are deprecated in favor of the equivalent Tunnel Route (without CIDR) APIs.","display":true,"eol":"2025-09-30","id":"teamnet_routes_with_cidr_deprecation"}},"post":{"deprecated":true,"description":"Routes a private network through a Cloudflare Tunnel. The CIDR in `ip_network_encoded` must be written in URL-encoded format.","operationId":"tunnel-route-create-a-tunnel-route-with-cidr","parameters":[{"in":"path","name":"ip_network_encoded","required":true,"schema":{"$ref":"#/components/schemas/tunnel_ip_network_encoded"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"comment":{"$ref":"#/components/schemas/tunnel_comment"},"tunnel_id":{"$ref":"#/components/schemas/tunnel_tunnel_id"},"virtual_network_id":{"$ref":"#/components/schemas/tunnel_virtual_network_id"}},"required":["tunnel_id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_route_response_single"}}},"description":"Create a tunnel route response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_route_response_single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Create a tunnel route response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Create a tunnel route (CIDR Endpoint)","tags":["Tunnel Routing"],"x-api-token-group":["Cloudflare One Networks Write","Argo Tunnel Write"],"x-cfDeprecation":{"description":"This endpoint and its related APIs are deprecated in favor of the equivalent Tunnel Route (without CIDR) APIs.","display":true,"eol":"2025-09-30","id":"teamnet_routes_with_cidr_deprecation"}}},"/accounts/{account_id}/teamnet/routes/{route_id}":{"delete":{"description":"Deletes a private network route from an account.\n","operationId":"tunnel-route-delete-a-tunnel-route","parameters":[{"in":"path","name":"route_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_route_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_route_response_single"}}},"description":"Delete a tunnel route response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_route_response_single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Delete a tunnel route response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Delete a tunnel route","tags":["Tunnel Routing"],"x-api-token-group":["Cloudflare One Networks Write","Argo Tunnel Write"]},"get":{"description":"Get a private network route in an account.","operationId":"tunnel-route-get-tunnel-route","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"path","name":"route_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_route_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_route_response_single"}}},"description":"Get a tunnel route response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_route_response_single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Get a tunnel route response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Get tunnel route","tags":["Tunnel Routing"]},"patch":{"description":"Updates an existing private network route in an account. The fields that are meant to be updated should be provided in the body of the request.","operationId":"tunnel-route-update-a-tunnel-route","parameters":[{"in":"path","name":"route_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_route_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"comment":{"$ref":"#/components/schemas/tunnel_comment"},"network":{"$ref":"#/components/schemas/tunnel_ip_network"},"tunnel_id":{"$ref":"#/components/schemas/tunnel_tunnel_id"},"virtual_network_id":{"$ref":"#/components/schemas/tunnel_virtual_network_id"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_route_response_single"}}},"description":"Update a tunnel route response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_route_response_single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Update a tunnel route response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Update a tunnel route","tags":["Tunnel Routing"],"x-api-token-group":["Cloudflare One Networks Write","Argo Tunnel Write"]}},"/accounts/{account_id}/teamnet/virtual_networks":{"get":{"description":"Lists and filters virtual networks in an account.","operationId":"tunnel-virtual-network-list-virtual-networks","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"query","name":"id","schema":{"$ref":"#/components/schemas/tunnel_virtual_network_id"}},{"in":"query","name":"name","schema":{"$ref":"#/components/schemas/tunnel_virtual_network_name"}},{"in":"query","name":"is_default","schema":{"description":"If `true`, only include the default virtual network. If `false`, exclude the default virtual network. If empty, all virtual networks will be included.","type":"boolean"}},{"in":"query","name":"is_deleted","schema":{"description":"If `true`, only include deleted virtual networks. If `false`, exclude deleted virtual networks. If empty, all virtual networks will be included.","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_vnet_response_collection"}}},"description":"List virtual networks response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_vnet_response_collection"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"List virtual networks response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"List virtual networks","tags":["Tunnel Virtual Network"],"x-api-token-group":["Cloudflare One Networks Write","Cloudflare One Networks Read","Argo Tunnel Write","Argo Tunnel Read"]},"post":{"description":"Adds a new virtual network to an account.","operationId":"tunnel-virtual-network-create-a-virtual-network","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"comment":{"$ref":"#/components/schemas/tunnel_virtual_network_comment"},"is_default":{"$ref":"#/components/schemas/tunnel_is_default_network"},"name":{"$ref":"#/components/schemas/tunnel_virtual_network_name"}},"required":["name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_vnet_response_single"}}},"description":"Create a virtual network response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_vnet_response_single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Create a virtual network response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Create a virtual network","tags":["Tunnel Virtual Network"],"x-api-token-group":["Cloudflare One Networks Write","Argo Tunnel Write"]}},"/accounts/{account_id}/teamnet/virtual_networks/{virtual_network_id}":{"delete":{"description":"Deletes an existing virtual network.","operationId":"tunnel-virtual-network-delete","parameters":[{"in":"path","name":"virtual_network_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_virtual_network_id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_vnet_response_single"}}},"description":"Delete a virtual network response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_vnet_response_single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Delete a virtual network response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Delete a virtual network","tags":["Tunnel Virtual Network"],"x-api-token-group":["Cloudflare One Networks Write","Argo Tunnel Write"]},"get":{"description":"Get a virtual network.","operationId":"tunnel-virtual-network-get","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"path","name":"virtual_network_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_virtual_network_id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"comment":{"$ref":"#/components/schemas/tunnel_virtual_network_comment"},"is_default_network":{"$ref":"#/components/schemas/tunnel_is_default_network"},"name":{"$ref":"#/components/schemas/tunnel_virtual_network_name"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_vnet_response_single"}}},"description":"A virtual network response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_vnet_response_single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"A virtual network response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Get a virtual network","tags":["Tunnel Virtual Network"]},"patch":{"description":"Updates an existing virtual network.","operationId":"tunnel-virtual-network-update","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"path","name":"virtual_network_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_virtual_network_id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"comment":{"$ref":"#/components/schemas/tunnel_virtual_network_comment"},"is_default_network":{"$ref":"#/components/schemas/tunnel_is_default_network"},"name":{"$ref":"#/components/schemas/tunnel_virtual_network_name"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_vnet_response_single"}}},"description":"Update a virtual network response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_vnet_response_single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Update a virtual network response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Update a virtual network","tags":["Tunnel Virtual Network"],"x-api-token-group":["Cloudflare One Networks Write","Argo Tunnel Write"]}},"/accounts/{account_id}/tunnels":{"get":{"description":"Lists and filters all types of Tunnels in an account.","operationId":"cloudflare-tunnel-list-all-tunnels","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"query","name":"name","schema":{"description":"A user-friendly name for the tunnel.","example":"blog","type":"string"}},{"in":"query","name":"is_deleted","schema":{"description":"If `true`, only include deleted tunnels. If `false`, exclude deleted tunnels. If empty, all tunnels will be included.","example":true,"type":"boolean"}},{"in":"query","name":"existed_at","schema":{"$ref":"#/components/schemas/tunnel_existed_at"}},{"in":"query","name":"uuid","schema":{"$ref":"#/components/schemas/tunnel_tunnel_id"}},{"in":"query","name":"was_active_at","schema":{"example":"2009-11-10T23:00:00Z","format":"date-time","type":"string"}},{"in":"query","name":"was_inactive_at","schema":{"example":"2009-11-10T23:00:00Z","format":"date-time","type":"string"}},{"in":"query","name":"include_prefix","schema":{"example":"vpc1-","type":"string"}},{"in":"query","name":"exclude_prefix","schema":{"example":"vpc1-","type":"string"}},{"in":"query","name":"tun_types","schema":{"$ref":"#/components/schemas/tunnel_tunnel_types"}},{"in":"query","name":"status","schema":{"$ref":"#/components/schemas/tunnel_status"}},{"in":"query","name":"per_page","schema":{"$ref":"#/components/schemas/tunnel_per_page"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_tunnel-response-collection"}}},"description":"List Tunnels response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_tunnel-response-collection"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"List Tunnels response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"List All Tunnels","tags":["Cloudflare Tunnel"],"x-api-token-group":["Cloudflare One Connectors Write","Cloudflare One Connectors Read","Cloudflare One cloudflared Connectors Write","Cloudflare One cloudflared Connectors Read","Argo Tunnel Write","Argo Tunnel Read"]}},"/accounts/{account_id}/vectorize/indexes":{"get":{"deprecated":true,"description":"Returns a list of Vectorize Indexes","operationId":"vectorize-(-deprecated)-list-vectorize-indexes","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/vectorize_create-index-response"},"type":"array"}}}]}}},"description":"List Vectorize Index Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"List Vectorize Index Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Vectorize Indexes (Deprecated)","tags":["Vectorize Beta (Deprecated)"],"x-api-token-group":["Vectorize Write","Vectorize Read"],"x-cfDeprecation":{"description":"This endpoint is deprecated in favor of the GET `/accounts/{account_id}/vectorize/v2/indexes` endpoint.","display":true,"id":"vectorize_list_index_deprecation"},"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.list"]}},"post":{"deprecated":true,"description":"Creates and returns a new Vectorize Index.","operationId":"vectorize-(-deprecated)-create-vectorize-index","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/vectorize_create-index-request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/vectorize_create-index-response"}}}]}}},"description":"Create Vectorize Index Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Create Vectorize Index Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create Vectorize Index (Deprecated)","tags":["Vectorize Beta (Deprecated)"],"x-api-token-group":["Vectorize Write"],"x-cfDeprecation":{"description":"This endpoint is deprecated in favor of the POST `/accounts/{account_id}/vectorize/v2/indexes` endpoint.","display":true,"id":"vectorize_create_index_deprecation"},"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.create"]}}},"/accounts/{account_id}/vectorize/indexes/{index_name}":{"delete":{"deprecated":true,"description":"Deletes the specified Vectorize Index.","operationId":"vectorize-(-deprecated)-delete-vectorize-index","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}},{"in":"path","name":"index_name","required":true,"schema":{"$ref":"#/components/schemas/vectorize_index-name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}}}]}}},"description":"Delete Vectorize Index Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Delete Vectorize Index Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Vectorize Index (Deprecated)","tags":["Vectorize Beta (Deprecated)"],"x-api-token-group":["Vectorize Write"],"x-cfDeprecation":{"description":"This endpoint is deprecated in favor of the DELETE `/accounts/{account_id}/vectorize/v2/indexes/{index_name}` endpoint.","display":true,"id":"vectorize_delete_index_deprecation"},"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.delete"]}},"get":{"deprecated":true,"description":"Returns the specified Vectorize Index.","operationId":"vectorize-(-deprecated)-get-vectorize-index","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}},{"in":"path","name":"index_name","required":true,"schema":{"$ref":"#/components/schemas/vectorize_index-name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/vectorize_create-index-response"}}}]}}},"description":"Get Vectorize Index Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Get Vectorize Index Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Vectorize Index (Deprecated)","tags":["Vectorize Beta (Deprecated)"],"x-api-token-group":["Vectorize Write","Vectorize Read"],"x-cfDeprecation":{"description":"This endpoint is deprecated in favor of the GET `/accounts/{account_id}/vectorize/v2/indexes/{index_name}` endpoint.","display":true,"id":"vectorize_get_index_deprecation"},"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.read"]}},"put":{"deprecated":true,"description":"Updates and returns the specified Vectorize Index.","operationId":"vectorize-(-deprecated)-update-vectorize-index","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}},{"in":"path","name":"index_name","required":true,"schema":{"$ref":"#/components/schemas/vectorize_index-name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/vectorize_update-index-request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/vectorize_create-index-response"}}}]}}},"description":"Update Vectorize Index Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Update Vectorize Index Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update Vectorize Index (Deprecated)","tags":["Vectorize Beta (Deprecated)"],"x-api-token-group":["Vectorize Write"],"x-cfDeprecation":{"description":"This endpoint has been deprecated and will soon be removed.","display":true,"id":"vectorize_update_index_deprecation"},"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.update"]}}},"/accounts/{account_id}/vectorize/indexes/{index_name}/delete-by-ids":{"post":{"deprecated":true,"description":"Delete a set of vectors from an index by their vector identifiers.","operationId":"vectorize-(-deprecated)-delete-vectors-by-id","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}},{"in":"path","name":"index_name","required":true,"schema":{"$ref":"#/components/schemas/vectorize_index-name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/vectorize_index-delete-vectors-by-id-request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/vectorize_index-delete-vectors-by-id-response"}}}]}}},"description":"Delete Vector Identifiers Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Delete Vector Identifiers Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Vectors By Identifier (Deprecated)","tags":["Vectorize Beta (Deprecated)"],"x-cfDeprecation":{"description":"This endpoint is deprecated in favor of the POST `/accounts/{account_id}/vectorize/v2/indexes/{index_name}/delete_by_ids` endpoint.","display":true,"id":"vectorize_delete_by_ids_deprecation"},"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.update"]}}},"/accounts/{account_id}/vectorize/indexes/{index_name}/get-by-ids":{"post":{"deprecated":true,"description":"Get a set of vectors from an index by their vector identifiers.","operationId":"vectorize-(-deprecated)-get-vectors-by-id","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}},{"in":"path","name":"index_name","required":true,"schema":{"$ref":"#/components/schemas/vectorize_index-name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/vectorize_index-get-vectors-by-id-request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/vectorize_index-get-vectors-by-id-response"}}}]}}},"description":"Get Vectors By Identifier Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Get Vectors By Identifier Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Vectors By Identifier (Deprecated)","tags":["Vectorize Beta (Deprecated)"],"x-cfDeprecation":{"description":"This endpoint is deprecated in favor of the POST `/accounts/{account_id}/vectorize/v2/indexes/{index_name}/get_by_ids` endpoint.","display":true,"id":"vectorize_get_by_ids_deprecation"},"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.read"]}}},"/accounts/{account_id}/vectorize/indexes/{index_name}/insert":{"post":{"deprecated":true,"description":"Inserts vectors into the specified index and returns the count of the vectors successfully inserted.","operationId":"vectorize-(-deprecated)-insert-vector","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}},{"in":"path","name":"index_name","required":true,"schema":{"$ref":"#/components/schemas/vectorize_index-name"}}],"requestBody":{"content":{"application/x-ndjson":{"schema":{"description":"ndjson file containing vectors to insert.","example":"@/path/to/vectors.ndjson","format":"binary","type":"string"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/vectorize_index-insert-response"}}}]}}},"description":"Insert Vectors Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Insert Vectors Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Insert Vectors (Deprecated)","tags":["Vectorize Beta (Deprecated)"],"x-api-token-group":["Vectorize Write"],"x-cfDeprecation":{"description":"This endpoint is deprecated in favor of the POST `/accounts/{account_id}/vectorize/v2/indexes/{index_name}/insert` endpoint.","display":true,"id":"vectorize_insert_deprecation"},"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.update"]}}},"/accounts/{account_id}/vectorize/indexes/{index_name}/query":{"post":{"deprecated":true,"description":"Finds vectors closest to a given vector in an index.","operationId":"vectorize-(-deprecated)-query-vector","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}},{"in":"path","name":"index_name","required":true,"schema":{"$ref":"#/components/schemas/vectorize_index-name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/vectorize_index-query-request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/vectorize_index-query-response"}}}]}}},"description":"Query Vectors Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Query Vectors Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Query Vectors (Deprecated)","tags":["Vectorize Beta (Deprecated)"],"x-api-token-group":["Vectorize Write","Vectorize Read"],"x-cfDeprecation":{"description":"This endpoint is deprecated in favor of the POST `/accounts/{account_id}/vectorize/v2/indexes/{index_name}/query` endpoint.","display":true,"id":"vectorize_query_deprecation"},"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.read"]}}},"/accounts/{account_id}/vectorize/indexes/{index_name}/upsert":{"post":{"deprecated":true,"description":"Upserts vectors into the specified index, creating them if they do not exist and returns the count of values and ids successfully inserted.","operationId":"vectorize-(-deprecated)-upsert-vector","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}},{"in":"path","name":"index_name","required":true,"schema":{"$ref":"#/components/schemas/vectorize_index-name"}}],"requestBody":{"content":{"application/x-ndjson":{"schema":{"description":"ndjson file containing vectors to upsert.","example":"@/path/to/vectors.ndjson","format":"binary","type":"string"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/vectorize_index-upsert-response"}}}]}}},"description":"Insert Vectors Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Insert Vectors Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Upsert Vectors (Deprecated)","tags":["Vectorize Beta (Deprecated)"],"x-cfDeprecation":{"description":"This endpoint is deprecated in favor of the POST `/accounts/{account_id}/vectorize/v2/indexes/{index_name}/upsert` endpoint.","display":true,"id":"vectorize_upsert_deprecation"},"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.update"]}}},"/accounts/{account_id}/vectorize/v2/indexes":{"get":{"description":"Returns a list of Vectorize Indexes","operationId":"vectorize-list-vectorize-indexes","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/vectorize_create-index-response"},"type":"array"}}}]}}},"description":"List Vectorize Index Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"List Vectorize Index Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Vectorize Indexes","tags":["Vectorize"],"x-api-token-group":["Vectorize Write","Vectorize Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.list"]}},"post":{"description":"Creates and returns a new Vectorize Index.","operationId":"vectorize-create-vectorize-index","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/vectorize_create-index-request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/vectorize_create-index-response"}}}]}}},"description":"Create Vectorize Index Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Create Vectorize Index Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create Vectorize Index","tags":["Vectorize"],"x-api-token-group":["Vectorize Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.create"]}}},"/accounts/{account_id}/vectorize/v2/indexes/{index_name}":{"delete":{"description":"Deletes the specified Vectorize Index.","operationId":"vectorize-delete-vectorize-index","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}},{"in":"path","name":"index_name","required":true,"schema":{"$ref":"#/components/schemas/vectorize_index-name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}}}]}}},"description":"Delete Vectorize Index Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Delete Vectorize Index Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Vectorize Index","tags":["Vectorize"],"x-api-token-group":["Vectorize Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.delete"]}},"get":{"description":"Returns the specified Vectorize Index.","operationId":"vectorize-get-vectorize-index","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}},{"in":"path","name":"index_name","required":true,"schema":{"$ref":"#/components/schemas/vectorize_index-name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/vectorize_create-index-response"}}}]}}},"description":"Get Vectorize Index Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Get Vectorize Index Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Vectorize Index","tags":["Vectorize"],"x-api-token-group":["Vectorize Write","Vectorize Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.read"]}}},"/accounts/{account_id}/vectorize/v2/indexes/{index_name}/delete_by_ids":{"post":{"description":"Delete a set of vectors from an index by their vector identifiers.","operationId":"vectorize-delete-vectors-by-id","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}},{"in":"path","name":"index_name","required":true,"schema":{"$ref":"#/components/schemas/vectorize_index-name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/vectorize_index-delete-vectors-by-id-request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/vectorize_index-delete-vectors-by-id-v2-response"}}}]}}},"description":"Delete Vector Identifiers Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Delete Vector Identifiers Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Vectors By Identifier","tags":["Vectorize"],"x-api-token-group":["Vectorize Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.delete"]}}},"/accounts/{account_id}/vectorize/v2/indexes/{index_name}/get_by_ids":{"post":{"description":"Get a set of vectors from an index by their vector identifiers.","operationId":"vectorize-get-vectors-by-id","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}},{"in":"path","name":"index_name","required":true,"schema":{"$ref":"#/components/schemas/vectorize_index-name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/vectorize_index-get-vectors-by-id-request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/vectorize_index-get-vectors-by-id-response"}}}]}}},"description":"Get Vectors By Identifier Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Get Vectors By Identifier Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Vectors By Identifier","tags":["Vectorize"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.read"]}}},"/accounts/{account_id}/vectorize/v2/indexes/{index_name}/info":{"get":{"description":"Get information about a vectorize index.","operationId":"vectorize-index-info","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}},{"in":"path","name":"index_name","required":true,"schema":{"$ref":"#/components/schemas/vectorize_index-name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/vectorize_index-info-response"}}}]}}},"description":"Get Vectorize Index Info Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Get Vectorize Index Info Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Vectorize Index Info","tags":["Vectorize"],"x-api-token-group":["Vectorize Write","Vectorize Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.read"]}}},"/accounts/{account_id}/vectorize/v2/indexes/{index_name}/insert":{"post":{"description":"Inserts vectors into the specified index and returns a mutation id corresponding to the vectors enqueued for insertion.","operationId":"vectorize-insert-vector","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}},{"in":"path","name":"index_name","required":true,"schema":{"$ref":"#/components/schemas/vectorize_index-name"}},{"in":"query","name":"unparsable-behavior","schema":{"description":"Behavior for ndjson parse failures.","enum":["error","discard"],"type":"string"}}],"requestBody":{"content":{"application/x-ndjson":{"schema":{"description":"ndjson file containing vectors to insert.","example":"@/path/to/vectors.ndjson","format":"binary","type":"string"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/vectorize_index-insert-v2-response"}}}]}}},"description":"Insert Vectors Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Insert Vectors Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Insert Vectors","tags":["Vectorize"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.update"]}}},"/accounts/{account_id}/vectorize/v2/indexes/{index_name}/metadata_index/create":{"post":{"description":"Enable metadata filtering based on metadata property. Limited to 10 properties.","operationId":"vectorize-create-metadata-index","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}},{"in":"path","name":"index_name","required":true,"schema":{"$ref":"#/components/schemas/vectorize_index-name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/vectorize_create-metadata-index-request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/vectorize_create-metadata-index-response"}}}]}}},"description":"Create Metadata Index Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Create Metadata Index Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create Metadata Index","tags":["Vectorize"],"x-api-token-group":["Vectorize Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.create"]}}},"/accounts/{account_id}/vectorize/v2/indexes/{index_name}/metadata_index/delete":{"post":{"description":"Allow Vectorize to delete the specified metadata index.","operationId":"vectorize-delete-metadata-index","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}},{"in":"path","name":"index_name","required":true,"schema":{"$ref":"#/components/schemas/vectorize_index-name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/vectorize_delete-metadata-index-request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/vectorize_delete-metadata-index-response"}}}]}}},"description":"Delete Metadata Index Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Delete Metadata Index Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Metadata Index","tags":["Vectorize"],"x-api-token-group":["Vectorize Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.delete"]}}},"/accounts/{account_id}/vectorize/v2/indexes/{index_name}/metadata_index/list":{"get":{"description":"List Metadata Indexes for the specified Vectorize Index.","operationId":"vectorize-list-metadata-indexes","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}},{"in":"path","name":"index_name","required":true,"schema":{"$ref":"#/components/schemas/vectorize_index-name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/vectorize_list-metadata-index-response"}}}]}}},"description":"List Metadata Index Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"List Metadata Index Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Metadata Indexes","tags":["Vectorize"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.list"]}}},"/accounts/{account_id}/vectorize/v2/indexes/{index_name}/query":{"post":{"description":"Finds vectors closest to a given vector in an index.","operationId":"vectorize-query-vector","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}},{"in":"path","name":"index_name","required":true,"schema":{"$ref":"#/components/schemas/vectorize_index-name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/vectorize_index-query-v2-request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/vectorize_index-query-v2-response"}}}]}}},"description":"Query Vectors Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Query Vectors Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Query Vectors","tags":["Vectorize"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.read"]}}},"/accounts/{account_id}/vectorize/v2/indexes/{index_name}/upsert":{"post":{"description":"Upserts vectors into the specified index, creating them if they do not exist and returns a mutation id corresponding to the vectors enqueued for upsertion.","operationId":"vectorize-upsert-vector","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/vectorize_identifier"}},{"in":"path","name":"index_name","required":true,"schema":{"$ref":"#/components/schemas/vectorize_index-name"}},{"in":"query","name":"unparsable-behavior","schema":{"description":"Behavior for ndjson parse failures.","enum":["error","discard"],"type":"string"}}],"requestBody":{"content":{"application/x-ndjson":{"schema":{"description":"ndjson file containing vectors to upsert.","example":"@/path/to/vectors.ndjson","format":"binary","type":"string"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/vectorize_index-upsert-v2-response"}}}]}}},"description":"Upsert Vectors Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/vectorize_api-response-single"},{"properties":{"result":{"nullable":true,"type":"object"}},"type":"object"}]},{"$ref":"#/components/schemas/vectorize_api-response-common-failure"}]}}},"description":"Upsert Vectors Failure Response"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Upsert Vectors","tags":["Vectorize"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.vectorize.index.update"]}}},"/accounts/{account_id}/warp_connector":{"get":{"description":"Lists and filters Warp Connector Tunnels in an account.","operationId":"cloudflare-tunnel-list-warp-connector-tunnels","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"query","name":"name","schema":{"description":"A user-friendly name for the tunnel.","example":"blog","type":"string"}},{"in":"query","name":"is_deleted","schema":{"description":"If `true`, only include deleted tunnels. If `false`, exclude deleted tunnels. If empty, all tunnels will be included.","example":true,"type":"boolean"}},{"in":"query","name":"existed_at","schema":{"$ref":"#/components/schemas/tunnel_existed_at"}},{"in":"query","name":"uuid","schema":{"$ref":"#/components/schemas/tunnel_tunnel_id"}},{"in":"query","name":"was_active_at","schema":{"example":"2009-11-10T23:00:00Z","format":"date-time","type":"string"}},{"in":"query","name":"was_inactive_at","schema":{"example":"2009-11-10T23:00:00Z","format":"date-time","type":"string"}},{"in":"query","name":"include_prefix","schema":{"example":"vpc1-","type":"string"}},{"in":"query","name":"exclude_prefix","schema":{"example":"vpc1-","type":"string"}},{"in":"query","name":"status","schema":{"$ref":"#/components/schemas/tunnel_status"}},{"in":"query","name":"per_page","schema":{"$ref":"#/components/schemas/tunnel_per_page"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_tunnel-response-collection"}}},"description":"List Warp Connector Tunnels response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_tunnel-response-collection"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"List Warp Connector Tunnels response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"List Warp Connector Tunnels","tags":["Cloudflare Tunnel"],"x-api-token-group":["Cloudflare One Connectors Write","Cloudflare One Connectors Read","Cloudflare One Warp Connectors Write","Cloudflare One Warp Connectors Read"]},"post":{"description":"Creates a new Warp Connector Tunnel in an account.","operationId":"cloudflare-tunnel-create-a-warp-connector-tunnel","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"name":{"$ref":"#/components/schemas/tunnel_tunnel_name"}},"required":["name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_tunnel-response-single"}}},"description":"Create a Warp Connector Tunnel response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_tunnel-response-single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Create a Warp Connector Tunnel response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Create a Warp Connector Tunnel","tags":["Cloudflare Tunnel"],"x-api-token-group":["Cloudflare One Connectors Write","Cloudflare One Warp Connectors Write"]}},"/accounts/{account_id}/warp_connector/{tunnel_id}":{"delete":{"description":"Deletes a Warp Connector Tunnel from an account.","operationId":"cloudflare-tunnel-delete-a-warp-connector-tunnel","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"path","name":"tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_tunnel_id"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_tunnel-response-single"}}},"description":"Delete a Warp Connector Tunnel response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_tunnel-response-single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Delete a Warp Connector Tunnel response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Delete a Warp Connector Tunnel","tags":["Cloudflare Tunnel"],"x-api-token-group":["Cloudflare One Connectors Write","Cloudflare One Warp Connectors Write"]},"get":{"description":"Fetches a single Warp Connector Tunnel.","operationId":"cloudflare-tunnel-get-a-warp-connector-tunnel","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"path","name":"tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_tunnel_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_tunnel-response-single"}}},"description":"Get a Warp Connector Tunnel response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_tunnel-response-single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Get a Warp Connector Tunnel response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Get a Warp Connector Tunnel","tags":["Cloudflare Tunnel"],"x-api-token-group":["Cloudflare One Connectors Write","Cloudflare One Connectors Read","Cloudflare One Warp Connectors Write","Cloudflare One Warp Connectors Read"]},"patch":{"description":"Updates an existing Warp Connector Tunnel.","operationId":"cloudflare-tunnel-update-a-warp-connector-tunnel","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"path","name":"tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_tunnel_id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"name":{"$ref":"#/components/schemas/tunnel_tunnel_name"},"tunnel_secret":{"$ref":"#/components/schemas/tunnel_tunnel_secret"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_tunnel-response-single"}}},"description":"Update a Warp Connector Tunnel response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_tunnel-response-single"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Update a Warp Connector Tunnel response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Update a Warp Connector Tunnel","tags":["Cloudflare Tunnel"],"x-api-token-group":["Cloudflare One Connectors Write","Cloudflare One Warp Connectors Write"]}},"/accounts/{account_id}/warp_connector/{tunnel_id}/token":{"get":{"description":"Gets the token used to associate warp device with a specific Warp Connector tunnel.","operationId":"cloudflare-tunnel-get-a-warp-connector-tunnel-token","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}},{"in":"path","name":"tunnel_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_tunnel_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_tunnel_response_token"}}},"description":"Get a Warp Connector Tunnel token response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tunnel_tunnel_response_token"},{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}]}}},"description":"Get a Warp Connector Tunnel token response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Get a Warp Connector Tunnel token","tags":["Cloudflare Tunnel"]}},"/accounts/{account_id}/workers/account-settings":{"get":{"description":"Fetches Worker account settings for an account.","operationId":"worker-account-settings-fetch-worker-account-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_account-settings-response"}}},"description":"Fetch Worker Account Settings response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_account-settings-response"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Fetch Worker Account Settings response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Fetch Worker Account Settings","tags":["Worker Account Settings"],"x-api-token-group":["Cloudflare Zero Trust PII Read","DDoS Botnet Feed Write","DDoS Botnet Feed Read","Workers R2 Storage Write","Workers R2 Storage Read","DDoS Protection Write","DDoS Protection Read","Workers Tail Read","Workers KV Storage Write","Workers KV Storage Read","Workers Scripts Write","Workers Scripts Read","Load Balancing: Monitors and Pools Write","Load Balancing: Monitors and Pools Read","Account Firewall Access Rules Write","Account Firewall Access Rules Read","DNS Firewall Write","DNS Firewall Read","Billing Write","Billing Read","Account Settings Write","Account Settings Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.read"]}},"put":{"description":"Creates Worker account settings for an account.","operationId":"worker-account-settings-create-worker-account-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_account-settings"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_account-settings-response"}}},"description":"Create Worker Account Settings response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_account-settings-response"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Create Worker Account Settings response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create Worker Account Settings","tags":["Worker Account Settings"],"x-api-token-group":["Account Settings Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.update"]}}},"/accounts/{account_id}/workers/deployments/by-script/{script_id}":{"get":{"deprecated":true,"operationId":"worker-deployments-(-deprecated)-list-deployments","parameters":[{"in":"path","name":"script_id","required":true,"schema":{"$ref":"#/components/schemas/workers_script_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_deployments-list-response"}}},"description":"List Deployments response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_deployments-list-response"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"List Deployments response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Deployments","tags":["Worker Deployments (Deprecated)"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write","Workers Scripts Read"],"x-cfDeprecation":{"description":"This endpoint and its related APIs are deprecated in favor of the `/accounts/{account_id}/workers/scripts/{script_name}/versions` equivalent APIs.","display":true,"id":"worker_deployments_deprecation"},"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.deployment.list"]}}},"/accounts/{account_id}/workers/deployments/by-script/{script_id}/detail/{deployment_id}":{"get":{"deprecated":true,"operationId":"worker-deployments-(-deprecated)-get-deployment-detail","parameters":[{"in":"path","name":"deployment_id","required":true,"schema":{"$ref":"#/components/schemas/workers_deployment_identifier"}},{"in":"path","name":"script_id","required":true,"schema":{"$ref":"#/components/schemas/workers_script_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_deployments-single-response"}}},"description":"Get Deployment Detail response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_deployments-single-response"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Get Deployment Detail response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Deployment Detail","tags":["Worker Deployments (Deprecated)"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write","Workers Scripts Read"],"x-cfDeprecation":{"description":"This endpoint and its related APIs are deprecated in favor of the `/accounts/{account_id}/workers/scripts/{script_name}/versions` equivalent APIs.","display":true,"id":"worker_deployments_deprecation"},"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.deployment.read"]}}},"/accounts/{account_id}/workers/dispatch/namespaces":{"get":{"description":"Fetch a list of Workers for Platforms namespaces.","operationId":"namespace-worker-list","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_namespace-list-response"}}},"description":"Fetch a list of Workers for Platforms namespaces."},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Failure to get list of Workers for Platforms namespaces."}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List dispatch namespaces","tags":["Workers for Platforms"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read"]}},"post":{"description":"Create a new Workers for Platforms namespace.","operationId":"namespace-worker-create","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"name":{"description":"The name of the dispatch namespace","example":"my-dispatch-namespace","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_namespace-single-response"}}},"description":"Fetch a list of Workers for Platforms namespaces."},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Failure to get list of Workers for Platforms namespaces."}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create dispatch namespace","tags":["Workers for Platforms"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.create"]}}},"/accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}":{"delete":{"description":"Delete a Workers for Platforms namespace.","operationId":"namespace-worker-delete-namespace","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"dispatch_namespace","required":true,"schema":{"$ref":"#/components/schemas/workers_dispatch_namespace_name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_namespace-delete-response"}}},"description":"Delete a Workers for Platforms namespace."},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Failure to delete Workers for Platforms namespace."}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete dispatch namespace","tags":["Workers for Platforms"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.delete"]}},"get":{"description":"Get a Workers for Platforms namespace.","operationId":"namespace-worker-get-namespace","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"dispatch_namespace","required":true,"schema":{"$ref":"#/components/schemas/workers_dispatch_namespace_name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_namespace-single-response"}}},"description":"Get a Workers for Platforms namespace."},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Failure to get Workers for Platforms namespace."}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get dispatch namespace","tags":["Workers for Platforms"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read"]}}},"/accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}":{"delete":{"description":"Delete a worker from a Workers for Platforms namespace. This call has no response body on a successful delete.","operationId":"namespace-worker-script-delete-worker","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"dispatch_namespace","required":true,"schema":{"$ref":"#/components/schemas/workers_dispatch_namespace_name"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}},{"description":"If set to true, delete will not be stopped by associated service binding, durable object, or other binding. Any of these associated bindings/durable objects will be deleted along with the script.","in":"query","name":"force","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{}},"description":"Delete Worker response"},"4XX":{"content":{"application/json":{}},"description":"Delete Worker response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Worker","tags":["Workers for Platforms"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.delete"]}},"get":{"description":"Fetch information about a script uploaded to a Workers for Platforms namespace.","operationId":"namespace-worker-script-worker-details","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"dispatch_namespace","required":true,"schema":{"$ref":"#/components/schemas/workers_dispatch_namespace_name"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_namespace-script-response-single"}}},"description":"Worker Details Response (Workers for Platforms)"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Worker Details Failure (Workers for Platforms)"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Worker Details","tags":["Workers for Platforms"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read"]}},"put":{"description":"Upload a worker module to a Workers for Platforms namespace. You can find more about the multipart metadata on our docs: https://developers.cloudflare.com/workers/configuration/multipart-upload-metadata/.","operationId":"namespace-worker-script-upload-worker-module","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"dispatch_namespace","required":true,"schema":{"$ref":"#/components/schemas/workers_dispatch_namespace_name"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}}],"requestBody":{"$ref":"#/components/requestBodies/workers_script_upload"},"responses":{"200":{"$ref":"#/components/responses/workers_200"},"4XX":{"$ref":"#/components/responses/workers_4XX"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Upload Worker Module","tags":["Workers for Platforms"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.create"]}}},"/accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/bindings":{"get":{"description":"Fetch script bindings from a script uploaded to a Workers for Platforms namespace.","operationId":"namespace-worker-get-script-bindings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"dispatch_namespace","required":true,"schema":{"$ref":"#/components/schemas/workers_dispatch_namespace_name"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers_bindings"}}}]}}},"description":"Fetch script bindings (Workers for Platforms)"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Fetch script bindings failure (Workers for Platforms)"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Script Bindings","tags":["Workers for Platforms"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read"]}}},"/accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/content":{"get":{"description":"Fetch script content from a script uploaded to a Workers for Platforms namespace.","operationId":"namespace-worker-get-script-content","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"dispatch_namespace","required":true,"schema":{"$ref":"#/components/schemas/workers_dispatch_namespace_name"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}}],"responses":{"200":{"content":{"string":{"schema":{"example":"export default {\n fetch(req) {\n return new Response(\"Hello, World!\")\n }\n}\n"}}},"description":"Get script content"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Get script content failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Script Content","tags":["Workers for Platforms"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read"]}},"put":{"description":"Put script content for a script uploaded to a Workers for Platforms namespace.","operationId":"namespace-worker-put-script-content","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"dispatch_namespace","required":true,"schema":{"$ref":"#/components/schemas/workers_dispatch_namespace_name"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}},{"description":"The multipart name of a script upload part containing script content in service worker format. Alternative to including in a metadata part.","in":"header","name":"CF-WORKER-BODY-PART","schema":{"type":"string"}},{"description":"The multipart name of a script upload part containing script content in es module format. Alternative to including in a metadata part.","in":"header","name":"CF-WORKER-MAIN-MODULE-PART","schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"encoding":{"\u003cany part name\u003e":{"contentType":"application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream, application/source-map"}},"schema":{"properties":{"\u003cany part name\u003e":{"description":"A module comprising a Worker script, often a javascript file. Multiple modules may be provided as separate named parts, but at least one module must be present. This should be referenced either in the metadata as `main_module` (esm)/`body_part` (service worker) or as a header `CF-WORKER-MAIN-MODULE-PART` (esm) /`CF-WORKER-BODY-PART` (service worker) by part name. Source maps may also be included using the `application/source-map` content type.","items":{"format":"binary","type":"string"},"type":"array"},"metadata":{"description":"JSON encoded metadata about the uploaded parts and Worker configuration.","properties":{"body_part":{"description":"Name of the part in the multipart request that contains the script (e.g. the file adding a listener to the `fetch` event). Indicates a `service worker syntax` Worker.","example":"worker.js","type":"string"},"main_module":{"description":"Name of the part in the multipart request that contains the main module (e.g. the file exporting a `fetch` handler). Indicates a `module syntax` Worker.","example":"worker.js","type":"string"}},"type":"object"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_script-response-single"}}},"description":"Put script content (Workers for Platforms)"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Put script content failure (Workers for Platforms)"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Put Script Content","tags":["Workers for Platforms"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.create"]}}},"/accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/secrets":{"get":{"description":"List secrets from a script uploaded to a Workers for Platforms namespace.","operationId":"namespace-worker-list-script-secrets","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"dispatch_namespace","required":true,"schema":{"$ref":"#/components/schemas/workers_dispatch_namespace_name"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/workers_secret-response"},"type":"array"}}}]}}},"description":"List script secrets"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"List script secrets failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Script Secrets","tags":["Workers for Platforms"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read"]}},"put":{"description":"Put secrets to a script uploaded to a Workers for Platforms namespace.","operationId":"namespace-worker-put-script-secrets","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"dispatch_namespace","required":true,"schema":{"$ref":"#/components/schemas/workers_dispatch_namespace_name"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_secret"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers_secret-response"}}}]}}},"description":"Fetch script bindings (Workers for Platforms)"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Fetch script bindings failure (Workers for Platforms)"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Put Script Secrets","tags":["Workers for Platforms"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.edit"]}}},"/accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/secrets/{secret_name}":{"get":{"description":"Get secret from a script uploaded to a Workers for Platforms namespace.","operationId":"namespace-worker-get-script-secrets","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"dispatch_namespace","required":true,"schema":{"$ref":"#/components/schemas/workers_dispatch_namespace_name"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}},{"in":"path","name":"secret_name","required":true,"schema":{"$ref":"#/components/schemas/workers_secret_name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers_secret-response"}}}]}}},"description":"Get script secret"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Get script secret failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Script Secret","tags":["Workers for Platforms"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read"]}}},"/accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/settings":{"get":{"description":"Get script settings from a script uploaded to a Workers for Platforms namespace.","operationId":"namespace-worker-get-script-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"dispatch_namespace","required":true,"schema":{"$ref":"#/components/schemas/workers_dispatch_namespace_name"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers_script-and-version-settings-item"}}}]}}},"description":"Fetch script settings"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Fetch script settings failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Script Settings","tags":["Workers for Platforms"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read"]}},"patch":{"description":"Patch script metadata, such as bindings","operationId":"namespace-worker-patch-script-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"dispatch_namespace","required":true,"schema":{"$ref":"#/components/schemas/workers_dispatch_namespace_name"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"settings":{"$ref":"#/components/schemas/workers_script-and-version-settings-item"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/workers_script-and-version-settings-item"}}}]}}},"description":"Patch script settings"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Patch script settings failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Patch Script Settings","tags":["Workers for Platforms"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.create"]}}},"/accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/tags":{"get":{"description":"Fetch tags from a script uploaded to a Workers for Platforms namespace.","operationId":"namespace-worker-get-script-tags","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"dispatch_namespace","required":true,"schema":{"$ref":"#/components/schemas/workers_dispatch_namespace_name"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"example":["free","customer"],"items":{"$ref":"#/components/schemas/workers_tag"},"type":"array"}}}]}}},"description":"Fetch script tags"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Fetch script tags failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Script Tags","tags":["Workers for Platforms"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read"]}},"put":{"description":"Put script tags for a script uploaded to a Workers for Platforms namespace.","operationId":"namespace-worker-put-script-tags","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"dispatch_namespace","required":true,"schema":{"$ref":"#/components/schemas/workers_dispatch_namespace_name"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_tags"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"example":["my-tag"],"items":{"$ref":"#/components/schemas/workers_tag"},"type":"array"}}}]}}},"description":"Fetch script tags"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Fetch script tags failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Put Script Tags","tags":["Workers for Platforms"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.edit"]}}},"/accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/tags/{tag}":{"delete":{"description":"Delete script tag for a script uploaded to a Workers for Platforms namespace.","operationId":"namespace-worker-delete-script-tag","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"dispatch_namespace","required":true,"schema":{"$ref":"#/components/schemas/workers_dispatch_namespace_name"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}},{"in":"path","name":"tag","required":true,"schema":{"$ref":"#/components/schemas/workers_tag"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"enum":[null],"nullable":true,"type":"object"}}}]}}},"description":"Delete script tag"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Delete script tag failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Script Tag","tags":["Workers for Platforms"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.edit"]}},"put":{"description":"Put a single tag on a script uploaded to a Workers for Platforms namespace.","operationId":"namespace-worker-put-script-tag","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"dispatch_namespace","required":true,"schema":{"$ref":"#/components/schemas/workers_dispatch_namespace_name"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}},{"in":"path","name":"tag","required":true,"schema":{"$ref":"#/components/schemas/workers_tag"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"enum":[null],"nullable":true,"type":"object"}}}]}}},"description":"Put script tag"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Put script tag failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Put Script Tag","tags":["Workers for Platforms"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read"]}}},"/accounts/{account_id}/workers/domains":{"get":{"description":"Lists all Worker Domains for an account.","operationId":"worker-domain-list-domains","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_account_identifier"}},{"in":"query","name":"zone_name","schema":{"$ref":"#/components/schemas/workers_zone_name"}},{"in":"query","name":"service","schema":{"$ref":"#/components/schemas/workers_schemas-service"}},{"in":"query","name":"zone_id","schema":{"$ref":"#/components/schemas/workers_zone_identifier"}},{"in":"query","name":"hostname","schema":{"description":"Hostname of the Worker Domain.","example":"foo.example.com","type":"string"}},{"in":"query","name":"environment","schema":{"description":"Worker environment associated with the zone and hostname.","example":"production","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_domain-response-collection"}}},"description":"List Domains response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_domain-response-collection"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"List Domains response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Domains","tags":["Worker Domain"],"x-api-token-group":["Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.domain.list"]}},"put":{"description":"Attaches a Worker to a zone and hostname.","operationId":"worker-domain-attach-to-domain","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_account_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"environment":{"$ref":"#/components/schemas/workers_schemas-environment"},"hostname":{"$ref":"#/components/schemas/workers_hostname"},"service":{"$ref":"#/components/schemas/workers_schemas-service"},"zone_id":{"$ref":"#/components/schemas/workers_zone_identifier"}},"required":["zone_id","hostname","service","environment"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_domain-response-single"}}},"description":"Attach to Domain response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_domain-response-single"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Attach to Domain response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Attach to Domain","tags":["Worker Domain"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.domain.update"]}}},"/accounts/{account_id}/workers/domains/{domain_id}":{"delete":{"description":"Detaches a Worker from a zone and hostname.","operationId":"worker-domain-detach-from-domain","parameters":[{"in":"path","name":"domain_id","required":true,"schema":{"$ref":"#/components/schemas/workers_domain_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_account_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{}},"description":"Detach from Domain response"},"4XX":{"content":{"application/json":{}},"description":"Detach from Domain response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Detach from Domain","tags":["Worker Domain"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.domain.delete"]}},"get":{"description":"Gets a Worker domain.","operationId":"worker-domain-get-a-domain","parameters":[{"in":"path","name":"domain_id","required":true,"schema":{"$ref":"#/components/schemas/workers_domain_identifier"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_account_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_domain-response-single"}}},"description":"Get a Domain response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_domain-response-single"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Get a Domain response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get a Domain","tags":["Worker Domain"],"x-api-token-group":["Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.domain.read"]}}},"/accounts/{account_id}/workers/durable_objects/namespaces":{"get":{"description":"Returns the Durable Object namespaces owned by an account.","operationId":"durable-objects-namespace-list-namespaces","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/workers_namespace"},"type":"array"}},"type":"object"}]}}},"description":"List Namespaces response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/workers_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/workers_namespace"},"type":"array"}},"type":"object"}]},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"List Namespaces response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Namespaces","tags":["Durable Objects Namespace"],"x-api-token-group":["Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.durable-object.class.list"]}}},"/accounts/{account_id}/workers/durable_objects/namespaces/{id}/objects":{"get":{"description":"Returns the Durable Objects in a given namespace.","operationId":"durable-objects-namespace-list-objects","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/workers_schemas-id"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"query","name":"limit","schema":{"default":1000,"description":"The number of objects to return. The cursor attribute may be used to iterate over the next batch of objects if there are more than the limit.","maximum":10000,"minimum":10,"type":"number"}},{"in":"query","name":"cursor","schema":{"description":"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","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/workers_object"},"type":"array"},"result_info":{"properties":{"count":{"description":"Total results returned based on your list parameters.","example":1,"type":"number"},"cursor":{"$ref":"#/components/schemas/workers_cursor"}}}},"type":"object"}]}}},"description":"List Objects response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/workers_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/workers_object"},"type":"array"},"result_info":{"properties":{"count":{"description":"Total results returned based on your list parameters.","example":1,"type":"number"},"cursor":{"$ref":"#/components/schemas/workers_cursor"}}}},"type":"object"}]},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"List Objects response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Objects","tags":["Durable Objects Namespace"],"x-api-token-group":["Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.durable-object.class.read"]}}},"/accounts/{account_id}/workers/scripts":{"get":{"description":"Fetch a list of uploaded workers.","operationId":"worker-script-list-workers","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_script-response-collection"}}},"description":"List Workers response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_script-response-collection"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"List Workers response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Workers","tags":["Worker Script"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.list"]}}},"/accounts/{account_id}/workers/scripts/{script_name}":{"delete":{"description":"Delete your worker. This call has no response body on a successful delete.","operationId":"worker-script-delete-worker","parameters":[{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"description":"If set to true, delete will not be stopped by associated service binding, durable object, or other binding. Any of these associated bindings/durable objects will be deleted along with the script.","in":"query","name":"force","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{}},"description":"Delete Worker response"},"4XX":{"content":{"application/json":{}},"description":"Delete Worker response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Worker","tags":["Worker Script"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.delete"]}},"get":{"description":"Fetch raw script content for your worker. Note this is the original script content, not JSON encoded.","operationId":"worker-script-download-worker","parameters":[{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"responses":{"200":{"content":{"undefined":{"schema":{"example":"addEventListener('fetch', event =\u003e { event.respondWith(fetch(event.request)) })"}}},"description":"Download Worker response"},"4XX":{"content":{"undefined":{"schema":{"example":"addEventListener('fetch', event =\u003e { event.respondWith(fetch(event.request)) })"}}},"description":"Download Worker response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Download Worker","tags":["Worker Script"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read"]}},"put":{"description":"Upload a worker module. You can find more about the multipart metadata on our docs: https://developers.cloudflare.com/workers/configuration/multipart-upload-metadata/.","operationId":"worker-script-upload-worker-module","parameters":[{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"description":"Rollback to provided deployment based on deployment ID. Request body will only parse a \"message\" part. You can learn more about deployments [here](https://developers.cloudflare.com/workers/platform/deployments/).","in":"query","name":"rollback_to","schema":{"$ref":"#/components/schemas/workers_uuid"}}],"requestBody":{"$ref":"#/components/requestBodies/workers_script_upload"},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_script-response-upload-single"},{"example":{"errors":[],"messages":[],"result":{"created_on":"2022-05-05T05:15:11.602148Z","etag":"777f24a43bef5f69174aa69ceaf1dea67968d510a31d1vw3e49d34a0187c06d1","handlers":["fetch"],"id":"this-is_my_script-01","logpush":false,"modified_on":"2022-05-20T19:02:56.446492Z","placement_mode":"smart","startup_time_ms":10,"tail_consumers":[{"environment":"production","service":"my-log-consumer"}],"usage_model":"bundled"},"success":true}}]}}},"description":"Upload Worker Module response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"example":{"errors":[],"messages":[],"result":{"created_on":"2022-05-05T05:15:11.602148Z","etag":"777f24a43bef5f69174aa69ceaf1dea67968d510a31d1vw3e49d34a0187c06d1","handlers":["fetch"],"id":"this-is_my_script-01","logpush":false,"modified_on":"2022-05-20T19:02:56.446492Z","tail_consumers":[{"environment":"production","service":"my-log-consumer"}],"usage_model":"bundled"},"success":true}},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Upload Worker Module response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Upload Worker Module","tags":["Worker Script"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.create"]}}},"/accounts/{account_id}/workers/scripts/{script_name}/content":{"put":{"description":"Put script content without touching config or metadata","operationId":"worker-script-put-content","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}},{"description":"The multipart name of a script upload part containing script content in service worker format. Alternative to including in a metadata part.","in":"header","name":"CF-WORKER-BODY-PART","schema":{"type":"string"}},{"description":"The multipart name of a script upload part containing script content in es module format. Alternative to including in a metadata part.","in":"header","name":"CF-WORKER-MAIN-MODULE-PART","schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"encoding":{"\u003cany part name\u003e":{"contentType":"application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream, application/source-map"}},"schema":{"properties":{"\u003cany part name\u003e":{"description":"A module comprising a Worker script, often a javascript file. Multiple modules may be provided as separate named parts, but at least one module must be present. This should be referenced either in the metadata as `main_module` (esm)/`body_part` (service worker) or as a header `CF-WORKER-MAIN-MODULE-PART` (esm) /`CF-WORKER-BODY-PART` (service worker) by part name. Source maps may also be included using the `application/source-map` content type.","items":{"format":"binary","type":"string"},"type":"array"},"metadata":{"description":"JSON encoded metadata about the uploaded parts and Worker configuration.","properties":{"body_part":{"description":"Name of the part in the multipart request that contains the script (e.g. the file adding a listener to the `fetch` event). Indicates a `service worker syntax` Worker.","example":"worker.js","type":"string"},"main_module":{"description":"Name of the part in the multipart request that contains the main module (e.g. the file exporting a `fetch` handler). Indicates a `module syntax` Worker.","example":"worker.js","type":"string"}},"type":"object"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_script-response-single"}}},"description":"Put script content"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common-failure"}}},"description":"Put script content failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Put script content","tags":["Worker Script"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.create"]}}},"/accounts/{account_id}/workers/scripts/{script_name}/content/v2":{"get":{"description":"Fetch script content only","operationId":"worker-script-get-content","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}}],"responses":{"200":{"content":{"string":{"schema":{"example":"addEventListener('fetch', event =\u003e { event.respondWith(fetch(event.request)) })"}}},"description":"Fetch script content"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Fetch script content failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get script content","tags":["Worker Script"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read"]}}},"/accounts/{account_id}/workers/scripts/{script_name}/deployments":{"get":{"description":"List of Worker Deployments. The first deployment in the list is the latest deployment actively serving traffic.","operationId":"worker-deployments-list-deployments","parameters":[{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_schemas-script_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_schemas-deployments-list-response"}}},"description":"List Deployments response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_schemas-deployments-list-response"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"List Deployments response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Deployments","tags":["Worker Deployments"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.deployment.list"]}},"post":{"description":"Deployments configure how [Worker Versions](https://developers.cloudflare.com/api/operations/worker-versions-list-versions) are deployed to traffic. A deployment can consist of one or two versions of a Worker.","operationId":"worker-deployments-create-deployment","parameters":[{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_schemas-script_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"description":"If set to true, the deployment will be created even if normally blocked by something such rolling back to an older version when a secret has changed.","in":"query","name":"force","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_deployments-create-body"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_schemas-deployments-single-response"}}},"description":"Create Deployment response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_schemas-deployments-single-response"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Create Deployment response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create Deployment","tags":["Worker Deployments"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.deployment.edit"]}}},"/accounts/{account_id}/workers/scripts/{script_name}/schedules":{"get":{"description":"Fetches Cron Triggers for a Worker.","operationId":"worker-cron-trigger-get-cron-triggers","parameters":[{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_cron-trigger-response-collection"}}},"description":"Get Cron Triggers response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_cron-trigger-response-collection"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Get Cron Triggers response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Cron Triggers","tags":["Worker Cron Trigger"],"x-api-token-group":["Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.cron.trigger.read"]}},"put":{"description":"Updates Cron Triggers for a Worker.","operationId":"worker-cron-trigger-update-cron-triggers","parameters":[{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/workers_cron-object"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_cron-trigger-response-collection"}}},"description":"Update Cron Triggers response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_cron-trigger-response-collection"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Update Cron Triggers response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update Cron Triggers","tags":["Worker Cron Trigger"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.cron.trigger.update"]}}},"/accounts/{account_id}/workers/scripts/{script_name}/script-settings":{"get":{"description":"Get script-level settings when using [Worker Versions](https://developers.cloudflare.com/api/operations/worker-versions-list-versions). Includes Logpush and Tail Consumers.","operationId":"worker-script-settings-get-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_script-settings-response"}}},"description":"Fetch script settings"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Fetch script settings failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Script Settings","tags":["Worker Script"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read"]}},"patch":{"description":"Patch script-level settings when using [Worker Versions](https://developers.cloudflare.com/api/operations/worker-versions-list-versions). Including but not limited to Logpush and Tail Consumers.","operationId":"worker-script-settings-patch-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_script-settings-item"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_script-settings-response"}}},"description":"Patch script settings"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Patch script settings failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Patch Script Settings","tags":["Worker Script"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.create"]}}},"/accounts/{account_id}/workers/scripts/{script_name}/settings":{"get":{"description":"Get metadata and config, such as bindings or usage model","operationId":"worker-script-get-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_script-and-version-settings-response"}}},"description":"Fetch settings"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Fetch settings failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Settings","tags":["Worker Script"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read"]}},"patch":{"description":"Patch metadata or config, such as bindings or usage model","operationId":"worker-script-patch-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"settings":{"$ref":"#/components/schemas/workers_script-and-version-settings-item"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_script-and-version-settings-response"}}},"description":"Patch settings"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Patch settings failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Patch Settings","tags":["Worker Script"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.create"]}}},"/accounts/{account_id}/workers/scripts/{script_name}/subdomain":{"get":{"description":"Get if the Worker is available on the workers.dev subdomain.","operationId":"worker-script-get-subdomain","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"enabled":{"description":"Whether the Worker is available on the workers.dev subdomain.","example":true,"type":"boolean"}},"type":"object"}}},"description":"Get subdomain response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Get subdomain response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Worker subdomain","tags":["Worker Script"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.create"]}},"post":{"description":"Enable or disable the Worker on the workers.dev subdomain.","operationId":"worker-script-post-subdomain","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"enabled":{"description":"Whether the Worker should be available on the workers.dev subdomain.","example":true,"type":"boolean"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"enabled":{"description":"Whether the Worker is available on the workers.dev subdomain.","example":true,"type":"boolean"}},"type":"object"}}},"description":"Post subdomain response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Post subdomain response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Post Worker subdomain","tags":["Worker Script"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.create"]}}},"/accounts/{account_id}/workers/scripts/{script_name}/tails":{"get":{"description":"Get list of tails currently deployed on a Worker.","operationId":"worker-tail-logs-list-tails","parameters":[{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_tail-response"}}},"description":"List Tails response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_tail-response"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"List Tails response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Tails","tags":["Worker Tail Logs"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read"]}},"post":{"description":"Starts a tail that receives logs and exception from a Worker.","operationId":"worker-tail-logs-start-tail","parameters":[{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_tail-response"}}},"description":"Start Tail response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_tail-response"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Start Tail response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Start Tail","tags":["Worker Tail Logs"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read","com.cloudflare.edge.worker.tail.create"]}}},"/accounts/{account_id}/workers/scripts/{script_name}/tails/{id}":{"delete":{"description":"Deletes a tail from a Worker.","operationId":"worker-tail-logs-delete-tail","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/workers_id"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Delete Tail response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Delete Tail response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Tail","tags":["Worker Tail Logs"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read","com.cloudflare.edge.worker.tail.create"]}}},"/accounts/{account_id}/workers/scripts/{script_name}/usage-model":{"get":{"description":"Fetches the Usage Model for a given Worker.","operationId":"worker-script-fetch-usage-model","parameters":[{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_usage-model-response"}}},"description":"Fetch Usage Model response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_usage-model-response"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Fetch Usage Model response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Fetch Usage Model","tags":["Worker Script"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read"]}},"put":{"description":"Updates the Usage Model for a given Worker. Requires a Workers Paid subscription.","operationId":"worker-script-update-usage-model","parameters":[{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_script_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_usage-model-object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_usage-model-response"}}},"description":"Update Usage Model response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_usage-model-response"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Update Usage Model response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update Usage Model","tags":["Worker Script"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.create"]}}},"/accounts/{account_id}/workers/scripts/{script_name}/versions":{"get":{"description":"List of Worker Versions. The first version in the list is the latest version.","operationId":"worker-versions-list-versions","parameters":[{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_schemas-script_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"description":"Only return versions that can be used in a deployment. Ignores pagination.","in":"query","name":"deployable","schema":{"default":false,"type":"boolean"}},{"description":"Current page.","in":"query","name":"page","schema":{"default":1,"type":"integer"}},{"description":"Items per-page.","in":"query","name":"per_page","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_versions-list-response"}}},"description":"List Versions response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_versions-list-response"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"List Versions response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Versions","tags":["Worker Versions"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.deployment.list"]}},"post":{"description":"Upload a Worker Version without deploying to Cloudflare's network. You can find more about the multipart metadata on our docs: https://developers.cloudflare.com/workers/configuration/multipart-upload-metadata/.","operationId":"worker-versions-upload-version","parameters":[{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_schemas-script_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"requestBody":{"$ref":"#/components/requestBodies/workers_version-post"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_versions-upload-response"}}},"description":"Upload Version response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_versions-upload-response"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Upload Version response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Upload Version","tags":["Worker Versions"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.deployment.edit"]}}},"/accounts/{account_id}/workers/scripts/{script_name}/versions/{version_id}":{"get":{"operationId":"worker-versions-get-version-detail","parameters":[{"in":"path","name":"version_id","required":true,"schema":{"$ref":"#/components/schemas/workers_version_identifier"}},{"in":"path","name":"script_name","required":true,"schema":{"$ref":"#/components/schemas/workers_schemas-script_name"}},{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_versions-single-response"}}},"description":"Get Version Detail response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_versions-single-response"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Get Version Detail response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Version Detail","tags":["Worker Versions"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.deployment.read"]}}},"/accounts/{account_id}/workers/services/{service_name}/environments/{environment_name}/content":{"get":{"description":"Get script content from a worker with an environment","operationId":"worker-environment-get-script-content","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"service_name","required":true,"schema":{"$ref":"#/components/schemas/workers_service"}},{"in":"path","name":"environment_name","required":true,"schema":{"$ref":"#/components/schemas/workers_environment"}}],"responses":{"200":{"content":{"string":{"schema":{"example":"addEventListener('fetch', event =\u003e { event.respondWith(fetch(event.request)) })"}}},"description":"Get script content"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common-failure"}}},"description":"Get script content failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get script content","tags":["Worker Environment"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read"]}},"put":{"description":"Put script content from a worker with an environment","operationId":"worker-environment-put-script-content","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"service_name","required":true,"schema":{"$ref":"#/components/schemas/workers_service"}},{"in":"path","name":"environment_name","required":true,"schema":{"$ref":"#/components/schemas/workers_environment"}},{"description":"The multipart name of a script upload part containing script content in service worker format. Alternative to including in a metadata part.","in":"header","name":"CF-WORKER-BODY-PART","schema":{"type":"string"}},{"description":"The multipart name of a script upload part containing script content in es module format. Alternative to including in a metadata part.","in":"header","name":"CF-WORKER-MAIN-MODULE-PART","schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"encoding":{"\u003cany part name\u003e":{"contentType":"application/javascript+module, text/javascript+module, application/javascript, text/javascript, application/wasm, text/plain, application/octet-stream, application/source-map"}},"schema":{"properties":{"\u003cany part name\u003e":{"description":"A module comprising a Worker script, often a javascript file. Multiple modules may be provided as separate named parts, but at least one module must be present. This should be referenced either in the metadata as `main_module` (esm)/`body_part` (service worker) or as a header `CF-WORKER-MAIN-MODULE-PART` (esm) /`CF-WORKER-BODY-PART` (service worker) by part name. Source maps may also be included using the `application/source-map` content type.","items":{"format":"binary","type":"string"},"type":"array"},"metadata":{"description":"JSON encoded metadata about the uploaded parts and Worker configuration.","properties":{"body_part":{"description":"Name of the part in the multipart request that contains the script (e.g. the file adding a listener to the `fetch` event). Indicates a `service worker syntax` Worker.","example":"worker.js","type":"string"},"main_module":{"description":"Name of the part in the multipart request that contains the main module (e.g. the file exporting a `fetch` handler). Indicates a `module syntax` Worker.","example":"worker.js","type":"string"}},"type":"object"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_script-response-single"}}},"description":"Put script content"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common-failure"}}},"description":"Put script content failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Put script content","tags":["Worker Environment"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.create"]}}},"/accounts/{account_id}/workers/services/{service_name}/environments/{environment_name}/settings":{"get":{"description":"Get script settings from a worker with an environment","operationId":"worker-script-environment-get-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"service_name","required":true,"schema":{"$ref":"#/components/schemas/workers_service"}},{"in":"path","name":"environment_name","required":true,"schema":{"$ref":"#/components/schemas/workers_environment"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_script-settings-response"}}},"description":"Fetch script settings"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Fetch script settings failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Script Settings","tags":["Worker Environment"],"x-api-token-group":["Workers Tail Read","Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.read"]}},"patch":{"description":"Patch script metadata, such as bindings","operationId":"worker-script-environment-patch-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"service_name","required":true,"schema":{"$ref":"#/components/schemas/workers_service"}},{"in":"path","name":"environment_name","required":true,"schema":{"$ref":"#/components/schemas/workers_environment"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_script-settings-response"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_script-settings-response"}}},"description":"Patch script settings"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-common"}}},"description":"Patch script settings failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Patch Script Settings","tags":["Worker Environment"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.script.create"]}}},"/accounts/{account_id}/workers/subdomain":{"get":{"description":"Returns a Workers subdomain for an account.","operationId":"worker-subdomain-get-subdomain","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_subdomain-response"}}},"description":"Get Subdomain response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_subdomain-response"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Get Subdomain response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Subdomain","tags":["Worker Subdomain"],"x-api-token-group":["Workers Scripts Write","Workers Scripts Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.cron.subdomain.read"]}},"put":{"description":"Creates a Workers subdomain for an account.","operationId":"worker-subdomain-create-subdomain","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_subdomain-object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_subdomain-response"}}},"description":"Create Subdomain response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_subdomain-response"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Create Subdomain response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create Subdomain","tags":["Worker Subdomain"],"x-api-token-group":["Workers Scripts Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.cron.subdomain.create"]}}},"/accounts/{account_id}/zerotrust/connectivity_settings":{"get":{"description":"Gets the Zero Trust Connectivity Settings for the given account.","operationId":"zero-trust-accounts-get-connectivity-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_zero_trust_connectivity_settings_response"}}},"description":"Get Zero Trust Connectivity Settings response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}}},"description":"Get Zero Trust Connectivity Settings response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Get Zero Trust Connectivity Settings","tags":["Zero Trust Connectivity Settings"],"x-api-token-group":["Teams Report","Teams Read","Teams Write"]},"patch":{"description":"Updates the Zero Trust Connectivity Settings for the given account.","operationId":"zero-trust-accounts-patch-connectivity-settings","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/tunnel_account_id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"icmp_proxy_enabled":{"$ref":"#/components/schemas/tunnel_icmp_proxy_enabled"},"offramp_warp_enabled":{"$ref":"#/components/schemas/tunnel_offramp_warp_enabled"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_zero_trust_connectivity_settings_response"}}},"description":"Update Zero Trust Connectivity Settings response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tunnel_api-response-common-failure"}}},"description":"Update Zero Trust Connectivity Settings response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"summary":"Updates the Zero Trust Connectivity Settings","tags":["Zero Trust Connectivity Settings"],"x-api-token-group":["Teams Write"]}},"/accounts/{account_id}/zt_risk_scoring/behaviors":{"get":{"operationId":"dlp-risk-score-behaviors-get","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_Behaviors"}},"type":"object"}]}}},"description":"Risk scoring behaviors"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Failed to get risk scoring behaviors"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get all behaviors and associated configuration","tags":["Zero Trust Risk Scoring"],"x-api-token-group":["Teams Read","Teams Write"]},"put":{"operationId":"dlp-risk-score-behaviors-put","parameters":[{"description":"Account ID","in":"path","name":"account_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_UpdateBehaviors"}}},"description":"Behaviors","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_UpdateBehaviors"}},"type":"object"}]}}},"description":"Dataset created successfully"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Dataset creation failed"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update configuration for risk behaviors","tags":["Zero Trust Risk Scoring"],"x-api-token-group":["Teams Write"]}},"/accounts/{account_id}/zt_risk_scoring/integrations":{"get":{"operationId":"dlp-zt-risk-score-integration-list","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_RiskScoreIntegrationArray"}},"type":"object"}]}}},"description":"List response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"List failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List all risk score integrations for the account.","tags":["Zero Trust Risk Scoring Integrations"],"x-api-token-group":["Teams Read","Teams Write"]},"post":{"operationId":"dlp-zt-risk-score-integration-create","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_CreateIntegrationBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_RiskScoreIntegration"}},"type":"object"}]}}},"description":"Create response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Create failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create new risk score integration.","tags":["Zero Trust Risk Scoring Integrations"],"x-api-token-group":["Teams Write"]}},"/accounts/{account_id}/zt_risk_scoring/integrations/reference_id/{reference_id}":{"get":{"operationId":"dlp-zt-risk-score-integration-get-by-reference-id","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"reference_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_RiskScoreIntegration"}},"type":"object"}]}}},"description":"Get response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Get failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get risk score integration by reference id.","tags":["Zero Trust Risk Scoring Integrations"]}},"/accounts/{account_id}/zt_risk_scoring/integrations/{integration_id}":{"delete":{"operationId":"dlp-zt-risk-score-integration-delete","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"integration_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_Empty"}},"type":"object"}]}}},"description":"Delete response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Delete failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete a risk score integration.","tags":["Zero Trust Risk Scoring Integrations"]},"get":{"operationId":"dlp-zt-risk-score-integration-get","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"integration_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_RiskScoreIntegration"}},"type":"object"}]}}},"description":"Get response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Get failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get risk score integration by id.","tags":["Zero Trust Risk Scoring Integrations"]},"put":{"description":"Overwrite the reference_id, tenant_url, and active values with the ones provided","operationId":"dlp-zt-risk-score-integration-update","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"integration_id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_UpdateIntegrationBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_RiskScoreIntegration"}},"type":"object"}]}}},"description":"Update response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Update failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update a risk score integration.","tags":["Zero Trust Risk Scoring Integrations"]}},"/accounts/{account_id}/zt_risk_scoring/summary":{"get":{"operationId":"dlp-risk-score-summary-get","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-collection"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_RiskSummary"}},"type":"object"}]}}},"description":"Risk score for all users in the account"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Failed to get risk scores"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get risk score info for all users in the account","tags":["Zero Trust Risk Scoring"]}},"/accounts/{account_id}/zt_risk_scoring/{user_id}":{"get":{"operationId":"dlp-risk-score-summary-get-for-user","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"user_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-collection"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_RiskEvents"}},"type":"object"}]}}},"description":"Risk events"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Failed to get risk events"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get risk event/score information for a specific user","tags":["Zero Trust Risk Scoring"]}},"/accounts/{account_id}/zt_risk_scoring/{user_id}/reset":{"post":{"operationId":"dlp-risk-score-reset-post","parameters":[{"in":"path","name":"account_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"user_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dlp_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dlp_Empty"}},"type":"object"}]}}},"description":"Dataset created successfully"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dlp_api-response-common-failure"}}},"description":"Dataset creation failed"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Clear the risk score for a particular user","tags":["Zero Trust Risk Scoring"]}},"/certificates":{"get":{"description":"List all existing Origin CA certificates for a given zone. Use your Origin CA Key as your User Service Key when calling this endpoint ([see above](#requests)).","operationId":"origin-ca-list-certificates","parameters":[{"in":"query","name":"zone_id","schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-certificate_response_collection"}}},"description":"List Certificates response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-certificate_response_collection"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"List Certificates response failure"}},"security":[{"user_service_key":[]}],"summary":"List Certificates","tags":["Origin CA"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Create an Origin CA certificate. Use your Origin CA Key as your User Service Key when calling this endpoint ([see above](#requests)).","operationId":"origin-ca-create-certificate","requestBody":{"content":{"application/json":{"schema":{"properties":{"csr":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_csr"},"hostnames":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostnames"},"request_type":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_request_type"},"requested_validity":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_requested_validity"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-certificate_response_single"}}},"description":"Create Certificate response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-certificate_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Create Certificate response failure"}},"security":[{"user_service_key":[]}],"summary":"Create Certificate","tags":["Origin CA"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/certificates/{certificate_id}":{"delete":{"description":"Revoke an existing Origin CA certificate by its serial number. Use your Origin CA Key as your User Service Key when calling this endpoint ([see above](#requests)).","operationId":"origin-ca-revoke-certificate","parameters":[{"in":"path","name":"certificate_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_revoke_response"}}},"description":"Revoke Certificate response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_revoke_response"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Revoke Certificate response failure"}},"security":[{"user_service_key":[]}],"summary":"Revoke Certificate","tags":["Origin CA"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Get an existing Origin CA certificate by its serial number. Use your Origin CA Key as your User Service Key when calling this endpoint ([see above](#requests)).","operationId":"origin-ca-get-certificate","parameters":[{"in":"path","name":"certificate_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-certificate_response_single"}}},"description":"Get Certificate response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-certificate_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Get Certificate response failure"}},"security":[{"user_service_key":[]}],"summary":"Get Certificate","tags":["Origin CA"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/ips":{"get":{"description":"Get IPs used on the Cloudflare/JD Cloud network, see https://www.cloudflare.com/ips for Cloudflare IPs or https://developers.cloudflare.com/china-network/reference/infrastructure/ for JD Cloud IPs.","operationId":"cloudflare-i-ps-cloudflare-ip-details","parameters":[{"description":"Specified as `jdcloud` to list IPs used by JD Cloud data centers.","in":"query","name":"networks","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-single"},{"properties":{"result":{"oneOf":[{"$ref":"#/components/schemas/addressing_ips"},{"$ref":"#/components/schemas/addressing_ips_jdcloud"}]}}}]}}},"description":"Cloudflare IP Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/addressing_api-response-single"},{"properties":{"result":{"oneOf":[{"$ref":"#/components/schemas/addressing_ips"},{"$ref":"#/components/schemas/addressing_ips_jdcloud"}]}}}]},{"$ref":"#/components/schemas/addressing_api-response-common-failure"}]}}},"description":"Cloudflare IP Details response failure"}},"security":[{}],"summary":"Cloudflare/JD Cloud IP Details","tags":["Cloudflare IPs"]}},"/memberships":{"get":{"description":"List memberships of accounts the user can access.","operationId":"user'-s-account-memberships-list-memberships","parameters":[{"in":"query","name":"account.name","schema":{"$ref":"#/components/schemas/iam_properties-name"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":20,"description":"Number of memberships per page.","maximum":50,"minimum":5,"type":"number"}},{"in":"query","name":"order","schema":{"description":"Field to order memberships by.","enum":["id","account.name","status"],"example":"status","type":"string"}},{"in":"query","name":"direction","schema":{"description":"Direction to order memberships.","enum":["asc","desc"],"example":"desc","type":"string"}},{"in":"query","name":"name","schema":{"$ref":"#/components/schemas/iam_properties-name"}},{"in":"query","name":"status","schema":{"description":"Status of this membership.","enum":["accepted","pending","rejected"],"example":"accepted","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/iam_collection_membership_response"},{"$ref":"#/components/schemas/iam_collection_membership_response_with_policies"}]}}},"description":"List Memberships response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"List Memberships response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Memberships","tags":["User's Account Memberships"],"x-api-token-group":["Memberships Write","Memberships Read"]}},"/memberships/{membership_id}":{"delete":{"description":"Remove the associated member from an account.","operationId":"user'-s-account-memberships-delete-membership","parameters":[{"in":"path","name":"membership_id","required":true,"schema":{"$ref":"#/components/schemas/iam_membership_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/iam_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/iam_membership_components-schemas-identifier"}}}},"type":"object"}]}}},"description":"Delete Membership response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Delete Membership response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Membership","tags":["User's Account Memberships"],"x-api-token-group":["Memberships Write"]},"get":{"description":"Get a specific membership.","operationId":"user'-s-account-memberships-membership-details","parameters":[{"in":"path","name":"membership_id","required":true,"schema":{"$ref":"#/components/schemas/iam_membership_components-schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_single_membership_response_with_policies"}}},"description":"Membership Details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Membership Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Membership Details","tags":["User's Account Memberships"],"x-api-token-group":["Memberships Write","Memberships Read"]},"put":{"description":"Accept or reject this account invitation.","operationId":"user'-s-account-memberships-update-membership","parameters":[{"in":"path","name":"membership_id","required":true,"schema":{"$ref":"#/components/schemas/iam_membership_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"status":{"description":"Whether to accept or reject this account invitation.","enum":["accepted","rejected"],"example":"accepted"}},"required":["status"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_single_membership_response_with_policies"}}},"description":"Update Membership response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Update Membership response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Membership","tags":["User's Account Memberships"],"x-api-token-group":["Memberships Write"]}},"/organizations/{organization_id}/audit_logs":{"get":{"deprecated":true,"description":"Gets a list of audit logs for an organization. Can be filtered by who made the change, on which zone, and the timeframe of the change.","operationId":"audit-logs-get-organization-audit-logs","parameters":[{"in":"path","name":"organization_id","required":true,"schema":{"$ref":"#/components/schemas/aaa_identifier"}},{"in":"query","name":"id","schema":{"description":"Finds a specific log by its ID.","example":"f174be97-19b1-40d6-954d-70cd5fbd52db","type":"string"}},{"in":"query","name":"export","schema":{"description":"Indicates that this request is an export of logs in CSV format.","example":true,"type":"boolean"}},{"in":"query","name":"action.type","schema":{"description":"Filters by the action type.","example":"add","type":"string"}},{"in":"query","name":"actor.ip","schema":{"description":"Filters by the IP address of the request that made the change by specific IP address or valid CIDR Range.","example":"17.168.228.63","type":"string"}},{"in":"query","name":"actor.email","schema":{"description":"Filters by the email address of the actor that made the change.","example":"alice@example.com","format":"email","type":"string"}},{"in":"query","name":"since","schema":{"oneOf":[{"description":"Limits the returned results to logs newer than the specified date. A `full-date` that conforms to RFC3339.","example":"2019-04-30","format":"date","type":"string"},{"description":"Limits the returned results to logs newer than the specified date. A `date-time` that conforms to RFC3339.","example":"2019-04-30T01:12:20Z","format":"date-time","type":"string"}]}},{"in":"query","name":"before","schema":{"oneOf":[{"description":"Limits the returned results to logs older than the specified date. A `full-date` that conforms to RFC3339.","example":"2019-04-30","format":"date","type":"string"},{"description":"Limits the returned results to logs older than the specified date. A `date-time` that conforms to RFC3339.","example":"2019-04-30T01:12:20Z","format":"date-time","type":"string"}]}},{"in":"query","name":"zone.name","schema":{"description":"Filters by the name of the zone associated to the change.","example":"example.com","type":"string"}},{"in":"query","name":"direction","schema":{"default":"desc","description":"Changes the direction of the chronological sorting.","enum":["desc","asc"],"example":"desc","type":"string"}},{"in":"query","name":"per_page","schema":{"default":100,"description":"Sets the number of results to return per page.","example":25,"maximum":1000,"minimum":1,"type":"number"}},{"in":"query","name":"page","schema":{"default":1,"description":"Defines which page of results to return.","example":50,"minimum":1,"type":"number"}},{"in":"query","name":"hide_user_logs","schema":{"default":false,"description":"Indicates whether or not to hide user level audit logs.","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_audit_logs_response_collection"}}},"description":"Get organization audit logs response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_audit_logs_response_collection"},{"$ref":"#/components/schemas/aaa_api-response-common-failure"}]}}},"description":"Get organization audit logs response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get organization audit logs","tags":["Audit Logs"],"x-cfDeprecation":{"description":"This endpoint and its related APIs are deprecated in favor of the `/accounts` equivalent APIs, which have a broader range of features and are backwards compatible with these API.","display":true,"eol":"2020-02-04","id":"org_deprecation"},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/radar/ai/bots/summary/user_agent":{"get":{"description":"Percentage of Internet traffic generated by AI user agents, over a given time period.","operationId":"radar-get-ai-bots-summary-by-user-agent","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"example":{"Amazonbot":"10.274394","Bytespider":"8.381743","facebookexternalhit":"63.40249"},"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get user agents summary","tags":["Radar AI Bots"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/ai/bots/timeseries_groups/user_agent":{"get":{"description":"Percentage distribution of traffic per AI user agent over time.","operationId":"radar-get-ai-bots-timeseries-group-by-user-agent","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Limit the number of objects (eg browsers, verticals, etc) to the top items over the time range.","in":"query","name":"limitPerGroup","schema":{"description":"Limit the number of objects (eg browsers, verticals, etc) to the top items over the time range.","example":4,"type":"integer"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"example":{"facebookexternalhit":["0.862022"],"timestamps":["2024-07-30T03:00:00Z"]},"properties":{"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get user agents time series","tags":["Radar AI Bots"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/annotations":{"get":{"description":"Get the latest annotations.","operationId":"radar-get-annotations","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Number of objects to skip before grabbing results.","in":"query","name":"offset","schema":{"description":"Number of objects to skip before grabbing results.","type":"integer"}},{"description":"Shorthand date ranges for the last X days - use when you don't need specific start and end dates.","in":"query","name":"dateRange","schema":{"description":"Shorthand date ranges for the last X days - use when you don't need specific start and end dates.","example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"}},{"description":"Start of the date range (inclusive).","in":"query","name":"dateStart","schema":{"description":"Start of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","format":"date-time","type":"string"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","format":"date-time","type":"string"}},{"description":"Single ASN as integer.","in":"query","name":"asn","schema":{"description":"Single ASN as integer.","example":"174","type":"integer"}},{"description":"Location Alpha2 code.","in":"query","name":"location","schema":{"description":"Location Alpha2 code.","example":"US","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"annotations":{"items":{"properties":{"asns":{"items":{"example":189,"type":"integer"},"type":"array"},"asnsDetails":{"items":{"properties":{"asn":{"example":"189","type":"string"},"locations":{"properties":{"code":{"example":"US","type":"string"},"name":{"example":"United States","type":"string"}},"required":["code","name"],"type":"object"},"name":{"example":"LUMEN-LEGACY-L3-PARTITION","type":"string"}},"required":["asn","name"],"type":"object"},"type":"array"},"dataSource":{"example":"ALL","type":"string"},"description":{"example":"example","type":"string"},"endDate":{"example":"2022-09-08T10:00:28Z","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"id":{"example":"550","type":"string"},"linkedUrl":{"example":"http://example.com","type":"string"},"locations":{"items":{"example":"US","type":"string"},"type":"array"},"locationsDetails":{"items":{"properties":{"code":{"example":"US","type":"string"},"name":{"example":"United States","type":"string"}},"required":["code","name"],"type":"object"},"type":"array"},"outage":{"properties":{"outageCause":{"example":"CABLE_CUT","type":"string"},"outageType":{"example":"NATIONWIDE","type":"string"}},"required":["outageCause","outageType"],"type":"object"},"scope":{"example":"Colima, Michoacán, México","type":"string"},"startDate":{"example":"2022-09-06T10:00:28Z","type":"string"}},"required":["id","dataSource","startDate","asns","asnsDetails","locations","locationsDetails","eventType","outage"],"type":"object"},"type":"array"}},"required":["annotations"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get latest annotations","tags":["Radar Annotations"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/annotations/outages":{"get":{"description":"Get latest Internet outages and anomalies.","operationId":"radar-get-annotations-outages","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Number of objects to skip before grabbing results.","in":"query","name":"offset","schema":{"description":"Number of objects to skip before grabbing results.","type":"integer"}},{"description":"Shorthand date ranges for the last X days - use when you don't need specific start and end dates.","in":"query","name":"dateRange","schema":{"description":"Shorthand date ranges for the last X days - use when you don't need specific start and end dates.","example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"}},{"description":"Start of the date range (inclusive).","in":"query","name":"dateStart","schema":{"description":"Start of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","format":"date-time","type":"string"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","format":"date-time","type":"string"}},{"description":"Single ASN as integer.","in":"query","name":"asn","schema":{"description":"Single ASN as integer.","example":"174","type":"integer"}},{"description":"Location Alpha2 code.","in":"query","name":"location","schema":{"description":"Location Alpha2 code.","example":"US","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"annotations":{"items":{"properties":{"asns":{"items":{"example":189,"type":"integer"},"type":"array"},"asnsDetails":{"items":{"properties":{"asn":{"example":"189","type":"string"},"locations":{"properties":{"code":{"example":"US","type":"string"},"name":{"example":"United States","type":"string"}},"required":["code","name"],"type":"object"},"name":{"example":"LUMEN-LEGACY-L3-PARTITION","type":"string"}},"required":["asn","name"],"type":"object"},"type":"array"},"dataSource":{"example":"ALL","type":"string"},"description":{"example":"example","type":"string"},"endDate":{"example":"2022-09-08T10:00:28Z","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"id":{"example":"550","type":"string"},"linkedUrl":{"example":"http://example.com","type":"string"},"locations":{"items":{"example":"US","type":"string"},"type":"array"},"locationsDetails":{"items":{"properties":{"code":{"example":"US","type":"string"},"name":{"example":"United States","type":"string"}},"required":["code","name"],"type":"object"},"type":"array"},"outage":{"properties":{"outageCause":{"example":"CABLE_CUT","type":"string"},"outageType":{"example":"NATIONWIDE","type":"string"}},"required":["outageCause","outageType"],"type":"object"},"scope":{"example":"Colima, Michoacán, México","type":"string"},"startDate":{"example":"2022-09-06T10:00:28Z","type":"string"}},"required":["id","dataSource","startDate","asns","asnsDetails","locations","locationsDetails","eventType","outage"],"type":"object"},"type":"array"}},"required":["annotations"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get latest Internet outages and anomalies","tags":["Radar Annotations"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/annotations/outages/locations":{"get":{"description":"Get the number of outages by location.","operationId":"radar-get-annotations-outages-top","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Shorthand date ranges for the last X days - use when you don't need specific start and end dates.","in":"query","name":"dateRange","schema":{"description":"Shorthand date ranges for the last X days - use when you don't need specific start and end dates.","example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"}},{"description":"Start of the date range (inclusive).","in":"query","name":"dateStart","schema":{"description":"Start of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","format":"date-time","type":"string"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","format":"date-time","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"annotations":{"items":{"properties":{"clientCountryAlpha2":{"example":"PT","type":"string"},"clientCountryName":{"example":"Portugal","type":"string"},"value":{"example":"5","type":"string"}},"required":["clientCountryAlpha2","clientCountryName","value"],"type":"object"},"type":"array"}},"required":["annotations"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get the number of outages for locations","tags":["Radar Annotations"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/as112/summary/dnssec":{"get":{"description":"Percentage distribution of DNS queries to AS112 by DNSSEC support.","operationId":"radar-get-dns-as112-timeseries-by-dnssec","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"NOT_SUPPORTED":{"example":"16","type":"string"},"SUPPORTED":{"example":"84","type":"string"}},"required":["SUPPORTED","NOT_SUPPORTED"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get AS112 DNSSEC summary","tags":["Radar AS112"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/as112/summary/edns":{"get":{"description":"Percentage distribution of DNS queries to AS112 by EDNS support.","operationId":"radar-get-dns-as112-timeseries-by-edns","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"NOT_SUPPORTED":{"example":"6","type":"string"},"SUPPORTED":{"example":"94","type":"string"}},"required":["SUPPORTED","NOT_SUPPORTED"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get AS112 EDNS summary","tags":["Radar AS112"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/as112/summary/ip_version":{"get":{"description":"Percentage distribution of DNS queries to AS112 per IP Version.","operationId":"radar-get-dns-as112-timeseries-by-ip-version","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"IPv4":{"example":"80","type":"string"},"IPv6":{"example":"20","type":"string"}},"required":["IPv4","IPv6"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get AS112 IP version summary","tags":["Radar AS112"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/as112/summary/protocol":{"get":{"description":"Percentage distribution of DNS queries to AS112 per protocol.","operationId":"radar-get-dns-as112-timeseries-by-protocol","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"tcp":{"example":"1","type":"string"},"udp":{"example":"99","type":"string"}},"required":["udp","tcp"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get AS112 DNS protocol summary","tags":["Radar AS112"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/as112/summary/query_type":{"get":{"description":"Percentage distribution of DNS queries to AS112 by query type.","operationId":"radar-get-dns-as112-timeseries-by-query-type","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"A":{"example":"19","type":"string"},"AAAA":{"example":"1","type":"string"},"PTR":{"example":"74","type":"string"},"SOA":{"example":"5","type":"string"},"SRV":{"example":"1","type":"string"}},"required":["PTR","A","SOA","AAAA","SRV"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get AS112 query types summary","tags":["Radar AS112"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/as112/summary/response_codes":{"get":{"description":"Percentage distribution of AS112 DNS requests classified by response code.","operationId":"radar-get-dns-as112-timeseries-by-response-codes","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"NOERROR":{"example":"6","type":"string"},"NXDOMAIN":{"example":"94","type":"string"}},"required":["NXDOMAIN","NOERROR"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get a summary of AS112 response codes","tags":["Radar AS112"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/as112/timeseries":{"get":{"description":"Get AS112 queries change over time.","operationId":"radar-get-dns-as112-timeseries","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"aggInterval":{"example":"1h","type":"string"},"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"format":"date-time","type":"string"}},"required":["dateRange","aggInterval","lastUpdated"],"type":"object"},"serie_0":{"properties":{"timestamps":{"items":{"format":"date-time","type":"string"},"type":"array"},"values":{"items":{"example":0.56,"type":"string"},"type":"array"}},"required":["timestamps","values"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get AS112 DNS queries time series","tags":["Radar AS112"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/as112/timeseries_groups/dnssec":{"get":{"description":"Percentage distribution of DNS AS112 queries by DNSSEC support over time.","operationId":"radar-get-dns-as112-timeseries-group-by-dnssec","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"NOT_SUPPORTED":{"items":{"example":"16","type":"string"},"type":"array"},"SUPPORTED":{"items":{"example":"84","type":"string"},"type":"array"}},"required":["SUPPORTED","NOT_SUPPORTED"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get AS112 DNSSEC support time series","tags":["Radar AS112"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/as112/timeseries_groups/edns":{"get":{"description":"Percentage distribution of AS112 DNS queries by EDNS support over time.","operationId":"radar-get-dns-as112-timeseries-group-by-edns","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"NOT_SUPPORTED":{"items":{"example":"6","type":"string"},"type":"array"},"SUPPORTED":{"items":{"example":"94","type":"string"},"type":"array"}},"required":["SUPPORTED","NOT_SUPPORTED"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get AS112 EDNS support summary","tags":["Radar AS112"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/as112/timeseries_groups/ip_version":{"get":{"description":"Percentage distribution of AS112 DNS queries by IP version over time.","operationId":"radar-get-dns-as112-timeseries-group-by-ip-version","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"IPv4":{"items":{"example":"80","type":"string"},"type":"array"},"IPv6":{"items":{"example":"20","type":"string"},"type":"array"}},"required":["IPv4","IPv6"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get AS112 IP version time series","tags":["Radar AS112"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/as112/timeseries_groups/protocol":{"get":{"description":"Percentage distribution of AS112 DNS requests classified by protocol over time.","operationId":"radar-get-dns-as112-timeseries-group-by-protocol","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"tcp":{"items":{"example":"1","type":"string"},"type":"array"},"udp":{"items":{"example":"99","type":"string"},"type":"array"}},"required":["udp","tcp"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get AS112 DNS protocol time series","tags":["Radar AS112"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/as112/timeseries_groups/query_type":{"get":{"description":"Percentage distribution of AS112 DNS queries by query type over time.","operationId":"radar-get-dns-as112-timeseries-group-by-query-type","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"A":{"items":{"example":"19","type":"string"},"type":"array"},"AAAA":{"items":{"example":"1","type":"string"},"type":"array"},"PTR":{"items":{"example":"74","type":"string"},"type":"array"},"SOA":{"items":{"example":"5","type":"string"},"type":"array"},"SRV":{"items":{"example":"1","type":"string"},"type":"array"}},"required":["PTR","A","SOA","AAAA","SRV"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get AS112 query types time series","tags":["Radar AS112"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/as112/timeseries_groups/response_codes":{"get":{"description":"Percentage distribution of AS112 DNS requests classified by response code over time.","operationId":"radar-get-dns-as112-timeseries-group-by-response-codes","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"NOERROR":{"items":{"example":"6","type":"string"},"type":"array"},"NXDOMAIN":{"items":{"example":"94","type":"string"},"type":"array"}},"required":["NXDOMAIN","NOERROR"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get a time series of AS112 response codes","tags":["Radar AS112"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/as112/top/locations":{"get":{"description":"Get the top locations by AS112 DNS queries. Values are a percentage out of the total queries.","operationId":"radar-get-dns-as112-top-locations","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientCountryAlpha2":{"example":"US","type":"string"},"clientCountryName":{"example":"United States","type":"string"},"value":{"example":"65","type":"string"}},"required":["clientCountryAlpha2","clientCountryName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top autonomous systems by AS112 DNS queries","tags":["Radar AS112"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/as112/top/locations/dnssec/{dnssec}":{"get":{"description":"Get the top locations of DNS queries to AS112 with DNSSEC.","operationId":"radar-get-dns-as112-top-locations-by-dnssec","parameters":[{"description":"DNSSEC.","in":"path","name":"dnssec","required":true,"schema":{"description":"DNSSEC.","enum":["SUPPORTED","NOT_SUPPORTED"],"example":"SUPPORTED","type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientCountryAlpha2":{"example":"US","type":"string"},"clientCountryName":{"example":"United States","type":"string"},"value":{"example":"65","type":"string"}},"required":["clientCountryAlpha2","clientCountryName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top locations by DNS queries DNSSEC support","tags":["Radar AS112"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/as112/top/locations/edns/{edns}":{"get":{"description":"Get the top locations of DNS queries to AS112 with EDNS support.","operationId":"radar-get-dns-as112-top-locations-by-edns","parameters":[{"description":"EDNS.","in":"path","name":"edns","required":true,"schema":{"description":"EDNS.","enum":["SUPPORTED","NOT_SUPPORTED"],"example":"SUPPORTED","type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientCountryAlpha2":{"example":"US","type":"string"},"clientCountryName":{"example":"United States","type":"string"},"value":{"example":"65","type":"string"}},"required":["clientCountryAlpha2","clientCountryName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top locations by EDNS support","tags":["Radar AS112"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/as112/top/locations/ip_version/{ip_version}":{"get":{"description":"Get the top locations of DNS queries to AS112 by IP version.","operationId":"radar-get-dns-as112-top-locations-by-ip-version","parameters":[{"description":"IP Version.","in":"path","name":"ip_version","required":true,"schema":{"description":"IP Version.","enum":["IPv4","IPv6"],"example":"IPv4","type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientCountryAlpha2":{"example":"US","type":"string"},"clientCountryName":{"example":"United States","type":"string"},"value":{"example":"65","type":"string"}},"required":["clientCountryAlpha2","clientCountryName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top locations by DNS queries IP version","tags":["Radar AS112"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/summary":{"get":{"deprecated":true,"description":"Percentage distribution of network protocols in Layer 3/4 attacks over a given time period.","operationId":"radar-get-attacks-layer3-summary","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"}},"required":["dateRange"],"type":"object"},"summary_0":{"properties":{"gre":{"example":"0.9","type":"string"},"icmp":{"example":"0.1","type":"string"},"tcp":{"example":"60","type":"string"},"udp":{"example":"39","type":"string"}},"required":["tcp","udp","gre","icmp"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 3 attacks summary","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/summary/bitrate":{"get":{"description":"Percentage distribution of attacks by bitrate.","operationId":"radar-get-attacks-layer3-summary-by-bitrate","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Array of L3/4 attack types.","in":"query","name":"protocol","schema":{"description":"Array of L3/4 attack types.","items":{"enum":["UDP","TCP","ICMP","GRE"],"type":"string"},"type":"array"}},{"description":"Together with the `location` parameter, will apply the filter to origin or target location.","in":"query","name":"direction","schema":{"default":"ORIGIN","description":"Together with the `location` parameter, will apply the filter to origin or target location.","enum":["ORIGIN","TARGET"],"type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"OVER_100_GBPS":{"example":"13.141944","type":"string"},"UNDER_500_MBPS":{"example":"74.891763","type":"string"},"_10_GBPS_TO_100_GBPS":{"example":"0.01056","type":"string"},"_1_GBPS_TO_10_GBPS":{"example":"6.007082","type":"string"},"_500_MBPS_TO_1_GBPS":{"example":"5.948652","type":"string"}},"required":["UNDER_500_MBPS","OVER_100_GBPS","_1_GBPS_TO_10_GBPS","_500_MBPS_TO_1_GBPS","_10_GBPS_TO_100_GBPS"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get attack bitrate summary","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/summary/duration":{"get":{"description":"Percentage distribution of attacks by duration.","operationId":"radar-get-attacks-layer3-summary-by-duration","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Array of L3/4 attack types.","in":"query","name":"protocol","schema":{"description":"Array of L3/4 attack types.","items":{"enum":["UDP","TCP","ICMP","GRE"],"type":"string"},"type":"array"}},{"description":"Together with the `location` parameter, will apply the filter to origin or target location.","in":"query","name":"direction","schema":{"default":"ORIGIN","description":"Together with the `location` parameter, will apply the filter to origin or target location.","enum":["ORIGIN","TARGET"],"type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"OVER_3_HOURS":{"example":"4.462923","type":"string"},"UNDER_10_MINS":{"example":"76.243322","type":"string"},"_10_MINS_TO_20_MINS":{"example":"9.48709","type":"string"},"_1_HOUR_TO_3_HOURS":{"example":"4.038413","type":"string"},"_20_MINS_TO_40_MINS":{"example":"3.87624","type":"string"},"_40_MINS_TO_1_HOUR":{"example":"1.892012","type":"string"}},"required":["UNDER_10_MINS","_10_MINS_TO_20_MINS","OVER_3_HOURS","_1_HOUR_TO_3_HOURS","_20_MINS_TO_40_MINS","_40_MINS_TO_1_HOUR"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get attack durations summary","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/summary/ip_version":{"get":{"description":"Percentage distribution of attacks by ip version used.","operationId":"radar-get-attacks-layer3-summary-by-ip-version","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Array of L3/4 attack types.","in":"query","name":"protocol","schema":{"description":"Array of L3/4 attack types.","items":{"enum":["UDP","TCP","ICMP","GRE"],"type":"string"},"type":"array"}},{"description":"Together with the `location` parameter, will apply the filter to origin or target location.","in":"query","name":"direction","schema":{"default":"ORIGIN","description":"Together with the `location` parameter, will apply the filter to origin or target location.","enum":["ORIGIN","TARGET"],"type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"IPv4":{"example":"99.984766","type":"string"},"IPv6":{"example":"0.015234","type":"string"}},"required":["IPv4","IPv6"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get IP versions summary","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/summary/protocol":{"get":{"description":"Percentage distribution of attacks by protocol used.","operationId":"radar-get-attacks-layer3-summary-by-protocol","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Together with the `location` parameter, will apply the filter to origin or target location.","in":"query","name":"direction","schema":{"default":"ORIGIN","description":"Together with the `location` parameter, will apply the filter to origin or target location.","enum":["ORIGIN","TARGET"],"type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"GRE":{"example":"0.756379","type":"string"},"ICMP":{"example":"0.015245","type":"string"},"TCP":{"example":"82.89908","type":"string"},"UDP":{"example":"16.328986","type":"string"}},"required":["TCP","UDP","GRE","ICMP"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 3 protocols summary","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/summary/vector":{"get":{"description":"Percentage distribution of attacks by vector.","operationId":"radar-get-attacks-layer3-summary-by-vector","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Array of L3/4 attack types.","in":"query","name":"protocol","schema":{"description":"Array of L3/4 attack types.","items":{"enum":["UDP","TCP","ICMP","GRE"],"type":"string"},"type":"array"}},{"description":"Together with the `location` parameter, will apply the filter to origin or target location.","in":"query","name":"direction","schema":{"default":"ORIGIN","description":"Together with the `location` parameter, will apply the filter to origin or target location.","enum":["ORIGIN","TARGET"],"type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"example":{"ACK Flood":["65.662148"],"SYN Flood":["16.86401"]},"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get attack vector summary","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/timeseries":{"get":{"description":"Get attacks change over time by bytes.","operationId":"radar-get-attacks-layer3-timeseries-by-bytes","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Array of L3/4 attack types.","in":"query","name":"protocol","schema":{"description":"Array of L3/4 attack types.","items":{"enum":["UDP","TCP","ICMP","GRE"],"type":"string"},"type":"array"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE_CHANGE","MIN0_MAX"],"example":"MIN0_MAX","type":"string"}},{"description":"Measurement units, eg. bytes.","in":"query","name":"metric","schema":{"default":"bytes","description":"Measurement units, eg. bytes.","enum":["BYTES","BYTES_OLD"],"type":"string"}},{"description":"Together with the `location` parameter, will apply the filter to origin or target location.","in":"query","name":"direction","schema":{"default":"ORIGIN","description":"Together with the `location` parameter, will apply the filter to origin or target location.","enum":["ORIGIN","TARGET"],"type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"timestamps":{"items":{"type":"string"},"type":"array"},"values":{"items":{"type":"string"},"type":"array"}},"required":["timestamps","values"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get attacks by bytes summary","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/timeseries_groups":{"get":{"deprecated":true,"description":"Get a time series of the percentage distribution of network protocols in Layer 3/4 attacks.","operationId":"radar-get-attacks-layer3-timeseries-groups","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"aggInterval":{"example":"1h","type":"string"},"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"format":"date-time","type":"string"}},"required":["dateRange","aggInterval","lastUpdated"],"type":"object"},"serie_0":{"properties":{"gre":{"items":{"example":"0.9","type":"string"},"type":"array"},"icmp":{"items":{"example":"0.1","type":"string"},"type":"array"},"tcp":{"items":{"example":"70","type":"string"},"type":"array"},"timestamps":{"items":{"type":"string"},"type":"array"},"udp":{"items":{"example":"29","type":"string"},"type":"array"}},"required":["timestamps","udp","tcp","gre","icmp"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 3 attacks by network protocol time series","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/timeseries_groups/bitrate":{"get":{"description":"Percentage distribution of attacks by bitrate over time.","operationId":"radar-get-attacks-layer3-timeseries-group-by-bitrate","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Array of L3/4 attack types.","in":"query","name":"protocol","schema":{"description":"Array of L3/4 attack types.","items":{"enum":["UDP","TCP","ICMP","GRE"],"type":"string"},"type":"array"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"default":"PERCENTAGE","description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE","MIN0_MAX"],"example":"PERCENTAGE","type":"string"}},{"description":"Together with the `location` parameter, will apply the filter to origin or target location.","in":"query","name":"direction","schema":{"default":"ORIGIN","description":"Together with the `location` parameter, will apply the filter to origin or target location.","enum":["ORIGIN","TARGET"],"type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"OVER_100_GBPS":{"items":{"type":"string"},"type":"array"},"UNDER_500_MBPS":{"items":{"type":"string"},"type":"array"},"_10_GBPS_TO_100_GBPS":{"items":{"type":"string"},"type":"array"},"_1_GBPS_TO_10_GBPS":{"items":{"type":"string"},"type":"array"},"_500_MBPS_TO_1_GBPS":{"items":{"type":"string"},"type":"array"},"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps","UNDER_500_MBPS","OVER_100_GBPS","_1_GBPS_TO_10_GBPS","_500_MBPS_TO_1_GBPS","_10_GBPS_TO_100_GBPS"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Attacks By Bitrate Time Series","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/timeseries_groups/duration":{"get":{"description":"Percentage distribution of attacks by duration over time.","operationId":"radar-get-attacks-layer3-timeseries-group-by-duration","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Array of L3/4 attack types.","in":"query","name":"protocol","schema":{"description":"Array of L3/4 attack types.","items":{"enum":["UDP","TCP","ICMP","GRE"],"type":"string"},"type":"array"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"default":"PERCENTAGE","description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE","MIN0_MAX"],"example":"PERCENTAGE","type":"string"}},{"description":"Together with the `location` parameter, will apply the filter to origin or target location.","in":"query","name":"direction","schema":{"default":"ORIGIN","description":"Together with the `location` parameter, will apply the filter to origin or target location.","enum":["ORIGIN","TARGET"],"type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"OVER_3_HOURS":{"items":{"type":"string"},"type":"array"},"UNDER_10_MINS":{"items":{"type":"string"},"type":"array"},"_10_MINS_TO_20_MINS":{"items":{"type":"string"},"type":"array"},"_1_HOUR_TO_3_HOURS":{"items":{"type":"string"},"type":"array"},"_20_MINS_TO_40_MINS":{"items":{"type":"string"},"type":"array"},"_40_MINS_TO_1_HOUR":{"items":{"type":"string"},"type":"array"},"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps","UNDER_10_MINS","_10_MINS_TO_20_MINS","OVER_3_HOURS","_1_HOUR_TO_3_HOURS","_20_MINS_TO_40_MINS","_40_MINS_TO_1_HOUR"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 3 attack by duration time series","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/timeseries_groups/industry":{"get":{"description":"Percentage distribution of attacks by industry used over time.","operationId":"radar-get-attacks-layer3-timeseries-group-by-industry","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Array of L3/4 attack types.","in":"query","name":"protocol","schema":{"description":"Array of L3/4 attack types.","items":{"enum":["UDP","TCP","ICMP","GRE"],"type":"string"},"type":"array"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"default":"PERCENTAGE","description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE","MIN0_MAX"],"example":"PERCENTAGE","type":"string"}},{"description":"Together with the `location` parameter, will apply the filter to origin or target location.","in":"query","name":"direction","schema":{"default":"ORIGIN","description":"Together with the `location` parameter, will apply the filter to origin or target location.","enum":["ORIGIN","TARGET"],"type":"string"}},{"description":"Limit the number of objects (eg browsers, verticals, etc) to the top items over the time range.","in":"query","name":"limitPerGroup","schema":{"description":"Limit the number of objects (eg browsers, verticals, etc) to the top items over the time range.","example":4,"type":"integer"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"example":{"Internet":["5.519081"],"timestamps":["2023-08-08T10:15:00Z"]},"properties":{"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 3 attacks by target industries time series","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/timeseries_groups/ip_version":{"get":{"description":"Percentage distribution of attacks by ip version used over time.","operationId":"radar-get-attacks-layer3-timeseries-group-by-ip-version","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Array of L3/4 attack types.","in":"query","name":"protocol","schema":{"description":"Array of L3/4 attack types.","items":{"enum":["UDP","TCP","ICMP","GRE"],"type":"string"},"type":"array"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"default":"PERCENTAGE","description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE","MIN0_MAX"],"example":"PERCENTAGE","type":"string"}},{"description":"Together with the `location` parameter, will apply the filter to origin or target location.","in":"query","name":"direction","schema":{"default":"ORIGIN","description":"Together with the `location` parameter, will apply the filter to origin or target location.","enum":["ORIGIN","TARGET"],"type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"IPv4":{"items":{"type":"string"},"type":"array"},"IPv6":{"items":{"type":"string"},"type":"array"},"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps","IPv4","IPv6"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 3 attacks by IP version time series","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/timeseries_groups/protocol":{"get":{"description":"Percentage distribution of attacks by protocol used over time.","operationId":"radar-get-attacks-layer3-timeseries-group-by-protocol","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"default":"PERCENTAGE","description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE","MIN0_MAX"],"example":"PERCENTAGE","type":"string"}},{"description":"Together with the `location` parameter, will apply the filter to origin or target location.","in":"query","name":"direction","schema":{"default":"ORIGIN","description":"Together with the `location` parameter, will apply the filter to origin or target location.","enum":["ORIGIN","TARGET"],"type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"GRE":{"items":{"type":"string"},"type":"array"},"ICMP":{"items":{"type":"string"},"type":"array"},"TCP":{"items":{"type":"string"},"type":"array"},"UDP":{"items":{"type":"string"},"type":"array"},"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps","TCP","UDP","GRE","ICMP"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 3 attacks by protocol timeseries","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/timeseries_groups/vector":{"get":{"description":"Percentage distribution of attacks by vector used over time.","operationId":"radar-get-attacks-layer3-timeseries-group-by-vector","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Array of L3/4 attack types.","in":"query","name":"protocol","schema":{"description":"Array of L3/4 attack types.","items":{"enum":["UDP","TCP","ICMP","GRE"],"type":"string"},"type":"array"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"default":"PERCENTAGE","description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE","MIN0_MAX"],"example":"PERCENTAGE","type":"string"}},{"description":"Together with the `location` parameter, will apply the filter to origin or target location.","in":"query","name":"direction","schema":{"default":"ORIGIN","description":"Together with the `location` parameter, will apply the filter to origin or target location.","enum":["ORIGIN","TARGET"],"type":"string"}},{"description":"Limit the number of objects (eg browsers, verticals, etc) to the top items over the time range.","in":"query","name":"limitPerGroup","schema":{"description":"Limit the number of objects (eg browsers, verticals, etc) to the top items over the time range.","example":4,"type":"integer"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"example":{"ACK Flood":["97.28898"],"timestamps":["2023-08-08T10:15:00Z"]},"properties":{"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 3 attacks by vector","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/timeseries_groups/vertical":{"get":{"description":"Percentage distribution of attacks by vertical used over time.","operationId":"radar-get-attacks-layer3-timeseries-group-by-vertical","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Array of L3/4 attack types.","in":"query","name":"protocol","schema":{"description":"Array of L3/4 attack types.","items":{"enum":["UDP","TCP","ICMP","GRE"],"type":"string"},"type":"array"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"default":"PERCENTAGE","description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE","MIN0_MAX"],"example":"PERCENTAGE","type":"string"}},{"description":"Together with the `location` parameter, will apply the filter to origin or target location.","in":"query","name":"direction","schema":{"default":"ORIGIN","description":"Together with the `location` parameter, will apply the filter to origin or target location.","enum":["ORIGIN","TARGET"],"type":"string"}},{"description":"Limit the number of objects (eg browsers, verticals, etc) to the top items over the time range.","in":"query","name":"limitPerGroup","schema":{"description":"Limit the number of objects (eg browsers, verticals, etc) to the top items over the time range.","example":4,"type":"integer"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"example":{"Internet and Telecom":["5.519081"],"timestamps":["2023-08-08T10:15:00Z"]},"properties":{"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 3 attacks by vertical time series","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/top/attacks":{"get":{"description":"Get the top attacks from origin to target location. Values are a percentage out of the total layer 3 attacks (with billing country). You can optionally limit the number of attacks per origin/target location (useful if all the top attacks are from or to the same location).","operationId":"radar-get-attacks-layer3-top-attacks","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Array of L3/4 attack types.","in":"query","name":"protocol","schema":{"description":"Array of L3/4 attack types.","items":{"enum":["UDP","TCP","ICMP","GRE"],"type":"string"},"type":"array"}},{"description":"Array of attack origin/target location attack limits. Together with `limitPerLocation`, limits how many objects will be fetched per origin/target location.","in":"query","name":"limitDirection","schema":{"default":"ORIGIN","description":"Array of attack origin/target location attack limits. Together with `limitPerLocation`, limits how many objects will be fetched per origin/target location.","enum":["ORIGIN","TARGET"],"example":"ORIGIN","type":"string"}},{"description":"Limit the number of attacks per origin/target (refer to `limitDirection` parameter) location.","in":"query","name":"limitPerLocation","schema":{"description":"Limit the number of attacks per origin/target (refer to `limitDirection` parameter) location.","example":10,"type":"integer"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"default":"PERCENTAGE","description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE","MIN_MAX"],"example":"PERCENTAGE","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"originCountryAlpha2":{"example":"FR","type":"string"},"originCountryName":{"example":"France","type":"string"},"value":{"example":"4.323214","type":"string"}},"required":["originCountryAlpha2","originCountryName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top attack pairs (origin and target locations) of Layer 3 attacks","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/top/industry":{"get":{"description":"Get the industries targeted by attacks.","operationId":"radar-get-attacks-layer3-top-industries","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Array of L3/4 attack types.","in":"query","name":"protocol","schema":{"description":"Array of L3/4 attack types.","items":{"enum":["UDP","TCP","ICMP","GRE"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"name":{"example":"Computer Software","type":"string"},"value":{"example":"65","type":"string"}},"required":["name","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top industry of attack","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/top/locations/origin":{"get":{"description":"Get the origin locations of attacks.","operationId":"radar-get-attacks-layer3-top-origin-locations","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Array of L3/4 attack types.","in":"query","name":"protocol","schema":{"description":"Array of L3/4 attack types.","items":{"enum":["UDP","TCP","ICMP","GRE"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"originCountryAlpha2":{"example":"FR","type":"string"},"originCountryName":{"example":"France","type":"string"},"rank":{"example":1,"type":"number"},"value":{"example":"4.323214","type":"string"}},"required":["originCountryAlpha2","originCountryName","value","rank"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top origin locations of attack","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/top/locations/target":{"get":{"description":"Get the target locations of attacks.","operationId":"radar-get-attacks-layer3-top-target-locations","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Array of L3/4 attack types.","in":"query","name":"protocol","schema":{"description":"Array of L3/4 attack types.","items":{"enum":["UDP","TCP","ICMP","GRE"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"rank":{"example":1,"type":"number"},"targetCountryAlpha2":{"example":"FR","type":"string"},"targetCountryName":{"example":"France","type":"string"},"value":{"example":"4.323214","type":"string"}},"required":["targetCountryAlpha2","targetCountryName","value","rank"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top target locations of attack","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer3/top/vertical":{"get":{"description":"Get the verticals targeted by attacks.","operationId":"radar-get-attacks-layer3-top-verticals","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Array of L3/4 attack types.","in":"query","name":"protocol","schema":{"description":"Array of L3/4 attack types.","items":{"enum":["UDP","TCP","ICMP","GRE"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"name":{"example":"Internet and Telecom","type":"string"},"value":{"example":"65","type":"string"}},"required":["name","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top verticals of attack","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/summary":{"get":{"deprecated":true,"description":"Percentage distribution of mitigation techniques in Layer 7 attacks.","operationId":"radar-get-attacks-layer7-summary","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"}},"required":["dateRange"],"type":"object"},"summary_0":{"properties":{"ACCESS_RULES":{"example":"0.9","type":"string"},"API_SHIELD":{"example":"0.9","type":"string"},"BOT_MANAGEMENT":{"example":"0.9","type":"string"},"DATA_LOSS_PREVENTION":{"example":"0.9","type":"string"},"DDOS":{"example":"34","type":"string"},"IP_REPUTATION":{"example":"0.1","type":"string"},"WAF":{"example":"65","type":"string"}},"required":["WAF","DDOS","IP_REPUTATION","ACCESS_RULES","BOT_MANAGEMENT","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 7 attacks summary","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/summary/http_method":{"get":{"description":"Percentage distribution of attacks by http method used.","operationId":"radar-get-attacks-layer7-summary-by-http-method","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Array of L7 mitigation products.","in":"query","name":"mitigationProduct","schema":{"description":"Array of L7 mitigation products.","items":{"enum":["DDOS","WAF","BOT_MANAGEMENT","ACCESS_RULES","IP_REPUTATION","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"GET":{"example":"99.100257","type":"string"},"POST":{"example":"0.899743","type":"string"}},"required":["GET","POST"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get HTTP method summary","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/summary/http_version":{"get":{"description":"Percentage distribution of attacks by http version used.","operationId":"radar-get-attacks-layer7-summary-by-http-version","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for http method.","in":"query","name":"httpMethod","schema":{"description":"Filter for http method.","example":"GET","items":{"enum":["GET","POST","DELETE","PUT","HEAD","PURGE","OPTIONS","PROPFIND","MKCOL","PATCH","ACL","BCOPY","BDELETE","BMOVE","BPROPFIND","BPROPPATCH","CHECKIN","CHECKOUT","CONNECT","COPY","LABEL","LOCK","MERGE","MKACTIVITY","MKWORKSPACE","MOVE","NOTIFY","ORDERPATCH","POLL","PROPPATCH","REPORT","SEARCH","SUBSCRIBE","TRACE","UNCHECKOUT","UNLOCK","UNSUBSCRIBE","UPDATE","VERSIONCONTROL","BASELINECONTROL","XMSENUMATTS","RPC_OUT_DATA","RPC_IN_DATA","JSON","COOK","TRACK"],"type":"string"},"type":"array"}},{"description":"Array of L7 mitigation products.","in":"query","name":"mitigationProduct","schema":{"description":"Array of L7 mitigation products.","items":{"enum":["DDOS","WAF","BOT_MANAGEMENT","ACCESS_RULES","IP_REPUTATION","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"HTTP/1.x":{"example":"21.722365","type":"string"},"HTTP/2":{"example":"77.056555","type":"string"},"HTTP/3":{"example":"1.22108","type":"string"}},"required":["HTTP/2","HTTP/1.x","HTTP/3"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get HTTP version summary","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/summary/ip_version":{"get":{"description":"Percentage distribution of attacks by ip version used.","operationId":"radar-get-attacks-layer7-summary-by-ip-version","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for http method.","in":"query","name":"httpMethod","schema":{"description":"Filter for http method.","example":"GET","items":{"enum":["GET","POST","DELETE","PUT","HEAD","PURGE","OPTIONS","PROPFIND","MKCOL","PATCH","ACL","BCOPY","BDELETE","BMOVE","BPROPFIND","BPROPPATCH","CHECKIN","CHECKOUT","CONNECT","COPY","LABEL","LOCK","MERGE","MKACTIVITY","MKWORKSPACE","MOVE","NOTIFY","ORDERPATCH","POLL","PROPPATCH","REPORT","SEARCH","SUBSCRIBE","TRACE","UNCHECKOUT","UNLOCK","UNSUBSCRIBE","UPDATE","VERSIONCONTROL","BASELINECONTROL","XMSENUMATTS","RPC_OUT_DATA","RPC_IN_DATA","JSON","COOK","TRACK"],"type":"string"},"type":"array"}},{"description":"Array of L7 mitigation products.","in":"query","name":"mitigationProduct","schema":{"description":"Array of L7 mitigation products.","items":{"enum":["DDOS","WAF","BOT_MANAGEMENT","ACCESS_RULES","IP_REPUTATION","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"IPv4":{"example":"99.935733","type":"string"},"IPv6":{"example":"0.064267","type":"string"}},"required":["IPv4","IPv6"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get IP version summary","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/summary/managed_rules":{"get":{"description":"Percentage distribution of attacks by managed rules used.","operationId":"radar-get-attacks-layer7-summary-by-managed-rules","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for http method.","in":"query","name":"httpMethod","schema":{"description":"Filter for http method.","example":"GET","items":{"enum":["GET","POST","DELETE","PUT","HEAD","PURGE","OPTIONS","PROPFIND","MKCOL","PATCH","ACL","BCOPY","BDELETE","BMOVE","BPROPFIND","BPROPPATCH","CHECKIN","CHECKOUT","CONNECT","COPY","LABEL","LOCK","MERGE","MKACTIVITY","MKWORKSPACE","MOVE","NOTIFY","ORDERPATCH","POLL","PROPPATCH","REPORT","SEARCH","SUBSCRIBE","TRACE","UNCHECKOUT","UNLOCK","UNSUBSCRIBE","UPDATE","VERSIONCONTROL","BASELINECONTROL","XMSENUMATTS","RPC_OUT_DATA","RPC_IN_DATA","JSON","COOK","TRACK"],"type":"string"},"type":"array"}},{"description":"Array of L7 mitigation products.","in":"query","name":"mitigationProduct","schema":{"description":"Array of L7 mitigation products.","items":{"enum":["DDOS","WAF","BOT_MANAGEMENT","ACCESS_RULES","IP_REPUTATION","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"Bot":{"example":"14.285714","type":"string"},"HTTP Anomaly":{"example":"85.714286","type":"string"}},"required":["HTTP Anomaly","Bot"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get managed rules summary","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/summary/mitigation_product":{"get":{"description":"Percentage distribution of attacks by mitigation product used.","operationId":"radar-get-attacks-layer7-summary-by-mitigation-product","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for http method.","in":"query","name":"httpMethod","schema":{"description":"Filter for http method.","example":"GET","items":{"enum":["GET","POST","DELETE","PUT","HEAD","PURGE","OPTIONS","PROPFIND","MKCOL","PATCH","ACL","BCOPY","BDELETE","BMOVE","BPROPFIND","BPROPPATCH","CHECKIN","CHECKOUT","CONNECT","COPY","LABEL","LOCK","MERGE","MKACTIVITY","MKWORKSPACE","MOVE","NOTIFY","ORDERPATCH","POLL","PROPPATCH","REPORT","SEARCH","SUBSCRIBE","TRACE","UNCHECKOUT","UNLOCK","UNSUBSCRIBE","UPDATE","VERSIONCONTROL","BASELINECONTROL","XMSENUMATTS","RPC_OUT_DATA","RPC_IN_DATA","JSON","COOK","TRACK"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"DDOS":{"example":"24.421594","type":"string"},"WAF":{"example":"53.213368","type":"string"}},"required":["WAF","DDOS"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get mitigation product summary","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/timeseries":{"get":{"description":"Get a timeseries of Layer 7 attacks. Values represent HTTP requests and are normalized using min-max by default.","operationId":"radar-get-attacks-layer7-timeseries","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"This field is deprecated, please use the new `mitigationProduct`.","in":"query","name":"attack","schema":{"deprecated":true,"description":"This field is deprecated, please use the new `mitigationProduct`.","items":{"enum":["DDOS","WAF","BOT_MANAGEMENT","ACCESS_RULES","IP_REPUTATION","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE_CHANGE","MIN0_MAX"],"example":"MIN0_MAX","type":"string"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for http method.","in":"query","name":"httpMethod","schema":{"description":"Filter for http method.","example":"GET","items":{"enum":["GET","POST","DELETE","PUT","HEAD","PURGE","OPTIONS","PROPFIND","MKCOL","PATCH","ACL","BCOPY","BDELETE","BMOVE","BPROPFIND","BPROPPATCH","CHECKIN","CHECKOUT","CONNECT","COPY","LABEL","LOCK","MERGE","MKACTIVITY","MKWORKSPACE","MOVE","NOTIFY","ORDERPATCH","POLL","PROPPATCH","REPORT","SEARCH","SUBSCRIBE","TRACE","UNCHECKOUT","UNLOCK","UNSUBSCRIBE","UPDATE","VERSIONCONTROL","BASELINECONTROL","XMSENUMATTS","RPC_OUT_DATA","RPC_IN_DATA","JSON","COOK","TRACK"],"type":"string"},"type":"array"}},{"description":"Array of L7 mitigation products.","in":"query","name":"mitigationProduct","schema":{"description":"Array of L7 mitigation products.","items":{"enum":["DDOS","WAF","BOT_MANAGEMENT","ACCESS_RULES","IP_REPUTATION","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"aggInterval":{"example":"1h","type":"string"},"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"format":"date-time","type":"string"}},"required":["dateRange","aggInterval","lastUpdated"],"type":"object"},"serie_0":{"properties":{"timestamps":{"items":{"format":"date-time","type":"string"},"type":"array"},"values":{"items":{"example":0.56,"type":"string"},"type":"array"}},"required":["timestamps","values"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 7 attacks time series","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/timeseries_groups":{"get":{"deprecated":true,"description":"Get a time series of the distribution of mitigation techniques over time.","operationId":"radar-get-attacks-layer7-timeseries-group","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"aggInterval":{"example":"1h","type":"string"},"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"format":"date-time","type":"string"}},"required":["dateRange","aggInterval","lastUpdated"],"type":"object"},"serie_0":{"properties":{"ACCESS_RULES":{"items":{"example":"5","type":"string"},"type":"array"},"API_SHIELD":{"items":{"example":"5","type":"string"},"type":"array"},"BOT_MANAGEMENT":{"items":{"example":"5","type":"string"},"type":"array"},"DATA_LOSS_PREVENTION":{"items":{"example":"5","type":"string"},"type":"array"},"DDOS":{"items":{"example":"60","type":"string"},"type":"array"},"IP_REPUTATION":{"items":{"example":"5","type":"string"},"type":"array"},"WAF":{"items":{"example":"30","type":"string"},"type":"array"},"timestamps":{"items":{"format":"date-time","type":"string"},"type":"array"}},"required":["timestamps","WAF","DDOS","IP_REPUTATION","ACCESS_RULES","BOT_MANAGEMENT","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 7 attacks by mitigation technique time series","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/timeseries_groups/http_method":{"get":{"description":"Percentage distribution of attacks by http method used over time.","operationId":"radar-get-attacks-layer7-timeseries-group-by-http-method","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Array of L7 mitigation products.","in":"query","name":"mitigationProduct","schema":{"description":"Array of L7 mitigation products.","items":{"enum":["DDOS","WAF","BOT_MANAGEMENT","ACCESS_RULES","IP_REPUTATION","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"string"},"type":"array"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"default":"PERCENTAGE","description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE","MIN0_MAX"],"example":"PERCENTAGE","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"GET":{"items":{"example":"70.970199","type":"string"},"type":"array"},"timestamps":{"items":{"example":"2023-10-01T00:00:00Z","type":"string"},"type":"array"}},"required":["timestamps","GET"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 7 attacks by HTTP method time series","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/timeseries_groups/http_version":{"get":{"description":"Percentage distribution of attacks by http version used over time.","operationId":"radar-get-attacks-layer7-timeseries-group-by-http-version","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for http method.","in":"query","name":"httpMethod","schema":{"description":"Filter for http method.","example":"GET","items":{"enum":["GET","POST","DELETE","PUT","HEAD","PURGE","OPTIONS","PROPFIND","MKCOL","PATCH","ACL","BCOPY","BDELETE","BMOVE","BPROPFIND","BPROPPATCH","CHECKIN","CHECKOUT","CONNECT","COPY","LABEL","LOCK","MERGE","MKACTIVITY","MKWORKSPACE","MOVE","NOTIFY","ORDERPATCH","POLL","PROPPATCH","REPORT","SEARCH","SUBSCRIBE","TRACE","UNCHECKOUT","UNLOCK","UNSUBSCRIBE","UPDATE","VERSIONCONTROL","BASELINECONTROL","XMSENUMATTS","RPC_OUT_DATA","RPC_IN_DATA","JSON","COOK","TRACK"],"type":"string"},"type":"array"}},{"description":"Array of L7 mitigation products.","in":"query","name":"mitigationProduct","schema":{"description":"Array of L7 mitigation products.","items":{"enum":["DDOS","WAF","BOT_MANAGEMENT","ACCESS_RULES","IP_REPUTATION","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"string"},"type":"array"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"default":"PERCENTAGE","description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE","MIN0_MAX"],"example":"PERCENTAGE","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"HTTP/1.x":{"items":{"example":"50.338734","type":"string"},"type":"array"},"timestamps":{"items":{"example":"2023-10-01T00:00:00Z","type":"string"},"type":"array"}},"required":["timestamps","HTTP/1.x"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 7 attacks by HTTP version time series","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/timeseries_groups/industry":{"get":{"description":"Percentage distribution of attacks by targeted industry over time.","operationId":"radar-get-attacks-layer7-timeseries-group-by-industry","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for http method.","in":"query","name":"httpMethod","schema":{"description":"Filter for http method.","example":"GET","items":{"enum":["GET","POST","DELETE","PUT","HEAD","PURGE","OPTIONS","PROPFIND","MKCOL","PATCH","ACL","BCOPY","BDELETE","BMOVE","BPROPFIND","BPROPPATCH","CHECKIN","CHECKOUT","CONNECT","COPY","LABEL","LOCK","MERGE","MKACTIVITY","MKWORKSPACE","MOVE","NOTIFY","ORDERPATCH","POLL","PROPPATCH","REPORT","SEARCH","SUBSCRIBE","TRACE","UNCHECKOUT","UNLOCK","UNSUBSCRIBE","UPDATE","VERSIONCONTROL","BASELINECONTROL","XMSENUMATTS","RPC_OUT_DATA","RPC_IN_DATA","JSON","COOK","TRACK"],"type":"string"},"type":"array"}},{"description":"Array of L7 mitigation products.","in":"query","name":"mitigationProduct","schema":{"description":"Array of L7 mitigation products.","items":{"enum":["DDOS","WAF","BOT_MANAGEMENT","ACCESS_RULES","IP_REPUTATION","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"string"},"type":"array"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"default":"PERCENTAGE","description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE","MIN0_MAX"],"example":"PERCENTAGE","type":"string"}},{"description":"Limit the number of objects (eg browsers, verticals, etc) to the top items over the time range.","in":"query","name":"limitPerGroup","schema":{"description":"Limit the number of objects (eg browsers, verticals, etc) to the top items over the time range.","example":4,"type":"integer"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"example":{"Internet":["5.519081"],"timestamps":["2023-08-08T10:15:00Z"]},"properties":{"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 7 attacks by target industries time series","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/timeseries_groups/ip_version":{"get":{"description":"Percentage distribution of attacks by ip version used over time.","operationId":"radar-get-attacks-layer7-timeseries-group-by-ip-version","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for http method.","in":"query","name":"httpMethod","schema":{"description":"Filter for http method.","example":"GET","items":{"enum":["GET","POST","DELETE","PUT","HEAD","PURGE","OPTIONS","PROPFIND","MKCOL","PATCH","ACL","BCOPY","BDELETE","BMOVE","BPROPFIND","BPROPPATCH","CHECKIN","CHECKOUT","CONNECT","COPY","LABEL","LOCK","MERGE","MKACTIVITY","MKWORKSPACE","MOVE","NOTIFY","ORDERPATCH","POLL","PROPPATCH","REPORT","SEARCH","SUBSCRIBE","TRACE","UNCHECKOUT","UNLOCK","UNSUBSCRIBE","UPDATE","VERSIONCONTROL","BASELINECONTROL","XMSENUMATTS","RPC_OUT_DATA","RPC_IN_DATA","JSON","COOK","TRACK"],"type":"string"},"type":"array"}},{"description":"Array of L7 mitigation products.","in":"query","name":"mitigationProduct","schema":{"description":"Array of L7 mitigation products.","items":{"enum":["DDOS","WAF","BOT_MANAGEMENT","ACCESS_RULES","IP_REPUTATION","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"string"},"type":"array"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"default":"PERCENTAGE","description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE","MIN0_MAX"],"example":"PERCENTAGE","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"IPv4":{"items":{"example":"99.935733","type":"string"},"type":"array"},"IPv6":{"items":{"example":"0.064267","type":"string"},"type":"array"},"timestamps":{"items":{"example":"2023-10-01T00:00:00Z","type":"string"},"type":"array"}},"required":["timestamps","IPv4","IPv6"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 7 attacks by IP version time series","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/timeseries_groups/managed_rules":{"get":{"description":"Percentage distribution of attacks by managed rules used over time.","operationId":"radar-get-attacks-layer7-timeseries-group-by-managed-rules","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for http method.","in":"query","name":"httpMethod","schema":{"description":"Filter for http method.","example":"GET","items":{"enum":["GET","POST","DELETE","PUT","HEAD","PURGE","OPTIONS","PROPFIND","MKCOL","PATCH","ACL","BCOPY","BDELETE","BMOVE","BPROPFIND","BPROPPATCH","CHECKIN","CHECKOUT","CONNECT","COPY","LABEL","LOCK","MERGE","MKACTIVITY","MKWORKSPACE","MOVE","NOTIFY","ORDERPATCH","POLL","PROPPATCH","REPORT","SEARCH","SUBSCRIBE","TRACE","UNCHECKOUT","UNLOCK","UNSUBSCRIBE","UPDATE","VERSIONCONTROL","BASELINECONTROL","XMSENUMATTS","RPC_OUT_DATA","RPC_IN_DATA","JSON","COOK","TRACK"],"type":"string"},"type":"array"}},{"description":"Array of L7 mitigation products.","in":"query","name":"mitigationProduct","schema":{"description":"Array of L7 mitigation products.","items":{"enum":["DDOS","WAF","BOT_MANAGEMENT","ACCESS_RULES","IP_REPUTATION","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"string"},"type":"array"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"default":"PERCENTAGE","description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE","MIN0_MAX"],"example":"PERCENTAGE","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"Bot":{"items":{"example":"0.324198","type":"string"},"type":"array"},"timestamps":{"items":{"example":"2023-10-01T00:00:00Z","type":"string"},"type":"array"}},"required":["timestamps","Bot"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 7 attacks by managed rules time series","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/timeseries_groups/mitigation_product":{"get":{"description":"Percentage distribution of attacks by mitigation product used over time.","operationId":"radar-get-attacks-layer7-timeseries-group-by-mitigation-product","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for http method.","in":"query","name":"httpMethod","schema":{"description":"Filter for http method.","example":"GET","items":{"enum":["GET","POST","DELETE","PUT","HEAD","PURGE","OPTIONS","PROPFIND","MKCOL","PATCH","ACL","BCOPY","BDELETE","BMOVE","BPROPFIND","BPROPPATCH","CHECKIN","CHECKOUT","CONNECT","COPY","LABEL","LOCK","MERGE","MKACTIVITY","MKWORKSPACE","MOVE","NOTIFY","ORDERPATCH","POLL","PROPPATCH","REPORT","SEARCH","SUBSCRIBE","TRACE","UNCHECKOUT","UNLOCK","UNSUBSCRIBE","UPDATE","VERSIONCONTROL","BASELINECONTROL","XMSENUMATTS","RPC_OUT_DATA","RPC_IN_DATA","JSON","COOK","TRACK"],"type":"string"},"type":"array"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"default":"PERCENTAGE","description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE","MIN0_MAX"],"example":"PERCENTAGE","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"DDOS":{"items":{"example":"48.926354","type":"string"},"type":"array"},"timestamps":{"items":{"example":"2023-10-01T00:00:00Z","type":"string"},"type":"array"}},"required":["timestamps","DDOS"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 7 attacks by mitigation product time series","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/timeseries_groups/vertical":{"get":{"description":"Percentage distribution of attacks by targeted vertical over time.","operationId":"radar-get-attacks-layer7-timeseries-group-by-vertical","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for http method.","in":"query","name":"httpMethod","schema":{"description":"Filter for http method.","example":"GET","items":{"enum":["GET","POST","DELETE","PUT","HEAD","PURGE","OPTIONS","PROPFIND","MKCOL","PATCH","ACL","BCOPY","BDELETE","BMOVE","BPROPFIND","BPROPPATCH","CHECKIN","CHECKOUT","CONNECT","COPY","LABEL","LOCK","MERGE","MKACTIVITY","MKWORKSPACE","MOVE","NOTIFY","ORDERPATCH","POLL","PROPPATCH","REPORT","SEARCH","SUBSCRIBE","TRACE","UNCHECKOUT","UNLOCK","UNSUBSCRIBE","UPDATE","VERSIONCONTROL","BASELINECONTROL","XMSENUMATTS","RPC_OUT_DATA","RPC_IN_DATA","JSON","COOK","TRACK"],"type":"string"},"type":"array"}},{"description":"Array of L7 mitigation products.","in":"query","name":"mitigationProduct","schema":{"description":"Array of L7 mitigation products.","items":{"enum":["DDOS","WAF","BOT_MANAGEMENT","ACCESS_RULES","IP_REPUTATION","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"string"},"type":"array"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"default":"PERCENTAGE","description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE","MIN0_MAX"],"example":"PERCENTAGE","type":"string"}},{"description":"Limit the number of objects (eg browsers, verticals, etc) to the top items over the time range.","in":"query","name":"limitPerGroup","schema":{"description":"Limit the number of objects (eg browsers, verticals, etc) to the top items over the time range.","example":4,"type":"integer"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"example":{"Internet and Telecom":["5.519081"],"timestamps":["2023-08-08T10:15:00Z"]},"properties":{"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 7 attacks by vertical time series","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/top/ases/origin":{"get":{"description":"Get the top origin Autonomous Systems of and by Layer 7 attacks. Values are a percentage out of the total Layer 7 attacks. The origin Autonomous Systems is determined by the client IP address.","operationId":"radar-get-attacks-layer7-top-origin-as","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for http method.","in":"query","name":"httpMethod","schema":{"description":"Filter for http method.","example":"GET","items":{"enum":["GET","POST","DELETE","PUT","HEAD","PURGE","OPTIONS","PROPFIND","MKCOL","PATCH","ACL","BCOPY","BDELETE","BMOVE","BPROPFIND","BPROPPATCH","CHECKIN","CHECKOUT","CONNECT","COPY","LABEL","LOCK","MERGE","MKACTIVITY","MKWORKSPACE","MOVE","NOTIFY","ORDERPATCH","POLL","PROPPATCH","REPORT","SEARCH","SUBSCRIBE","TRACE","UNCHECKOUT","UNLOCK","UNSUBSCRIBE","UPDATE","VERSIONCONTROL","BASELINECONTROL","XMSENUMATTS","RPC_OUT_DATA","RPC_IN_DATA","JSON","COOK","TRACK"],"type":"string"},"type":"array"}},{"description":"Array of L7 mitigation products.","in":"query","name":"mitigationProduct","schema":{"description":"Array of L7 mitigation products.","items":{"enum":["DDOS","WAF","BOT_MANAGEMENT","ACCESS_RULES","IP_REPUTATION","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"originAsn":{"example":"55836","type":"string"},"originAsnName":{"example":"RELIANCEJIO-IN Reliance Jio Infocomm Limited","type":"string"},"rank":{"example":1,"type":"number"},"value":{"example":"4.323214","type":"string"}},"required":["originAsnName","originAsn","value","rank"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top origin autonomous systems by Layer 7 attacks","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/top/attacks":{"get":{"description":"Get the top attacks from origin to target location. Values are a percentage out of the total Layer 7 attacks (with billing country). The attack magnitude can be defined by the number of mitigated requests or by the number of zones affected. You can optionally limit the number of attacks by origin/target location (useful if all the top attacks are from or to the same location).","operationId":"radar-get-attacks-layer7-top-attacks","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for http method.","in":"query","name":"httpMethod","schema":{"description":"Filter for http method.","example":"GET","items":{"enum":["GET","POST","DELETE","PUT","HEAD","PURGE","OPTIONS","PROPFIND","MKCOL","PATCH","ACL","BCOPY","BDELETE","BMOVE","BPROPFIND","BPROPPATCH","CHECKIN","CHECKOUT","CONNECT","COPY","LABEL","LOCK","MERGE","MKACTIVITY","MKWORKSPACE","MOVE","NOTIFY","ORDERPATCH","POLL","PROPPATCH","REPORT","SEARCH","SUBSCRIBE","TRACE","UNCHECKOUT","UNLOCK","UNSUBSCRIBE","UPDATE","VERSIONCONTROL","BASELINECONTROL","XMSENUMATTS","RPC_OUT_DATA","RPC_IN_DATA","JSON","COOK","TRACK"],"type":"string"},"type":"array"}},{"description":"Array of L7 mitigation products.","in":"query","name":"mitigationProduct","schema":{"description":"Array of L7 mitigation products.","items":{"enum":["DDOS","WAF","BOT_MANAGEMENT","ACCESS_RULES","IP_REPUTATION","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"string"},"type":"array"}},{"description":"Array of attack origin/target location attack limits. Together with `limitPerLocation`, limits how many objects will be fetched per origin/target location.","in":"query","name":"limitDirection","schema":{"default":"ORIGIN","description":"Array of attack origin/target location attack limits. Together with `limitPerLocation`, limits how many objects will be fetched per origin/target location.","enum":["ORIGIN","TARGET"],"example":"ORIGIN","type":"string"}},{"description":"Limit the number of attacks per origin/target (refer to `limitDirection` parameter) location.","in":"query","name":"limitPerLocation","schema":{"description":"Limit the number of attacks per origin/target (refer to `limitDirection` parameter) location.","example":10,"type":"integer"}},{"description":"Attack magnitude can be defined by total requests mitigated or by total zones attacked.","in":"query","name":"magnitude","schema":{"description":"Attack magnitude can be defined by total requests mitigated or by total zones attacked.","enum":["AFFECTED_ZONES","MITIGATED_REQUESTS"],"example":"MITIGATED_REQUESTS","type":"string"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"default":"PERCENTAGE","description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE","MIN_MAX"],"example":"PERCENTAGE","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"originCountryAlpha2":{"example":"US","type":"string"},"originCountryName":{"example":"United States","type":"string"},"targetCountryAlpha2":{"example":"FR","type":"string"},"targetCountryName":{"example":"France","type":"string"},"value":{"example":"4.323214","type":"string"}},"required":["originCountryAlpha2","originCountryName","targetCountryAlpha2","targetCountryName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top attack pairs (origin and target locations) by Layer 7 attacks","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/top/industry":{"get":{"description":"Get the industries targeted by attacks.","operationId":"radar-get-attacks-layer7-top-industries","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for http method.","in":"query","name":"httpMethod","schema":{"description":"Filter for http method.","example":"GET","items":{"enum":["GET","POST","DELETE","PUT","HEAD","PURGE","OPTIONS","PROPFIND","MKCOL","PATCH","ACL","BCOPY","BDELETE","BMOVE","BPROPFIND","BPROPPATCH","CHECKIN","CHECKOUT","CONNECT","COPY","LABEL","LOCK","MERGE","MKACTIVITY","MKWORKSPACE","MOVE","NOTIFY","ORDERPATCH","POLL","PROPPATCH","REPORT","SEARCH","SUBSCRIBE","TRACE","UNCHECKOUT","UNLOCK","UNSUBSCRIBE","UPDATE","VERSIONCONTROL","BASELINECONTROL","XMSENUMATTS","RPC_OUT_DATA","RPC_IN_DATA","JSON","COOK","TRACK"],"type":"string"},"type":"array"}},{"description":"Array of L7 mitigation products.","in":"query","name":"mitigationProduct","schema":{"description":"Array of L7 mitigation products.","items":{"enum":["DDOS","WAF","BOT_MANAGEMENT","ACCESS_RULES","IP_REPUTATION","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"name":{"example":"Computer Software","type":"string"},"value":{"example":"65","type":"string"}},"required":["name","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top Industry of attack","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/top/locations/origin":{"get":{"description":"Get the top origin locations of and by Layer 7 attacks. Values are a percentage out of the total Layer 7 attacks. The origin location is determined by the client IP address.","operationId":"radar-get-attacks-layer7-top-origin-location","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for http method.","in":"query","name":"httpMethod","schema":{"description":"Filter for http method.","example":"GET","items":{"enum":["GET","POST","DELETE","PUT","HEAD","PURGE","OPTIONS","PROPFIND","MKCOL","PATCH","ACL","BCOPY","BDELETE","BMOVE","BPROPFIND","BPROPPATCH","CHECKIN","CHECKOUT","CONNECT","COPY","LABEL","LOCK","MERGE","MKACTIVITY","MKWORKSPACE","MOVE","NOTIFY","ORDERPATCH","POLL","PROPPATCH","REPORT","SEARCH","SUBSCRIBE","TRACE","UNCHECKOUT","UNLOCK","UNSUBSCRIBE","UPDATE","VERSIONCONTROL","BASELINECONTROL","XMSENUMATTS","RPC_OUT_DATA","RPC_IN_DATA","JSON","COOK","TRACK"],"type":"string"},"type":"array"}},{"description":"Array of L7 mitigation products.","in":"query","name":"mitigationProduct","schema":{"description":"Array of L7 mitigation products.","items":{"enum":["DDOS","WAF","BOT_MANAGEMENT","ACCESS_RULES","IP_REPUTATION","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"originCountryAlpha2":{"example":"FR","type":"string"},"originCountryName":{"example":"France","type":"string"},"rank":{"example":1,"type":"number"},"value":{"example":"4.323214","type":"string"}},"required":["originCountryAlpha2","originCountryName","value","rank"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top origin locations by Layer 7 attacks","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/top/locations/target":{"get":{"description":"Get the top target locations of and by layer 7 attacks. Values are a percentage out of the total layer 7 attacks. The target location is determined by the attacked zone's billing country, when available.","operationId":"radar-get-attacks-layer7-top-target-location","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for http method.","in":"query","name":"httpMethod","schema":{"description":"Filter for http method.","example":"GET","items":{"enum":["GET","POST","DELETE","PUT","HEAD","PURGE","OPTIONS","PROPFIND","MKCOL","PATCH","ACL","BCOPY","BDELETE","BMOVE","BPROPFIND","BPROPPATCH","CHECKIN","CHECKOUT","CONNECT","COPY","LABEL","LOCK","MERGE","MKACTIVITY","MKWORKSPACE","MOVE","NOTIFY","ORDERPATCH","POLL","PROPPATCH","REPORT","SEARCH","SUBSCRIBE","TRACE","UNCHECKOUT","UNLOCK","UNSUBSCRIBE","UPDATE","VERSIONCONTROL","BASELINECONTROL","XMSENUMATTS","RPC_OUT_DATA","RPC_IN_DATA","JSON","COOK","TRACK"],"type":"string"},"type":"array"}},{"description":"Array of L7 mitigation products.","in":"query","name":"mitigationProduct","schema":{"description":"Array of L7 mitigation products.","items":{"enum":["DDOS","WAF","BOT_MANAGEMENT","ACCESS_RULES","IP_REPUTATION","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"rank":{"example":1,"type":"number"},"targetCountryAlpha2":{"example":"FR","type":"string"},"targetCountryName":{"example":"France","type":"string"},"value":{"example":"4.323214","type":"string"}},"required":["targetCountryAlpha2","targetCountryName","value","rank"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Layer 7 top target locations","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/attacks/layer7/top/vertical":{"get":{"description":"Get the verticals targeted by attacks.","operationId":"radar-get-attacks-layer7-top-verticals","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for http method.","in":"query","name":"httpMethod","schema":{"description":"Filter for http method.","example":"GET","items":{"enum":["GET","POST","DELETE","PUT","HEAD","PURGE","OPTIONS","PROPFIND","MKCOL","PATCH","ACL","BCOPY","BDELETE","BMOVE","BPROPFIND","BPROPPATCH","CHECKIN","CHECKOUT","CONNECT","COPY","LABEL","LOCK","MERGE","MKACTIVITY","MKWORKSPACE","MOVE","NOTIFY","ORDERPATCH","POLL","PROPPATCH","REPORT","SEARCH","SUBSCRIBE","TRACE","UNCHECKOUT","UNLOCK","UNSUBSCRIBE","UPDATE","VERSIONCONTROL","BASELINECONTROL","XMSENUMATTS","RPC_OUT_DATA","RPC_IN_DATA","JSON","COOK","TRACK"],"type":"string"},"type":"array"}},{"description":"Array of L7 mitigation products.","in":"query","name":"mitigationProduct","schema":{"description":"Array of L7 mitigation products.","items":{"enum":["DDOS","WAF","BOT_MANAGEMENT","ACCESS_RULES","IP_REPUTATION","API_SHIELD","DATA_LOSS_PREVENTION"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"name":{"example":"Internet and Telecom","type":"string"},"value":{"example":"65","type":"string"}},"required":["name","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top verticals of attack","tags":["Radar Attacks"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/bgp/hijacks/events":{"get":{"description":"Get the BGP hijack events. (Beta)","operationId":"radar-get-bgp-hijacks-events","parameters":[{"description":"Current page number, starting from 1","in":"query","name":"page","schema":{"description":"Current page number, starting from 1","type":"integer"}},{"description":"Number of entries per page","in":"query","name":"per_page","schema":{"description":"Number of entries per page","type":"integer"}},{"description":"The unique identifier of a event","in":"query","name":"eventId","schema":{"description":"The unique identifier of a event","type":"integer"}},{"description":"The potential hijacker AS of a BGP hijack event","in":"query","name":"hijackerAsn","schema":{"description":"The potential hijacker AS of a BGP hijack event","type":"integer"}},{"description":"The potential victim AS of a BGP hijack event","in":"query","name":"victimAsn","schema":{"description":"The potential victim AS of a BGP hijack event","type":"integer"}},{"description":"The potential hijacker or victim AS of a BGP hijack event","in":"query","name":"involvedAsn","schema":{"description":"The potential hijacker or victim AS of a BGP hijack event","type":"integer"}},{"description":"The country code of the potential hijacker or victim AS of a BGP hijack event","in":"query","name":"involvedCountry","schema":{"description":"The country code of the potential hijacker or victim AS of a BGP hijack event","type":"string"}},{"description":"Network prefix, IPv4 or IPv6.","in":"query","name":"prefix","schema":{"description":"Network prefix, IPv4 or IPv6.","example":"1.1.1.0/24","type":"string"}},{"description":"The minimum confidence score to filter events (1-4 low, 5-7 mid, 8+ high)","in":"query","name":"minConfidence","schema":{"description":"The minimum confidence score to filter events (1-4 low, 5-7 mid, 8+ high)","type":"integer"}},{"description":"The maximum confidence score to filter events (1-4 low, 5-7 mid, 8+ high)","in":"query","name":"maxConfidence","schema":{"description":"The maximum confidence score to filter events (1-4 low, 5-7 mid, 8+ high)","type":"integer"}},{"description":"Shorthand date ranges for the last X days - use when you don't need specific start and end dates.","in":"query","name":"dateRange","schema":{"description":"Shorthand date ranges for the last X days - use when you don't need specific start and end dates.","example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"}},{"description":"Start of the date range (inclusive).","in":"query","name":"dateStart","schema":{"description":"Start of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","format":"date-time","type":"string"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","format":"date-time","type":"string"}},{"description":"Sort events by field","in":"query","name":"sortBy","schema":{"description":"Sort events by field","enum":["ID","TIME","CONFIDENCE"],"example":"TIME","type":"string"}},{"description":"Sort order","in":"query","name":"sortOrder","schema":{"description":"Sort order","enum":["ASC","DESC"],"example":"DESC","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"asn_info":{"items":{"properties":{"asn":{"type":"integer"},"country_code":{"type":"string"},"org_name":{"type":"string"}},"required":["asn","org_name","country_code"],"type":"object"},"type":"array"},"events":{"items":{"properties":{"confidence_score":{"type":"integer"},"duration":{"type":"integer"},"event_type":{"type":"integer"},"hijack_msgs_count":{"type":"integer"},"hijacker_asn":{"type":"integer"},"hijacker_country":{"type":"string"},"id":{"type":"integer"},"is_stale":{"type":"boolean"},"max_hijack_ts":{"type":"string"},"max_msg_ts":{"type":"string"},"min_hijack_ts":{"type":"string"},"on_going_count":{"type":"integer"},"peer_asns":{"items":{"type":"integer"},"type":"array"},"peer_ip_count":{"type":"integer"},"prefixes":{"items":{"type":"string"},"type":"array"},"tags":{"items":{"properties":{"name":{"type":"string"},"score":{"type":"integer"}},"required":["name","score"],"type":"object"},"type":"array"},"victim_asns":{"items":{"type":"integer"},"type":"array"},"victim_countries":{"items":{"type":"string"},"type":"array"}},"required":["duration","event_type","hijack_msgs_count","hijacker_asn","hijacker_country","victim_asns","victim_countries","id","is_stale","max_hijack_ts","min_hijack_ts","max_msg_ts","on_going_count","peer_asns","peer_ip_count","prefixes","confidence_score","tags"],"type":"object"},"type":"array"},"total_monitors":{"type":"integer"}},"required":["asn_info","events","total_monitors"],"type":"object"},"result_info":{"properties":{"count":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"}},"required":["count","total_count","page","per_page"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","result_info","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get BGP hijack events","tags":["Radar BGP"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/bgp/ips/timeseries":{"get":{"description":"Get time series data for the announced IP space count, represented as the number of IPv4 /24s and IPv6 /48s, for a given ASN.","operationId":"radar-get-bgp-ips-timeseries","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of locations (alpha-2 country codes).","in":"query","name":"location","schema":{"description":"Array of locations (alpha-2 country codes).","example":"US","items":{"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Include data delay meta information","in":"query","name":"includeDelay","schema":{"description":"Include data delay meta information","example":"true","type":"boolean"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"queries":{"items":{"properties":{"dateRange":{"properties":{"endTime":{"example":"2024-07-29T13:30:00Z","type":"string"},"startTime":{"example":"2024-07-28T13:30:00Z","type":"string"}},"required":["startTime","endTime"],"type":"object"},"entity":{"example":"174","type":"string"}},"required":["dateRange","entity"],"type":"object"},"type":"array"}},"required":["queries"],"type":"object"},"serie_174":{"properties":{"ipv4":{"items":{"example":"4","type":"string"},"type":"array"},"ipv6":{"items":{"example":"6","type":"string"},"type":"array"},"timestamps":{"items":{"format":"date-time","type":"string"},"type":"array"}},"required":["timestamps","ipv4","ipv6"],"type":"object"}},"required":["meta","serie_174"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get BGP IP space time series","tags":["Radar BGP"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/bgp/leaks/events":{"get":{"description":"Get the BGP route leak events (Beta).","operationId":"radar-get-bgp-route-leak-events","parameters":[{"description":"Current page number, starting from 1","in":"query","name":"page","schema":{"description":"Current page number, starting from 1","type":"integer"}},{"description":"Number of entries per page","in":"query","name":"per_page","schema":{"description":"Number of entries per page","type":"integer"}},{"description":"The unique identifier of a event","in":"query","name":"eventId","schema":{"description":"The unique identifier of a event","type":"integer"}},{"description":"The leaking AS of a route leak event","in":"query","name":"leakAsn","schema":{"description":"The leaking AS of a route leak event","type":"integer"}},{"description":"ASN that is causing or affected by a route leak event","in":"query","name":"involvedAsn","schema":{"description":"ASN that is causing or affected by a route leak event","type":"integer"}},{"description":"Country code of a involved ASN in a route leak event","in":"query","name":"involvedCountry","schema":{"description":"Country code of a involved ASN in a route leak event","type":"string"}},{"description":"Shorthand date ranges for the last X days - use when you don't need specific start and end dates.","in":"query","name":"dateRange","schema":{"description":"Shorthand date ranges for the last X days - use when you don't need specific start and end dates.","example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"}},{"description":"Start of the date range (inclusive).","in":"query","name":"dateStart","schema":{"description":"Start of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","format":"date-time","type":"string"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","format":"date-time","type":"string"}},{"description":"Sort events by field","in":"query","name":"sortBy","schema":{"description":"Sort events by field","enum":["ID","LEAKS","PEERS","PREFIXES","ORIGINS","TIME"],"example":"TIME","type":"string"}},{"description":"Sort order","in":"query","name":"sortOrder","schema":{"description":"Sort order","enum":["ASC","DESC"],"example":"DESC","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"asn_info":{"items":{"properties":{"asn":{"type":"integer"},"country_code":{"type":"string"},"org_name":{"type":"string"}},"required":["asn","org_name","country_code"],"type":"object"},"type":"array"},"events":{"items":{"properties":{"countries":{"items":{"type":"string"},"type":"array"},"detected_ts":{"type":"string"},"finished":{"type":"boolean"},"id":{"type":"integer"},"leak_asn":{"type":"integer"},"leak_count":{"type":"integer"},"leak_seg":{"items":{"type":"integer"},"type":"array"},"leak_type":{"type":"integer"},"max_ts":{"type":"string"},"min_ts":{"type":"string"},"origin_count":{"type":"integer"},"peer_count":{"type":"integer"},"prefix_count":{"type":"integer"}},"required":["detected_ts","finished","id","leak_asn","leak_count","leak_seg","leak_type","max_ts","min_ts","origin_count","peer_count","prefix_count","countries"],"type":"object"},"type":"array"}},"required":["asn_info","events"],"type":"object"},"result_info":{"properties":{"count":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"}},"required":["count","total_count","page","per_page"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","result_info","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get BGP route leak events","tags":["Radar BGP"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/bgp/routes/ases":{"get":{"description":"List all ASes in current global routing tables with routing statistics","operationId":"radar-get-bgp-routes-asns","parameters":[{"description":"Location Alpha2 code.","in":"query","name":"location","schema":{"description":"Location Alpha2 code.","example":"US","type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Return order results by given type","in":"query","name":"sortBy","schema":{"description":"Return order results by given type","enum":["cone","pfxs","ipv4","ipv6","rpki_valid","rpki_invalid","rpki_unknown"],"example":"ipv4","type":"string"}},{"description":"Sort by value ascending or descending","in":"query","name":"sortOrder","schema":{"default":"desc","description":"Sort by value ascending or descending","enum":["asc","desc"],"example":"desc","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"asns":{"items":{"properties":{"asn":{"type":"integer"},"coneSize":{"description":"AS's customer cone size","type":"integer"},"country":{"description":"2-letter country code for the AS's registration country","example":"US","type":"string"},"ipv4Count":{"description":"number of IPv4 addresses originated by the AS","type":"integer"},"ipv6Count":{"description":"number of IPv6 addresses originated by the AS","example":"1.21e24","type":"string"},"name":{"description":"name of the AS","type":"string"},"pfxsCount":{"description":"number of total IP prefixes originated by the AS","type":"integer"},"rpkiInvalid":{"description":"number of RPKI invalid prefixes originated by the AS","type":"integer"},"rpkiUnknown":{"description":"number of RPKI unknown prefixes originated by the AS","type":"integer"},"rpkiValid":{"description":"number of RPKI valid prefixes originated by the AS","type":"integer"}},"required":["asn","name","coneSize","country","ipv4Count","ipv6Count","pfxsCount","rpkiValid","rpkiInvalid","rpkiUnknown"],"type":"object"},"type":"array"},"meta":{"properties":{"dataTime":{"description":"the timestamp of when the data is generated","example":"2024-06-03T14:00:00","type":"string"},"queryTime":{"description":"the timestamp of the query","example":"2024-06-03T14:00:00","type":"string"},"totalPeers":{"description":"total number of route collector peers used to generate this data","type":"integer"}},"required":["dataTime","queryTime","totalPeers"],"type":"object"}},"required":["asns","meta"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List ASes from global routing tables","tags":["Radar BGP"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/bgp/routes/moas":{"get":{"description":"List all Multi-Origin AS (MOAS) prefixes on the global routing tables.","operationId":"radar-get-bgp-pfx2as-moas","parameters":[{"description":"Lookup MOASes originated by the given ASN","in":"query","name":"origin","schema":{"description":"Lookup MOASes originated by the given ASN","type":"integer"}},{"description":"Network prefix, IPv4 or IPv6.","in":"query","name":"prefix","schema":{"description":"Network prefix, IPv4 or IPv6.","example":"1.1.1.0/24","type":"string"}},{"description":"Lookup only RPKI invalid MOASes","in":"query","name":"invalid_only","schema":{"description":"Lookup only RPKI invalid MOASes","type":"boolean"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"data_time":{"type":"string"},"query_time":{"type":"string"},"total_peers":{"type":"integer"}},"required":["data_time","query_time","total_peers"],"type":"object"},"moas":{"items":{"properties":{"origins":{"items":{"properties":{"origin":{"type":"integer"},"peer_count":{"type":"integer"},"rpki_validation":{"type":"string"}},"required":["origin","peer_count","rpki_validation"],"type":"object"},"type":"array"},"prefix":{"type":"string"}},"required":["prefix","origins"],"type":"object"},"type":"array"}},"required":["moas","meta"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get MOASes","tags":["Radar BGP"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/bgp/routes/pfx2as":{"get":{"description":"Lookup prefix-to-ASN mapping on global routing tables.","operationId":"radar-get-bgp-pfx2as","parameters":[{"description":"Network prefix, IPv4 or IPv6.","in":"query","name":"prefix","schema":{"description":"Network prefix, IPv4 or IPv6.","example":"1.1.1.0/24","type":"string"}},{"description":"Lookup prefixes originated by the given ASN","in":"query","name":"origin","schema":{"description":"Lookup prefixes originated by the given ASN","type":"integer"}},{"description":"Return only results with matching rpki status: valid, invalid or unknown","in":"query","name":"rpkiStatus","schema":{"description":"Return only results with matching rpki status: valid, invalid or unknown","enum":["VALID","INVALID","UNKNOWN"],"example":"INVALID","type":"string"}},{"description":"Return only results with the longest prefix match for the given prefix. For example, specify a /32 prefix to lookup the origin ASN for an IPv4 address.","in":"query","name":"longestPrefixMatch","schema":{"description":"Return only results with the longest prefix match for the given prefix. For example, specify a /32 prefix to lookup the origin ASN for an IPv4 address.","example":"true","type":"boolean"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"data_time":{"type":"string"},"query_time":{"type":"string"},"total_peers":{"type":"integer"}},"required":["data_time","query_time","total_peers"],"type":"object"},"prefix_origins":{"items":{"properties":{"origin":{"type":"integer"},"peer_count":{"type":"integer"},"prefix":{"type":"string"},"rpki_validation":{"type":"string"}},"required":["origin","peer_count","prefix","rpki_validation"],"type":"object"},"type":"array"}},"required":["prefix_origins","meta"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get prefix-to-ASN mapping","tags":["Radar BGP"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/bgp/routes/stats":{"get":{"description":"Get the BGP routing table stats (Beta).","operationId":"radar-get-bgp-routes-stats","parameters":[{"description":"Single ASN as integer.","in":"query","name":"asn","schema":{"description":"Single ASN as integer.","example":"174","type":"integer"}},{"description":"Location Alpha2 code.","in":"query","name":"location","schema":{"description":"Location Alpha2 code.","example":"US","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"data_time":{"type":"string"},"query_time":{"type":"string"},"total_peers":{"type":"integer"}},"required":["data_time","query_time","total_peers"],"type":"object"},"stats":{"properties":{"distinct_origins":{"type":"integer"},"distinct_origins_ipv4":{"type":"integer"},"distinct_origins_ipv6":{"type":"integer"},"distinct_prefixes":{"type":"integer"},"distinct_prefixes_ipv4":{"type":"integer"},"distinct_prefixes_ipv6":{"type":"integer"},"routes_invalid":{"type":"integer"},"routes_invalid_ipv4":{"type":"integer"},"routes_invalid_ipv6":{"type":"integer"},"routes_total":{"type":"integer"},"routes_total_ipv4":{"type":"integer"},"routes_total_ipv6":{"type":"integer"},"routes_unknown":{"type":"integer"},"routes_unknown_ipv4":{"type":"integer"},"routes_unknown_ipv6":{"type":"integer"},"routes_valid":{"type":"integer"},"routes_valid_ipv4":{"type":"integer"},"routes_valid_ipv6":{"type":"integer"}},"required":["distinct_origins","distinct_origins_ipv4","distinct_origins_ipv6","distinct_prefixes","distinct_prefixes_ipv4","distinct_prefixes_ipv6","routes_invalid","routes_invalid_ipv4","routes_invalid_ipv6","routes_total","routes_total_ipv4","routes_total_ipv6","routes_unknown","routes_unknown_ipv4","routes_unknown_ipv6","routes_valid","routes_valid_ipv4","routes_valid_ipv6"],"type":"object"}},"required":["stats","meta"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get BGP routing table stats ","tags":["Radar BGP"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/bgp/timeseries":{"get":{"description":"Get BGP updates change over time. Raw values are returned. When requesting updates for an autonomous system (AS), only BGP updates of type announcement are returned.","operationId":"radar-get-bgp-timeseries","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of BGP network prefixes.","in":"query","name":"prefix","schema":{"description":"Array of BGP network prefixes.","example":"1.1.1.0/24","items":{"description":"Network prefix, IPv4 or IPv6.","example":"1.1.1.0/24","type":"string"},"type":"array"}},{"description":"Array of BGP update types.","in":"query","name":"updateType","schema":{"description":"Array of BGP update types.","example":"ANNOUNCEMENT","items":{"enum":["ANNOUNCEMENT","WITHDRAWAL"],"type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"aggInterval":{"example":"1h","type":"string"},"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"format":"date-time","type":"string"}},"required":["dateRange","aggInterval","lastUpdated"],"type":"object"},"serie_0":{"properties":{"timestamps":{"items":{"format":"date-time","type":"string"},"type":"array"},"values":{"items":{"example":0.56,"type":"string"},"type":"array"}},"required":["timestamps","values"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get BGP time series","tags":["Radar BGP"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/bgp/top/ases":{"get":{"description":"Get the top autonomous systems (ASes) by BGP updates (announcements only). Values are a percentage out of the total updates.","operationId":"radar-get-bgp-top-ases","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of BGP network prefixes.","in":"query","name":"prefix","schema":{"description":"Array of BGP network prefixes.","example":"1.1.1.0/24","items":{"description":"Network prefix, IPv4 or IPv6.","example":"1.1.1.0/24","type":"string"},"type":"array"}},{"description":"Array of BGP update types.","in":"query","name":"updateType","schema":{"description":"Array of BGP update types.","example":"ANNOUNCEMENT","items":{"enum":["ANNOUNCEMENT","WITHDRAWAL"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"}},"required":["dateRange"],"type":"object"},"top_0":{"items":{"properties":{"ASName":{"example":"Apple-Engineering","type":"string"},"asn":{"example":714,"type":"integer"},"value":{"description":"Percentage of updates by this AS out of the total updates by all autonomous systems.","example":"0.73996","type":"string"}},"required":["asn","ASName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top autonomous systems","tags":["Radar BGP"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/bgp/top/ases/prefixes":{"get":{"description":"Get the full list of autonomous systems on the global routing table ordered by announced prefixes count. The data comes from public BGP MRT data archives and updates every 2 hours.","operationId":"radar-get-bgp-top-asns-by-prefixes","parameters":[{"description":"Alpha-2 country code.","in":"query","name":"country","schema":{"description":"Alpha-2 country code.","example":"NZ","type":"string"}},{"description":"Maximum number of ASes to return","in":"query","name":"limit","schema":{"description":"Maximum number of ASes to return","example":10,"type":"integer"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"asns":{"items":{"properties":{"asn":{"type":"integer"},"country":{"type":"string"},"name":{"type":"string"},"pfxs_count":{"type":"integer"}},"required":["asn","country","name","pfxs_count"],"type":"object"},"type":"array"},"meta":{"properties":{"data_time":{"type":"string"},"query_time":{"type":"string"},"total_peers":{"type":"integer"}},"required":["data_time","query_time","total_peers"],"type":"object"}},"required":["asns","meta"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get list of ASNs ordered by prefix count","tags":["Radar BGP"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/bgp/top/prefixes":{"get":{"description":"Get the top network prefixes by BGP updates. Values are a percentage out of the total BGP updates.","operationId":"radar-get-bgp-top-prefixes","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of BGP update types.","in":"query","name":"updateType","schema":{"description":"Array of BGP update types.","example":"ANNOUNCEMENT","items":{"enum":["ANNOUNCEMENT","WITHDRAWAL"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"}},"required":["dateRange"],"type":"object"},"top_0":{"items":{"properties":{"prefix":{"example":"2804:77cc:8000::/33","type":"string"},"value":{"example":"0.73996","type":"string"}},"required":["prefix","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top prefixes","tags":["Radar BGP"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/datasets":{"get":{"description":"Get a list of datasets.","operationId":"radar-get-reports-datasets","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Number of objects to skip before grabbing results.","in":"query","name":"offset","schema":{"description":"Number of objects to skip before grabbing results.","type":"integer"}},{"description":"Dataset type.","in":"query","name":"datasetType","schema":{"default":"RANKING_BUCKET","description":"Dataset type.","enum":["RANKING_BUCKET","REPORT"],"example":"RANKING_BUCKET","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"datasets":{"items":{"properties":{"description":{"example":"This dataset contains a list of the op 20000 domains globally","type":"string"},"id":{"example":3,"type":"integer"},"meta":{"type":"object"},"tags":{"items":{"example":"global","type":"string"},"type":"array"},"title":{"example":"Top bucket 20000 domains","type":"string"},"type":{"example":"RANKING_BUCKET","type":"string"}},"required":["id","title","description","type","tags","meta"],"type":"object"},"type":"array"}},"required":["datasets"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get datasets","tags":["Radar Datasets"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/datasets/download":{"post":{"description":"Get a url to download a single dataset.","operationId":"radar-post-reports-dataset-download-url","parameters":[{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"datasetId":{"example":3,"type":"integer"}},"required":["datasetId"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"dataset":{"properties":{"url":{"example":"https://example.com/download","type":"string"}},"required":["url"],"type":"object"}},"required":["dataset"],"type":"object"}},"required":["result"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Dataset download url","tags":["Radar Datasets"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/datasets/{alias}":{"get":{"description":"Get the CSV content of a given dataset by alias or ID. When getting the content by alias the latest dataset is returned, optionally filtered by the latest available at a given date.","operationId":"radar-get-reports-dataset-download","parameters":[{"description":"Dataset alias or id","in":"path","name":"alias","required":true,"schema":{"description":"Dataset alias or id","example":"ranking_top_1000","type":"string"}}],"responses":{"200":{"content":{"text/csv":{"schema":{"type":"string"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get dataset CSV stream","tags":["Radar Datasets"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/dns/top/ases":{"get":{"description":"Get top autonomous systems by DNS queries made to Cloudflare's public DNS resolver.","operationId":"radar-get-dns-top-ases","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"Array of domain names.","in":"query","name":"domain","required":true,"schema":{"description":"Array of domain names.","example":"google.com","items":{"pattern":"^([a-zA-Z0-9]([a-zA-Z0-9-]{0,63}[a-zA-Z0-9-])?\\.)+[a-zA-Z0-9-]{2,63}$","type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"}},"required":["dateRange"],"type":"object"},"top_0":{"items":{"properties":{"clientASN":{"example":174,"type":"integer"},"clientASName":{"example":"Cogent-174","type":"string"},"value":{"example":"65","type":"string"}},"required":["clientASN","clientASName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top autonomous systems by DNS queries","tags":["Radar DNS"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/dns/top/locations":{"get":{"description":"Get top locations by DNS queries made to Cloudflare's public DNS resolver.","operationId":"radar-get-dns-top-locations","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"Array of domain names.","in":"query","name":"domain","required":true,"schema":{"description":"Array of domain names.","example":"google.com","items":{"pattern":"^([a-zA-Z0-9]([a-zA-Z0-9-]{0,63}[a-zA-Z0-9-])?\\.)+[a-zA-Z0-9-]{2,63}$","type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"}},"required":["dateRange"],"type":"object"},"top_0":{"items":{"properties":{"clientCountryAlpha2":{"example":"PT","type":"string"},"clientCountryName":{"example":"Portugal","type":"string"},"value":{"example":"65","type":"string"}},"required":["clientCountryAlpha2","clientCountryName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top locations by DNS queries","tags":["Radar DNS"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/routing/summary/arc":{"get":{"description":"Percentage distribution of emails classified by ARC validation.","operationId":"radar-get-email-routing-summary-by-arc","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for encrypted emails.","in":"query","name":"encrypted","schema":{"description":"Filter for encrypted emails.","example":"ENCRYPTED","items":{"enum":["ENCRYPTED","NOT_ENCRYPTED"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"FAIL":{"example":"2","type":"string"},"NONE":{"example":"53","type":"string"},"PASS":{"example":"45","type":"string"}},"required":["NONE","PASS","FAIL"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get ARC validations summary","tags":["Radar Email Routing"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/routing/summary/dkim":{"get":{"description":"Percentage distribution of emails classified by DKIM validation.","operationId":"radar-get-email-routing-summary-by-dkim","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for encrypted emails.","in":"query","name":"encrypted","schema":{"description":"Filter for encrypted emails.","example":"ENCRYPTED","items":{"enum":["ENCRYPTED","NOT_ENCRYPTED"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"FAIL":{"example":"2","type":"string"},"NONE":{"example":"53","type":"string"},"PASS":{"example":"45","type":"string"}},"required":["NONE","PASS","FAIL"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get DKIM validations summary","tags":["Radar Email Routing"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/routing/summary/dmarc":{"get":{"description":"Percentage distribution of emails classified by DMARC validation.","operationId":"radar-get-email-routing-summary-by-dmarc","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for encrypted emails.","in":"query","name":"encrypted","schema":{"description":"Filter for encrypted emails.","example":"ENCRYPTED","items":{"enum":["ENCRYPTED","NOT_ENCRYPTED"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"FAIL":{"example":"2","type":"string"},"NONE":{"example":"53","type":"string"},"PASS":{"example":"45","type":"string"}},"required":["NONE","PASS","FAIL"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get DMARC validations summary","tags":["Radar Email Routing"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/routing/summary/encrypted":{"get":{"description":"Percentage distribution of emails by encryption status.","operationId":"radar-get-email-routing-summary-by-encrypted","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"ENCRYPTED":{"example":"65","type":"string"},"NOT_ENCRYPTED":{"example":"35","type":"string"}},"required":["ENCRYPTED","NOT_ENCRYPTED"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get encrypted summary","tags":["Radar Email Routing"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/routing/summary/ip_version":{"get":{"description":"Percentage distribution of emails by IP version.","operationId":"radar-get-email-routing-summary-by-ip-version","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for encrypted emails.","in":"query","name":"encrypted","schema":{"description":"Filter for encrypted emails.","example":"ENCRYPTED","items":{"enum":["ENCRYPTED","NOT_ENCRYPTED"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"IPv4":{"example":"65","type":"string"},"IPv6":{"example":"35","type":"string"}},"required":["IPv4","IPv6"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get IP version summary","tags":["Radar Email Routing"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/routing/summary/spf":{"get":{"description":"Percentage distribution of emails classified by SPF validation.","operationId":"radar-get-email-routing-summary-by-spf","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for encrypted emails.","in":"query","name":"encrypted","schema":{"description":"Filter for encrypted emails.","example":"ENCRYPTED","items":{"enum":["ENCRYPTED","NOT_ENCRYPTED"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"FAIL":{"example":"2","type":"string"},"NONE":{"example":"53","type":"string"},"PASS":{"example":"45","type":"string"}},"required":["NONE","PASS","FAIL"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get SPF validations summary","tags":["Radar Email Routing"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/routing/timeseries_groups/arc":{"get":{"description":"Percentage distribution of emails classified by ARC validation over time.","operationId":"radar-get-email-routing-timeseries-group-by-arc","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for encrypted emails.","in":"query","name":"encrypted","schema":{"description":"Filter for encrypted emails.","example":"ENCRYPTED","items":{"enum":["ENCRYPTED","NOT_ENCRYPTED"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"FAIL":{"items":{"example":"2","type":"string"},"type":"array"},"NONE":{"items":{"example":"53","type":"string"},"type":"array"},"PASS":{"items":{"example":"45","type":"string"},"type":"array"}},"required":["NONE","PASS","FAIL"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get ARC validations time series","tags":["Radar Email Routing"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/routing/timeseries_groups/dkim":{"get":{"description":"Percentage distribution of emails classified by DKIM validation over time.","operationId":"radar-get-email-routing-timeseries-group-by-dkim","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for encrypted emails.","in":"query","name":"encrypted","schema":{"description":"Filter for encrypted emails.","example":"ENCRYPTED","items":{"enum":["ENCRYPTED","NOT_ENCRYPTED"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"FAIL":{"items":{"example":"2","type":"string"},"type":"array"},"NONE":{"items":{"example":"53","type":"string"},"type":"array"},"PASS":{"items":{"example":"45","type":"string"},"type":"array"}},"required":["NONE","PASS","FAIL"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get DKIM validations time series","tags":["Radar Email Routing"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/routing/timeseries_groups/dmarc":{"get":{"description":"Percentage distribution of emails classified by DMARC validation over time.","operationId":"radar-get-email-routing-timeseries-group-by-dmarc","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for encrypted emails.","in":"query","name":"encrypted","schema":{"description":"Filter for encrypted emails.","example":"ENCRYPTED","items":{"enum":["ENCRYPTED","NOT_ENCRYPTED"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"FAIL":{"items":{"example":"2","type":"string"},"type":"array"},"NONE":{"items":{"example":"53","type":"string"},"type":"array"},"PASS":{"items":{"example":"45","type":"string"},"type":"array"}},"required":["NONE","PASS","FAIL"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get DMARC validations time series","tags":["Radar Email Routing"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/routing/timeseries_groups/encrypted":{"get":{"description":"Percentage distribution of emails by encryption status over time.","operationId":"radar-get-email-routing-timeseries-group-by-encrypted","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"ENCRYPTED":{"items":{"example":"65","type":"string"},"type":"array"},"NOT_ENCRYPTED":{"items":{"example":"35","type":"string"},"type":"array"}},"required":["ENCRYPTED","NOT_ENCRYPTED"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get encrypted time series","tags":["Radar Email Routing"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/routing/timeseries_groups/ip_version":{"get":{"description":"Percentage distribution of emails by IP version over time.","operationId":"radar-get-email-routing-timeseries-group-by-ip-version","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for encrypted emails.","in":"query","name":"encrypted","schema":{"description":"Filter for encrypted emails.","example":"ENCRYPTED","items":{"enum":["ENCRYPTED","NOT_ENCRYPTED"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"IPv4":{"items":{"example":"65","type":"string"},"type":"array"},"IPv6":{"items":{"example":"35","type":"string"},"type":"array"}},"required":["IPv4","IPv6"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get IP version time series","tags":["Radar Email Routing"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/routing/timeseries_groups/spf":{"get":{"description":"Percentage distribution of emails classified by SPF validation over time.","operationId":"radar-get-email-routing-timeseries-group-by-spf","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for encrypted emails.","in":"query","name":"encrypted","schema":{"description":"Filter for encrypted emails.","example":"ENCRYPTED","items":{"enum":["ENCRYPTED","NOT_ENCRYPTED"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"FAIL":{"items":{"example":"2","type":"string"},"type":"array"},"NONE":{"items":{"example":"53","type":"string"},"type":"array"},"PASS":{"items":{"example":"45","type":"string"},"type":"array"}},"required":["NONE","PASS","FAIL"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get SPF validations time series","tags":["Radar Email Routing"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/summary/arc":{"get":{"description":"Percentage distribution of emails classified by ARC validation.","operationId":"radar-get-email-security-summary-by-arc","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"FAIL":{"example":"2","type":"string"},"NONE":{"example":"53","type":"string"},"PASS":{"example":"45","type":"string"}},"required":["NONE","PASS","FAIL"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get ARC validations summary","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/summary/dkim":{"get":{"description":"Percentage distribution of emails classified by DKIM validation.","operationId":"radar-get-email-security-summary-by-dkim","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"FAIL":{"example":"2","type":"string"},"NONE":{"example":"53","type":"string"},"PASS":{"example":"45","type":"string"}},"required":["NONE","PASS","FAIL"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get DKIM validations summary","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/summary/dmarc":{"get":{"description":"Percentage distribution of emails classified by DMARC validation.","operationId":"radar-get-email-security-summary-by-dmarc","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"FAIL":{"example":"2","type":"string"},"NONE":{"example":"53","type":"string"},"PASS":{"example":"45","type":"string"}},"required":["NONE","PASS","FAIL"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get DMARC validations summary","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/summary/malicious":{"get":{"description":"Percentage distribution of emails classified as MALICIOUS.","operationId":"radar-get-email-security-summary-by-malicious","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"MALICIOUS":{"example":"65","type":"string"},"NOT_MALICIOUS":{"example":"35","type":"string"}},"required":["MALICIOUS","NOT_MALICIOUS"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get malicious validations summary","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/summary/spam":{"get":{"description":"Proportion of emails categorized as either spam or legitimate (non-spam).","operationId":"radar-get-email-security-summary-by-spam","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"NOT_SPAM":{"example":"35","type":"string"},"SPAM":{"example":"65","type":"string"}},"required":["SPAM","NOT_SPAM"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get spam summary","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/summary/spf":{"get":{"description":"Percentage distribution of emails classified by SPF validation.","operationId":"radar-get-email-security-summary-by-spf","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"FAIL":{"example":"2","type":"string"},"NONE":{"example":"53","type":"string"},"PASS":{"example":"45","type":"string"}},"required":["NONE","PASS","FAIL"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get SPF validations summary","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/summary/spoof":{"get":{"description":"Proportion of emails categorized as either spoof or legitimate (non-spoof).","operationId":"radar-get-email-security-summary-by-spoof","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"NOT_SPOOF":{"example":"35","type":"string"},"SPOOF":{"example":"65","type":"string"}},"required":["SPOOF","NOT_SPOOF"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get spoof summary","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/summary/threat_category":{"get":{"description":"Percentage distribution of emails classified in Threat Categories.","operationId":"radar-get-email-security-summary-by-threat-category","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"BrandImpersonation":{"example":"35","type":"string"},"CredentialHarvester":{"example":"32","type":"string"},"IdentityDeception":{"example":"47","type":"string"},"Link":{"example":"43","type":"string"}},"required":["IdentityDeception","Link","BrandImpersonation","CredentialHarvester"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get threat categories summary","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/summary/tls_version":{"get":{"description":"Percentage distribution of emails classified by TLS version.","operationId":"radar-get-email-security-summary-by-tls-version","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"TLS 1.0":{"example":"3","type":"string"},"TLS 1.1":{"example":"12","type":"string"},"TLS 1.2":{"example":"41","type":"string"},"TLS 1.3":{"example":"44","type":"string"}},"required":["TLS 1.0","TLS 1.1","TLS 1.2","TLS 1.3"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get TLS version summary","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/timeseries_groups/arc":{"get":{"description":"Percentage distribution of emails classified by ARC validation over time.","operationId":"radar-get-email-security-timeseries-group-by-arc","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"FAIL":{"items":{"example":"2","type":"string"},"type":"array"},"NONE":{"items":{"example":"53","type":"string"},"type":"array"},"PASS":{"items":{"example":"45","type":"string"},"type":"array"}},"required":["NONE","PASS","FAIL"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get ARC validations time series","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/timeseries_groups/dkim":{"get":{"description":"Percentage distribution of emails classified by DKIM validation over time.","operationId":"radar-get-email-security-timeseries-group-by-dkim","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"FAIL":{"items":{"example":"2","type":"string"},"type":"array"},"NONE":{"items":{"example":"53","type":"string"},"type":"array"},"PASS":{"items":{"example":"45","type":"string"},"type":"array"}},"required":["NONE","PASS","FAIL"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get DKIM validations time series","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/timeseries_groups/dmarc":{"get":{"description":"Percentage distribution of emails classified by DMARC validation over time.","operationId":"radar-get-email-security-timeseries-group-by-dmarc","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"FAIL":{"items":{"example":"2","type":"string"},"type":"array"},"NONE":{"items":{"example":"53","type":"string"},"type":"array"},"PASS":{"items":{"example":"45","type":"string"},"type":"array"}},"required":["NONE","PASS","FAIL"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get DMARC validations time series","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/timeseries_groups/malicious":{"get":{"description":"Percentage distribution of emails classified as MALICIOUS over time.","operationId":"radar-get-email-security-timeseries-group-by-malicious","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"MALICIOUS":{"items":{"example":"65","type":"string"},"type":"array"},"NOT_MALICIOUS":{"items":{"example":"35","type":"string"},"type":"array"}},"required":["MALICIOUS","NOT_MALICIOUS"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get malicious validations time series","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/timeseries_groups/spam":{"get":{"description":"Percentage distribution of emails classified as SPAM over time.","operationId":"radar-get-email-security-timeseries-group-by-spam","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"NOT_SPAM":{"items":{"example":"35","type":"string"},"type":"array"},"SPAM":{"items":{"example":"65","type":"string"},"type":"array"}},"required":["SPAM","NOT_SPAM"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get spam validations time series","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/timeseries_groups/spf":{"get":{"description":"Percentage distribution of emails classified by SPF validation over time.","operationId":"radar-get-email-security-timeseries-group-by-spf","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"FAIL":{"items":{"example":"2","type":"string"},"type":"array"},"NONE":{"items":{"example":"53","type":"string"},"type":"array"},"PASS":{"items":{"example":"45","type":"string"},"type":"array"}},"required":["NONE","PASS","FAIL"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get SPF validations time series","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/timeseries_groups/spoof":{"get":{"description":"Percentage distribution of emails classified as SPOOF over time.","operationId":"radar-get-email-security-timeseries-group-by-spoof","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"NOT_SPOOF":{"items":{"example":"35","type":"string"},"type":"array"},"SPOOF":{"items":{"example":"65","type":"string"},"type":"array"}},"required":["SPOOF","NOT_SPOOF"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get spoof validations time series","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/timeseries_groups/threat_category":{"get":{"description":"Percentage distribution of emails classified by threat category over time.","operationId":"radar-get-email-security-timeseries-group-by-threat-category","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"BrandImpersonation":{"items":{"example":"35","type":"string"},"type":"array"},"CredentialHarvester":{"items":{"example":"32","type":"string"},"type":"array"},"IdentityDeception":{"items":{"example":"47","type":"string"},"type":"array"},"Link":{"items":{"example":"43","type":"string"},"type":"array"}},"required":["IdentityDeception","Link","BrandImpersonation","CredentialHarvester"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get threat categories time series","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/timeseries_groups/tls_version":{"get":{"description":"Percentage distribution of emails classified by TLS version over time.","operationId":"radar-get-email-security-timeseries-group-by-tls-version","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"TLS 1.0":{"items":{"example":"3","type":"string"},"type":"array"},"TLS 1.1":{"items":{"example":"12","type":"string"},"type":"array"},"TLS 1.2":{"items":{"example":"41","type":"string"},"type":"array"},"TLS 1.3":{"items":{"example":"44","type":"string"},"type":"array"}},"required":["TLS 1.0","TLS 1.1","TLS 1.2","TLS 1.3"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get TLS version time series","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/top/tlds":{"get":{"description":"Get the top TLDs by email messages. Values are a percentage out of total email volume.","operationId":"radar-get-email-security-top-tlds-by-messages","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Filter for TLDs by category.","in":"query","name":"tldCategory","schema":{"description":"Filter for TLDs by category.","enum":["CLASSIC","COUNTRY"],"example":"CLASSIC","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"name":{"example":"com.","type":"string"},"value":{"example":"65","type":"string"}},"required":["name","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top TLDs by email messages","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/top/tlds/malicious/{malicious}":{"get":{"description":"Get the TLDs by emails classified as malicious or not.","operationId":"radar-get-email-security-top-tlds-by-malicious","parameters":[{"description":"Malicious.","in":"path","name":"malicious","required":true,"schema":{"description":"Malicious.","enum":["MALICIOUS","NOT_MALICIOUS"],"example":"MALICIOUS","type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Filter for TLDs by category.","in":"query","name":"tldCategory","schema":{"description":"Filter for TLDs by category.","enum":["CLASSIC","COUNTRY"],"example":"CLASSIC","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"name":{"example":"com.","type":"string"},"value":{"example":"65","type":"string"}},"required":["name","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top TLDs by malicious classification","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/top/tlds/spam/{spam}":{"get":{"description":"Get the top TLDs by emails classified as spam or not.","operationId":"radar-get-email-security-top-tlds-by-spam","parameters":[{"description":"Spam.","in":"path","name":"spam","required":true,"schema":{"description":"Spam.","enum":["SPAM","NOT_SPAM"],"example":"SPAM","type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Filter for TLDs by category.","in":"query","name":"tldCategory","schema":{"description":"Filter for TLDs by category.","enum":["CLASSIC","COUNTRY"],"example":"CLASSIC","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"name":{"example":"com.","type":"string"},"value":{"example":"65","type":"string"}},"required":["name","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top TLDs by spam classification","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/email/security/top/tlds/spoof/{spoof}":{"get":{"description":"Get the TLDs by emails classified as spoof or not.","operationId":"radar-get-email-security-top-tlds-by-spoof","parameters":[{"description":"Spoof.","in":"path","name":"spoof","required":true,"schema":{"description":"Spoof.","enum":["SPOOF","NOT_SPOOF"],"example":"SPOOF","type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Filter for arc (Authenticated Received Chain).","in":"query","name":"arc","schema":{"description":"Filter for arc (Authenticated Received Chain).","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dkim.","in":"query","name":"dkim","schema":{"description":"Filter for dkim.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for dmarc.","in":"query","name":"dmarc","schema":{"description":"Filter for dmarc.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for spf.","in":"query","name":"spf","schema":{"description":"Filter for spf.","example":"PASS","items":{"enum":["PASS","NONE","FAIL"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"type":"string"},"type":"array"}},{"description":"Filter for TLDs by category.","in":"query","name":"tldCategory","schema":{"description":"Filter for TLDs by category.","enum":["CLASSIC","COUNTRY"],"example":"CLASSIC","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"name":{"example":"com.","type":"string"},"value":{"example":"65","type":"string"}},"required":["name","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top TLDs by spoof classification","tags":["Radar Email Security"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/entities/asns":{"get":{"description":"Get a list of autonomous systems (ASes).","operationId":"radar-get-entities-asn-list","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Number of objects to skip before grabbing results.","in":"query","name":"offset","schema":{"description":"Number of objects to skip before grabbing results.","type":"integer"}},{"description":"Comma separated list of ASNs.","in":"query","name":"asn","schema":{"description":"Comma separated list of ASNs.","example":"174,7922","type":"string"}},{"description":"Location Alpha2 to filter results.","in":"query","name":"location","schema":{"description":"Location Alpha2 to filter results.","example":"US","type":"string"}},{"description":"Order asn list.","in":"query","name":"orderBy","schema":{"default":"ASN","description":"Order asn list.","enum":["ASN","POPULATION"],"type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"asns":{"items":{"properties":{"aka":{"type":"string"},"asn":{"example":714,"type":"integer"},"country":{"example":"GB","type":"string"},"countryName":{"example":"United Kingdom","type":"string"},"name":{"example":"Apple Inc.","type":"string"},"nameLong":{"description":"Deprecated field. Please use 'aka'.","type":"string"},"orgName":{"type":"string"},"website":{"example":"https://www.apple.com/support/systemstatus/","type":"string"}},"required":["name","asn","country","countryName"],"type":"object"},"type":"array"}},"required":["asns"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get autonomous systems","tags":["Radar Entities"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/entities/asns/ip":{"get":{"description":"Get the requested autonomous system information based on IP address. Population estimates come from APNIC (refer to https://labs.apnic.net/?p=526).","operationId":"radar-get-entities-asn-by-ip","parameters":[{"description":"IP address.","in":"query","name":"ip","required":true,"schema":{"description":"IP address.","example":"8.8.8.8","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"asn":{"properties":{"aka":{"type":"string"},"asn":{"example":714,"type":"integer"},"country":{"example":"GB","type":"string"},"countryName":{"example":"United Kingdom","type":"string"},"estimatedUsers":{"properties":{"estimatedUsers":{"description":"Total estimated users","example":86099,"type":"integer"},"locations":{"items":{"properties":{"estimatedUsers":{"description":"Estimated users per location","example":16710,"type":"integer"},"locationAlpha2":{"example":"US","type":"string"},"locationName":{"example":"United States","type":"string"}},"required":["locationName","locationAlpha2"],"type":"object"},"type":"array"}},"required":["locations"],"type":"object"},"name":{"example":"Apple Inc.","type":"string"},"nameLong":{"description":"Deprecated field. Please use 'aka'.","type":"string"},"orgName":{"type":"string"},"related":{"items":{"properties":{"aka":{"type":"string"},"asn":{"type":"integer"},"estimatedUsers":{"description":"Total estimated users","example":65345,"type":"integer"},"name":{"type":"string"}},"required":["name","asn"],"type":"object"},"type":"array"},"source":{"description":"Regional Internet Registry","example":"RIPE","type":"string"},"website":{"example":"https://www.apple.com/support/systemstatus/","type":"string"}},"required":["name","country","countryName","related","asn","website","orgName","source","estimatedUsers"],"type":"object"}},"required":["asn"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get autonomous system information by IP address","tags":["Radar Entities"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/entities/asns/{asn}":{"get":{"description":"Get the requested autonomous system information. A confidence level below `5` indicates a low level of confidence in the traffic data - normally this happens because Cloudflare has a small amount of traffic from/to this AS). Population estimates come from APNIC (refer to https://labs.apnic.net/?p=526).","operationId":"radar-get-entities-asn-by-id","parameters":[{"description":"Autonomous System Number (ASN).","in":"path","name":"asn","required":true,"schema":{"description":"Autonomous System Number (ASN).","example":3,"type":"integer"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"asn":{"properties":{"aka":{"type":"string"},"asn":{"example":714,"type":"integer"},"confidenceLevel":{"example":5,"type":"integer"},"country":{"example":"GB","type":"string"},"countryName":{"example":"United Kingdom","type":"string"},"estimatedUsers":{"properties":{"estimatedUsers":{"description":"Total estimated users","example":86099,"type":"integer"},"locations":{"items":{"properties":{"estimatedUsers":{"description":"Estimated users per location","example":16710,"type":"integer"},"locationAlpha2":{"example":"US","type":"string"},"locationName":{"example":"United States","type":"string"}},"required":["locationName","locationAlpha2"],"type":"object"},"type":"array"}},"required":["locations"],"type":"object"},"name":{"example":"Apple Inc.","type":"string"},"nameLong":{"description":"Deprecated field. Please use 'aka'.","type":"string"},"orgName":{"type":"string"},"related":{"items":{"properties":{"aka":{"type":"string"},"asn":{"example":174,"type":"integer"},"estimatedUsers":{"description":"Total estimated users","example":65345,"type":"integer"},"name":{"example":"Cogent-174","type":"string"}},"required":["name","asn"],"type":"object"},"type":"array"},"source":{"description":"Regional Internet Registry","example":"RIPE","type":"string"},"website":{"example":"https://www.apple.com/support/systemstatus/","type":"string"}},"required":["name","country","countryName","confidenceLevel","related","source","asn","website","orgName","estimatedUsers"],"type":"object"}},"required":["asn"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get autonomous system information by AS number","tags":["Radar Entities"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/entities/asns/{asn}/rel":{"get":{"description":"Get AS-level relationship for given networks.","operationId":"radar-get-asns-rel","parameters":[{"description":"Get all ASNs with provider-customer or peering relationships with the given ASN","in":"path","name":"asn","required":true,"schema":{"description":"Get all ASNs with provider-customer or peering relationships with the given ASN","example":3,"type":"integer"}},{"description":"Get the AS relationship of ASN2 with respect to the given ASN","in":"query","name":"asn2","schema":{"description":"Get the AS relationship of ASN2 with respect to the given ASN","type":"integer"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"data_time":{"type":"string"},"query_time":{"type":"string"},"total_peers":{"type":"integer"}},"required":["data_time","query_time","total_peers"],"type":"object"},"rels":{"items":{"properties":{"asn1":{"type":"integer"},"asn1_country":{"type":"string"},"asn1_name":{"type":"string"},"asn2":{"type":"integer"},"asn2_country":{"type":"string"},"asn2_name":{"type":"string"},"rel":{"type":"string"}},"required":["asn1","asn1_country","asn1_name","asn2","asn2_country","asn2_name","rel"],"type":"object"},"type":"array"}},"required":["rels","meta"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get as-level relationships by AS number","tags":["Radar Entities"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/entities/ip":{"get":{"description":"Get IP address information. ","operationId":"radar-get-entities-ip","parameters":[{"description":"IP address.","in":"query","name":"ip","required":true,"schema":{"description":"IP address.","example":"8.8.8.8","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"ip":{"properties":{"asn":{"example":"15169","type":"string"},"asnLocation":{"example":"US","type":"string"},"asnName":{"example":"GOOGLE","type":"string"},"asnOrgName":{"example":"Google LLC","type":"string"},"ip":{"example":"8.8.8.8","type":"string"},"ipVersion":{"example":"IPv4","type":"string"},"location":{"example":"GB","type":"string"},"locationName":{"example":"United Kingdom","type":"string"}},"required":["ip","ipVersion","location","locationName","asn","asnName","asnLocation","asnOrgName"],"type":"object"}},"required":["ip"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get IP address","tags":["Radar Entities"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/entities/locations":{"get":{"description":"Get a list of locations.","operationId":"radar-get-entities-locations","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Number of objects to skip before grabbing results.","in":"query","name":"offset","schema":{"description":"Number of objects to skip before grabbing results.","type":"integer"}},{"description":"Comma separated list of locations.","in":"query","name":"location","schema":{"description":"Comma separated list of locations.","example":"US,CA","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"locations":{"items":{"properties":{"alpha2":{"example":"AF","type":"string"},"latitude":{"example":33.939116,"type":"string"},"longitude":{"example":67.709953,"type":"string"},"name":{"example":"Afghanistan","type":"string"}},"required":["name","latitude","longitude","alpha2"],"type":"object"},"type":"array"}},"required":["locations"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get locations","tags":["Radar Entities"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/entities/locations/{location}":{"get":{"description":"Get the requested location information. A confidence level below `5` indicates a low level of confidence in the traffic data - normally this happens because Cloudflare has a small amount of traffic from/to this location).","operationId":"radar-get-entities-location-by-alpha2","parameters":[{"description":"Alpha-2 country code.","in":"path","name":"location","required":true,"schema":{"description":"Alpha-2 country code.","example":"US","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"location":{"properties":{"alpha2":{"example":"AF","type":"string"},"confidenceLevel":{"example":5,"type":"integer"},"latitude":{"example":33.939116,"type":"string"},"longitude":{"example":67.709953,"type":"string"},"name":{"example":"Afghanistan","type":"string"},"region":{"example":"Middle East","type":"string"},"subregion":{"example":"Southern Asia","type":"string"}},"required":["name","region","subregion","latitude","longitude","alpha2","confidenceLevel"],"type":"object"}},"required":["location"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get location","tags":["Radar Entities"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/summary/bot_class":{"get":{"description":"Percentage distribution of bot-generated traffic to genuine human traffic, as classified by Cloudflare. Visit https://developers.cloudflare.com/radar/concepts/bot-classes/ for more information.","operationId":"radar-get-http-summary-by-bot-class","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"bot":{"example":"35","type":"string"},"human":{"example":"65","type":"string"}},"required":["human","bot"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get bot class summary","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/summary/device_type":{"get":{"description":"Percentage of Internet traffic generated by mobile, desktop, and other types of devices over a given time period.","operationId":"radar-get-http-summary-by-device-type","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"desktop":{"example":"65","type":"string"},"mobile":{"example":"30","type":"string"},"other":{"example":"5","type":"string"}},"required":["desktop","mobile","other"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get device type summary","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/summary/http_protocol":{"get":{"description":"Percentage distribution of traffic by HTTP protocol over a given time period.","operationId":"radar-get-http-summary-by-http-protocol","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"http":{"example":"99","type":"string"},"https":{"example":"1","type":"string"}},"required":["http","https"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get HTTP protocols summary","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/summary/http_version":{"get":{"description":"Percentage distribution of traffic by HTTP version over a given time period.","operationId":"radar-get-http-summary-by-http-version","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"HTTP/1.x":{"example":"1","type":"string"},"HTTP/2":{"example":"39","type":"string"},"HTTP/3":{"example":"60","type":"string"}},"required":["HTTP/1.x","HTTP/2","HTTP/3"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get HTTP versions summary","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/summary/ip_version":{"get":{"description":"Percentage distribution of Internet traffic based on IP versions (IPv4 and IPv6) over a given time period.","operationId":"radar-get-http-summary-by-ip-version","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"IPv4":{"example":"65","type":"string"},"IPv6":{"example":"35","type":"string"}},"required":["IPv4","IPv6"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get IP version summary","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/summary/os":{"get":{"description":"Percentage distribution of Internet traffic generated by different operating systems like Windows, macOS, Android, iOS, and others, over a given time period.","operationId":"radar-get-http-summary-by-operating-system","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"ANDROID":{"example":"65","type":"string"},"IOS":{"example":"35","type":"string"}},"required":["ANDROID","IOS"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get operating systems summary","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/summary/post_quantum":{"get":{"description":"Percentage distribution of traffic by post-quantum support over a given time period.","operationId":"radar-get-http-summary-by-post-quantum","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"NOT_SUPPORTED":{"example":"16","type":"string"},"SUPPORTED":{"example":"84","type":"string"}},"required":["SUPPORTED","NOT_SUPPORTED"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get HTTP post-quantum summary","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/summary/tls_version":{"get":{"description":"Percentage distribution of traffic by TLS protocol version, over a given time period.","operationId":"radar-get-http-summary-by-tls-version","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"TLS 1.0":{"example":"0.5","type":"string"},"TLS 1.1":{"example":"0.5","type":"string"},"TLS 1.2":{"example":"60","type":"string"},"TLS 1.3":{"example":"10","type":"string"},"TLS QUIC":{"example":"29","type":"string"}},"required":["TLS 1.0","TLS 1.1","TLS 1.2","TLS 1.3","TLS QUIC"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get TLS version summary","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/timeseries":{"get":{"description":"Get HTTP requests over time.","operationId":"radar-get-http-timeseries","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE_CHANGE","MIN0_MAX"],"example":"MIN0_MAX","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"aggInterval":{"example":"1h","type":"string"},"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"format":"date-time","type":"string"}},"required":["dateRange","aggInterval","lastUpdated"],"type":"object"},"serie_0":{"properties":{"timestamps":{"items":{"format":"date-time","type":"string"},"type":"array"},"values":{"items":{"example":0.56,"type":"string"},"type":"array"}},"required":["timestamps","values"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get HTTP requests time series","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/timeseries_groups/bot_class":{"get":{"description":"Get a time series of the percentage distribution of traffic classified as automated or human. Visit https://developers.cloudflare.com/radar/concepts/bot-classes/ for more information.","operationId":"radar-get-http-timeseries-group-by-bot-class","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"bot":{"items":{"type":"string"},"type":"array"},"human":{"items":{"type":"string"},"type":"array"},"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps","human","bot"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get bot classes time series","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/timeseries_groups/browser":{"get":{"description":"Get a time series of the percentage distribution of traffic of the top user agents.","operationId":"radar-get-http-timeseries-group-by-browsers","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Limit the number of objects (eg browsers, verticals, etc) to the top items over the time range.","in":"query","name":"limitPerGroup","schema":{"description":"Limit the number of objects (eg browsers, verticals, etc) to the top items over the time range.","example":4,"type":"integer"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"example":{"Chrome":["50.168733"],"timestamps":["2023-08-08T10:15:00Z"]},"properties":{"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get User Agents Time Series","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/timeseries_groups/browser_family":{"get":{"description":"Get a time series of the percentage distribution of traffic of the top user agents aggregated in families.","operationId":"radar-get-http-timeseries-group-by-browser-families","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"example":{"Chrome":["50.168733"],"timestamps":["2023-08-08T10:15:00Z"]},"properties":{"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get user agent families time series","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/timeseries_groups/device_type":{"get":{"description":"Get a time series of the percentage distribution of traffic by device type.","operationId":"radar-get-http-timeseries-group-by-device-type","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"desktop":{"items":{"type":"string"},"type":"array"},"mobile":{"items":{"type":"string"},"type":"array"},"other":{"items":{"type":"string"},"type":"array"},"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps","desktop","mobile","other"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get device types time series","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/timeseries_groups/http_protocol":{"get":{"description":"Get a time series of the percentage distribution of traffic by HTTP protocol.","operationId":"radar-get-http-timeseries-group-by-http-protocol","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"http":{"items":{"type":"string"},"type":"array"},"https":{"items":{"type":"string"},"type":"array"},"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps","http","https"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get HTTP protocols time series","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/timeseries_groups/http_version":{"get":{"description":"Get a time series of the percentage distribution of traffic by HTTP version.","operationId":"radar-get-http-timeseries-group-by-http-version","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"HTTP/1.x":{"items":{"type":"string"},"type":"array"},"HTTP/2":{"items":{"type":"string"},"type":"array"},"HTTP/3":{"items":{"type":"string"},"type":"array"},"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps","HTTP/1.x","HTTP/2","HTTP/3"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get HTTP versions time series","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/timeseries_groups/ip_version":{"get":{"description":"Get a time series of the percentage distribution of traffic by IP version.","operationId":"radar-get-http-timeseries-group-by-ip-version","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"IPv4":{"items":{"type":"string"},"type":"array"},"IPv6":{"items":{"type":"string"},"type":"array"},"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps","IPv4","IPv6"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get IP versions time series","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/timeseries_groups/os":{"get":{"description":"Get a time series of the percentage distribution of traffic of the top operating systems.","operationId":"radar-get-http-timeseries-group-by-operating-system","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"example":{"ANDROID":["97.28898"],"timestamps":["2023-08-08T10:15:00Z"]},"properties":{"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get operating systems time series","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/timeseries_groups/post_quantum":{"get":{"description":"Get a time series of the percentage distribution of traffic by post-quantum suport.","operationId":"radar-get-http-timeseries-group-by-post-quantum","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"NOT_SUPPORTED":{"items":{"example":"16","type":"string"},"type":"array"},"SUPPORTED":{"items":{"example":"84","type":"string"},"type":"array"},"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps","SUPPORTED","NOT_SUPPORTED"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get HTTP post-quantum support time series","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/timeseries_groups/tls_version":{"get":{"description":"Get a time series of the percentage distribution of traffic by TLS protocol version.","operationId":"radar-get-http-timeseries-group-by-tls-version","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"TLS 1.0":{"items":{"type":"string"},"type":"array"},"TLS 1.1":{"items":{"type":"string"},"type":"array"},"TLS 1.2":{"items":{"type":"string"},"type":"array"},"TLS 1.3":{"items":{"type":"string"},"type":"array"},"TLS QUIC":{"items":{"type":"string"},"type":"array"},"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps","TLS 1.0","TLS 1.1","TLS 1.2","TLS 1.3","TLS QUIC"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get TLS versions time series","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/ases":{"get":{"description":"Get the top autonomous systems by HTTP traffic. Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-ases-by-http-requests","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Filter for browser family.","in":"query","name":"browserFamily","schema":{"description":"Filter for browser family.","example":"CHROME","items":{"enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientASN":{"example":3243,"type":"integer"},"clientASName":{"example":"MEO","type":"string"},"value":{"example":"3","type":"string"}},"required":["clientASN","clientASName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top autonomous systems by HTTP requests","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/ases/bot_class/{bot_class}":{"get":{"description":"Get the top autonomous systems (AS), by HTTP traffic, of the requested bot class. These two categories use Cloudflare's bot score - refer to [Bot Scores](https://developers.cloudflare.com/bots/concepts/bot-score) for more information. Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-ases-by-bot-class","parameters":[{"description":"Bot class.","in":"path","name":"bot_class","required":true,"schema":{"description":"Bot class.","enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Filter for browser family.","in":"query","name":"browserFamily","schema":{"description":"Filter for browser family.","example":"CHROME","items":{"enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientASN":{"example":3243,"type":"integer"},"clientASName":{"example":"MEO","type":"string"},"value":{"example":"3","type":"string"}},"required":["clientASN","clientASName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top autonomous systems by bot class","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/ases/browser_family/{browser_family}":{"get":{"description":"Get the top autonomous systems (AS), by HTTP traffic, of the requested browser family. Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-ases-by-browser-family","parameters":[{"description":"Browser family.","in":"path","name":"browser_family","required":true,"schema":{"description":"Browser family.","enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientASN":{"example":3243,"type":"integer"},"clientASName":{"example":"MEO","type":"string"},"value":{"example":"3","type":"string"}},"required":["clientASN","clientASName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top autonomous systems by browser family","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/ases/device_type/{device_type}":{"get":{"description":"Get the top autonomous systems (AS), by HTTP traffic, of the requested device type. Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-ases-by-device-type","parameters":[{"description":"Device type.","in":"path","name":"device_type","required":true,"schema":{"description":"Device type.","enum":["DESKTOP","MOBILE","OTHER"],"type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Filter for browser family.","in":"query","name":"browserFamily","schema":{"description":"Filter for browser family.","example":"CHROME","items":{"enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientASN":{"example":3243,"type":"integer"},"clientASName":{"example":"MEO","type":"string"},"value":{"example":"3","type":"string"}},"required":["clientASN","clientASName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top autonomous systems by device type","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/ases/http_protocol/{http_protocol}":{"get":{"description":"Get the top autonomous systems (AS), by HTTP traffic, of the requested HTTP protocol. Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-ases-by-http-protocol","parameters":[{"description":"HTTP Protocol.","in":"path","name":"http_protocol","required":true,"schema":{"description":"HTTP Protocol.","enum":["HTTP","HTTPS"],"type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Filter for browser family.","in":"query","name":"browserFamily","schema":{"description":"Filter for browser family.","example":"CHROME","items":{"enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientASN":{"example":3243,"type":"integer"},"clientASName":{"example":"MEO","type":"string"},"value":{"example":"3","type":"string"}},"required":["clientASN","clientASName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top autonomous systems by HTTP protocol","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/ases/http_version/{http_version}":{"get":{"description":"Get the top autonomous systems (AS), by HTTP traffic, of the requested HTTP version. Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-ases-by-http-version","parameters":[{"description":"HTTP version.","in":"path","name":"http_version","required":true,"schema":{"description":"HTTP version.","enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Filter for browser family.","in":"query","name":"browserFamily","schema":{"description":"Filter for browser family.","example":"CHROME","items":{"enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientASN":{"example":3243,"type":"integer"},"clientASName":{"example":"MEO","type":"string"},"value":{"example":"3","type":"string"}},"required":["clientASN","clientASName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top autonomous systems by HTTP version","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/ases/ip_version/{ip_version}":{"get":{"description":"Get the top autonomous systems, by HTTP traffic, of the requested IP version. Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-ases-by-ip-version","parameters":[{"description":"IP version.","in":"path","name":"ip_version","required":true,"schema":{"description":"IP version.","enum":["IPv4","IPv6"],"type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Filter for browser family.","in":"query","name":"browserFamily","schema":{"description":"Filter for browser family.","example":"CHROME","items":{"enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientASN":{"example":3243,"type":"integer"},"clientASName":{"example":"MEO","type":"string"},"value":{"example":"3","type":"string"}},"required":["clientASN","clientASName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top autonomous systems by IP version","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/ases/os/{os}":{"get":{"description":"Get the top autonomous systems, by HTTP traffic, of the requested operating systems. Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-ases-by-operating-system","parameters":[{"description":"Operating system.","in":"path","name":"os","required":true,"schema":{"description":"Operating system.","enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Filter for browser family.","in":"query","name":"browserFamily","schema":{"description":"Filter for browser family.","example":"CHROME","items":{"enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientASN":{"example":3243,"type":"integer"},"clientASName":{"example":"MEO","type":"string"},"value":{"example":"3","type":"string"}},"required":["clientASN","clientASName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top autonomous systems by operating system","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/ases/tls_version/{tls_version}":{"get":{"description":"Get the top autonomous systems (AS), by HTTP traffic, of the requested TLS protocol version. Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-ases-by-tls-version","parameters":[{"description":"TLS version.","in":"path","name":"tls_version","required":true,"schema":{"description":"TLS version.","enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for browser family.","in":"query","name":"browserFamily","schema":{"description":"Filter for browser family.","example":"CHROME","items":{"enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientASN":{"example":3243,"type":"integer"},"clientASName":{"example":"MEO","type":"string"},"value":{"example":"3","type":"string"}},"required":["clientASN","clientASName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top autonomous systems by TLS version","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/browser":{"get":{"description":"Get the top user agents by HTTP traffic. Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-browsers","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Filter for browser family.","in":"query","name":"browserFamily","schema":{"description":"Filter for browser family.","example":"CHROME","items":{"enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"name":{"example":"chrome","type":"string"},"value":{"type":"string"}},"required":["name","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top user agents by HTTP requests","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/browser_family":{"get":{"description":"Get the top user agents aggregated in families by HTTP traffic. Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-browser-families","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Filter for browser family.","in":"query","name":"browserFamily","schema":{"description":"Filter for browser family.","example":"CHROME","items":{"enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"name":{"example":"chrome","type":"string"},"value":{"type":"string"}},"required":["name","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top user agents families by HTTP requests","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/locations":{"get":{"description":"Get the top locations by HTTP traffic. Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-locations-by-http-requests","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Filter for browser family.","in":"query","name":"browserFamily","schema":{"description":"Filter for browser family.","example":"CHROME","items":{"enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientCountryAlpha2":{"example":"US","type":"string"},"clientCountryName":{"example":"United States","type":"string"},"value":{"example":"65","type":"string"}},"required":["clientCountryAlpha2","clientCountryName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top locations by HTTP requests","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/locations/bot_class/{bot_class}":{"get":{"description":"Get the top locations, by HTTP traffic, of the requested bot class. These two categories use Cloudflare's bot score - refer to [Bot scores])https://developers.cloudflare.com/bots/concepts/bot-score). Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-locations-by-bot-class","parameters":[{"description":"Bot class.","in":"path","name":"bot_class","required":true,"schema":{"description":"Bot class.","enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Filter for browser family.","in":"query","name":"browserFamily","schema":{"description":"Filter for browser family.","example":"CHROME","items":{"enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientCountryAlpha2":{"example":"US","type":"string"},"clientCountryName":{"example":"United States","type":"string"},"value":{"example":"65","type":"string"}},"required":["clientCountryAlpha2","clientCountryName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top locations by bot class","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/locations/browser_family/{browser_family}":{"get":{"description":"Get the top locations, by HTTP traffic, of the requested browser family. Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-locations-by-browser-family","parameters":[{"description":"Browser family.","in":"path","name":"browser_family","required":true,"schema":{"description":"Browser family.","enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientCountryAlpha2":{"example":"US","type":"string"},"clientCountryName":{"example":"United States","type":"string"},"value":{"example":"65","type":"string"}},"required":["clientCountryAlpha2","clientCountryName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top locations by browser family","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/locations/device_type/{device_type}":{"get":{"description":"Get the top locations, by HTTP traffic, of the requested device type. Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-locations-by-device-type","parameters":[{"description":"Device type.","in":"path","name":"device_type","required":true,"schema":{"description":"Device type.","enum":["DESKTOP","MOBILE","OTHER"],"type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Filter for browser family.","in":"query","name":"browserFamily","schema":{"description":"Filter for browser family.","example":"CHROME","items":{"enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientCountryAlpha2":{"example":"US","type":"string"},"clientCountryName":{"example":"United States","type":"string"},"value":{"example":"65","type":"string"}},"required":["clientCountryAlpha2","clientCountryName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top locations by device type","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/locations/http_protocol/{http_protocol}":{"get":{"description":"Get the top locations, by HTTP traffic, of the requested HTTP protocol. Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-locations-by-http-protocol","parameters":[{"description":"HTTP Protocol.","in":"path","name":"http_protocol","required":true,"schema":{"description":"HTTP Protocol.","enum":["HTTP","HTTPS"],"type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Filter for browser family.","in":"query","name":"browserFamily","schema":{"description":"Filter for browser family.","example":"CHROME","items":{"enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientCountryAlpha2":{"example":"US","type":"string"},"clientCountryName":{"example":"United States","type":"string"},"value":{"example":"65","type":"string"}},"required":["clientCountryAlpha2","clientCountryName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top locations by HTTP protocol","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/locations/http_version/{http_version}":{"get":{"description":"Get the top locations, by HTTP traffic, of the requested HTTP version. Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-locations-by-http-version","parameters":[{"description":"HTTP version.","in":"path","name":"http_version","required":true,"schema":{"description":"HTTP version.","enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Filter for browser family.","in":"query","name":"browserFamily","schema":{"description":"Filter for browser family.","example":"CHROME","items":{"enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientCountryAlpha2":{"example":"US","type":"string"},"clientCountryName":{"example":"United States","type":"string"},"value":{"example":"65","type":"string"}},"required":["clientCountryAlpha2","clientCountryName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top locations by HTTP version","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/locations/ip_version/{ip_version}":{"get":{"description":"Get the top locations, by HTTP traffic, of the requested IP version. Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-locations-by-ip-version","parameters":[{"description":"IP version.","in":"path","name":"ip_version","required":true,"schema":{"description":"IP version.","enum":["IPv4","IPv6"],"type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Filter for browser family.","in":"query","name":"browserFamily","schema":{"description":"Filter for browser family.","example":"CHROME","items":{"enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientCountryAlpha2":{"example":"US","type":"string"},"clientCountryName":{"example":"United States","type":"string"},"value":{"example":"65","type":"string"}},"required":["clientCountryAlpha2","clientCountryName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top locations by IP version","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/locations/os/{os}":{"get":{"description":"Get the top locations, by HTTP traffic, of the requested operating systems. Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-locations-by-operating-system","parameters":[{"description":"Operating system.","in":"path","name":"os","required":true,"schema":{"description":"Operating system.","enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for tls version.","in":"query","name":"tlsVersion","schema":{"description":"Filter for tls version.","example":"TLSv1_2","items":{"enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"},"type":"array"}},{"description":"Filter for browser family.","in":"query","name":"browserFamily","schema":{"description":"Filter for browser family.","example":"CHROME","items":{"enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientCountryAlpha2":{"example":"US","type":"string"},"clientCountryName":{"example":"United States","type":"string"},"value":{"example":"65","type":"string"}},"required":["clientCountryAlpha2","clientCountryName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top locations by operating system","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/http/top/locations/tls_version/{tls_version}":{"get":{"description":"Get the top locations, by HTTP traffic, of the requested TLS protocol version. Values are a percentage out of the total traffic.","operationId":"radar-get-http-top-locations-by-tls-version","parameters":[{"description":"TLS version.","in":"path","name":"tls_version","required":true,"schema":{"description":"TLS version.","enum":["TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3","TLSvQUIC"],"type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","in":"query","name":"botClass","schema":{"description":"Filter for bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).","example":"LIKELY_AUTOMATED","items":{"enum":["LIKELY_AUTOMATED","LIKELY_HUMAN"],"type":"string"},"type":"array"}},{"description":"Filter for device type.","in":"query","name":"deviceType","schema":{"description":"Filter for device type.","example":"DESKTOP","items":{"enum":["DESKTOP","MOBILE","OTHER"],"type":"string"},"type":"array"}},{"description":"Filter for http protocol.","in":"query","name":"httpProtocol","schema":{"description":"Filter for http protocol.","example":"HTTPS","items":{"enum":["HTTP","HTTPS"],"type":"string"},"type":"array"}},{"description":"Filter for http version.","in":"query","name":"httpVersion","schema":{"description":"Filter for http version.","example":"HTTPv1","items":{"enum":["HTTPv1","HTTPv2","HTTPv3"],"type":"string"},"type":"array"}},{"description":"Filter for ip version.","in":"query","name":"ipVersion","schema":{"description":"Filter for ip version.","example":"IPv4","items":{"enum":["IPv4","IPv6"],"type":"string"},"type":"array"}},{"description":"Filter for os name.","in":"query","name":"os","schema":{"description":"Filter for os name.","example":"WINDOWS","items":{"enum":["WINDOWS","MACOSX","IOS","ANDROID","CHROMEOS","LINUX","SMART_TV"],"type":"string"},"type":"array"}},{"description":"Filter for browser family.","in":"query","name":"browserFamily","schema":{"description":"Filter for browser family.","example":"CHROME","items":{"enum":["CHROME","EDGE","FIREFOX","SAFARI"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"clientCountryAlpha2":{"example":"US","type":"string"},"clientCountryName":{"example":"United States","type":"string"},"value":{"example":"65","type":"string"}},"required":["clientCountryAlpha2","clientCountryName","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top locations by TLS version","tags":["Radar Http"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/netflows/summary":{"get":{"description":"Percentage distribution of HTTP vs other protocols traffic over a given time period.","operationId":"radar-get-netflows-summary","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"}},"required":["dateRange"],"type":"object"},"summary_0":{"properties":{"HTTP":{"example":"60","type":"string"},"OTHER":{"example":"39","type":"string"}},"required":["HTTP","OTHER"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get NetFlows summary","tags":["Radar Netflows"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/netflows/timeseries":{"get":{"description":"Get network traffic change over time. Visit https://en.wikipedia.org/wiki/NetFlow for more information on NetFlows. ","operationId":"radar-get-netflows-timeseries","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of network traffic product types.","in":"query","name":"product","schema":{"description":"Array of network traffic product types.","example":"all","items":{"enum":["HTTP","ALL"],"type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","in":"query","name":"normalization","schema":{"description":"Normalization method applied. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).","enum":["PERCENTAGE_CHANGE","MIN0_MAX"],"example":"MIN0_MAX","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"aggInterval":{"example":"1h","type":"string"},"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"format":"date-time","type":"string"}},"required":["dateRange","aggInterval","lastUpdated"],"type":"object"},"serie_0":{"properties":{"timestamps":{"items":{"format":"date-time","type":"string"},"type":"array"},"values":{"items":{"example":0.56,"type":"string"},"type":"array"}},"required":["timestamps","values"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get NetFlows time series","tags":["Radar Netflows"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/netflows/top/ases":{"get":{"description":"Get the top autonomous systems (AS) by network traffic (NetFlows) over a given time period. Visit https://en.wikipedia.org/wiki/NetFlow for more information.","operationId":"radar-get-netflows-top-ases","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"top_0":{"items":{"properties":{"clientASN":{"example":16509,"type":"number"},"clientASName":{"example":"AMAZON-02","type":"string"},"value":{"example":"0.73996","type":"string"}},"required":["clientASN","clientASName","value"],"type":"object"},"type":"array"}},"required":["top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top autonomous systems by network traffic","tags":["Radar Netflows"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/netflows/top/locations":{"get":{"description":"Get the top locations by network traffic (NetFlows) over a given time period. Visit https://en.wikipedia.org/wiki/NetFlow for more information.","operationId":"radar-get-netflows-top-locations","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"top_0":{"items":{"properties":{"clientCountryAlpha2":{"example":"US","type":"string"},"clientCountryName":{"example":"United States","type":"string"},"value":{"example":"0.73996","type":"string"}},"required":["clientCountryName","clientCountryAlpha2","value"],"type":"object"},"type":"array"}},"required":["top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top locations by network traffic","tags":["Radar Netflows"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/quality/iqi/summary":{"get":{"description":"Get a summary (percentiles) of bandwidth, latency or DNS response time from the Radar Internet Quality Index (IQI).","operationId":"radar-get-quality-index-summary","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Which metric to return: bandwidth, latency or DNS response time.","in":"query","name":"metric","required":true,"schema":{"description":"Which metric to return: bandwidth, latency or DNS response time.","enum":["BANDWIDTH","DNS","LATENCY"],"example":"latency","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"p25":{"example":"32.20938","type":"string"},"p50":{"example":"61.819881","type":"string"},"p75":{"example":"133.813087","type":"string"}},"required":["p75","p50","p25"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Internet Quality Index (IQI) summary","tags":["Radar Quality"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/quality/iqi/timeseries_groups":{"get":{"description":"Get a time series (percentiles) of bandwidth, latency or DNS response time from the Radar Internet Quality Index (IQI).","operationId":"radar-get-quality-index-timeseries-group","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Enable interpolation for all series (using the average).","in":"query","name":"interpolation","schema":{"description":"Enable interpolation for all series (using the average).","type":"boolean"}},{"description":"Which metric to return: bandwidth, latency or DNS response time.","in":"query","name":"metric","required":true,"schema":{"description":"Which metric to return: bandwidth, latency or DNS response time.","enum":["BANDWIDTH","DNS","LATENCY"],"example":"latency","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"type":"object"},"serie_0":{"properties":{"p25":{"items":{"example":"31.253439","type":"string"},"type":"array"},"p50":{"items":{"example":"60.337738","type":"string"},"type":"array"},"p75":{"items":{"example":"125.940175","type":"string"},"type":"array"},"timestamps":{"items":{"example":"2023-04-17T00:00:00Z","type":"string"},"type":"array"}},"required":["timestamps","p75","p50","p25"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Internet Quality Index (IQI) time series","tags":["Radar Quality"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/quality/speed/histogram":{"get":{"description":"Get an histogram from the previous 90 days of Cloudflare Speed Test data, split into fixed bandwidth (Mbps), latency (ms) or jitter (ms) buckets.","operationId":"radar-get-quality-speed-histogram","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"The width for every bucket in the histogram.","in":"query","name":"bucketSize","schema":{"description":"The width for every bucket in the histogram.","type":"integer"}},{"description":"Metrics to be returned.","in":"query","name":"metricGroup","schema":{"default":"bandwidth","description":"Metrics to be returned.","enum":["BANDWIDTH","LATENCY","JITTER"],"example":"bandwidth","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"histogram_0":{"properties":{"bandwidthDownload":{"items":{"example":"83681","type":"string"},"type":"array"},"bandwidthUpload":{"items":{"example":"181079","type":"string"},"type":"array"},"bucketMin":{"items":{"example":"0","type":"string"},"type":"array"}},"required":["bandwidthUpload","bandwidthDownload","bucketMin"],"type":"object"},"meta":{"type":"object"}},"required":["meta","histogram_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get speed tests histogram","tags":["Radar Quality"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/quality/speed/summary":{"get":{"description":"Get a summary of bandwidth, latency, jitter and packet loss, from the previous 90 days of Cloudflare Speed Test data.","operationId":"radar-get-quality-speed-summary","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"},"normalization":{"example":"PERCENTAGE","type":"string"}},"required":["dateRange","normalization","lastUpdated"],"type":"object"},"summary_0":{"properties":{"bandwidthDownload":{"example":"83.765201","type":"string"},"bandwidthUpload":{"example":"39.005561","type":"string"},"jitterIdle":{"example":"25.648713","type":"string"},"jitterLoaded":{"example":"77.462155","type":"string"},"latencyIdle":{"example":"83.165385","type":"string"},"latencyLoaded":{"example":"270.561124","type":"string"},"packetLoss":{"example":"1.23705","type":"string"}},"required":["bandwidthDownload","bandwidthUpload","latencyIdle","latencyLoaded","jitterIdle","jitterLoaded","packetLoss"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get speed tests summary","tags":["Radar Quality"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/quality/speed/top/ases":{"get":{"description":"Get the top autonomous systems by bandwidth, latency, jitter or packet loss, from the previous 90 days of Cloudflare Speed Test data.","operationId":"radar-get-quality-speed-top-ases","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Metric to order the results by.","in":"query","name":"orderBy","schema":{"default":"BANDWIDTH_DOWNLOAD","description":"Metric to order the results by.","enum":["BANDWIDTH_DOWNLOAD","BANDWIDTH_UPLOAD","LATENCY_IDLE","LATENCY_LOADED","JITTER_IDLE","JITTER_LOADED"],"type":"string"}},{"description":"Reverse the order of results.","in":"query","name":"reverse","schema":{"description":"Reverse the order of results.","type":"boolean"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"bandwidthDownload":{"example":"642.509004","type":"string"},"bandwidthUpload":{"example":"300.672274","type":"string"},"clientASN":{"example":33353,"type":"number"},"clientASName":{"example":"SIE-CGEI-ASN-1","type":"string"},"jitterIdle":{"example":"2.956908","type":"string"},"jitterLoaded":{"example":"19.500469","type":"string"},"latencyIdle":{"example":"15.925","type":"string"},"latencyLoaded":{"example":"65.65","type":"string"},"numTests":{"example":13123,"type":"number"},"rankPower":{"example":0.77,"type":"number"}},"required":["clientASN","clientASName","bandwidthDownload","bandwidthUpload","latencyIdle","latencyLoaded","jitterIdle","jitterLoaded","numTests","rankPower"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top speed test autonomous systems","tags":["Radar Quality"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/quality/speed/top/locations":{"get":{"description":"Get the top locations by bandwidth, latency, jitter or packet loss, from the previous 90 days of Cloudflare Speed Test data.","operationId":"radar-get-quality-speed-top-locations","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Metric to order the results by.","in":"query","name":"orderBy","schema":{"default":"BANDWIDTH_DOWNLOAD","description":"Metric to order the results by.","enum":["BANDWIDTH_DOWNLOAD","BANDWIDTH_UPLOAD","LATENCY_IDLE","LATENCY_LOADED","JITTER_IDLE","JITTER_LOADED"],"type":"string"}},{"description":"Reverse the order of results.","in":"query","name":"reverse","schema":{"description":"Reverse the order of results.","type":"boolean"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"example":"2023-07-26T08:59:57Z","type":"string"}},"required":["dateRange","lastUpdated"],"type":"object"},"top_0":{"items":{"properties":{"bandwidthDownload":{"example":"295.886073","type":"string"},"bandwidthUpload":{"example":"158.85269","type":"string"},"clientCountryAlpha2":{"example":"IS","type":"string"},"clientCountryName":{"example":"Iceland","type":"string"},"jitterIdle":{"example":"9.640685","type":"string"},"jitterLoaded":{"example":"46.480023","type":"string"},"latencyIdle":{"example":"15.208124","type":"string"},"latencyLoaded":{"example":"114.758887","type":"string"},"numTests":{"example":13123,"type":"number"},"rankPower":{"example":0.77,"type":"number"}},"required":["clientCountryAlpha2","clientCountryName","bandwidthDownload","bandwidthUpload","latencyIdle","latencyLoaded","jitterIdle","jitterLoaded","numTests","rankPower"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"Not Found","type":"string"}},"required":["error"],"type":"object"}}},"description":"Not found"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top speed test locations","tags":["Radar Quality"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/ranking/domain/{domain}":{"get":{"description":"Gets Domains Rank details. \n Cloudflare provides an ordered rank for the top 100 domains, but for the remainder it only provides ranking buckets\n like top 200 thousand, top one million, etc.. These are available through Radar datasets endpoints.","operationId":"radar-get-ranking-domain-details","parameters":[{"in":"path","name":"domain","required":true,"schema":{"example":"google.com","pattern":"^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])$","type":"string"}},{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"The ranking type.","in":"query","name":"rankingType","schema":{"default":"POPULAR","description":"The ranking type.","enum":["POPULAR","TRENDING_RISE","TRENDING_STEADY"],"example":"POPULAR","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"Array of dates to filter the ranking.","in":"query","name":"date","schema":{"description":"Array of dates to filter the ranking.","example":"2022-09-19","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"details_0":{"properties":{"bucket":{"description":"Only available in POPULAR ranking for the most recent ranking.","example":"2000","type":"string"},"categories":{"items":{"properties":{"id":{"example":81,"type":"number"},"name":{"example":"Content Servers","type":"string"},"superCategoryId":{"example":26,"type":"number"}},"required":["superCategoryId","name","id"],"type":"object"},"type":"array"},"rank":{"example":3,"type":"integer"},"top_locations":{"items":{"properties":{"locationCode":{"example":"US","type":"string"},"locationName":{"example":"United States","type":"string"},"rank":{"example":1,"type":"integer"}},"required":["rank","locationName","locationCode"],"type":"object"},"type":"array"}},"required":["categories","top_locations"],"type":"object"}},"required":["details_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get domains rank details","tags":["Radar Ranking"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/ranking/timeseries_groups":{"get":{"description":"Gets Domains Rank updates change over time. Raw values are returned.","operationId":"radar-get-ranking-domain-timeseries","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"The ranking type.","in":"query","name":"rankingType","schema":{"default":"POPULAR","description":"The ranking type.","enum":["POPULAR","TRENDING_RISE","TRENDING_STEADY"],"example":"POPULAR","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"Array of locations (alpha-2 country codes).","in":"query","name":"location","schema":{"description":"Array of locations (alpha-2 country codes).","example":"US","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of domains names.","in":"query","name":"domains","schema":{"description":"Array of comma separated list of domains names.","example":"google.com,facebook.com","items":{"pattern":"^([a-zA-Z0-9]([a-zA-Z0-9-]{0,63}[a-zA-Z0-9-])?\\.)+[a-zA-Z0-9-]{2,63}$","type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"}},"required":["dateRange"],"type":"object"},"serie_0":{"additionalProperties":{"items":{"anyOf":[{"type":"string"},{"type":"number"}]},"type":"array"},"example":{"google.com":[2],"timestamps":["2022-09-02"]},"properties":{"timestamps":{"items":{"type":"string"},"type":"array"}},"required":["timestamps"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get domains rank time series","tags":["Radar Ranking"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/ranking/top":{"get":{"description":"Get top or trending domains based on their rank. Popular domains are domains of broad appeal based on how people use the Internet. Trending domains are domains that are generating a surge in interest. For more information on top domains, see https://blog.cloudflare.com/radar-domain-rankings/.","operationId":"radar-get-ranking-top-domains","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"Array of locations (alpha-2 country codes).","in":"query","name":"location","schema":{"description":"Array of locations (alpha-2 country codes).","example":"US","items":{"type":"string"},"type":"array"}},{"description":"Array of dates to filter the ranking.","in":"query","name":"date","schema":{"description":"Array of dates to filter the ranking.","example":"2022-09-19","items":{"type":"string"},"type":"array"}},{"description":"The ranking type.","in":"query","name":"rankingType","schema":{"default":"POPULAR","description":"The ranking type.","enum":["POPULAR","TRENDING_RISE","TRENDING_STEADY"],"example":"POPULAR","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"top_0":{"properties":{"date":{"example":"2022-09-19","type":"string"}},"required":["date"],"type":"object"}},"required":["top_0"],"type":"object"},"top_0":{"items":{"properties":{"categories":{"items":{"properties":{"id":{"example":81,"type":"number"},"name":{"example":"Content Servers","type":"string"},"superCategoryId":{"example":26,"type":"number"}},"required":["superCategoryId","name","id"],"type":"object"},"type":"array"},"domain":{"example":"google.com","type":"string"},"pctRankChange":{"description":"Only available in TRENDING rankings.","example":10.8,"type":"number"},"rank":{"example":1,"type":"integer"}},"required":["rank","domain","categories"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top or trending domains","tags":["Radar Ranking"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/search/global":{"get":{"description":"Lets you search for locations, autonomous systems (ASes), and reports.","operationId":"radar-get-search-global","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Limit the number of objects per search category.","in":"query","name":"limitPerGroup","schema":{"description":"Limit the number of objects per search category.","type":"number"}},{"description":"Search for locations, AS and reports.","in":"query","name":"query","required":true,"schema":{"description":"Search for locations, AS and reports.","example":"United","type":"string"}},{"description":"Search types to be included in results.","in":"query","name":"include","schema":{"description":"Search types to be included in results.","items":{"enum":["SPECIAL_EVENTS","NOTEBOOKS","LOCATIONS","ASNS"],"type":"string"},"type":"array"}},{"description":"Search types to be excluded from results.","in":"query","name":"exclude","schema":{"description":"Search types to be excluded from results.","items":{"enum":["SPECIAL_EVENTS","NOTEBOOKS","LOCATIONS","ASNS"],"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"search":{"items":{"properties":{"code":{"example":"13335","type":"string"},"name":{"example":"Cloudflare","type":"string"},"type":{"example":"asn","type":"string"}},"required":["code","name","type"],"type":"object"},"type":"array"}},"required":["search"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Search for locations, autonomous systems (AS) and reports","tags":["Radar Search"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/tcp_resets_timeouts/summary":{"get":{"description":"Percentage distribution by connection stage of TCP connections terminated within the first 10 packets by a reset or timeout, for a given time period.","operationId":"radar-get-tcp-resets-timeouts-summary","parameters":[{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"}},"required":["dateRange"],"type":"object"},"summary_0":{"properties":{"later_in_flow":{"description":"Connection resets within the first 10 packets from the client, but after the server has received multiple data packets.","example":"10","type":"string"},"no_match":{"description":"All other connections.","example":"65","type":"string"},"post_ack":{"description":"Connection resets or timeouts after the server received both a SYN packet and an ACK packet, meaning the connection was successfully established.","example":"5","type":"string"},"post_psh":{"description":"Connection resets or timeouts after the server received a packet with PSH flag set, following connection establishment.","example":"10","type":"string"},"post_syn":{"description":"Connection resets or timeouts after the server received only a single SYN packet.","example":"10","type":"string"}},"required":["no_match","post_syn","post_ack","post_psh","later_in_flow"],"type":"object"}},"required":["meta","summary_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get TCP resets timeouts summary","tags":["Radar TCP Resets Timeouts"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/tcp_resets_timeouts/timeseries_groups":{"get":{"description":"Percentage distribution by connection stage of TCP connections terminated within the first 10 packets by a reset or timeout, over time.","operationId":"radar-get-tcp-resets-timeouts-timeseries-group","parameters":[{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","in":"query","name":"aggInterval","schema":{"description":"Aggregation interval results should be returned in (for example, in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).","enum":["15m","1h","1d","1w"],"example":"1h","type":"string"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"aggInterval":{"example":"1h","type":"string"},"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"},"lastUpdated":{"format":"date-time","type":"string"}},"required":["dateRange","aggInterval","lastUpdated"],"type":"object"},"serie_0":{"properties":{"later_in_flow":{"description":"Connection resets within the first 10 packets from the client, but after the server has received multiple data packets.","items":{"description":"Connection resets within the first 10 packets from the client, but after the server has received multiple data packets.","example":"10","type":"string"},"type":"array"},"no_match":{"description":"All other connections.","items":{"description":"All other connections.","example":"65","type":"string"},"type":"array"},"post_ack":{"description":"Connection resets or timeouts after the server received both a SYN packet and an ACK packet, meaning the connection was successfully established.","items":{"description":"Connection resets or timeouts after the server received both a SYN packet and an ACK packet, meaning the connection was successfully established.","example":"5","type":"string"},"type":"array"},"post_psh":{"description":"Connection resets or timeouts after the server received a packet with PSH flag set, following connection establishment.","items":{"description":"Connection resets or timeouts after the server received a packet with PSH flag set, following connection establishment.","example":"10","type":"string"},"type":"array"},"post_syn":{"description":"Connection resets or timeouts after the server received only a single SYN packet.","items":{"description":"Connection resets or timeouts after the server received only a single SYN packet.","example":"10","type":"string"},"type":"array"},"timestamps":{"items":{"format":"date-time","type":"string"},"type":"array"}},"required":["timestamps","no_match","post_syn","post_ack","post_psh","later_in_flow"],"type":"object"}},"required":["meta","serie_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get TCP resets timeouts time series","tags":["Radar TCP Resets Timeouts"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/traffic_anomalies":{"get":{"description":"Internet traffic anomalies are signals that might point to an outage. \n These alerts are automatically detected by Radar and then manually verified by our team. \n This endpoint returns the latest alerts.\n ","operationId":"radar-get-traffic-anomalies","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Number of objects to skip before grabbing results.","in":"query","name":"offset","schema":{"description":"Number of objects to skip before grabbing results.","type":"integer"}},{"description":"Shorthand date ranges for the last X days - use when you don't need specific start and end dates.","in":"query","name":"dateRange","schema":{"description":"Shorthand date ranges for the last X days - use when you don't need specific start and end dates.","example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"}},{"description":"Start of the date range (inclusive).","in":"query","name":"dateStart","schema":{"description":"Start of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","format":"date-time","type":"string"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","format":"date-time","type":"string"}},{"in":"query","name":"status","schema":{"enum":["VERIFIED","UNVERIFIED"],"type":"string"}},{"description":"Single ASN as integer.","in":"query","name":"asn","schema":{"description":"Single ASN as integer.","example":"174","type":"integer"}},{"description":"Location Alpha2 code.","in":"query","name":"location","schema":{"description":"Location Alpha2 code.","example":"US","type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"trafficAnomalies":{"items":{"properties":{"asnDetails":{"properties":{"asn":{"example":"189","type":"string"},"locations":{"properties":{"code":{"example":"US","type":"string"},"name":{"example":"United States","type":"string"}},"required":["code","name"],"type":"object"},"name":{"example":"LUMEN-LEGACY-L3-PARTITION","type":"string"}},"required":["asn","name"],"type":"object"},"endDate":{"example":"2023-08-03T23:15:00Z","type":"string"},"locationDetails":{"properties":{"code":{"example":"US","type":"string"},"name":{"example":"United States","type":"string"}},"required":["code","name"],"type":"object"},"startDate":{"example":"2023-08-02T23:15:00Z","type":"string"},"status":{"example":"UNVERIFIED","type":"string"},"type":{"example":"LOCATION","type":"string"},"uuid":{"example":"55a57f33-8bc0-4984-b4df-fdaff72df39d","type":"string"},"visibleInDataSources":{"items":{"type":"string"},"type":"array"}},"required":["uuid","type","status","startDate"],"type":"object"},"type":"array"}},"required":["trafficAnomalies"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"List of Internet traffic anomalies"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get latest Internet traffic anomalies","tags":["Radar Traffic Anomalies"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/traffic_anomalies/locations":{"get":{"description":"Internet traffic anomalies are signals that might point to an outage. \n These alerts are automatically detected by Radar and then manually verified by our team. \n This endpoint returns the sum of alerts grouped by location.","operationId":"radar-get-traffic-anomalies-top","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Shorthand date ranges for the last X days - use when you don't need specific start and end dates.","in":"query","name":"dateRange","schema":{"description":"Shorthand date ranges for the last X days - use when you don't need specific start and end dates.","example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"}},{"description":"Start of the date range (inclusive).","in":"query","name":"dateStart","schema":{"description":"Start of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","format":"date-time","type":"string"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","format":"date-time","type":"string"}},{"in":"query","name":"status","schema":{"enum":["VERIFIED","UNVERIFIED"],"type":"string"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"trafficAnomalies":{"items":{"properties":{"clientCountryAlpha2":{"example":"PT","type":"string"},"clientCountryName":{"example":"Portugal","type":"string"},"value":{"example":"5","type":"string"}},"required":["clientCountryAlpha2","clientCountryName","value"],"type":"object"},"type":"array"}},"required":["trafficAnomalies"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"List of locations with number of traffic anomalies"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top locations by total traffic anomalies generated","tags":["Radar Traffic Anomalies"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/verified_bots/top/bots":{"get":{"description":"Get top verified bots by HTTP requests, with owner and category.","operationId":"radar-get-verified-bots-top-by-http-requests","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"}},"required":["dateRange"],"type":"object"},"top_0":{"items":{"properties":{"botCategory":{"example":"Search Engine Crawler","type":"string"},"botName":{"example":"GoogleBot","type":"string"},"botOwner":{"example":"Google","type":"string"},"value":{"example":"29.034407","type":"string"}},"required":["botName","botCategory","botOwner","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top verified bots by HTTP requests","tags":["Radar Verified Bots"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/radar/verified_bots/top/categories":{"get":{"description":"Get top verified bot categories by HTTP requests, along with their corresponding percentage, over the total verified bot HTTP requests.","operationId":"radar-get-verified-bots-top-categories-by-http-requests","parameters":[{"description":"Limit the number of objects in the response.","in":"query","name":"limit","schema":{"description":"Limit the number of objects in the response.","example":5,"type":"integer"}},{"description":"Array of names that will be used to name the series in responses.","in":"query","name":"name","schema":{"description":"Array of names that will be used to name the series in responses.","example":"main_series","items":{"type":"string"},"type":"array"}},{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","in":"query","name":"dateRange","schema":{"description":"For example, use `7d` and `7dControl` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters).","example":"7d","items":{"example":"7d","pattern":"^((([1-9]|[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-4])[d](control)?)|(([1-9]|[1-4][0-9]|5[0-2])[w](control)?))$","type":"string"},"type":"array"}},{"description":"Array of datetimes to filter the start of a series.","in":"query","name":"dateStart","schema":{"description":"Array of datetimes to filter the start of a series.","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"End of the date range (inclusive).","in":"query","name":"dateEnd","schema":{"description":"End of the date range (inclusive).","example":"2023-09-01T11:41:33.782Z","items":{"format":"date-time","type":"string"},"type":"array"}},{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","in":"query","name":"asn","schema":{"description":"Array of comma separated list of ASNs, start with `-` to exclude from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356.","example":"15169","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","in":"query","name":"location","schema":{"description":"Array of comma separated list of locations (alpha-2 country codes). Start with `-` to exclude from results. For example, `-US,PT` excludes results from the US, but includes results from PT.","example":"US,CA","items":{"type":"string"},"type":"array"}},{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","in":"query","name":"continent","schema":{"description":"Array of comma separated list of continents (alpha-2 continent codes). Start with `-` to exclude from results. For example, `-EU,NA` excludes results from Europe, but includes results from North America.","example":"EU,NA","items":{"type":"string"},"type":"array"}},{"description":"Format results are returned in.","in":"query","name":"format","schema":{"description":"Format results are returned in.","enum":["JSON","CSV"],"example":"json","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"meta":{"properties":{"confidenceInfo":{"properties":{"annotations":{"items":{"properties":{"dataSource":{"example":"ALL","type":"string"},"description":{"example":"Cable cut in Tonga","type":"string"},"endTime":{"format":"date-time","type":"string"},"eventType":{"example":"OUTAGE","type":"string"},"isInstantaneous":{"example":true,"type":"boolean"},"linkedUrl":{"type":"string"},"startTime":{"format":"date-time","type":"string"}},"required":["dataSource","eventType","description","isInstantaneous"],"type":"object"},"type":"array"},"level":{"type":"integer"}},"type":"object"},"dateRange":{"items":{"properties":{"endTime":{"description":"Adjusted end of date range.","example":"2022-09-17T10:22:57.555Z","format":"date-time","type":"string"},"startTime":{"description":"Adjusted start of date range.","example":"2022-09-16T10:22:57.555Z","format":"date-time","type":"string"}},"required":["startTime","endTime"],"type":"object"},"type":"array"}},"required":["dateRange"],"type":"object"},"top_0":{"items":{"properties":{"botCategory":{"example":"Search","type":"string"},"value":{"example":"65","type":"string"}},"required":["botCategory","value"],"type":"object"},"type":"array"}},"required":["meta","top_0"],"type":"object"},"success":{"example":true,"type":"boolean"}},"required":["result","success"],"type":"object"}}},"description":"Successful Response"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"type":"array"},"result":{"type":"object"},"success":{"example":false,"type":"boolean"}},"required":["result","success","errors"],"type":"object"}}},"description":"Bad Request"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get top verified bot categories by HTTP requests","tags":["Radar Verified Bots"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/user":{"get":{"operationId":"user-user-details","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_single_user_response"}}},"description":"User Details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"User Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"User Details","tags":["User"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Edit part of your user details.","operationId":"user-edit-user","requestBody":{"content":{"application/json":{"schema":{"properties":{"country":{"$ref":"#/components/schemas/iam_country"},"first_name":{"$ref":"#/components/schemas/iam_first_name"},"last_name":{"$ref":"#/components/schemas/iam_last_name"},"telephone":{"$ref":"#/components/schemas/iam_telephone"},"zipcode":{"$ref":"#/components/schemas/iam_zipcode"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_single_user_response"}}},"description":"Edit User response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Edit User response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Edit User","tags":["User"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.user.update"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/user/audit_logs":{"get":{"description":"Gets a list of audit logs for a user account. Can be filtered by who made the change, on which zone, and the timeframe of the change.","operationId":"audit-logs-get-user-audit-logs","parameters":[{"in":"query","name":"id","schema":{"description":"Finds a specific log by its ID.","example":"f174be97-19b1-40d6-954d-70cd5fbd52db","type":"string"}},{"in":"query","name":"export","schema":{"description":"Indicates that this request is an export of logs in CSV format.","example":true,"type":"boolean"}},{"in":"query","name":"action.type","schema":{"description":"Filters by the action type.","example":"add","type":"string"}},{"in":"query","name":"actor.ip","schema":{"description":"Filters by the IP address of the request that made the change by specific IP address or valid CIDR Range.","example":"17.168.228.63","type":"string"}},{"in":"query","name":"actor.email","schema":{"description":"Filters by the email address of the actor that made the change.","example":"alice@example.com","format":"email","type":"string"}},{"in":"query","name":"since","schema":{"oneOf":[{"description":"Limits the returned results to logs newer than the specified date. A `full-date` that conforms to RFC3339.","example":"2019-04-30","format":"date","type":"string"},{"description":"Limits the returned results to logs newer than the specified date. A `date-time` that conforms to RFC3339.","example":"2019-04-30T01:12:20Z","format":"date-time","type":"string"}]}},{"in":"query","name":"before","schema":{"oneOf":[{"description":"Limits the returned results to logs older than the specified date. A `full-date` that conforms to RFC3339.","example":"2019-04-30","format":"date","type":"string"},{"description":"Limits the returned results to logs older than the specified date. A `date-time` that conforms to RFC3339.","example":"2019-04-30T01:12:20Z","format":"date-time","type":"string"}]}},{"in":"query","name":"zone.name","schema":{"description":"Filters by the name of the zone associated to the change.","example":"example.com","type":"string"}},{"in":"query","name":"direction","schema":{"default":"desc","description":"Changes the direction of the chronological sorting.","enum":["desc","asc"],"example":"desc","type":"string"}},{"in":"query","name":"per_page","schema":{"default":100,"description":"Sets the number of results to return per page.","example":25,"maximum":1000,"minimum":1,"type":"number"}},{"in":"query","name":"page","schema":{"default":1,"description":"Defines which page of results to return.","example":50,"minimum":1,"type":"number"}},{"in":"query","name":"hide_user_logs","schema":{"default":false,"description":"Indicates whether or not to hide user level audit logs.","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aaa_audit_logs_response_collection"}}},"description":"Get user audit logs response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/aaa_audit_logs_response_collection"},{"$ref":"#/components/schemas/aaa_api-response-common-failure"}]}}},"description":"Get user audit logs response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get user audit logs","tags":["Audit Logs"],"x-api-token-group":["Account Settings Write","Account Settings Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/user/billing/history":{"get":{"deprecated":true,"description":"Accesses your billing history object.","operationId":"user-billing-history-(-deprecated)-billing-history-details","parameters":[{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":20,"description":"Number of items per page.","maximum":50,"minimum":5,"type":"number"}},{"in":"query","name":"order","schema":{"description":"Field to order billing history by.","enum":["type","occurred_at","action"],"example":"occurred_at","type":"string"}},{"in":"query","name":"occurred_at","schema":{"$ref":"#/components/schemas/bill-subs-api_occurred_at"}},{"in":"query","name":"type","schema":{"description":"The billing item type.","example":"charge","maxLength":30,"readOnly":true,"type":"string"}},{"in":"query","name":"action","schema":{"description":"The billing item action.","example":"subscription","maxLength":30,"readOnly":true,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bill-subs-api_billing_history_collection"}}},"description":"Billing History Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_billing_history_collection"},{"$ref":"#/components/schemas/bill-subs-api_api-response-common-failure"}]}}},"description":"Billing History Details response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Billing History Details","tags":["User Billing History"],"x-api-token-group":["Billing Write","Billing Read"],"x-cfPermissionsRequired":{"enum":["#billing:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/user/billing/profile":{"get":{"deprecated":true,"description":"Accesses your billing profile object.","operationId":"user-billing-profile-(-deprecated)-billing-profile-details","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bill-subs-api_billing_response_single"}}},"description":"Billing Profile Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_billing_response_single"},{"$ref":"#/components/schemas/bill-subs-api_api-response-common-failure"}]}}},"description":"Billing Profile Details response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Billing Profile Details","tags":["User Billing Profile"],"x-api-token-group":["Billing Write","Billing Read"],"x-cfPermissionsRequired":{"enum":["#billing:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/user/firewall/access_rules/rules":{"get":{"description":"Fetches IP Access rules of the user. You can filter the results using several optional parameters.","operationId":"ip-access-rules-for-a-user-list-ip-access-rules","parameters":[{"in":"query","name":"mode","schema":{"$ref":"#/components/schemas/firewall_schemas-mode"}},{"in":"query","name":"configuration.target","schema":{"description":"The target to search in existing rules.","enum":["ip","ip_range","asn","country"],"example":"ip","type":"string"}},{"in":"query","name":"configuration.value","schema":{"description":"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`.\nNotes: 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","type":"string"}},{"in":"query","name":"notes","schema":{"description":"The string to search for in the notes of existing IP Access rules.\nNotes: 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","type":"string"}},{"in":"query","name":"match","schema":{"default":"all","description":"When set to `all`, all the search requirements must match. When set to `any`, only one of the search requirements has to match.","enum":["any","all"],"type":"string"}},{"in":"query","name":"page","schema":{"description":"Requested page within paginated list of results.","example":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"description":"Maximum number of results requested.","example":20,"type":"number"}},{"in":"query","name":"order","schema":{"description":"The field used to sort returned rules.","enum":["configuration.target","configuration.value","mode"],"example":"mode","type":"string"}},{"in":"query","name":"direction","schema":{"description":"The direction used to sort returned rules.","enum":["asc","desc"],"example":"desc","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_rule_collection_response"}}},"description":"List IP Access rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_rule_collection_response"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"List IP Access rules response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List IP Access rules","tags":["IP Access rules for a user"],"x-api-token-group":["Account Firewall Access Rules Write","Account Firewall Access Rules Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Creates a new IP Access rule for all zones owned by the current user.\n\nNote: To create an IP Access rule that applies to a specific zone, refer to the [IP Access rules for a zone](#ip-access-rules-for-a-zone) endpoints.","operationId":"ip-access-rules-for-a-user-create-an-ip-access-rule","requestBody":{"content":{"application/json":{"schema":{"properties":{"configuration":{"$ref":"#/components/schemas/firewall_configuration"},"mode":{"$ref":"#/components/schemas/firewall_schemas-mode"},"notes":{"$ref":"#/components/schemas/firewall_notes"}},"required":["mode","configuration"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_rule_single_response"}}},"description":"Create an IP Access rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_rule_single_response"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Create an IP Access rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create an IP Access rule","tags":["IP Access rules for a user"],"x-api-token-group":["Account Firewall Access Rules Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/user/firewall/access_rules/rules/{identifier}":{"delete":{"description":"Deletes an IP Access rule at the user level.\n\nNote: Deleting a user-level rule will affect all zones owned by the user.","operationId":"ip-access-rules-for-a-user-delete-an-ip-access-rule","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_rule_single_id_response"}}},"description":"Delete an IP Access rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_rule_single_id_response"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Delete an IP Access rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete an IP Access rule","tags":["IP Access rules for a user"],"x-api-token-group":["Account Firewall Access Rules Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Updates an IP Access rule defined at the user level. You can only update the rule action (`mode` parameter) and notes.","operationId":"ip-access-rules-for-a-user-update-an-ip-access-rule","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"mode":{"$ref":"#/components/schemas/firewall_schemas-mode"},"notes":{"$ref":"#/components/schemas/firewall_notes"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_rule_single_response"}}},"description":"Update an IP Access rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_rule_single_response"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Update an IP Access rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an IP Access rule","tags":["IP Access rules for a user"],"x-api-token-group":["Account Firewall Access Rules Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/user/invites":{"get":{"description":"Lists all invitations associated with my user.","operationId":"user'-s-invites-list-invitations","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_schemas-collection_invite_response"}}},"description":"List Invitations response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"List Invitations response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Invitations","tags":["User's Invites"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/user/invites/{invite_id}":{"get":{"description":"Gets the details of an invitation.","operationId":"user'-s-invites-invitation-details","parameters":[{"in":"path","name":"invite_id","required":true,"schema":{"$ref":"#/components/schemas/iam_invite_components-schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_single_invite_response"}}},"description":"Invitation Details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Invitation Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Invitation Details","tags":["User's Invites"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"patch":{"description":"Responds to an invitation.","operationId":"user'-s-invites-respond-to-invitation","parameters":[{"in":"path","name":"invite_id","required":true,"schema":{"$ref":"#/components/schemas/iam_invite_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"status":{"description":"Status of your response to the invitation (rejected or accepted).","enum":["accepted","rejected"],"example":"accepted"}},"required":["status"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_single_invite_response"}}},"description":"Respond to Invitation response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Respond to Invitation response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Respond to Invitation","tags":["User's Invites"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/user/load_balancers/monitors":{"get":{"description":"List configured monitors for a user.","operationId":"load-balancer-monitors-list-monitors","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_monitor-response-collection"}}},"description":"List Monitors response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-response-collection"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"List Monitors response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Monitors","tags":["Load Balancer Monitors"],"x-api-token-group":["Load Balancing: Monitors and Pools Write","Load Balancing: Monitors and Pools Read"]},"post":{"description":"Create a configured monitor.","operationId":"load-balancer-monitors-create-monitor","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-editable"},{"required":["expected_codes"]}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_monitor-response-single"}}},"description":"Create Monitor response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-response-single"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Create Monitor response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create Monitor","tags":["Load Balancer Monitors"],"x-api-token-group":["Load Balancing: Monitors and Pools Write"]}},"/user/load_balancers/monitors/{monitor_id}":{"delete":{"description":"Delete a configured monitor.","operationId":"load-balancer-monitors-delete-monitor","parameters":[{"in":"path","name":"monitor_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_id_response"}}},"description":"Delete Monitor response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_id_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Delete Monitor response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete Monitor","tags":["Load Balancer Monitors"],"x-api-token-group":["Load Balancing: Monitors and Pools Write"]},"get":{"description":"List a single configured monitor for a user.","operationId":"load-balancer-monitors-monitor-details","parameters":[{"in":"path","name":"monitor_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_monitor-response-single"}}},"description":"Monitor Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-response-single"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Monitor Details response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Monitor Details","tags":["Load Balancer Monitors"],"x-api-token-group":["Load Balancing: Monitors and Pools Write","Load Balancing: Monitors and Pools Read"]},"patch":{"description":"Apply changes to an existing monitor, overwriting the supplied properties.","operationId":"load-balancer-monitors-patch-monitor","parameters":[{"in":"path","name":"monitor_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-editable"},{"required":["expected_codes"]}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_monitor-response-single"}}},"description":"Patch Monitor response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-response-single"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Patch Monitor response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Patch Monitor","tags":["Load Balancer Monitors"],"x-api-token-group":["Load Balancing: Monitors and Pools Write"]},"put":{"description":"Modify a configured monitor.","operationId":"load-balancer-monitors-update-monitor","parameters":[{"in":"path","name":"monitor_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-editable"},{"required":["expected_codes"]}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_monitor-response-single"}}},"description":"Update Monitor response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-response-single"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Update Monitor response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update Monitor","tags":["Load Balancer Monitors"],"x-api-token-group":["Load Balancing: Monitors and Pools Write"]}},"/user/load_balancers/monitors/{monitor_id}/preview":{"post":{"description":"Preview pools using the specified monitor with provided monitor details. The returned preview_id can be used in the preview endpoint to retrieve the results.","operationId":"load-balancer-monitors-preview-monitor","parameters":[{"in":"path","name":"monitor_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-editable"},{"required":["expected_codes"]}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_preview_response"}}},"description":"Preview Monitor response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_preview_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Preview Monitor response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Preview Monitor","tags":["Load Balancer Monitors"]}},"/user/load_balancers/monitors/{monitor_id}/references":{"get":{"description":"Get the list of resources that reference the provided monitor.","operationId":"load-balancer-monitors-list-monitor-references","parameters":[{"in":"path","name":"monitor_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_monitor-references-response"}}},"description":"List Monitor References response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-references-response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"List Monitor References response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Monitor References","tags":["Load Balancer Monitors"]}},"/user/load_balancers/pools":{"get":{"description":"List configured pools.","operationId":"load-balancer-pools-list-pools","parameters":[{"in":"query","name":"monitor","schema":{"description":"The ID of the Monitor to use for checking the health of origins within this pool.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_schemas-response_collection"}}},"description":"List Pools response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_schemas-response_collection"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"List Pools response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Pools","tags":["Load Balancer Pools"],"x-api-token-group":["Load Balancing: Monitors and Pools Write","Load Balancing: Monitors and Pools Read"]},"patch":{"description":"Apply changes to a number of existing pools, overwriting the supplied properties. Pools are ordered by ascending `name`. Returns the list of affected pools. Supports the standard pagination query parameters, either `limit`/`offset` or `per_page`/`page`.","operationId":"load-balancer-pools-patch-pools","requestBody":{"content":{"application/json":{"schema":{"properties":{"notification_email":{"$ref":"#/components/schemas/load-balancing_patch_pools_notification_email"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_schemas-response_collection"}}},"description":"Patch Pools response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_schemas-response_collection"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Patch Pools response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Patch Pools","tags":["Load Balancer Pools"],"x-api-token-group":["Load Balancing: Monitors and Pools Write"]},"post":{"description":"Create a new pool.","operationId":"load-balancer-pools-create-pool","requestBody":{"content":{"application/json":{"schema":{"properties":{"check_regions":{"$ref":"#/components/schemas/load-balancing_check_regions"},"description":{"$ref":"#/components/schemas/load-balancing_schemas-description"},"enabled":{"$ref":"#/components/schemas/load-balancing_enabled"},"latitude":{"$ref":"#/components/schemas/load-balancing_latitude"},"load_shedding":{"$ref":"#/components/schemas/load-balancing_load_shedding"},"longitude":{"$ref":"#/components/schemas/load-balancing_longitude"},"minimum_origins":{"$ref":"#/components/schemas/load-balancing_minimum_origins"},"monitor":{"$ref":"#/components/schemas/load-balancing_monitor_id"},"name":{"$ref":"#/components/schemas/load-balancing_name"},"networks":{"$ref":"#/components/schemas/load-balancing_networks"},"notification_email":{"$ref":"#/components/schemas/load-balancing_notification_email"},"notification_filter":{"$ref":"#/components/schemas/load-balancing_notification_filter"},"origin_steering":{"$ref":"#/components/schemas/load-balancing_origin_steering"},"origins":{"$ref":"#/components/schemas/load-balancing_origins"}},"required":["origins","name"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_schemas-single_response"}}},"description":"Create Pool response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_schemas-single_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Create Pool response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create Pool","tags":["Load Balancer Pools"],"x-api-token-group":["Load Balancing: Monitors and Pools Write"]}},"/user/load_balancers/pools/{pool_id}":{"delete":{"description":"Delete a configured pool.","operationId":"load-balancer-pools-delete-pool","parameters":[{"in":"path","name":"pool_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_schemas-id_response"}}},"description":"Delete Pool response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_schemas-id_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Delete Pool response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete Pool","tags":["Load Balancer Pools"],"x-api-token-group":["Load Balancing: Monitors and Pools Write"]},"get":{"description":"Fetch a single configured pool.","operationId":"load-balancer-pools-pool-details","parameters":[{"in":"path","name":"pool_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_schemas-single_response"}}},"description":"Pool Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_schemas-single_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Pool Details response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Pool Details","tags":["Load Balancer Pools"],"x-api-token-group":["Load Balancing: Monitors and Pools Write","Load Balancing: Monitors and Pools Read"]},"patch":{"description":"Apply changes to an existing pool, overwriting the supplied properties.","operationId":"load-balancer-pools-patch-pool","parameters":[{"in":"path","name":"pool_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"check_regions":{"$ref":"#/components/schemas/load-balancing_check_regions"},"description":{"$ref":"#/components/schemas/load-balancing_schemas-description"},"disabled_at":{"$ref":"#/components/schemas/load-balancing_schemas-disabled_at"},"enabled":{"$ref":"#/components/schemas/load-balancing_enabled"},"latitude":{"$ref":"#/components/schemas/load-balancing_latitude"},"load_shedding":{"$ref":"#/components/schemas/load-balancing_load_shedding"},"longitude":{"$ref":"#/components/schemas/load-balancing_longitude"},"minimum_origins":{"$ref":"#/components/schemas/load-balancing_minimum_origins"},"monitor":{"$ref":"#/components/schemas/load-balancing_monitor_id"},"name":{"$ref":"#/components/schemas/load-balancing_name"},"notification_email":{"$ref":"#/components/schemas/load-balancing_notification_email"},"notification_filter":{"$ref":"#/components/schemas/load-balancing_notification_filter"},"origin_steering":{"$ref":"#/components/schemas/load-balancing_origin_steering"},"origins":{"$ref":"#/components/schemas/load-balancing_origins"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_schemas-single_response"}}},"description":"Patch Pool response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_schemas-single_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Patch Pool response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Patch Pool","tags":["Load Balancer Pools"],"x-api-token-group":["Load Balancing: Monitors and Pools Write"]},"put":{"description":"Modify a configured pool.","operationId":"load-balancer-pools-update-pool","parameters":[{"in":"path","name":"pool_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"check_regions":{"$ref":"#/components/schemas/load-balancing_check_regions"},"description":{"$ref":"#/components/schemas/load-balancing_schemas-description"},"disabled_at":{"$ref":"#/components/schemas/load-balancing_schemas-disabled_at"},"enabled":{"$ref":"#/components/schemas/load-balancing_enabled"},"latitude":{"$ref":"#/components/schemas/load-balancing_latitude"},"load_shedding":{"$ref":"#/components/schemas/load-balancing_load_shedding"},"longitude":{"$ref":"#/components/schemas/load-balancing_longitude"},"minimum_origins":{"$ref":"#/components/schemas/load-balancing_minimum_origins"},"monitor":{"$ref":"#/components/schemas/load-balancing_monitor_id"},"name":{"$ref":"#/components/schemas/load-balancing_name"},"networks":{"$ref":"#/components/schemas/load-balancing_networks"},"notification_email":{"$ref":"#/components/schemas/load-balancing_notification_email"},"notification_filter":{"$ref":"#/components/schemas/load-balancing_notification_filter"},"origin_steering":{"$ref":"#/components/schemas/load-balancing_origin_steering"},"origins":{"$ref":"#/components/schemas/load-balancing_origins"}},"required":["origins","name"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_schemas-single_response"}}},"description":"Update Pool response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_schemas-single_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Update Pool response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update Pool","tags":["Load Balancer Pools"],"x-api-token-group":["Load Balancing: Monitors and Pools Write"]}},"/user/load_balancers/pools/{pool_id}/health":{"get":{"description":"Fetch the latest pool health status for a single pool.","operationId":"load-balancer-pools-pool-health-details","parameters":[{"in":"path","name":"pool_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_health_details"}}},"description":"Pool Health Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_health_details"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Pool Health Details response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Pool Health Details","tags":["Load Balancer Pools"]}},"/user/load_balancers/pools/{pool_id}/preview":{"post":{"description":"Preview pool health using provided monitor details. The returned preview_id can be used in the preview endpoint to retrieve the results.","operationId":"load-balancer-pools-preview-pool","parameters":[{"in":"path","name":"pool_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_monitor-editable"},{"required":["expected_codes"]}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_preview_response"}}},"description":"Preview Pool response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_preview_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Preview Pool response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Preview Pool","tags":["Load Balancer Pools"]}},"/user/load_balancers/pools/{pool_id}/references":{"get":{"description":"Get the list of resources that reference the provided pool.","operationId":"load-balancer-pools-list-pool-references","parameters":[{"in":"path","name":"pool_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_pools-references-response"}}},"description":"List Pool References response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_pools-references-response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"List Pool References response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Pool References","tags":["Load Balancer Pools"]}},"/user/load_balancers/preview/{preview_id}":{"get":{"description":"Get the result of a previous preview operation using the provided preview_id.","operationId":"load-balancer-monitors-preview-result","parameters":[{"in":"path","name":"preview_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_preview_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_preview_result_response"}}},"description":"Preview Result response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_preview_result_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Preview Result response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Preview Result","tags":["Load Balancer Monitors"],"x-api-token-group":["Load Balancing: Monitors and Pools Read"]}},"/user/load_balancing_analytics/events":{"get":{"description":"List origin health changes.","operationId":"load-balancer-healthcheck-events-list-healthcheck-events","parameters":[{"in":"query","name":"until","schema":{"$ref":"#/components/schemas/load-balancing_until"}},{"in":"query","name":"pool_name","schema":{"$ref":"#/components/schemas/load-balancing_pool_name"}},{"in":"query","name":"origin_healthy","schema":{"$ref":"#/components/schemas/load-balancing_origin_healthy"}},{"in":"query","name":"pool_id","schema":{"$ref":"#/components/schemas/load-balancing_schemas-identifier"}},{"in":"query","name":"since","schema":{"description":"Start date and time of requesting data period in the ISO8601 format.","example":"2016-11-11T12:00:00Z","format":"date-time","type":"string"}},{"in":"query","name":"origin_name","schema":{"description":"The name for the origin to filter.","example":"primary-dc-1","type":"string"}},{"in":"query","name":"pool_healthy","schema":{"default":true,"description":"If true, filter events where the pool status is healthy. If false, filter events where the pool status is unhealthy.","example":true,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-response_collection"}}},"description":"List Healthcheck Events response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_components-schemas-response_collection"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"List Healthcheck Events response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Healthcheck Events","tags":["Load Balancer Healthcheck Events"],"x-api-token-group":["Load Balancing: Monitors and Pools Read"]}},"/user/organizations":{"get":{"description":"Lists organizations the user is associated with.","operationId":"user'-s-organizations-list-organizations","parameters":[{"in":"query","name":"name","schema":{"$ref":"#/components/schemas/iam_schemas-name"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":20,"description":"Number of organizations per page.","maximum":50,"minimum":5,"type":"number"}},{"in":"query","name":"order","schema":{"description":"Field to order organizations by.","enum":["id","name","status"],"example":"status","type":"string"}},{"in":"query","name":"direction","schema":{"description":"Direction to order organizations.","enum":["asc","desc"],"example":"desc","type":"string"}},{"in":"query","name":"match","schema":{"default":"all","description":"Whether to match all search requirements or at least one (any).","enum":["any","all"],"type":"string"}},{"in":"query","name":"status","schema":{"description":"Whether the user is a member of the organization or has an inivitation pending.","enum":["member","invited"],"example":"member","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_collection_organization_response"}}},"description":"List Organizations response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"List Organizations response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Organizations","tags":["User's Organizations"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/user/organizations/{organization_id}":{"delete":{"description":"Removes association to an organization.","operationId":"user'-s-organizations-leave-organization","parameters":[{"in":"path","name":"organization_id","required":true,"schema":{"$ref":"#/components/schemas/iam_common_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"$ref":"#/components/schemas/iam_common_components-schemas-identifier"}},"type":"object"}}},"description":"Leave Organization response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Leave Organization response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Leave Organization","tags":["User's Organizations"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"description":"Gets a specific organization the user is associated with.","operationId":"user'-s-organizations-organization-details","parameters":[{"in":"path","name":"organization_id","required":true,"schema":{"$ref":"#/components/schemas/iam_common_components-schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_single_organization_response"}}},"description":"Organization Details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Organization Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Organization Details","tags":["User's Organizations"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/user/subscriptions":{"get":{"description":"Lists all of a user's subscriptions.","operationId":"user-subscription-get-user-subscriptions","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bill-subs-api_user_subscription_response_collection"}}},"description":"Get User Subscriptions response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_user_subscription_response_collection"},{"$ref":"#/components/schemas/bill-subs-api_api-response-common-failure"}]}}},"description":"Get User Subscriptions response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get User Subscriptions","tags":["User Subscription"],"x-api-token-group":["Billing Write","Billing Read"],"x-cfPermissionsRequired":{"enum":["#billing:read"]}}},"/user/subscriptions/{identifier}":{"delete":{"description":"Deletes a user's subscription.","operationId":"user-subscription-delete-user-subscription","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/bill-subs-api_schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"subscription_id":{"$ref":"#/components/schemas/bill-subs-api_schemas-identifier"}},"type":"object"}}},"description":"Delete User Subscription response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"properties":{"subscription_id":{"$ref":"#/components/schemas/bill-subs-api_schemas-identifier"}},"type":"object"},{"$ref":"#/components/schemas/bill-subs-api_api-response-common-failure"}]}}},"description":"Delete User Subscription response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete User Subscription","tags":["User Subscription"],"x-api-token-group":["Billing Write"],"x-cfPermissionsRequired":{"enum":["#billing:edit"]}},"put":{"description":"Updates a user's subscriptions.","operationId":"user-subscription-update-user-subscription","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/bill-subs-api_schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bill-subs-api_subscription-v2"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bill-subs-api_user_subscription_response_single"}}},"description":"Update User Subscription response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_user_subscription_response_single"},{"$ref":"#/components/schemas/bill-subs-api_api-response-common-failure"}]}}},"description":"Update User Subscription response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update User Subscription","tags":["User Subscription"],"x-api-token-group":["Billing Write"],"x-cfPermissionsRequired":{"enum":["#billing:read","#billing:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/user/tokens":{"get":{"description":"List all access tokens you created.","operationId":"user-api-tokens-list-tokens","parameters":[{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":20,"description":"Maximum number of results per page.","maximum":50,"minimum":5,"type":"number"}},{"in":"query","name":"direction","schema":{"description":"Direction to order results.","enum":["asc","desc"],"example":"desc","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_collection_tokens_response"}}},"description":"List Tokens response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"List Tokens response failure"}},"security":[{"api_token":[]}],"summary":"List Tokens","tags":["User API Tokens"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.token.list"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Create a new access token.","operationId":"user-api-tokens-create-token","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_create_payload"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_single_token_create_response"}}},"description":"Create Token response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Create Token response failure"}},"security":[{"api_token":[]}],"summary":"Create Token","tags":["User API Tokens"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.token.create"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/user/tokens/permission_groups":{"get":{"description":"Find all available permission groups for API Tokens","operationId":"permission-groups-list-permission-groups","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_schemas-response_collection"}}},"description":"List Token Permission Groups response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"List Token Permission Groups response failure"}},"security":[{"api_token":[]}],"summary":"List Token Permission Groups","tags":["API Token Permission Groups"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.token.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/user/tokens/verify":{"get":{"description":"Test whether a token works.","operationId":"user-api-tokens-verify-token","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_response_single_segment"}}},"description":"Verify Token response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Verify Token response failure"}},"security":[{"api_token":[]}],"summary":"Verify Token","tags":["User API Tokens"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/user/tokens/{token_id}":{"delete":{"description":"Destroy a token.","operationId":"user-api-tokens-delete-token","parameters":[{"in":"path","name":"token_id","required":true,"schema":{"$ref":"#/components/schemas/iam_token_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-single-id"}}},"description":"Delete Token response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Delete Token response failure"}},"security":[{"api_token":[]}],"summary":"Delete Token","tags":["User API Tokens"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.token.delete"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Get information about a specific token.","operationId":"user-api-tokens-token-details","parameters":[{"in":"path","name":"token_id","required":true,"schema":{"$ref":"#/components/schemas/iam_token_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_single_token_response"}}},"description":"Token Details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Token Details response failure"}},"security":[{"api_token":[]}],"summary":"Token Details","tags":["User API Tokens"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.token.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Update an existing token.","operationId":"user-api-tokens-update-token","parameters":[{"in":"path","name":"token_id","required":true,"schema":{"$ref":"#/components/schemas/iam_token_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_token_body"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_single_token_response"}}},"description":"Update Token response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Update Token response failure"}},"security":[{"api_token":[]}],"summary":"Update Token","tags":["User API Tokens"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.token.update"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/user/tokens/{token_id}/value":{"put":{"description":"Roll the token secret.","operationId":"user-api-tokens-roll-token","parameters":[{"in":"path","name":"token_id","required":true,"schema":{"$ref":"#/components/schemas/iam_token_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_response_single_value"}}},"description":"Roll Token response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iam_api-response-common-failure"}}},"description":"Roll Token response failure"}},"security":[{"api_token":[]}],"summary":"Roll Token","tags":["User API Tokens"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.token.update"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones":{"get":{"description":"Lists, searches, sorts, and filters your zones. Listing zones across more than 500 accounts\nis currently not allowed.\n","operationId":"zones-get","parameters":[{"examples":{"Basic Query":{"summary":"Simple Query","value":"example.com"},"Contains Query":{"summary":"Contains Query","value":"contains:.org"},"Ends With Query":{"summary":"Ends With Query","value":"ends_with:arpa"},"Starts With Query":{"summary":"Starts With Query","value":"starts_with:dev"}},"in":"query","name":"name","schema":{"description":"A domain name. Optional filter operators can be provided to extend refine the search:\n * `equal` (default)\n * `not_equal`\n * `starts_with`\n * `ends_with`\n * `contains`\n * `starts_with_case_sensitive`\n * `ends_with_case_sensitive`\n * `contains_case_sensitive`\n","maxLength":253,"type":"string"}},{"in":"query","name":"status","schema":{"description":"A zone status","enum":["initializing","pending","active","moved"],"type":"string"}},{"in":"query","name":"account.id","schema":{"description":"An account ID","type":"string"}},{"examples":{"Basic Query":{"summary":"Simple Query","value":"Dev Account"},"Contains Query":{"summary":"Contains Query","value":"contains:Test"}},"in":"query","name":"account.name","schema":{"description":"An account Name. Optional filter operators can be provided to extend refine the search:\n * `equal` (default)\n * `not_equal`\n * `starts_with`\n * `ends_with`\n * `contains`\n * `starts_with_case_sensitive`\n * `ends_with_case_sensitive`\n * `contains_case_sensitive`\n","maxLength":253,"type":"string"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":20,"description":"Number of zones per page.","maximum":50,"minimum":5,"type":"number"}},{"in":"query","name":"order","schema":{"description":"Field to order zones by.","enum":["name","status","account.id","account.name"],"example":"status","type":"string"}},{"in":"query","name":"direction","schema":{"description":"Direction to order zones.","enum":["asc","desc"],"example":"desc","type":"string"}},{"in":"query","name":"match","schema":{"default":"all","description":"Whether to match all search requirements or at least one (any).","enum":["any","all"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zones_api-response-common"},{"properties":{"result_info":{"$ref":"#/components/schemas/zones_result_info"}}},{"properties":{"result":{"items":{"$ref":"#/components/schemas/zones_zone"},"type":"array"}}}]}}},"description":"List Zones response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_api-response-common-failure"}}},"description":"List Zones response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Zones","tags":["Zone"]},"post":{"operationId":"zones-post","requestBody":{"content":{"application/json":{"schema":{"properties":{"account":{"properties":{"id":{"$ref":"#/components/schemas/zones_identifier"}},"type":"object"},"name":{"$ref":"#/components/schemas/zones_name"},"type":{"$ref":"#/components/schemas/zones_type"}},"required":["name","account"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zones_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/zones_zone"}},"type":"object"}]}}},"description":"Create Zone response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_api-response-common-failure"}}},"description":"Create Zone response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create Zone","tags":["Zone"]}},"/zones/{identifier}/subscription":{"get":{"description":"Lists zone subscription details.","operationId":"zone-subscription-zone-subscription-details","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/bill-subs-api_schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bill-subs-api_zone_subscription_response_single"}}},"description":"Zone Subscription Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_zone_subscription_response_single"},{"$ref":"#/components/schemas/bill-subs-api_api-response-common-failure"}]}}},"description":"Zone Subscription Details response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Zone Subscription Details","tags":["Zone Subscription"],"x-api-token-group":["Billing Write","Billing Read"],"x-cfPermissionsRequired":{"enum":["#billing:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Create a zone subscription, either plan or add-ons.","operationId":"zone-subscription-create-zone-subscription","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/bill-subs-api_schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bill-subs-api_subscription-v2"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bill-subs-api_zone_subscription_response_single"}}},"description":"Create Zone Subscription response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_zone_subscription_response_single"},{"$ref":"#/components/schemas/bill-subs-api_api-response-common-failure"}]}}},"description":"Create Zone Subscription response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create Zone Subscription","tags":["Zone Subscription"],"x-api-token-group":["Billing Write"],"x-cfPermissionsRequired":{"enum":["#billing:read","#billing:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Updates zone subscriptions, either plan or add-ons.","operationId":"zone-subscription-update-zone-subscription","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/bill-subs-api_schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bill-subs-api_subscription-v2"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bill-subs-api_zone_subscription_response_single"}}},"description":"Update Zone Subscription response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_zone_subscription_response_single"},{"$ref":"#/components/schemas/bill-subs-api_api-response-common-failure"}]}}},"description":"Update Zone Subscription response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update Zone Subscription","tags":["Zone Subscription"],"x-api-token-group":["Billing Write"],"x-cfPermissionsRequired":{"enum":["#billing:read","#billing:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_identifier}/analytics/colos":{"get":{"deprecated":true,"description":"This view provides a breakdown of analytics data by datacenter. Note: This is available to Enterprise customers only.","operationId":"zone-analytics-(-deprecated)-get-analytics-by-co-locations","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/zone-analytics-api_identifier"}},{"in":"query","name":"until","schema":{"$ref":"#/components/schemas/zone-analytics-api_until"}},{"in":"query","name":"since","schema":{"anyOf":[{"type":"string"},{"type":"integer"}],"default":-10080,"description":"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.\n\nRanges that the Cloudflare web application provides will provide the following period length for each point:\n- Last 60 minutes (from -59 to -1): 1 minute resolution\n- Last 7 hours (from -419 to -60): 15 minutes resolution\n- Last 15 hours (from -899 to -420): 30 minutes resolution\n- Last 72 hours (from -4320 to -900): 1 hour resolution\n- Older than 3 days (-525600 to -4320): 1 day resolution.","example":"2015-01-01T12:23:00Z"}},{"in":"query","name":"continuous","schema":{"default":true,"description":"When set to true, the API will move the requested time window backward, until it finds a region with completely aggregated data.\n\nThe API response _may not represent the requested time window_.","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zone-analytics-api_colo_response"}}},"description":"Get analytics by Co-locations response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zone-analytics-api_colo_response"},{"$ref":"#/components/schemas/zone-analytics-api_api-response-common-failure"}]}}},"description":"Get analytics by Co-locations response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get analytics by Co-locations","tags":["Zone Analytics (Deprecated)"],"x-api-token-group":["Analytics Read"],"x-cfDeprecation":{"description":"Please use the new GraphQL Analytics API instead: https://developers.cloudflare.com/analytics/graphql-api/. It provides equivalent data and more features, including the ability to select only the metrics you need. Migration guide: https://developers.cloudflare.com/analytics/migration-guides/zone-analytics/.","display":true,"eol":"2021-03-01","id":"zone_analytics_deprecation"},"x-cfPermissionsRequired":{"enum":["#analytics:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_identifier}/analytics/dashboard":{"get":{"deprecated":true,"description":"The dashboard view provides both totals and timeseries data for the given zone and time period across the entire Cloudflare network.","operationId":"zone-analytics-(-deprecated)-get-dashboard","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/zone-analytics-api_identifier"}},{"in":"query","name":"until","schema":{"$ref":"#/components/schemas/zone-analytics-api_until"}},{"in":"query","name":"since","schema":{"anyOf":[{"type":"string"},{"type":"integer"}],"default":-10080,"description":"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.\n\nRanges that the Cloudflare web application provides will provide the following period length for each point:\n- Last 60 minutes (from -59 to -1): 1 minute resolution\n- Last 7 hours (from -419 to -60): 15 minutes resolution\n- Last 15 hours (from -899 to -420): 30 minutes resolution\n- Last 72 hours (from -4320 to -900): 1 hour resolution\n- Older than 3 days (-525600 to -4320): 1 day resolution.","example":"2015-01-01T12:23:00Z"}},{"in":"query","name":"continuous","schema":{"default":true,"description":"When set to true, the API will move the requested time window backward, until it finds a region with completely aggregated data.\n\nThe API response _may not represent the requested time window_.","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zone-analytics-api_dashboard_response"}}},"description":"Get dashboard response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zone-analytics-api_dashboard_response"},{"$ref":"#/components/schemas/zone-analytics-api_api-response-common-failure"}]}}},"description":"Get dashboard response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get dashboard","tags":["Zone Analytics (Deprecated)"],"x-api-token-group":["Analytics Read"],"x-cfDeprecation":{"description":"Please use the new GraphQL Analytics API instead: https://developers.cloudflare.com/analytics/graphql-api/. It provides equivalent data and more features, including the ability to select only the metrics you need. Migration guide: https://developers.cloudflare.com/analytics/migration-guides/zone-analytics/.","display":true,"eol":"2021-03-01","id":"zone_analytics_deprecation"},"x-cfPermissionsRequired":{"enum":["#analytics:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_identifier}/custom_pages":{"get":{"description":"Fetches all the custom pages at the zone level.","operationId":"custom-pages-for-a-zone-list-custom-pages","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/custom-pages_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/custom-pages_custom_pages_response_collection"}}},"description":"List custom pages response"},"4xx":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/custom-pages_custom_pages_response_collection"},{"$ref":"#/components/schemas/custom-pages_api-response-common-failure"}]}}},"description":"List custom pages response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"List custom pages","tags":["Custom pages for a zone"],"x-api-token-group":["Custom Pages Write","Custom Pages Read","Zone Settings Write","Zone Settings Read"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_identifier}/custom_pages/{identifier}":{"get":{"description":"Fetches the details of a custom page.","operationId":"custom-pages-for-a-zone-get-a-custom-page","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/custom-pages_identifier"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/custom-pages_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/custom-pages_custom_pages_response_single"}}},"description":"Get a custom page response"},"4xx":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/custom-pages_custom_pages_response_single"},{"$ref":"#/components/schemas/custom-pages_api-response-common-failure"}]}}},"description":"Get a custom page response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"Get a custom page","tags":["Custom pages for a zone"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"put":{"description":"Updates the configuration of an existing custom page.","operationId":"custom-pages-for-a-zone-update-a-custom-page","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/custom-pages_identifier"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/custom-pages_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"state":{"$ref":"#/components/schemas/custom-pages_state"},"url":{"$ref":"#/components/schemas/custom-pages_url"}},"required":["url","state"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/custom-pages_custom_pages_response_single"}}},"description":"Update a custom page response"},"4xx":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/custom-pages_custom_pages_response_single"},{"$ref":"#/components/schemas/custom-pages_api-response-common-failure"}]}}},"description":"Update a custom page response failure"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"Update a custom page","tags":["Custom pages for a zone"],"x-cfPermissionsRequired":{"enum":["#zone_settings:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_identifier}/filters":{"delete":{"deprecated":true,"description":"Deletes one or more existing filters.","operationId":"filters-delete-filters","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"$ref":"#/components/schemas/firewall_filters_components-schemas-id"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_filter-delete-response-collection"}}},"description":"Delete filters response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-delete-response-collection"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Delete filters response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete filters","tags":["Filters"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"deprecated":true,"description":"Fetches filters in a zone. You can filter the results using several optional parameters.","operationId":"filters-list-filters","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}},{"in":"query","name":"paused","schema":{"oneOf":[{"$ref":"#/components/schemas/firewall_filters_components-schemas-paused"}]}},{"in":"query","name":"expression","schema":{"description":"A case-insensitive string to find in the expression.","example":"php","type":"string"}},{"in":"query","name":"description","schema":{"description":"A case-insensitive string to find in the description.","example":"browsers","type":"string"}},{"in":"query","name":"ref","schema":{"description":"The filter ref (a short reference tag) to search for. Must be an exact match.","example":"FIL-100","type":"string"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":25,"description":"Number of filters per page.","maximum":100,"minimum":5,"type":"number"}},{"in":"query","name":"id","schema":{"description":"The unique identifier of the filter.","example":"372e67954025e0ba6aaa6d586b9e0b61","maxLength":32,"minLength":32,"readOnly":true,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_filter-response-collection"}}},"description":"List filters response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-response-collection"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"List filters response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List filters","tags":["Filters"],"x-api-token-group":["Firewall Services Write","Firewall Services Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"deprecated":true,"description":"Creates one or more filters.","operationId":"filters-create-filters","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"expression":{"$ref":"#/components/schemas/firewall_expression"}},"required":["expression"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-response-collection"}]}}},"description":"Create filters response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-response-collection"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Create filters response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create filters","tags":["Filters"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"deprecated":true,"description":"Updates one or more existing filters.","operationId":"filters-update-filters","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"$ref":"#/components/schemas/firewall_components-schemas-identifier"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_filter-response-collection"}}},"description":"Update filters response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-response-collection"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Update filters response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update filters","tags":["Filters"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_identifier}/filters/{id}":{"delete":{"deprecated":true,"description":"Deletes an existing filter.","operationId":"filters-delete-a-filter","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/firewall_filters_components-schemas-id"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_filter-delete-response-single"}}},"description":"Delete a filter response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-delete-response-single"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Delete a filter response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a filter","tags":["Filters"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"deprecated":true,"description":"Fetches the details of a filter.","operationId":"filters-get-a-filter","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/firewall_filters_components-schemas-id"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_filter-response-single"}}},"description":"Get a filter response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-response-single"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Get a filter response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a filter","tags":["Filters"],"x-api-token-group":["Firewall Services Write","Firewall Services Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"deprecated":true,"description":"Updates an existing filter.","operationId":"filters-update-a-filter","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/firewall_filters_components-schemas-id"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["id"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_filter-response-single"}}},"description":"Update a filter response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-response-single"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Update a filter response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a filter","tags":["Filters"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_identifier}/firewall/lockdowns":{"get":{"description":"Fetches Zone Lockdown rules. You can filter the results using several optional parameters.","operationId":"zone-lockdown-list-zone-lockdown-rules","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"description","schema":{"allOf":[{"$ref":"#/components/schemas/firewall_schemas-description_search"}]}},{"in":"query","name":"modified_on","schema":{"allOf":[{"$ref":"#/components/schemas/firewall_modified_on"}]}},{"in":"query","name":"ip","schema":{"allOf":[{"$ref":"#/components/schemas/firewall_ip_search"}]}},{"in":"query","name":"priority","schema":{"allOf":[{"$ref":"#/components/schemas/firewall_schemas-priority"}]}},{"in":"query","name":"uri_search","schema":{"allOf":[{"$ref":"#/components/schemas/firewall_uri_search"}]}},{"in":"query","name":"ip_range_search","schema":{"allOf":[{"$ref":"#/components/schemas/firewall_ip_range_search"}]}},{"in":"query","name":"per_page","schema":{"default":20,"description":"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`.","maximum":1000,"minimum":1,"type":"number"}},{"in":"query","name":"created_on","schema":{"description":"The timestamp of when the rule was created.","example":"2014-01-01T05:20:00.12345Z","format":"date-time","readOnly":true,"type":"string"}},{"in":"query","name":"description_search","schema":{"description":"A string to search for in the description of existing rules.","example":"endpoints","type":"string"}},{"in":"query","name":"ip_search","schema":{"description":"A single IP address to search for in existing rules.","example":"1.2.3.4","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_zonelockdown_response_collection"}}},"description":"List Zone Lockdown rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_zonelockdown_response_collection"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"List Zone Lockdown rules response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Zone Lockdown rules","tags":["Zone Lockdown"],"x-api-token-group":["Firewall Services Write","Firewall Services Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"post":{"description":"Creates a new Zone Lockdown rule.","operationId":"zone-lockdown-create-a-zone-lockdown-rule","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"configurations":{"$ref":"#/components/schemas/firewall_configurations"},"urls":{"$ref":"#/components/schemas/firewall_urls"}},"required":["urls","configurations"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_zonelockdown_response_single"}}},"description":"Create a Zone Lockdown rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_zonelockdown_response_single"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Create a Zone Lockdown rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a Zone Lockdown rule","tags":["Zone Lockdown"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_identifier}/firewall/lockdowns/{id}":{"delete":{"description":"Deletes an existing Zone Lockdown rule.","operationId":"zone-lockdown-delete-a-zone-lockdown-rule","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/firewall_lockdowns_components-schemas-id"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/firewall_lockdowns_components-schemas-id"}}}},"type":"object"}}},"description":"Delete a Zone Lockdown rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/firewall_lockdowns_components-schemas-id"}}}},"type":"object"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Delete a Zone Lockdown rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a Zone Lockdown rule","tags":["Zone Lockdown"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"get":{"description":"Fetches the details of a Zone Lockdown rule.","operationId":"zone-lockdown-get-a-zone-lockdown-rule","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/firewall_lockdowns_components-schemas-id"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_zonelockdown_response_single"}}},"description":"Get a Zone Lockdown rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_zonelockdown_response_single"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Get a Zone Lockdown rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a Zone Lockdown rule","tags":["Zone Lockdown"],"x-api-token-group":["Firewall Services Write","Firewall Services Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"put":{"description":"Updates an existing Zone Lockdown rule.","operationId":"zone-lockdown-update-a-zone-lockdown-rule","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/firewall_lockdowns_components-schemas-id"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"configurations":{"$ref":"#/components/schemas/firewall_configurations"},"urls":{"$ref":"#/components/schemas/firewall_urls"}},"required":["urls","configurations"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_zonelockdown_response_single"}}},"description":"Update a Zone Lockdown rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_zonelockdown_response_single"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Update a Zone Lockdown rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a Zone Lockdown rule","tags":["Zone Lockdown"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_identifier}/firewall/rules":{"delete":{"deprecated":true,"description":"Deletes existing firewall rules.","operationId":"firewall-rules-delete-firewall-rules","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"$ref":"#/components/schemas/firewall_firewall-rules_components-schemas-id"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_filter-rules-response-collection-delete"}}},"description":"Delete firewall rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-rules-response-collection-delete"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Delete firewall rules response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete firewall rules","tags":["Firewall rules"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"deprecated":true,"description":"Fetches firewall rules in a zone. You can filter the results using several optional parameters.","operationId":"firewall-rules-list-firewall-rules","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}},{"in":"query","name":"description","schema":{"description":"A case-insensitive string to find in the description.","example":"mir","type":"string"}},{"in":"query","name":"action","schema":{"description":"The action to search for. Must be an exact match.","example":"block","type":"string"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":25,"description":"Number of firewall rules per page.","maximum":100,"minimum":5,"type":"number"}},{"in":"query","name":"id","schema":{"description":"The unique identifier of the firewall rule.","example":"372e67954025e0ba6aaa6d586b9e0b60","maxLength":32,"readOnly":true,"type":"string"}},{"in":"query","name":"paused","schema":{"description":"When true, indicates that the firewall rule is currently paused.","example":false,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_filter-rules-response-collection"}}},"description":"List firewall rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-rules-response-collection"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"List firewall rules response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List firewall rules","tags":["Firewall rules"],"x-api-token-group":["Firewall Services Write","Firewall Services Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"deprecated":true,"description":"Updates the priority of existing firewall rules.","operationId":"firewall-rules-update-priority-of-firewall-rules","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["id"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_filter-rules-response-collection"}}},"description":"Update priority of firewall rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-rules-response-collection"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Update priority of firewall rules response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update priority of firewall rules","tags":["Firewall rules"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"deprecated":true,"description":"Create one or more firewall rules.","operationId":"firewall-rules-create-firewall-rules","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"action":{"$ref":"#/components/schemas/firewall_action"},"filter":{"$ref":"#/components/schemas/firewall_filter"}},"required":["filter","action"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_filter-rules-response-collection"}}},"description":"Create firewall rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-rules-response-collection"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Create firewall rules response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create firewall rules","tags":["Firewall rules"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"deprecated":true,"description":"Updates one or more existing firewall rules.","operationId":"firewall-rules-update-firewall-rules","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["id"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_filter-rules-response-collection"}}},"description":"Update firewall rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-rules-response-collection"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Update firewall rules response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update firewall rules","tags":["Firewall rules"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_identifier}/firewall/rules/{id}":{"delete":{"deprecated":true,"description":"Deletes an existing firewall rule.","operationId":"firewall-rules-delete-a-firewall-rule","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/firewall_firewall-rules_components-schemas-id"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"delete_filter_if_unused":{"$ref":"#/components/schemas/firewall_delete_filter_if_unused"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_filter-rules-single-response-delete"}}},"description":"Delete a firewall rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-rules-single-response-delete"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Delete a firewall rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a firewall rule","tags":["Firewall rules"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"deprecated":true,"description":"Fetches the details of a firewall rule.","operationId":"firewall-rules-get-a-firewall-rule","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/firewall_firewall-rules_components-schemas-id"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}},{"in":"query","name":"id","schema":{"allOf":[{"$ref":"#/components/schemas/firewall_firewall-rules_components-schemas-id"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_filter-rules-single-response"}}},"description":"Get a firewall rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-rules-single-response"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Get a firewall rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a firewall rule","tags":["Firewall rules"],"x-api-token-group":["Firewall Services Write","Firewall Services Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"deprecated":true,"description":"Updates the priority of an existing firewall rule.","operationId":"firewall-rules-update-priority-of-a-firewall-rule","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/firewall_firewall-rules_components-schemas-id"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"$ref":"#/components/schemas/firewall_components-schemas-identifier"}},"required":["id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_filter-rules-response-collection"}}},"description":"Update priority of a firewall rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-rules-response-collection"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Update priority of a firewall rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update priority of a firewall rule","tags":["Firewall rules"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"deprecated":true,"description":"Updates an existing firewall rule.","operationId":"firewall-rules-update-a-firewall-rule","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/firewall_firewall-rules_components-schemas-id"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"action":{"$ref":"#/components/schemas/firewall_action"},"filter":{"$ref":"#/components/schemas/firewall_filter"},"id":{"$ref":"#/components/schemas/firewall_components-schemas-identifier"}},"required":["id","filter","action"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_filter-rules-single-response"}}},"description":"Update a firewall rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_filter-rules-single-response"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Update a firewall rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a firewall rule","tags":["Firewall rules"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_identifier}/firewall/ua_rules":{"get":{"description":"Fetches User Agent Blocking rules in a zone. You can filter the results using several optional parameters.","operationId":"user-agent-blocking-rules-list-user-agent-blocking-rules","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"description","schema":{"allOf":[{"$ref":"#/components/schemas/firewall_description_search"}]}},{"in":"query","name":"description_search","schema":{"allOf":[{"$ref":"#/components/schemas/firewall_description_search"}]}},{"in":"query","name":"per_page","schema":{"default":20,"description":"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`.","maximum":1000,"minimum":1,"type":"number"}},{"in":"query","name":"ua_search","schema":{"description":"A string to search for in the user agent values of existing rules.","example":"Safari","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_firewalluablock_response_collection"}}},"description":"List User Agent Blocking rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_firewalluablock_response_collection"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"List User Agent Blocking rules response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List User Agent Blocking rules","tags":["User Agent Blocking rules"],"x-api-token-group":["Firewall Services Write","Firewall Services Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Creates a new User Agent Blocking rule in a zone.","operationId":"user-agent-blocking-rules-create-a-user-agent-blocking-rule","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"configuration":{"$ref":"#/components/schemas/firewall_configuration"},"mode":{"$ref":"#/components/schemas/firewall_schemas-mode"}},"required":["mode","configuration"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_firewalluablock_response_single"}}},"description":"Create a User Agent Blocking rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_firewalluablock_response_single"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Create a User Agent Blocking rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a User Agent Blocking rule","tags":["User Agent Blocking rules"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_identifier}/firewall/ua_rules/{id}":{"delete":{"description":"Deletes an existing User Agent Blocking rule.","operationId":"user-agent-blocking-rules-delete-a-user-agent-blocking-rule","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/firewall_components-schemas-id"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_firewalluablock_response_single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/firewall_components-schemas-id"}}}},"type":"object"}]}}},"description":"Delete a User Agent Blocking rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/firewall_firewalluablock_response_single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/firewall_components-schemas-id"}}}},"type":"object"}]},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Delete a User Agent Blocking rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a User Agent Blocking rule","tags":["User Agent Blocking rules"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Fetches the details of a User Agent Blocking rule.","operationId":"user-agent-blocking-rules-get-a-user-agent-blocking-rule","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/firewall_components-schemas-id"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_firewalluablock_response_single"}}},"description":"Get a User Agent Blocking rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_firewalluablock_response_single"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Get a User Agent Blocking rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a User Agent Blocking rule","tags":["User Agent Blocking rules"],"x-api-token-group":["Firewall Services Write","Firewall Services Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Updates an existing User Agent Blocking rule.","operationId":"user-agent-blocking-rules-update-a-user-agent-blocking-rule","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/firewall_components-schemas-id"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"configuration":{"$ref":"#/components/schemas/firewall_configuration"},"id":{"$ref":"#/components/schemas/firewall_components-schemas-identifier"},"mode":{"$ref":"#/components/schemas/firewall_schemas-mode"}},"required":["id","mode","configuration"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_firewalluablock_response_single"}}},"description":"Update a User Agent Blocking rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_firewalluablock_response_single"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Update a User Agent Blocking rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a User Agent Blocking rule","tags":["User Agent Blocking rules"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_identifier}/firewall/waf/overrides":{"get":{"deprecated":true,"description":"Fetches the URI-based WAF overrides in a zone.\n\n**Note:** Applies only to the [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).","operationId":"waf-overrides-list-waf-overrides","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}},{"in":"query","name":"page","schema":{"default":1,"description":"The page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":50,"description":"The number of WAF overrides per page.","maximum":100,"minimum":5,"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_override_response_collection"}}},"description":"List WAF overrides response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_override_response_collection"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"List WAF overrides response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List WAF overrides","tags":["WAF overrides"],"x-api-token-group":["Zone Settings Write","Zone Settings Read"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"deprecated":true,"description":"Creates a URI-based WAF override for a zone.\n\n**Note:** Applies only to the [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).","operationId":"waf-overrides-create-a-waf-override","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"urls":{"$ref":"#/components/schemas/firewall_urls"}},"required":["urls"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_override_response_single"}}},"description":"Create a WAF override response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_override_response_single"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Create a WAF override response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a WAF override","tags":["WAF overrides"],"x-api-token-group":["Zone Settings Write"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_identifier}/firewall/waf/overrides/{id}":{"delete":{"deprecated":true,"description":"Deletes an existing URI-based WAF override.\n\n**Note:** Applies only to the [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).","operationId":"waf-overrides-delete-a-waf-override","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/firewall_schemas-id"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/firewall_schemas-id"}}}},"type":"object"}}},"description":"Delete a WAF override response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/firewall_schemas-id"}}}},"type":"object"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Delete a WAF override response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a WAF override","tags":["WAF overrides"],"x-api-token-group":["Zone Settings Write"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"deprecated":true,"description":"Fetches the details of a URI-based WAF override.\n\n**Note:** Applies only to the [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).","operationId":"waf-overrides-get-a-waf-override","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/firewall_schemas-id"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_override_response_single"}}},"description":"Get a WAF override response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_override_response_single"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Get a WAF override response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a WAF override","tags":["WAF overrides"],"x-api-token-group":["Zone Settings Write","Zone Settings Read"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"deprecated":true,"description":"Updates an existing URI-based WAF override.\n\n**Note:** Applies only to the [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).","operationId":"waf-overrides-update-waf-override","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/firewall_schemas-id"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"id":{"$ref":"#/components/schemas/firewall_identifier"},"rewrite_action":{"$ref":"#/components/schemas/firewall_rewrite_action"},"rules":{"$ref":"#/components/schemas/firewall_rules"},"urls":{"$ref":"#/components/schemas/firewall_urls"}},"required":["id","urls","rules","rewrite_action"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_override_response_single"}}},"description":"Update WAF override response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_override_response_single"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Update WAF override response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update WAF override","tags":["WAF overrides"],"x-api-token-group":["Zone Settings Write"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_identifier}/firewall/waf/packages":{"get":{"deprecated":true,"description":"Fetches WAF packages for a zone.\n\n**Note:** Applies only to the [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).","operationId":"waf-packages-list-waf-packages","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}},{"in":"query","name":"page","schema":{"default":1,"description":"The page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":50,"description":"The number of packages per page.","maximum":100,"minimum":5,"type":"number"}},{"in":"query","name":"order","schema":{"description":"The field used to sort returned packages.","enum":["name"],"example":"status","type":"string"}},{"in":"query","name":"direction","schema":{"description":"The direction used to sort returned packages.","enum":["asc","desc"],"example":"desc","type":"string"}},{"in":"query","name":"match","schema":{"default":"all","description":"When set to `all`, all the search requirements must match. When set to `any`, only one of the search requirements has to match.","enum":["any","all"],"type":"string"}},{"in":"query","name":"name","schema":{"description":"The name of the WAF package.","example":"USER","readOnly":true,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_package_response_collection"}}},"description":"List WAF packages response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_package_response_collection"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"List WAF packages response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List WAF packages","tags":["WAF packages"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_identifier}/firewall/waf/packages/{identifier}":{"get":{"deprecated":true,"description":"Fetches the details of a WAF package.\n\n**Note:** Applies only to the [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).","operationId":"waf-packages-get-a-waf-package","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_package_response_single"}}},"description":"Get a WAF package response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_package_response_single"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Get a WAF package response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a WAF package","tags":["WAF packages"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"patch":{"deprecated":true,"description":"Updates a WAF package. You can update the sensitivity and the action of an anomaly detection WAF package.\n\n**Note:** Applies only to the [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).","operationId":"waf-packages-update-a-waf-package","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"action_mode":{"$ref":"#/components/schemas/firewall_action_mode"},"sensitivity":{"$ref":"#/components/schemas/firewall_sensitivity"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_package_response_single"},{"properties":{"result":{"$ref":"#/components/schemas/firewall_anomaly_package"}}}]}}},"description":"Update a WAF package response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/firewall_package_response_single"},{"properties":{"result":{"$ref":"#/components/schemas/firewall_anomaly_package"}}}]},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Update a WAF package response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a WAF package","tags":["WAF packages"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_identifier}/rate_limits":{"get":{"deprecated":true,"description":"Fetches the rate limits for a zone.","operationId":"rate-limits-for-a-zone-list-rate-limits","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}},{"in":"query","name":"page","schema":{"default":1,"description":"The page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":20,"description":"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`.","maximum":1000,"minimum":1,"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_ratelimit_response_collection"}}},"description":"List rate limits response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_ratelimit_response_collection"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"List rate limits response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List rate limits","tags":["Rate limits for a zone"],"x-api-token-group":["Firewall Services Write","Firewall Services Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"deprecated":true,"description":"Creates a new rate limit for a zone. Refer to the object definition for a list of required attributes.","operationId":"rate-limits-for-a-zone-create-a-rate-limit","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"action":{"$ref":"#/components/schemas/firewall_action"},"match":{"$ref":"#/components/schemas/firewall_match"},"period":{"$ref":"#/components/schemas/firewall_period"},"threshold":{"$ref":"#/components/schemas/firewall_threshold"}},"required":["match","threshold","period","action"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_ratelimit_response_single"}}},"description":"Create a rate limit response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_ratelimit_response_single"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Create a rate limit response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a rate limit","tags":["Rate limits for a zone"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_identifier}/rate_limits/{id}":{"delete":{"deprecated":true,"description":"Deletes an existing rate limit.","operationId":"rate-limits-for-a-zone-delete-a-rate-limit","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/firewall_id"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_ratelimit_response_single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/firewall_id"}}}},"type":"object"}]}}},"description":"Delete a rate limit response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/firewall_ratelimit_response_single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/firewall_id"}}}},"type":"object"}]},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Delete a rate limit response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a rate limit","tags":["Rate limits for a zone"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"deprecated":true,"description":"Fetches the details of a rate limit.","operationId":"rate-limits-for-a-zone-get-a-rate-limit","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/firewall_id"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_ratelimit_response_single"}}},"description":"Get a rate limit response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_ratelimit_response_single"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Get a rate limit response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a rate limit","tags":["Rate limits for a zone"],"x-api-token-group":["Firewall Services Write","Firewall Services Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"deprecated":true,"description":"Updates an existing rate limit.","operationId":"rate-limits-for-a-zone-update-a-rate-limit","parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/firewall_id"}},{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"action":{"$ref":"#/components/schemas/firewall_action"},"match":{"$ref":"#/components/schemas/firewall_match"},"period":{"$ref":"#/components/schemas/firewall_period"},"threshold":{"$ref":"#/components/schemas/firewall_threshold"}},"required":["id","match","threshold","period","action"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_ratelimit_response_single"}}},"description":"Update a rate limit response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_ratelimit_response_single"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Update a rate limit response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a rate limit","tags":["Rate limits for a zone"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_identifier}/ssl/recommendation":{"get":{"description":"Retrieve the SSL/TLS Recommender's recommendation for a zone.","operationId":"ssl/-tls-mode-recommendation-ssl/-tls-recommendation","parameters":[{"in":"path","name":"zone_identifier","required":true,"schema":{"$ref":"#/components/schemas/legacy-jhs_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/legacy-jhs_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/legacy-jhs_id"},"modified_on":{"$ref":"#/components/schemas/legacy-jhs_timestamp"},"value":{"$ref":"#/components/schemas/legacy-jhs_value"}}}}}]}}},"description":"SSL/TLS Recommendation response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/legacy-jhs_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/legacy-jhs_id"},"modified_on":{"$ref":"#/components/schemas/legacy-jhs_timestamp"},"value":{"$ref":"#/components/schemas/legacy-jhs_value"}}}}}]},{"$ref":"#/components/schemas/legacy-jhs_api-response-common-failure"}]}}},"description":"SSL/TLS Recommendation response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"SSL/TLS Recommendation","tags":["SSL/TLS Mode Recommendation"],"x-api-token-group":["Zone Settings Write","Zone Settings Read","SSL and Certificates Write","SSL and Certificates Read"],"x-cfOwnership":"rtg","x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}":{"delete":{"description":"Deletes an existing zone.","operationId":"zones-0-delete","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zones_identifier"}}],"requestBody":{"content":{"application/json":{}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_api-response-single-id"}}},"description":"Delete Zone response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_api-response-common-failure"}}},"description":"Delete Zone response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Zone","tags":["Zone"],"x-cfPermissionsRequired":{"enum":["#zone:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"operationId":"zones-0-get","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zones_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zones_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/zones_zone"}},"type":"object"}]}}},"description":"Zone Details response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_api-response-common-failure"}}},"description":"Zone Details response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Zone Details","tags":["Zone"],"x-cfPermissionsRequired":{"enum":["#zone:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Edits a zone. Only one zone property can be changed at a time.","operationId":"zones-0-patch","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zones_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"paused":true},"properties":{"paused":{"$ref":"#/components/schemas/zones_paused"},"plan":{"description":"(Deprecated) Please use the `/zones/{zone_id}/subscription` API\nto update a zone's plan. Changing this value will create/cancel\nassociated subscriptions. To view available plans for this zone,\nsee Zone Plans.\n","properties":{"id":{"$ref":"#/components/schemas/zones_identifier"}},"type":"object"},"type":{"description":"A full zone implies that DNS is hosted with Cloudflare. A partial\nzone is typically a partner-hosted zone or a CNAME setup. This\nparameter is only available to Enterprise customers or if it has\nbeen explicitly enabled on a zone.\n","enum":["full","partial","secondary"],"example":"full","type":"string"},"vanity_name_servers":{"$ref":"#/components/schemas/zones_vanity_name_servers"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zones_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/zones_zone"}},"type":"object"}]}}},"description":"Edit Zone response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_api-response-common-failure"}}},"description":"Edit Zone response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Edit Zone","tags":["Zone"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/access/apps":{"get":{"description":"List all Access Applications in a zone.","operationId":"zone-level-access-applications-list-access-applications","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_apps_components-schemas-response_collection-2"}}},"description":"List Access Applications response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List Access Applications response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Access Applications","tags":["Zone-Level Access applications"],"x-api-token-group":["Access: Apps and Policies Revoke","Access: Apps and Policies Write","Access: Apps and Policies Read"]},"post":{"description":"Adds a new application to Access.","operationId":"zone-level-access-applications-add-a-bookmark-application","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_apps"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/access_apps_components-schemas-single_response-2"},{"properties":{"result":{"$ref":"#/components/schemas/access_apps"}}}]}}},"description":"Add an Access application response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Add an Access application response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Add an Access application","tags":["Zone-Level Access applications"],"x-api-token-group":["Access: Apps and Policies Write"]}},"/zones/{zone_id}/access/apps/ca":{"get":{"description":"Lists short-lived certificate CAs and their public keys.","operationId":"zone-level-access-short-lived-certificate-c-as-list-short-lived-certificate-c-as","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_ca_components-schemas-response_collection"}}},"description":"List short-lived certificate CAs response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List short-lived certificate CAs response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List short-lived certificate CAs","tags":["Zone-Level Access short-lived certificate CAs"],"x-api-token-group":["Access: Apps and Policies Write","Access: Apps and Policies Read"]}},"/zones/{zone_id}/access/apps/{app_id}":{"delete":{"description":"Deletes an application from Access.","operationId":"zone-level-access-applications-delete-an-access-application","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_app_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_id_response"}}},"description":"Delete an Access application response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Delete an Access application response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete an Access application","tags":["Zone-Level Access applications"],"x-api-token-group":["Access: Apps and Policies Write"]},"get":{"description":"Fetches information about an Access application.","operationId":"zone-level-access-applications-get-an-access-application","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_app_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_apps_components-schemas-single_response-2"}}},"description":"Get an Access application response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get an Access application response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get an Access application","tags":["Zone-Level Access applications"],"x-api-token-group":["Access: Apps and Policies Write","Access: Apps and Policies Read"]},"put":{"description":"Updates an Access application.","operationId":"zone-level-access-applications-update-a-bookmark-application","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_app_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_apps"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/access_apps_components-schemas-single_response-2"},{"properties":{"result":{"$ref":"#/components/schemas/access_apps"}}}]}}},"description":"Update an Access application response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update an Access application response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an Access application","tags":["Zone-Level Access applications"],"x-api-token-group":["Access: Apps and Policies Write"]}},"/zones/{zone_id}/access/apps/{app_id}/ca":{"delete":{"description":"Deletes a short-lived certificate CA.","operationId":"zone-level-access-short-lived-certificate-c-as-delete-a-short-lived-certificate-ca","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_schemas-id_response"}}},"description":"Delete a short-lived certificate CA response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Delete a short-lived certificate CA response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a short-lived certificate CA","tags":["Zone-Level Access short-lived certificate CAs"],"x-api-token-group":["Access: Apps and Policies Write"]},"get":{"description":"Fetches a short-lived certificate CA and its public key.","operationId":"zone-level-access-short-lived-certificate-c-as-get-a-short-lived-certificate-ca","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_ca_components-schemas-single_response"}}},"description":"Get a short-lived certificate CA response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get a short-lived certificate CA response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a short-lived certificate CA","tags":["Zone-Level Access short-lived certificate CAs"],"x-api-token-group":["Access: Apps and Policies Write","Access: Apps and Policies Read"]},"post":{"description":"Generates a new short-lived certificate CA and public key.","operationId":"zone-level-access-short-lived-certificate-c-as-create-a-short-lived-certificate-ca","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_ca_components-schemas-single_response"}}},"description":"Create a short-lived certificate CA response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Create a short-lived certificate CA response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a short-lived certificate CA","tags":["Zone-Level Access short-lived certificate CAs"],"x-api-token-group":["Access: Apps and Policies Write"]}},"/zones/{zone_id}/access/apps/{app_id}/policies":{"get":{"description":"Lists Access policies configured for an application.","operationId":"zone-level-access-policies-list-access-policies","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_policies_components-schemas-response_collection"}}},"description":"List Access policies response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List Access policies response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Access policies","tags":["Zone-Level Access policies"],"x-api-token-group":["Access: Apps and Policies Write","Access: Apps and Policies Read"]},"post":{"description":"Create a new Access policy for an application.","operationId":"zone-level-access-policies-create-an-access-policy","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"approval_groups":{"$ref":"#/components/schemas/access_schemas-approval_groups"},"approval_required":{"$ref":"#/components/schemas/access_approval_required"},"decision":{"$ref":"#/components/schemas/access_decision"},"exclude":{"$ref":"#/components/schemas/access_schemas-exclude"},"include":{"$ref":"#/components/schemas/access_include"},"isolation_required":{"$ref":"#/components/schemas/access_schemas-isolation_required"},"name":{"$ref":"#/components/schemas/access_policies_components-schemas-name"},"precedence":{"$ref":"#/components/schemas/access_schemas-precedence"},"purpose_justification_prompt":{"$ref":"#/components/schemas/access_purpose_justification_prompt"},"purpose_justification_required":{"$ref":"#/components/schemas/access_purpose_justification_required"},"require":{"$ref":"#/components/schemas/access_schemas-require"}},"required":["name","decision","include"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_policies_components-schemas-single_response"}}},"description":"Create an Access policy response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Create an Access policy response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create an Access policy","tags":["Zone-Level Access policies"],"x-api-token-group":["Access: Apps and Policies Write"]}},"/zones/{zone_id}/access/apps/{app_id}/policies/{policy_id}":{"delete":{"description":"Delete an Access policy.","operationId":"zone-level-access-policies-delete-an-access-policy","parameters":[{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_id_response"}}},"description":"Delete an Access policy response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Delete an Access policy response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete an Access policy","tags":["Zone-Level Access policies"],"x-api-token-group":["Access: Apps and Policies Write"]},"get":{"description":"Fetches a single Access policy.","operationId":"zone-level-access-policies-get-an-access-policy","parameters":[{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_policies_components-schemas-single_response"}}},"description":"Get an Access policy response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get an Access policy response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get an Access policy","tags":["Zone-Level Access policies"],"x-api-token-group":["Access: Apps and Policies Write","Access: Apps and Policies Read"]},"put":{"description":"Update a configured Access policy.","operationId":"zone-level-access-policies-update-an-access-policy","parameters":[{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"approval_groups":{"$ref":"#/components/schemas/access_schemas-approval_groups"},"approval_required":{"$ref":"#/components/schemas/access_approval_required"},"decision":{"$ref":"#/components/schemas/access_decision"},"exclude":{"$ref":"#/components/schemas/access_schemas-exclude"},"include":{"$ref":"#/components/schemas/access_include"},"isolation_required":{"$ref":"#/components/schemas/access_schemas-isolation_required"},"name":{"$ref":"#/components/schemas/access_policies_components-schemas-name"},"precedence":{"$ref":"#/components/schemas/access_schemas-precedence"},"purpose_justification_prompt":{"$ref":"#/components/schemas/access_purpose_justification_prompt"},"purpose_justification_required":{"$ref":"#/components/schemas/access_purpose_justification_required"},"require":{"$ref":"#/components/schemas/access_schemas-require"}},"required":["name","decision","include"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_policies_components-schemas-single_response"}}},"description":"Update an Access policy response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update an Access policy response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an Access policy","tags":["Zone-Level Access policies"],"x-api-token-group":["Access: Apps and Policies Write"]}},"/zones/{zone_id}/access/apps/{app_id}/revoke_tokens":{"post":{"description":"Revokes all tokens issued for an application.","operationId":"zone-level-access-applications-revoke-service-tokens","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_app_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_schemas-empty_response"}}},"description":"Revoke application tokens response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Revoke application tokens response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Revoke application tokens","tags":["Zone-Level Access applications"],"x-api-token-group":["Access: Apps and Policies Revoke","Access: Apps and Policies Write"]}},"/zones/{zone_id}/access/apps/{app_id}/user_policy_checks":{"get":{"description":"Tests if a specific user has permission to access an application.","operationId":"zone-level-access-applications-test-access-policies","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/access_app_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_schemas-policy_check_response"}}},"description":"Test Access policies response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Test Access policies response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Test Access policies","tags":["Zone-Level Access applications"]}},"/zones/{zone_id}/access/certificates":{"get":{"description":"Lists all mTLS certificates.","operationId":"zone-level-access-mtls-authentication-list-mtls-certificates","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_certificates_components-schemas-response_collection-2"}}},"description":"List mTLS certificates response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List mTLS certificates response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List mTLS certificates","tags":["Zone-Level Access mTLS authentication"],"x-api-token-group":["Access: Certificates Write","Access: Certificates Read"]},"post":{"description":"Adds a new mTLS root certificate to Access.","operationId":"zone-level-access-mtls-authentication-add-an-mtls-certificate","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"associated_hostnames":{"$ref":"#/components/schemas/access_associated_hostnames"},"certificate":{"description":"The certificate content.","example":"-----BEGIN CERTIFICATE-----\nMIIGAjCCA+qgAwIBAgIJAI7kymlF7CWT...N4RI7KKB7nikiuUf8vhULKy5IX10\nDrUtmu/B\n-----END CERTIFICATE-----","type":"string"},"name":{"$ref":"#/components/schemas/access_certificates_components-schemas-name"}},"required":["name","certificate"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_certificates_components-schemas-single_response-2"}}},"description":"Add an mTLS certificate response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Add an mTLS certificate response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Add an mTLS certificate","tags":["Zone-Level Access mTLS authentication"],"x-api-token-group":["Access: Certificates Write"]}},"/zones/{zone_id}/access/certificates/settings":{"get":{"description":"List all mTLS hostname settings for this zone.","operationId":"zone-level-access-mtls-authentication-list-mtls-certificates-hostname-settings","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_response_collection_hostnames"}}},"description":"List mTLS hostname settings response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List mTLS hostname settings response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List all mTLS hostname settings","tags":["Zone-Level Access mTLS authentication"],"x-api-token-group":["Access: Certificates Write","Access: Certificates Read"]},"put":{"description":"Updates an mTLS certificate's hostname settings.","operationId":"zone-level-access-mtls-authentication-update-an-mtls-certificate-settings","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"settings":{"items":{"$ref":"#/components/schemas/access_settings"},"type":"array"}},"required":["settings"],"type":"object"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_response_collection_hostnames"}}},"description":"Update an mTLS certificates hostname settings response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update an mTLS certificates hostname settings failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an mTLS certificate's hostname settings","tags":["Zone-Level Access mTLS authentication"],"x-api-token-group":["Access: Certificates Write"]}},"/zones/{zone_id}/access/certificates/{certificate_id}":{"delete":{"description":"Deletes an mTLS certificate.","operationId":"zone-level-access-mtls-authentication-delete-an-mtls-certificate","parameters":[{"in":"path","name":"certificate_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_components-schemas-id_response"}}},"description":"Delete an mTLS certificate response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Delete an mTLS certificate response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete an mTLS certificate","tags":["Zone-Level Access mTLS authentication"],"x-api-token-group":["Access: Certificates Write"]},"get":{"description":"Fetches a single mTLS certificate.","operationId":"zone-level-access-mtls-authentication-get-an-mtls-certificate","parameters":[{"in":"path","name":"certificate_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_certificates_components-schemas-single_response-2"}}},"description":"Get an mTLS certificate response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get an mTLS certificate response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get an mTLS certificate","tags":["Zone-Level Access mTLS authentication"],"x-api-token-group":["Access: Certificates Write","Access: Certificates Read"]},"put":{"description":"Updates a configured mTLS certificate.","operationId":"zone-level-access-mtls-authentication-update-an-mtls-certificate","parameters":[{"in":"path","name":"certificate_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"associated_hostnames":{"$ref":"#/components/schemas/access_associated_hostnames"},"name":{"$ref":"#/components/schemas/access_certificates_components-schemas-name"}},"required":["associated_hostnames"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_certificates_components-schemas-single_response-2"}}},"description":"Update an mTLS certificate response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update an mTLS certificate response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an mTLS certificate","tags":["Zone-Level Access mTLS authentication"],"x-api-token-group":["Access: Certificates Write"]}},"/zones/{zone_id}/access/groups":{"get":{"description":"Lists all Access groups.","operationId":"zone-level-access-groups-list-access-groups","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_groups_components-schemas-response_collection"}}},"description":"List Access groups response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List Access groups response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Access groups","tags":["Zone-Level Access groups"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write","Access: Organizations, Identity Providers, and Groups Read"]},"post":{"description":"Creates a new Access group.","operationId":"zone-level-access-groups-create-an-access-group","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"exclude":{"$ref":"#/components/schemas/access_exclude"},"include":{"$ref":"#/components/schemas/access_include"},"name":{"$ref":"#/components/schemas/access_groups_components-schemas-name"},"require":{"$ref":"#/components/schemas/access_require"}},"required":["name","include"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_groups_components-schemas-single_response-2"}}},"description":"Create an Access group response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Create an Access group response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create an Access group","tags":["Zone-Level Access groups"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write"]}},"/zones/{zone_id}/access/groups/{group_id}":{"delete":{"description":"Deletes an Access group.","operationId":"zone-level-access-groups-delete-an-access-group","parameters":[{"in":"path","name":"group_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_id_response"}}},"description":"Delete an Access group response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Delete an Access group response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete an Access group","tags":["Zone-Level Access groups"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write"]},"get":{"description":"Fetches a single Access group.","operationId":"zone-level-access-groups-get-an-access-group","parameters":[{"in":"path","name":"group_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_groups_components-schemas-single_response-2"}}},"description":"Get an Access group response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get an Access group response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get an Access group","tags":["Zone-Level Access groups"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write","Access: Organizations, Identity Providers, and Groups Read"]},"put":{"description":"Updates a configured Access group.","operationId":"zone-level-access-groups-update-an-access-group","parameters":[{"in":"path","name":"group_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"exclude":{"$ref":"#/components/schemas/access_exclude"},"include":{"$ref":"#/components/schemas/access_include"},"name":{"$ref":"#/components/schemas/access_groups_components-schemas-name"},"require":{"$ref":"#/components/schemas/access_require"}},"required":["name","include"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_groups_components-schemas-single_response-2"}}},"description":"Update an Access group response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update an Access group response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an Access group","tags":["Zone-Level Access groups"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write"]}},"/zones/{zone_id}/access/identity_providers":{"get":{"description":"Lists all configured identity providers.","operationId":"zone-level-access-identity-providers-list-access-identity-providers","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_identity-providers_components-schemas-response_collection"}}},"description":"List Access identity providers response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List Access identity providers response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Access identity providers","tags":["Zone-Level Access identity providers"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write","Access: Organizations, Identity Providers, and Groups Read"]},"post":{"description":"Adds a new identity provider to Access.","operationId":"zone-level-access-identity-providers-add-an-access-identity-provider","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_schemas-identity-providers"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_identity-providers_components-schemas-single_response"}}},"description":"Add an Access identity provider response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Add an Access identity provider response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Add an Access identity provider","tags":["Zone-Level Access identity providers"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write"]}},"/zones/{zone_id}/access/identity_providers/{identity_provider_id}":{"delete":{"description":"Deletes an identity provider from Access.","operationId":"zone-level-access-identity-providers-delete-an-access-identity-provider","parameters":[{"in":"path","name":"identity_provider_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_id_response"}}},"description":"Delete an Access identity provider response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Delete an Access identity provider response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete an Access identity provider","tags":["Zone-Level Access identity providers"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write"]},"get":{"description":"Fetches a configured identity provider.","operationId":"zone-level-access-identity-providers-get-an-access-identity-provider","parameters":[{"in":"path","name":"identity_provider_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_identity-providers_components-schemas-single_response"}}},"description":"Get an Access identity provider response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get an Access identity provider response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get an Access identity provider","tags":["Zone-Level Access identity providers"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write","Access: Organizations, Identity Providers, and Groups Read"]},"put":{"description":"Updates a configured identity provider.","operationId":"zone-level-access-identity-providers-update-an-access-identity-provider","parameters":[{"in":"path","name":"identity_provider_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_schemas-identity-providers"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_identity-providers_components-schemas-single_response"}}},"description":"Update an Access identity provider response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update an Access identity provider response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an Access identity provider","tags":["Zone-Level Access identity providers"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write"]}},"/zones/{zone_id}/access/organizations":{"get":{"description":"Returns the configuration for your Zero Trust organization.","operationId":"zone-level-zero-trust-organization-get-your-zero-trust-organization","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_organizations_components-schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_organizations_components-schemas-single_response"}}},"description":"Get your Zero Trust organization response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get your Zero Trust organization response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get your Zero Trust organization","tags":["Zone-Level Zero Trust organization"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Revoke","Access: Organizations, Identity Providers, and Groups Write","Access: Organizations, Identity Providers, and Groups Read"]},"post":{"description":"Sets up a Zero Trust organization for your account.","operationId":"zone-level-zero-trust-organization-create-your-zero-trust-organization","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_organizations_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"auth_domain":{"$ref":"#/components/schemas/access_auth_domain"},"is_ui_read_only":{"$ref":"#/components/schemas/access_is_ui_read_only"},"login_design":{"$ref":"#/components/schemas/access_login_design"},"name":{"$ref":"#/components/schemas/access_name"},"ui_read_only_toggle_reason":{"$ref":"#/components/schemas/access_ui_read_only_toggle_reason"},"user_seat_expiration_inactive_time":{"$ref":"#/components/schemas/access_schemas-user_seat_expiration_inactive_time"}},"required":["name","auth_domain"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_organizations_components-schemas-single_response"}}},"description":"Create your Zero Trust organization response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Create your Zero Trust organization response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create your Zero Trust organization","tags":["Zone-Level Zero Trust organization"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write"]},"put":{"description":"Updates the configuration for your Zero Trust organization.","operationId":"zone-level-zero-trust-organization-update-your-zero-trust-organization","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_organizations_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"auth_domain":{"$ref":"#/components/schemas/access_auth_domain"},"is_ui_read_only":{"$ref":"#/components/schemas/access_is_ui_read_only"},"login_design":{"$ref":"#/components/schemas/access_login_design"},"name":{"$ref":"#/components/schemas/access_name"},"ui_read_only_toggle_reason":{"$ref":"#/components/schemas/access_ui_read_only_toggle_reason"},"user_seat_expiration_inactive_time":{"$ref":"#/components/schemas/access_schemas-user_seat_expiration_inactive_time"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_organizations_components-schemas-single_response"}}},"description":"Update your Zero Trust organization response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update your Zero Trust organization response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update your Zero Trust organization","tags":["Zone-Level Zero Trust organization"],"x-api-token-group":["Access: Organizations, Identity Providers, and Groups Write"]}},"/zones/{zone_id}/access/organizations/revoke_user":{"post":{"description":"Revokes a user's access across all applications.","operationId":"zone-level-zero-trust-organization-revoke-all-access-tokens-for-a-user","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_organizations_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"email":{"description":"The email of the user to revoke.","example":"test@example.com","type":"string"}},"required":["email"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_empty_response"}}},"description":"Revoke all Access tokens for a user response"},"4xx":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Revoke all Access tokens for a user response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Revoke all Access tokens for a user","tags":["Zone-Level Zero Trust organization"]}},"/zones/{zone_id}/access/service_tokens":{"get":{"description":"Lists all service tokens.","operationId":"zone-level-access-service-tokens-list-service-tokens","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_components-schemas-response_collection"}}},"description":"List service tokens response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"List service tokens response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List service tokens","tags":["Zone-Level Access service tokens"],"x-api-token-group":["Access: Service Tokens Write","Access: Service Tokens Read"]},"post":{"description":"Generates a new service token. **Note:** This is the only time you can get the Client Secret. If you lose the Client Secret, you will have to create a new service token.","operationId":"zone-level-access-service-tokens-create-a-service-token","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"duration":{"$ref":"#/components/schemas/access_duration"},"name":{"$ref":"#/components/schemas/access_schemas-name"}},"required":["name"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_create_response"}}},"description":"Create a service token response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Create a service token response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a service token","tags":["Zone-Level Access service tokens"],"x-api-token-group":["Access: Service Tokens Write"]}},"/zones/{zone_id}/access/service_tokens/{service_token_id}":{"delete":{"description":"Deletes a service token.","operationId":"zone-level-access-service-tokens-delete-a-service-token","parameters":[{"in":"path","name":"service_token_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_schemas-single_response"}}},"description":"Delete a service token response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Delete a service token response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a service token","tags":["Zone-Level Access service tokens"],"x-api-token-group":["Access: Service Tokens Write"]},"get":{"description":"Fetches a single service token.","operationId":"zone-level-access-service-tokens-get-a-service-token","parameters":[{"in":"path","name":"service_token_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_schemas-single_response"}}},"description":"Get a service token response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Get a service token response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a service token","tags":["Zone-Level Access service tokens"],"x-api-token-group":["Access: Service Tokens Write","Access: Service Tokens Read"]},"put":{"description":"Updates a configured service token.","operationId":"zone-level-access-service-tokens-update-a-service-token","parameters":[{"in":"path","name":"service_token_id","required":true,"schema":{"$ref":"#/components/schemas/access_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/access_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"duration":{"$ref":"#/components/schemas/access_duration"},"name":{"$ref":"#/components/schemas/access_schemas-name"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_schemas-single_response"}}},"description":"Update a service token response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/access_api-response-common-failure"}}},"description":"Update a service token response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a service token","tags":["Zone-Level Access service tokens"],"x-api-token-group":["Access: Service Tokens Write"]}},"/zones/{zone_id}/acm/total_tls":{"get":{"description":"Get Total TLS Settings for a Zone.","operationId":"total-tls-total-tls-settings-details","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_total_tls_settings_response"}}},"description":"Total TLS Settings Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_total_tls_settings_response"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Total TLS Settings Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Total TLS Settings Details","tags":["Total TLS"],"x-api-token-group":["SSL and Certificates Write","SSL and Certificates Read"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Set Total TLS Settings or disable the feature for a Zone.","operationId":"total-tls-enable-or-disable-total-tls","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"certificate_authority":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-certificate_authority"},"enabled":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-enabled"}},"required":["enabled"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_total_tls_settings_response"}}},"description":"Enable or Disable Total TLS response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_total_tls_settings_response"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Enable or Disable Total TLS response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Enable or Disable Total TLS","tags":["Total TLS"],"x-api-token-group":["SSL and Certificates Write"],"x-cfPermissionsRequired":{"enum":["#ssl:read","#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/activation_check":{"put":{"description":"Triggeres a new activation check for a PENDING Zone. This can be\ntriggered every 5 min for paygo/ent customers, every hour for FREE\nZones.","operationId":"put-zones-zone_id-activation_check","parameters":[{"description":"Zone ID","in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zone-activation_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zone-activation_api-response-single"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/zone-activation_identifier"}},"type":"object"}},"type":"object"}]}}},"description":"Successful Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zone-activation_api-response-common-failure"}]}}},"description":"Client Error"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Rerun the Activation Check","tags":["Zone"]}},"/zones/{zone_id}/addressing/regional_hostnames":{"get":{"description":"List all Regional Hostnames within a zone.","operationId":"dls-account-regional-hostnames-account-list-hostnames","parameters":[{"$ref":"#/components/parameters/dls_zone_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dls_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/dls_regional_hostname_response"},"type":"array"}}}]}}},"description":"List hostnames response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dls_api-response-common-failure"}]}}},"description":"Failure to list hostnames"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"List Regional Hostnames","tags":["DLS Regional Services"],"x-api-token-group":["DNS Read"]},"post":{"description":"Create a new Regional Hostname entry. Cloudflare will only use data centers that are physically located within the chosen region to decrypt and service HTTPS traffic. Learn more about [Regional Services](https://developers.cloudflare.com/data-localization/regional-services/get-started/).","operationId":"dls-account-regional-hostnames-account-create-hostname","parameters":[{"$ref":"#/components/parameters/dls_zone_id"}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"hostname":{"$ref":"#/components/schemas/dls_hostname"},"region_key":{"$ref":"#/components/schemas/dls_region_key"}},"required":["hostname","region_key"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dls_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/dls_regional_hostname_response"}},"type":"object"}]}}},"description":"Create hostname response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dls_api-response-common-failure"}]}}},"description":"Failure to create hostname"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"Create Regional Hostname","tags":["DLS Regional Services"]}},"/zones/{zone_id}/addressing/regional_hostnames/{hostname}":{"delete":{"description":"Delete the region configuration for a specific Regional Hostname.","operationId":"dls-account-regional-hostnames-account-delete-hostname","parameters":[{"$ref":"#/components/parameters/dls_zone_id"},{"$ref":"#/components/parameters/dls_hostname"}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dls_api-response-common"}]}}},"description":"Delete hostname response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dls_api-response-common-failure"}]}}},"description":"Failure to delete hostname"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"Delete Regional Hostname","tags":["DLS Regional Services"]},"get":{"description":"Fetch the configuration for a specific Regional Hostname, within a zone.","operationId":"dls-account-regional-hostnames-account-fetch-hostname","parameters":[{"$ref":"#/components/parameters/dls_zone_id"},{"$ref":"#/components/parameters/dls_hostname"}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/dls_api-response-common"}],"type":"object"},{"properties":{"result":{"$ref":"#/components/schemas/dls_regional_hostname_response"}},"type":"object"}]}}},"description":"Fetch hostname response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dls_api-response-common-failure"}]}}},"description":"Failure to fetch hostname"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"Fetch Regional Hostname","tags":["DLS Regional Services"],"x-api-token-group":["DNS Read"]},"patch":{"description":"Update the configuration for a specific Regional Hostname. Only the region_key of a hostname is mutable.","operationId":"dls-account-regional-hostnames-account-patch-hostname","parameters":[{"$ref":"#/components/parameters/dls_zone_id"},{"$ref":"#/components/parameters/dls_hostname"}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"region_key":{"$ref":"#/components/schemas/dls_region_key"}},"required":["region_key"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dls_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/dls_regional_hostname_response"}},"type":"object"}]}}},"description":"Update hostname response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dls_api-response-common-failure"}]}}},"description":"Failure to update hostname"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"Update Regional Hostname","tags":["DLS Regional Services"]}},"/zones/{zone_id}/analytics/latency":{"get":{"operationId":"argo-analytics-for-zone-argo-analytics-for-a-zone","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/argo-analytics_identifier"}},{"in":"query","name":"bins","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/argo-analytics_response_single"}}},"description":"Argo Analytics for a zone response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/argo-analytics_response_single"},{"$ref":"#/components/schemas/argo-analytics_api-response-common-failure"}]}}},"description":"Argo Analytics for a zone response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Argo Analytics for a zone","tags":["Argo Analytics for Zone"],"x-api-token-group":["Analytics Read"],"x-cfPermissionsRequired":{"enum":["#analytics:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/analytics/latency/colos":{"get":{"operationId":"argo-analytics-for-geolocation-argo-analytics-for-a-zone-at-different-po-ps","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/argo-analytics_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/argo-analytics_response_single"}}},"description":"Argo Analytics for a zone at different PoPs response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/argo-analytics_response_single"},{"$ref":"#/components/schemas/argo-analytics_api-response-common-failure"}]}}},"description":"Argo Analytics for a zone at different PoPs response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Argo Analytics for a zone at different PoPs","tags":["Argo Analytics for Geolocation"],"x-cfPermissionsRequired":{"enum":["#analytics:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/api_gateway/configuration":{"get":{"operationId":"api-shield-settings-retrieve-information-about-specific-configuration-properties","parameters":[{"in":"query","name":"properties","schema":{"$ref":"#/components/schemas/api-shield_properties"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_configuration-single-response"}}},"description":"Retrieve information about specific configuration properties response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Retrieve information about specific configuration properties response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Retrieve information about specific configuration properties","tags":["API Shield Settings"],"x-api-token-group":["Account API Gateway Read","Domain API Gateway Read"]},"parameters":[{"$ref":"#/components/parameters/api-shield_zone_id"}],"put":{"operationId":"api-shield-settings-set-configuration-properties","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_configuration"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common"}}},"description":"Set configuration properties response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Set configuration properties response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Set configuration properties","tags":["API Shield Settings"]}},"/zones/{zone_id}/api_gateway/discovery":{"get":{"description":"Retrieve the most up to date view of discovered operations, rendered as OpenAPI schemas","operationId":"api-shield-api-discovery-retrieve-discovered-operations-on-a-zone-as-openapi","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_schema_response_discovery"}}},"description":"Retrieve discovered operations on a zone, rendered as OpenAPI schemas response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/api-shield_schema_response_discovery"},{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}]}}},"description":"Retrieve discovered operations on a zone, rendered as OpenAPI schemas response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Retrieve discovered operations on a zone rendered as OpenAPI schemas","tags":["API Shield API Discovery"],"x-api-token-group":["Account API Gateway Read","Domain API Gateway Read"]},"parameters":[{"$ref":"#/components/parameters/api-shield_zone_id"}]},"/zones/{zone_id}/api_gateway/discovery/operations":{"get":{"description":"Retrieve the most up to date view of discovered operations","operationId":"api-shield-api-discovery-retrieve-discovered-operations-on-a-zone","parameters":[{"$ref":"#/components/parameters/api-shield_page"},{"$ref":"#/components/parameters/api-shield_per_page"},{"$ref":"#/components/parameters/api-shield_host_parameter"},{"$ref":"#/components/parameters/api-shield_method_parameter"},{"$ref":"#/components/parameters/api-shield_endpoint_parameter"},{"$ref":"#/components/parameters/api-shield_direction_parameter"},{"$ref":"#/components/parameters/api-shield_order_parameter"},{"$ref":"#/components/parameters/api-shield_diff_parameter"},{"$ref":"#/components/parameters/api-shield_api_discovery_origin_parameter"},{"$ref":"#/components/parameters/api-shield_api_discovery_state_parameter"}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/api-shield_discovery_operation"},"type":"array"}},"required":["result"],"type":"object"}]}}},"description":"Retrieve discovered operations on a zone response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}]}}},"description":"Retrieve discovered operations on a zone response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Retrieve discovered operations on a zone","tags":["API Shield API Discovery"]},"parameters":[{"$ref":"#/components/parameters/api-shield_zone_id"}],"patch":{"description":"Update the `state` on one or more discovered operations","operationId":"api-shield-api-patch-discovered-operations","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api_discovery_patch_multiple_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_patch_discoveries_response"}}},"description":"Patch discovered operations response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Patch discovered operations response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Patch discovered operations","tags":["API Shield API Discovery"]}},"/zones/{zone_id}/api_gateway/discovery/operations/{operation_id}":{"parameters":[{"$ref":"#/components/parameters/api-shield_zone_id"},{"$ref":"#/components/parameters/api-shield_parameters-operation_id"}],"patch":{"description":"Update the `state` on a discovered operation","operationId":"api-shield-api-patch-discovered-operation","requestBody":{"content":{"application/json":{"schema":{"properties":{"state":{"allOf":[{"$ref":"#/components/schemas/api-shield_api_discovery_state_patch"}]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_patch_discovery_response"}}},"description":"Patch discovered operation response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Patch discovered operation response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Patch discovered operation","tags":["API Shield API Discovery"]}},"/zones/{zone_id}/api_gateway/expression-template/fallthrough":{"parameters":[{"$ref":"#/components/parameters/api-shield_zone_id"}],"post":{"operationId":"api-shield-expression-templates-fallthrough","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_request_expression_templates_fallthrough"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/api-shield_response_expression_templates_fallthrough"}},"required":["result"],"type":"object"}]}}},"description":"Generate fallthrough WAF expression template response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Generate fallthrough WAF expression template failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Generate fallthrough WAF expression template from a set of API hosts","tags":["API Shield WAF Expression Templates"]}},"/zones/{zone_id}/api_gateway/operations":{"delete":{"operationId":"api-shield-endpoint-management-delete-multiple-operations","requestBody":{"content":{"application/json":{"schema":{"example":[{"operation_id":"b17c8043-99a0-4202-b7d9-8f7cdbee02cd"},{"operation_id":"3818d821-5901-4147-a474-f5f5aec1d54e"}],"items":{"$ref":"#/components/schemas/api-shield_object-with-operation-id"},"type":"array","uniqueItems":true}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common"}}},"description":"Delete multiple operations response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Delete multiple operations response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete multiple operations","tags":["API Shield Endpoint Management"]},"get":{"operationId":"api-shield-endpoint-management-retrieve-information-about-all-operations-on-a-zone","parameters":[{"$ref":"#/components/parameters/api-shield_page"},{"$ref":"#/components/parameters/api-shield_per_page"},{"in":"query","name":"order","schema":{"description":"Field to order by. When requesting a feature, the feature keys are available for ordering as well, e.g., `thresholds.suggested_threshold`.","enum":["method","host","endpoint","thresholds.$key"],"example":"method","type":"string"}},{"$ref":"#/components/parameters/api-shield_direction_parameter"},{"$ref":"#/components/parameters/api-shield_host_parameter"},{"$ref":"#/components/parameters/api-shield_method_parameter"},{"$ref":"#/components/parameters/api-shield_endpoint_parameter"},{"$ref":"#/components/parameters/api-shield_operation_feature_parameter"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_multiple-operation-response-paginated"}}},"description":"Retrieve information about all operations on a zone response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Retrieve information about all operations on a zone response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Retrieve information about all operations on a zone","tags":["API Shield Endpoint Management"],"x-api-token-group":["Account API Gateway Read","Domain API Gateway Read"]},"parameters":[{"$ref":"#/components/parameters/api-shield_zone_id"}],"post":{"description":"Add one or more operations to a zone. Endpoints can contain path variables. Host, method, endpoint will be normalized to a canoncial form when creating an operation and must be unique on the zone. Inserting an operation that matches an existing one will return the record of the already existing operation and update its last_updated date.","operationId":"api-shield-endpoint-management-add-operations-to-a-zone","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/api-shield_basic_operation"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_multiple-operation-response"}}},"description":"Add operations to a zone response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Add operations to a zone response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Add operations to a zone","tags":["API Shield Endpoint Management"]}},"/zones/{zone_id}/api_gateway/operations/schema_validation":{"parameters":[{"$ref":"#/components/parameters/api-shield_zone_id"}],"patch":{"description":"Updates multiple operation-level schema validation settings on the zone","operationId":"api-shield-schema-validation-update-multiple-operation-level-settings","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_operation_schema_validation_settings_multiple_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/api-shield_operation_schema_validation_settings_multiple_request"}},"required":["result"],"type":"object"}]}}},"description":"Update multiple operation-level schema validation settings response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}]}}},"description":"Update multiple operation-level schema validation settings response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update multiple operation-level schema validation settings","tags":["API Shield Schema Validation 2.0"]}},"/zones/{zone_id}/api_gateway/operations/{operation_id}":{"delete":{"operationId":"api-shield-endpoint-management-delete-an-operation","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common"}}},"description":"Delete an operation response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Delete an operation response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete an operation","tags":["API Shield Endpoint Management"]},"get":{"operationId":"api-shield-endpoint-management-retrieve-information-about-an-operation","parameters":[{"$ref":"#/components/parameters/api-shield_operation_feature_parameter"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_single-operation-response"}}},"description":"Retrieve information about an operation response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Retrieve information about an operation response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Retrieve information about an operation","tags":["API Shield Endpoint Management"]},"parameters":[{"$ref":"#/components/parameters/api-shield_zone_id"},{"$ref":"#/components/parameters/api-shield_operation_id"}]},"/zones/{zone_id}/api_gateway/operations/{operation_id}/schema_validation":{"get":{"description":"Retrieves operation-level schema validation settings on the zone","operationId":"api-shield-schema-validation-retrieve-operation-level-settings","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_operation_schema_validation_settings"}}},"description":"Operation-level schema validation settings response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Operation-level schema validation settings response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Retrieve operation-level schema validation settings","tags":["API Shield Schema Validation 2.0"]},"parameters":[{"$ref":"#/components/parameters/api-shield_zone_id"},{"$ref":"#/components/parameters/api-shield_operation_id"}],"put":{"description":"Updates operation-level schema validation settings on the zone","operationId":"api-shield-schema-validation-update-operation-level-settings","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_operation_schema_validation_settings"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_operation_schema_validation_settings"}}},"description":"Update operation-level schema validation settings response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Update operation-level schema validation settings response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update operation-level schema validation settings","tags":["API Shield Schema Validation 2.0"]}},"/zones/{zone_id}/api_gateway/schemas":{"get":{"operationId":"api-shield-endpoint-management-retrieve-operations-and-features-as-open-api-schemas","parameters":[{"in":"query","name":"host","schema":{"description":"Receive schema only for the given host(s).","items":{"example":"www.example.com","type":"string"},"type":"array","uniqueItems":true}},{"$ref":"#/components/parameters/api-shield_operation_feature_parameter"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_schema-response-with-thresholds"}}},"description":"Retrieve operations and features as OpenAPI schemas response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Retrieve operations and features as OpenAPI schemas response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Retrieve operations and features as OpenAPI schemas","tags":["API Shield Endpoint Management"],"x-api-token-group":["Account API Gateway Read","Domain API Gateway Read"]},"parameters":[{"$ref":"#/components/parameters/api-shield_zone_id"}]},"/zones/{zone_id}/api_gateway/settings/schema_validation":{"get":{"description":"Retrieves zone level schema validation settings currently set on the zone","operationId":"api-shield-schema-validation-retrieve-zone-level-settings","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_zone_schema_validation_settings"}}},"description":"Zone level schema validation settings response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Zone level schema validation settings response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Retrieve zone level schema validation settings","tags":["API Shield Schema Validation 2.0"],"x-api-token-group":["Account API Gateway Read","Domain API Gateway Read"]},"parameters":[{"$ref":"#/components/parameters/api-shield_zone_id"}],"patch":{"description":"Updates zone level schema validation settings on the zone","operationId":"api-shield-schema-validation-patch-zone-level-settings","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_zone_schema_validation_settings_patch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_zone_schema_validation_settings"}}},"description":"Update zone level schema validation settings response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Update zone level schema validation settings response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update zone level schema validation settings","tags":["API Shield Schema Validation 2.0"]},"put":{"description":"Updates zone level schema validation settings on the zone","operationId":"api-shield-schema-validation-update-zone-level-settings","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_zone_schema_validation_settings_put"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_zone_schema_validation_settings"}}},"description":"Update zone level schema validation settings response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Update zone level schema validation settings response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update zone level schema validation settings","tags":["API Shield Schema Validation 2.0"]}},"/zones/{zone_id}/api_gateway/user_schemas":{"get":{"operationId":"api-shield-schema-validation-retrieve-information-about-all-schemas","parameters":[{"$ref":"#/components/parameters/api-shield_page"},{"$ref":"#/components/parameters/api-shield_per_page"},{"$ref":"#/components/parameters/api-shield_omit_source"},{"in":"query","name":"validation_enabled","schema":{"$ref":"#/components/schemas/api-shield_validation_enabled"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/api-shield_public_schema"},"type":"array"}},"required":["result"],"type":"object"}]}}},"description":"Retrieve information about all schemas on a zone response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}]}}},"description":"Retrieve information about all schemas on a zone response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Retrieve information about all schemas on a zone","tags":["API Shield Schema Validation 2.0"],"x-api-token-group":["Account API Gateway Read","Domain API Gateway Read"]},"parameters":[{"$ref":"#/components/parameters/api-shield_zone_id"}],"post":{"operationId":"api-shield-schema-validation-post-schema","requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"description":"Schema file bytes","format":"binary","type":"string"},"kind":{"$ref":"#/components/schemas/api-shield_kind"},"name":{"description":"Name of the schema","example":"petstore schema","type":"string"},"validation_enabled":{"description":"Flag whether schema is enabled for validation.","enum":["true","false"],"type":"string"}},"required":["file","kind"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/api-shield_schema_upload_response"}},"required":["result"],"type":"object"}]}}},"description":"Upload a schema response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_schema_upload_failure"}}},"description":"Upload a schema response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Upload a schema to a zone","tags":["API Shield Schema Validation 2.0"]}},"/zones/{zone_id}/api_gateway/user_schemas/hosts":{"get":{"operationId":"api-shield-schema-validation-retrieve-user-schema-hosts","responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/api-shield_response_user_schemas_hosts"},"type":"array"}}}]}}},"description":"Retrieve schema hosts in a zone response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Retrieve schema hosts in a zone response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Retrieve schema hosts in a zone","tags":["API Shield Schema Validation 2.0"]},"parameters":[{"$ref":"#/components/parameters/api-shield_zone_id"},{"$ref":"#/components/parameters/api-shield_page"},{"$ref":"#/components/parameters/api-shield_per_page"}]},"/zones/{zone_id}/api_gateway/user_schemas/{schema_id}":{"delete":{"operationId":"api-shield-schema-delete-a-schema","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-single"}}},"description":"Delete a schema response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Delete a schema response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete a schema","tags":["API Shield Schema Validation 2.0"]},"get":{"operationId":"api-shield-schema-validation-retrieve-information-about-specific-schema","parameters":[{"$ref":"#/components/parameters/api-shield_omit_source"}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/api-shield_public_schema"}},"required":["result"],"type":"object"}]}}},"description":"Retrieve information about a specific schema on a zone response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Retrieve information about a specific schema zone response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Retrieve information about a specific schema on a zone","tags":["API Shield Schema Validation 2.0"]},"parameters":[{"$ref":"#/components/parameters/api-shield_zone_id"},{"$ref":"#/components/parameters/api-shield_schema_id"}],"patch":{"operationId":"api-shield-schema-validation-enable-validation-for-a-schema","requestBody":{"content":{"application/json":{"schema":{"properties":{"validation_enabled":{"allOf":[{"$ref":"#/components/schemas/api-shield_validation_enabled"},{"enum":[true]}]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/api-shield_public_schema"}},"required":["result"],"type":"object"}]}}},"description":"Enable validation for a schema response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Enable validation for a schema response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Enable validation for a schema","tags":["API Shield Schema Validation 2.0"]}},"/zones/{zone_id}/api_gateway/user_schemas/{schema_id}/operations":{"get":{"description":"Retrieves all operations from the schema. Operations that already exist in API Shield Endpoint Management will be returned as full operations.","operationId":"api-shield-schema-validation-extract-operations-from-schema","parameters":[{"$ref":"#/components/parameters/api-shield_operation_feature_parameter"},{"$ref":"#/components/parameters/api-shield_host_parameter"},{"$ref":"#/components/parameters/api-shield_method_parameter"},{"$ref":"#/components/parameters/api-shield_endpoint_parameter"},{"$ref":"#/components/parameters/api-shield_page"},{"$ref":"#/components/parameters/api-shield_per_page"},{"description":"Filter results by whether operations exist in API Shield Endpoint Management or not. `new` will just return operations from the schema that do not exist in API Shield Endpoint Management. `existing` will just return operations from the schema that already exist in API Shield Endpoint Management.","in":"query","name":"operation_status","schema":{"enum":["new","existing"],"example":"new","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/api-shield_api-response-collection"},{"properties":{"result":{"items":{"anyOf":[{"$ref":"#/components/schemas/api-shield_operation"},{"$ref":"#/components/schemas/api-shield_basic_operation"}]},"type":"array"}},"required":["result"],"type":"object"}]}}},"description":"Retrieve all operations from a schema response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api-shield_api-response-common-failure"}}},"description":"Retrieve all operations from a schema response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Retrieve all operations from a schema.","tags":["API Shield Schema Validation 2.0"]},"parameters":[{"$ref":"#/components/parameters/api-shield_schema_id"},{"$ref":"#/components/parameters/api-shield_zone_id"}]},"/zones/{zone_id}/argo/smart_routing":{"get":{"operationId":"argo-smart-routing-get-argo-smart-routing-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/argo-config_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/argo-config_response_single"}}},"description":"Get Argo Smart Routing setting response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/argo-config_response_single"},{"$ref":"#/components/schemas/argo-config_api-response-common-failure"}]}}},"description":"Get Argo Smart Routing setting response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Argo Smart Routing setting","tags":["Argo Smart Routing"],"x-api-token-group":["Zone Settings Write","Zone Settings Read"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Updates enablement of Argo Smart Routing.","operationId":"argo-smart-routing-patch-argo-smart-routing-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/argo-config_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/argo-config_patch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/argo-config_response_single"}}},"description":"Patch Argo Smart Routing setting response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/argo-config_response_single"},{"$ref":"#/components/schemas/argo-config_api-response-common-failure"}]}}},"description":"Patch Argo Smart Routing setting response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Patch Argo Smart Routing setting","tags":["Argo Smart Routing"],"x-api-token-group":["Zone Settings Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read","#zone_settings:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/argo/tiered_caching":{"get":{"operationId":"tiered-caching-get-tiered-caching-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cache_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cache_response_single"}}},"description":"Get Tiered Caching setting response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cache_response_single"},{"$ref":"#/components/schemas/cache_api-response-common-failure"}]}}},"description":"Get Tiered Caching setting response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Tiered Caching setting","tags":["Tiered Caching"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Updates enablement of Tiered Caching","operationId":"tiered-caching-patch-tiered-caching-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cache_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cache_patch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cache_response_single"}}},"description":"Patch Tiered Caching setting response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cache_response_single"},{"$ref":"#/components/schemas/cache_api-response-common-failure"}]}}},"description":"Patch Tiered Caching setting response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Patch Tiered Caching setting","tags":["Tiered Caching"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read","#zone_settings:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/available_plans":{"get":{"description":"Lists available plans the zone can subscribe to.","operationId":"zone-rate-plan-list-available-plans","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/bill-subs-api_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/bill-subs-api_available-rate-plan"},"type":"array"}}}]}}},"description":"List Available Plans response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_api-response-collection"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/bill-subs-api_available-rate-plan"},"type":"array"}}}]},{"$ref":"#/components/schemas/bill-subs-api_api-response-common-failure"}]}}},"description":"List Available Plans response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Available Plans","tags":["Zone Rate Plan"],"x-api-token-group":["Billing Write","Billing Read"],"x-cfPermissionsRequired":{"enum":["#billing:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/available_plans/{plan_identifier}":{"get":{"description":"Details of the available plan that the zone can subscribe to.","operationId":"zone-rate-plan-available-plan-details","parameters":[{"in":"path","name":"plan_identifier","required":true,"schema":{"$ref":"#/components/schemas/bill-subs-api_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/bill-subs-api_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/bill-subs-api_available-rate-plan"}}}]}}},"description":"Available Plan Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/bill-subs-api_available-rate-plan"}}}]},{"$ref":"#/components/schemas/bill-subs-api_api-response-common-failure"}]}}},"description":"Available Plan Details response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Available Plan Details","tags":["Zone Rate Plan"],"x-api-token-group":["Billing Write","Billing Read"],"x-cfPermissionsRequired":{"enum":["#billing:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/available_rate_plans":{"get":{"description":"Lists all rate plans the zone can subscribe to.","operationId":"zone-rate-plan-list-available-rate-plans","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/bill-subs-api_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bill-subs-api_plan_response_collection"}}},"description":"List Available Rate Plans response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/bill-subs-api_plan_response_collection"},{"$ref":"#/components/schemas/bill-subs-api_api-response-common-failure"}]}}},"description":"List Available Rate Plans response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Available Rate Plans","tags":["Zone Rate Plan"],"x-api-token-group":["Billing Write","Billing Read"],"x-cfPermissionsRequired":{"enum":["#billing:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/bot_management":{"get":{"description":"Retrieve a zone's Bot Management Config","operationId":"bot-management-for-a-zone-get-config","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/bot-management_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bot-management_bot_management_response_body"}}},"description":"Bot Management config response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/bot-management_bot_management_response_body"},{"$ref":"#/components/schemas/bot-management_api-response-common-failure"}]}}},"description":"Bot Management config response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Zone Bot Management Config","tags":["Bot Settings"],"x-api-token-group":["Bot Management Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Updates the Bot Management configuration for a zone.\n\nThis API is used to update:\n- **Bot Fight Mode**\n- **Super Bot Fight Mode**\n- **Bot Management for Enterprise**\n\nSee [Bot Plans](https://developers.cloudflare.com/bots/plans/) for more information on the different plans\n","operationId":"bot-management-for-a-zone-update-config","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/bot-management_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bot-management_config_single"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bot-management_bot_management_response_body"}}},"description":"Update Bot Management response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/bot-management_bot_management_response_body"},{"$ref":"#/components/schemas/bot-management_api-response-common-failure"}]}}},"description":"Update Bot Management response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update Zone Bot Management Config","tags":["Bot Settings"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/cache/cache_reserve":{"get":{"description":"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.","operationId":"zone-cache-settings-get-cache-reserve-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cache_identifier"}}],"responses":{"200":{"content":{"application/json":{"examples":{"off":{"$ref":"#/components/examples/cache_cache_reserve_off"}},"schema":{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_cache_reserve_response_value"}]}}},"description":"Get Cache Reserve setting response"},"4XX":{"content":{"application/json":{"examples":{"Error":{"$ref":"#/components/examples/cache_dummy_error_response"}},"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_cache_reserve_response_value"}]},{"$ref":"#/components/schemas/cache_api-response-common-failure"}]}}},"description":"Get Cache Reserve setting response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Cache Reserve setting","tags":["Zone Cache Settings"],"x-api-token-group":["Zone Settings Write","Zone Settings Read","Zone Read","Zone Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"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.","operationId":"zone-cache-settings-change-cache-reserve-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cache_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"value":{"$ref":"#/components/schemas/cache_cache_reserve_value"}},"required":["value"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"examples":{"off":{"$ref":"#/components/examples/cache_cache_reserve_off"}},"schema":{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_cache_reserve_response_value"}]}}},"description":"Change Cache Reserve setting response"},"4XX":{"content":{"application/json":{"examples":{"Denied":{"$ref":"#/components/examples/cache_cache_reserve_denied_clearing"}},"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_cache_reserve_response_value"}]},{"$ref":"#/components/schemas/cache_api-response-common-failure"}]}}},"description":"Change Cache Reserve setting response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Change Cache Reserve setting","tags":["Zone Cache Settings"],"x-api-token-group":["Zone Settings Write","Zone Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/cache/cache_reserve_clear":{"get":{"description":"You can use Cache Reserve Clear to clear your Cache Reserve, but you must first disable Cache Reserve. In most cases, this will be accomplished within 24 hours. You cannot re-enable Cache Reserve while this process is ongoing. Keep in mind that you cannot undo or cancel this operation.","operationId":"zone-cache-settings-get-cache-reserve-clear","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cache_identifier"}}],"responses":{"200":{"content":{"application/json":{"examples":{"Completed":{"$ref":"#/components/examples/cache_cache_reserve_clear_completed"},"In-progress":{"$ref":"#/components/examples/cache_cache_reserve_clear_in_progress"}},"schema":{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_cache_reserve_clear_response_value"}]}}},"description":"Get Cache Reserve Clear response"},"4XX":{"content":{"application/json":{"examples":{"Not found":{"$ref":"#/components/examples/cache_cache_reserve_clear_not_found"}},"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_cache_reserve_clear_response_value"}]},{"$ref":"#/components/schemas/cache_api-response-common-failure"}]}}},"description":"Get Cache Reserve Clear failure response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Cache Reserve Clear","tags":["Zone Cache Settings"],"x-api-token-group":["Zone Settings Write","Zone Settings Read","Zone Read","Zone Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"You can use Cache Reserve Clear to clear your Cache Reserve, but you must first disable Cache Reserve. In most cases, this will be accomplished within 24 hours. You cannot re-enable Cache Reserve while this process is ongoing. Keep in mind that you cannot undo or cancel this operation.","operationId":"zone-cache-settings-start-cache-reserve-clear","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cache_identifier"}}],"requestBody":{"content":{"application/json":{"example":"{}"}},"description":"The request body is currently not used.","required":true},"responses":{"200":{"content":{"application/json":{"examples":{"In-progress":{"$ref":"#/components/examples/cache_cache_reserve_clear_in_progress"}},"schema":{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_cache_reserve_clear_response_value"}]}}},"description":"Start Cache Reserve Clear response"},"4XX":{"content":{"application/json":{"examples":{"Rejected":{"$ref":"#/components/examples/cache_cache_reserve_clear_rejected_cr_on"}},"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_cache_reserve_clear_response_value"}]},{"$ref":"#/components/schemas/cache_api-response-common-failure"}]}}},"description":"Start Cache Reserve Clear failure response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Start Cache Reserve Clear","tags":["Zone Cache Settings"],"x-api-token-group":["Zone Settings Write","Zone Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/cache/origin_post_quantum_encryption":{"get":{"description":"Instructs Cloudflare to use Post-Quantum (PQ) key agreement algorithms when connecting to your origin. Preferred instructs Cloudflare to opportunistically send a Post-Quantum keyshare in the first message to the origin (for fastest connections when the origin supports and prefers PQ), supported means that PQ algorithms are advertised but only used when requested by the origin, and off means that PQ algorithms are not advertised","operationId":"zone-cache-settings-get-origin-post-quantum-encryption-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cache_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_origin_post_quantum_encryption_value"}]}}},"description":"Get Origin Post-Quantum Encryption setting response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/cache_origin_post_quantum_encryption_value"}]},{"$ref":"#/components/schemas/cache_api-response-common-failure"}]}}},"description":"Get Origin Post-Quantum Encryption setting response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Origin Post-Quantum Encryption setting","tags":["Origin Post-Quantum"],"x-api-token-group":["Zone Settings Write","Zone Settings Read","Zone Read","Zone Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Instructs Cloudflare to use Post-Quantum (PQ) key agreement algorithms when connecting to your origin. Preferred instructs Cloudflare to opportunistically send a Post-Quantum keyshare in the first message to the origin (for fastest connections when the origin supports and prefers PQ), supported means that PQ algorithms are advertised but only used when requested by the origin, and off means that PQ algorithms are not advertised","operationId":"zone-cache-settings-change-origin-post-quantum-encryption-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cache_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"value":{"$ref":"#/components/schemas/cache_origin_post_quantum_encryption_value"}},"required":["value"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_origin_post_quantum_encryption_value"}]}}},"description":"Change Origin Post-Quantum Encryption setting response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/cache_origin_post_quantum_encryption_value"}]},{"$ref":"#/components/schemas/cache_api-response-common-failure"}]}}},"description":"Change Origin Post-Quantum Encryption setting response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Change Origin Post-Quantum Encryption setting","tags":["Origin Post-Quantum"],"x-api-token-group":["Zone Settings Write","Zone Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/cache/regional_tiered_cache":{"get":{"description":"Instructs Cloudflare to check a regional hub data center on the way to your upper tier. This can help improve performance for smart and custom tiered cache topologies.","operationId":"zone-cache-settings-get-regional-tiered-cache-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cache_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_regional_tiered_cache_response_value"}]}}},"description":"Get Regional Tiered Cache setting response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_regional_tiered_cache_response_value"}]},{"$ref":"#/components/schemas/cache_api-response-common-failure"}]}}},"description":"Get Regional Tiered Cache setting response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Regional Tiered Cache setting","tags":["Zone Cache Settings"],"x-api-token-group":["Zone Settings Write","Zone Settings Read","Zone Read","Zone Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"patch":{"description":"Instructs Cloudflare to check a regional hub data center on the way to your upper tier. This can help improve performance for smart and custom tiered cache topologies.","operationId":"zone-cache-settings-change-regional-tiered-cache-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cache_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"value":{"$ref":"#/components/schemas/cache_regional_tiered_cache_value"}},"required":["value"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_regional_tiered_cache_response_value"}]}}},"description":"Change Regional Tiered Cache setting response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_regional_tiered_cache_response_value"}]},{"$ref":"#/components/schemas/cache_api-response-common-failure"}]}}},"description":"Change Regional Tiered Cache setting response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Change Regional Tiered Cache setting","tags":["Zone Cache Settings"],"x-api-token-group":["Zone Settings Write","Zone Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/cache/tiered_cache_smart_topology_enable":{"delete":{"description":"Remvoves enablement of Smart Tiered Cache","operationId":"smart-tiered-cache-delete-smart-tiered-cache-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cache_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cache_response_single"}}},"description":"Delete Smart Tiered Cache setting response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cache_response_single"},{"$ref":"#/components/schemas/cache_api-response-common-failure"}]}}},"description":"Delete Smart Tiered Cache setting response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Smart Tiered Cache setting","tags":["Smart Tiered Cache"],"x-api-token-group":["Zone Settings Write","Zone Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"operationId":"smart-tiered-cache-get-smart-tiered-cache-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cache_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cache_response_single"}}},"description":"Get Smart Tiered Cache setting response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cache_response_single"},{"$ref":"#/components/schemas/cache_api-response-common-failure"}]}}},"description":"Get Smart Tiered Cache setting response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Smart Tiered Cache setting","tags":["Smart Tiered Cache"],"x-api-token-group":["Zone Settings Write","Zone Settings Read","Zone Read","Zone Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Updates enablement of Tiered Cache","operationId":"smart-tiered-cache-patch-smart-tiered-cache-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cache_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cache_smart_tiered_cache_patch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cache_response_single"}}},"description":"Patch Smart Tiered Cache setting response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cache_response_single"},{"$ref":"#/components/schemas/cache_api-response-common-failure"}]}}},"description":"Patch Smart Tiered Cache setting response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Patch Smart Tiered Cache setting","tags":["Smart Tiered Cache"],"x-api-token-group":["Zone Settings Write","Zone Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read","#zone_settings:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/cache/variants":{"delete":{"description":"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.","operationId":"zone-cache-settings-delete-variants-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cache_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"properties":{"result":{"$ref":"#/components/schemas/cache_variants"}}}]}}},"description":"Delete variants setting response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"properties":{"result":{"$ref":"#/components/schemas/cache_variants"}}}]},{"$ref":"#/components/schemas/cache_api-response-common-failure"}]}}},"description":"Delete variants setting response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete variants setting","tags":["Zone Cache Settings"],"x-api-token-group":["Zone Settings Write","Zone Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"get":{"description":"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.","operationId":"zone-cache-settings-get-variants-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cache_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_variants_response_value"}]}}},"description":"Get variants setting response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_variants_response_value"}]},{"$ref":"#/components/schemas/cache_api-response-common-failure"}]}}},"description":"Get variants setting response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get variants setting","tags":["Zone Cache Settings"],"x-api-token-group":["Zone Settings Write","Zone Settings Read","Zone Read","Zone Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"patch":{"description":"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.","operationId":"zone-cache-settings-change-variants-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cache_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"value":{"$ref":"#/components/schemas/cache_variants_value"}},"required":["value"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_variants_response_value"}]}}},"description":"Change variants setting response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_variants_response_value"}]},{"$ref":"#/components/schemas/cache_api-response-common-failure"}]}}},"description":"Change variants setting response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Change variants setting","tags":["Zone Cache Settings"],"x-api-token-group":["Zone Settings Write","Zone Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_id}/certificate_authorities/hostname_associations":{"get":{"description":"List Hostname Associations","operationId":"client-certificate-for-a-zone-list-hostname-associations","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"query","name":"mtls_certificate_id","schema":{"description":"The UUID to match against for a certificate that was uploaded to the mTLS Certificate Management endpoint. If no mtls_certificate_id is given, the results will be the hostnames associated to your active Cloudflare Managed CA.","example":"b2134436-2555-4acf-be5b-26c48136575e","maxLength":36,"minLength":36,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname_associations_response"}}},"description":"List Hostname Associations Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"List Hostname Associations Response Failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Hostname Associations","tags":["API Shield Client Certificates for a Zone"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Replace Hostname Associations","operationId":"client-certificate-for-a-zone-put-hostname-associations","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname_association"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname_associations_response"}}},"description":"Replace Hostname Associations Response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}}},"description":"Replace Hostname Associations Response Failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Replace Hostname Associations","tags":["API Shield Client Certificates for a Zone"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/client_certificates":{"get":{"description":"List all of your Zone's API Shield mTLS Client Certificates by Status and/or using Pagination","operationId":"client-certificate-for-a-zone-list-client-certificates","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"query","name":"status","schema":{"description":"Client Certitifcate Status to filter results by.","enum":["all","active","pending_reactivation","pending_revocation","revoked"],"example":"all"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":20,"description":"Number of records per page.","maximum":50,"minimum":5,"type":"number"}},{"in":"query","name":"limit","schema":{"description":"Limit to the number of records returned.","example":10,"type":"integer"}},{"in":"query","name":"offset","schema":{"description":"Offset the results","example":10,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_client_certificate_response_collection"}}},"description":"List Client Certificates Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"List Client Certificates Response Failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Client Certificates","tags":["API Shield Client Certificates for a Zone"],"x-api-token-group":["SSL and Certificates Write","SSL and Certificates Read"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Create a new API Shield mTLS Client Certificate","operationId":"client-certificate-for-a-zone-create-client-certificate","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"csr":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-csr"},"validity_days":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-validity_days"}},"required":["csr","validity_days"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_client_certificate_response_single"}}},"description":"Create Client Certificate Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_client_certificate_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Create Client Certificate Response Failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create Client Certificate","tags":["API Shield Client Certificates for a Zone"],"x-api-token-group":["SSL and Certificates Write"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/client_certificates/{client_certificate_id}":{"delete":{"description":"Set a API Shield mTLS Client Certificate to pending_revocation status for processing to revoked status.","operationId":"client-certificate-for-a-zone-delete-client-certificate","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"client_certificate_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_client_certificate_response_single"}}},"description":"Revoke Client Certificate Response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}}},"description":"Revoke Client Certificate Response Failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Revoke Client Certificate","tags":["API Shield Client Certificates for a Zone"],"x-api-token-group":["SSL and Certificates Write"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Get Details for a single mTLS API Shield Client Certificate","operationId":"client-certificate-for-a-zone-client-certificate-details","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"client_certificate_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_client_certificate_response_single"}}},"description":"Client Certificate Details Response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}}},"description":"Client Certificate Details Response Failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Client Certificate Details","tags":["API Shield Client Certificates for a Zone"],"x-api-token-group":["SSL and Certificates Write","SSL and Certificates Read"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"If a API Shield mTLS Client Certificate is in a pending_revocation state, you may reactivate it with this endpoint.","operationId":"client-certificate-for-a-zone-edit-client-certificate","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"client_certificate_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_client_certificate_response_single"}}},"description":"Reactivate Client Certificate Response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}}},"description":"Reactivate Client Certificate Response Failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Reactivate Client Certificate","tags":["API Shield Client Certificates for a Zone"],"x-api-token-group":["SSL and Certificates Write"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/cloud_connector/rules":{"get":{"operationId":"zone-cloud-connector-rules","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cloud-connector_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloud-connector_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/cloud-connector_rules"}},"type":"object"}],"type":"object"}}},"description":"Cloud Connector rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloud-connector_api-response-common-failure"}]}}},"description":"Cloud Connector response failure"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloud-connector_api-response-common-failure"}]}}},"description":"Cloud Connector response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Rules","tags":["Zone Cloud Connector Rules GET"],"x-api-token-group":["Cloud Connector Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"operationId":"zone-cloud-conenctor-rules-put","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cloud-connector_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloud-connector_rules"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloud-connector_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/cloud-connector_rules"}},"type":"object"}],"type":"object"}}},"description":"Cloud Connector rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloud-connector_api-response-common-failure"}]}}},"description":"Cloud Connector response failure"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cloud-connector_api-response-common-failure"}]}}},"description":"Cloud Connector response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Put Rules","tags":["Zone Cloud Connector Rules PUT"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/custom_certificates":{"get":{"description":"List, search, and filter all of your custom SSL certificates. The higher priority will break ties across overlapping 'legacy_custom' certificates, but 'legacy_custom' certificates will always supercede 'sni_custom' certificates.","operationId":"custom-ssl-for-a-zone-list-ssl-configurations","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":20,"description":"Number of zones per page.","maximum":50,"minimum":5,"type":"number"}},{"in":"query","name":"match","schema":{"default":"all","description":"Whether to match all search requirements or at least one (any).","enum":["any","all"],"type":"string"}},{"in":"query","name":"status","schema":{"description":"Status of the zone's custom SSL.","enum":["active","expired","deleted","pending","initializing"],"example":"active","readOnly":true}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_response_collection"}}},"description":"List SSL Configurations response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_response_collection"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"List SSL Configurations response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List SSL Configurations","tags":["Custom SSL for a Zone"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Upload a new SSL certificate for a zone.","operationId":"custom-ssl-for-a-zone-create-ssl-configuration","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"bundle_method":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_bundle_method"},"certificate":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate"},"geo_restrictions":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_geo_restrictions"},"policy":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_policy"},"private_key":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_private_key"},"type":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_type"}},"required":["certificate","private_key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_response_single"}}},"description":"Create SSL Configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Create SSL Configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create SSL Configuration","tags":["Custom SSL for a Zone"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/custom_certificates/prioritize":{"put":{"description":"If a zone has multiple SSL certificates, you can set the order in which they should be used during a request. The higher priority will break ties across overlapping 'legacy_custom' certificates.","operationId":"custom-ssl-for-a-zone-re-prioritize-ssl-certificates","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"certificates":{"description":"Array of ordered certificates.","example":[{"id":"5a7805061c76ada191ed06f989cc3dac","priority":2},{"id":"9a7806061c88ada191ed06f989cc3dac","priority":1}],"items":{"properties":{"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"},"priority":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_priority"}},"type":"object"},"type":"array"}},"required":["certificates"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_response_collection"}}},"description":"Re-prioritize SSL Certificates response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_response_collection"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Re-prioritize SSL Certificates response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Re-prioritize SSL Certificates","tags":["Custom SSL for a Zone"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/custom_certificates/{custom_certificate_id}":{"delete":{"description":"Remove a SSL certificate from a zone.","operationId":"custom-ssl-for-a-zone-delete-ssl-configuration","parameters":[{"in":"path","name":"custom_certificate_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_response_id_only"}}},"description":"Delete SSL Configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_response_id_only"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Delete SSL Configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete SSL Configuration","tags":["Custom SSL for a Zone"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}},"get":{"operationId":"custom-ssl-for-a-zone-ssl-configuration-details","parameters":[{"in":"path","name":"custom_certificate_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_response_single"}}},"description":"SSL Configuration Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"SSL Configuration Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"SSL Configuration Details","tags":["Custom SSL for a Zone"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}},"patch":{"description":"Upload a new private key and/or PEM/CRT for the SSL certificate. Note: PATCHing a configuration for sni_custom certificates will result in a new resource id being returned, and the previous one being deleted.","operationId":"custom-ssl-for-a-zone-edit-ssl-configuration","parameters":[{"in":"path","name":"custom_certificate_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"bundle_method":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_bundle_method"},"certificate":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate"},"geo_restrictions":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_geo_restrictions"},"policy":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_policy"},"private_key":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_private_key"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_response_single"}}},"description":"Edit SSL Configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Edit SSL Configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Edit SSL Configuration","tags":["Custom SSL for a Zone"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/custom_hostnames":{"get":{"description":"List, search, sort, and filter all of your custom hostnames.","operationId":"custom-hostname-for-a-zone-list-custom-hostnames","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"query","name":"hostname","schema":{"description":"Fully qualified domain name to match against. This parameter cannot be used with the 'id' parameter.","example":"app.example.com","maxLength":255,"type":"string"}},{"in":"query","name":"id","schema":{"description":"Hostname ID to match against. This ID was generated and returned during the initial custom_hostname creation. This parameter cannot be used with the 'hostname' parameter.","example":"0d89c70d-ad9f-4843-b99f-6cc0252067e9","maxLength":36,"minLength":36,"type":"string"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":20,"description":"Number of hostnames per page.","maximum":50,"minimum":5,"type":"number"}},{"in":"query","name":"order","schema":{"default":"ssl","description":"Field to order hostnames by.","enum":["ssl","ssl_status"],"example":"ssl"}},{"in":"query","name":"direction","schema":{"description":"Direction to order hostnames.","enum":["asc","desc"],"example":"desc"}},{"in":"query","name":"ssl","schema":{"default":"0","description":"Whether to filter hostnames based on if they have SSL enabled.","enum":[0,1]}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom_hostname_response_collection"}}},"description":"List Custom Hostnames response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom_hostname_response_collection"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"List Custom Hostnames response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Custom Hostnames","tags":["Custom Hostname for a Zone"],"x-api-token-group":["SSL and Certificates Write","SSL and Certificates Read"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Add a new custom hostname and request that an SSL certificate be issued for it. One of three validation methods—http, txt, email—should be used, with 'http' recommended if the CNAME is already in place (or will be soon). Specifying 'email' will send an email to the WHOIS contacts on file for the base domain plus hostmaster, postmaster, webmaster, admin, administrator. If http is used and the domain is not already pointing to the Managed CNAME host, the PATCH method must be used once it is (to complete validation).","operationId":"custom-hostname-for-a-zone-create-custom-hostname","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"custom_metadata":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom_metadata"},"hostname":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname_post"},"ssl":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_sslpost"}},"required":["hostname","ssl"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom_hostname_response_single"}}},"description":"Create Custom Hostname response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom_hostname_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Create Custom Hostname response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create Custom Hostname","tags":["Custom Hostname for a Zone"],"x-api-token-group":["SSL and Certificates Write"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/custom_hostnames/fallback_origin":{"delete":{"operationId":"custom-hostname-fallback-origin-for-a-zone-delete-fallback-origin-for-custom-hostnames","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_fallback_origin_response"}}},"description":"Delete Fallback Origin for Custom Hostnames response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_fallback_origin_response"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Delete Fallback Origin for Custom Hostnames response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Fallback Origin for Custom Hostnames","tags":["Custom Hostname Fallback Origin for a Zone"],"x-api-token-group":["SSL and Certificates Write"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"operationId":"custom-hostname-fallback-origin-for-a-zone-get-fallback-origin-for-custom-hostnames","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_fallback_origin_response"}}},"description":"Get Fallback Origin for Custom Hostnames response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_fallback_origin_response"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Get Fallback Origin for Custom Hostnames response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Fallback Origin for Custom Hostnames","tags":["Custom Hostname Fallback Origin for a Zone"],"x-api-token-group":["SSL and Certificates Write","SSL and Certificates Read"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"operationId":"custom-hostname-fallback-origin-for-a-zone-update-fallback-origin-for-custom-hostnames","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"origin":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_origin"}},"required":["origin"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_fallback_origin_response"}}},"description":"Update Fallback Origin for Custom Hostnames response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_fallback_origin_response"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Update Fallback Origin for Custom Hostnames response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Fallback Origin for Custom Hostnames","tags":["Custom Hostname Fallback Origin for a Zone"],"x-api-token-group":["SSL and Certificates Write"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/custom_hostnames/{custom_hostname_id}":{"delete":{"operationId":"custom-hostname-for-a-zone-delete-custom-hostname-(-and-any-issued-ssl-certificates)","parameters":[{"in":"path","name":"custom_hostname_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},"type":"object"}}},"description":"Delete Custom Hostname (and any issued SSL certificates) response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"properties":{"id":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},"type":"object"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Delete Custom Hostname (and any issued SSL certificates) response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Custom Hostname (and any issued SSL certificates)","tags":["Custom Hostname for a Zone"],"x-api-token-group":["SSL and Certificates Write"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"operationId":"custom-hostname-for-a-zone-custom-hostname-details","parameters":[{"in":"path","name":"custom_hostname_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom_hostname_response_single"}}},"description":"Custom Hostname Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom_hostname_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Custom Hostname Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Custom Hostname Details","tags":["Custom Hostname for a Zone"],"x-api-token-group":["SSL and Certificates Write","SSL and Certificates Read"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Modify SSL configuration for a custom hostname. When sent with SSL config that matches existing config, used to indicate that hostname should pass domain control validation (DCV). Can also be used to change validation type, e.g., from 'http' to 'email'.","operationId":"custom-hostname-for-a-zone-edit-custom-hostname","parameters":[{"in":"path","name":"custom_hostname_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"custom_metadata":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom_metadata"},"custom_origin_server":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom_origin_server"},"custom_origin_sni":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom_origin_sni"},"ssl":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_sslpost"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom_hostname_response_single"}}},"description":"Edit Custom Hostname response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_custom_hostname_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Edit Custom Hostname response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Edit Custom Hostname","tags":["Custom Hostname for a Zone"],"x-api-token-group":["SSL and Certificates Write"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/custom_ns":{"get":{"deprecated":true,"description":"Get metadata for account-level custom nameservers on a zone.\n\nDeprecated in favor of [Show DNS Settings](https://developers.cloudflare.com/api/operations/dns-settings-for-a-zone-list-dns-settings).\n","operationId":"account-level-custom-nameservers-usage-for-a-zone-get-account-custom-nameserver-related-zone-metadata","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dns-custom-nameservers_schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-custom-nameservers_get_response"}}},"description":"Get Account Custom Nameserver Related Zone Metadata response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-custom-nameservers_get_response"},{"$ref":"#/components/schemas/dns-custom-nameservers_api-response-common-failure"}]}}},"description":"Get Account Custom Nameserver Related Zone Metadata response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Account Custom Nameserver Related Zone Metadata","tags":["Account-Level Custom Nameservers Usage for a Zone"],"x-cfPermissionsRequired":{"enum":["#zone:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}},"put":{"deprecated":true,"description":"Set metadata for account-level custom nameservers on a zone.\n\nIf you would like new zones in the account to use account custom nameservers by default, use PUT /accounts/:identifier to set the account setting use_account_custom_ns_by_default to true.\n\nDeprecated in favor of [Update DNS Settings](https://developers.cloudflare.com/api/operations/dns-settings-for-a-zone-update-dns-settings).\n","operationId":"account-level-custom-nameservers-usage-for-a-zone-set-account-custom-nameserver-related-zone-metadata","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dns-custom-nameservers_schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-custom-nameservers_zone_metadata"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-custom-nameservers_schemas-empty_response"}}},"description":"Set Account Custom Nameserver Related Zone Metadata response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-custom-nameservers_schemas-empty_response"},{"$ref":"#/components/schemas/dns-custom-nameservers_api-response-common-failure"}]}}},"description":"Set Account Custom Nameserver Related Zone Metadata response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Set Account Custom Nameserver Related Zone Metadata","tags":["Account-Level Custom Nameservers Usage for a Zone"],"x-cfPermissionsRequired":{"enum":["#zone:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/dcv_delegation/uuid":{"get":{"description":"Retrieve the account and zone specific unique identifier used as part of the CNAME target for DCV Delegation.","operationId":"dcv-delegation-uuid-get","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_dcv_delegation_response"}}},"description":"Retrieve the DCV Delegation unique identifier response."},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_dcv_delegation_response"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Retrieve the DCV Delegation unique identifier response failure."}},"security":[{"api_email":[],"api_key":[]}],"summary":"Retrieve the DCV Delegation unique identifier.","tags":["DCV Delegation"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/dns_analytics/report":{"get":{"description":"Retrieves a list of summarised aggregate metrics over a given time period.\n\nSee [Analytics API properties](https://developers.cloudflare.com/dns/reference/analytics-api-properties/) for detailed information about the available query parameters.","operationId":"dns-analytics-table","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dns-analytics_identifier"}},{"in":"query","name":"metrics","schema":{"$ref":"#/components/schemas/dns-analytics_metrics"}},{"in":"query","name":"dimensions","schema":{"$ref":"#/components/schemas/dns-analytics_dimensions"}},{"in":"query","name":"since","schema":{"$ref":"#/components/schemas/dns-analytics_since"}},{"in":"query","name":"until","schema":{"$ref":"#/components/schemas/dns-analytics_until"}},{"in":"query","name":"limit","schema":{"$ref":"#/components/schemas/dns-analytics_limit"}},{"in":"query","name":"sort","schema":{"$ref":"#/components/schemas/dns-analytics_sort"}},{"in":"query","name":"filters","schema":{"$ref":"#/components/schemas/dns-analytics_filters"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-analytics_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dns-analytics_report"}},"type":"object"}]}}},"description":"Table response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/dns-analytics_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dns-analytics_report"}},"type":"object"}]},{"$ref":"#/components/schemas/dns-analytics_api-response-common-failure"}]}}},"description":"Table response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Table","tags":["DNS Analytics"],"x-api-token-group":["Analytics Read"],"x-cfPermissionsRequired":{"enum":["#analytics:read"]}}},"/zones/{zone_id}/dns_analytics/report/bytime":{"get":{"description":"Retrieves a list of aggregate metrics grouped by time interval.\n\nSee [Analytics API properties](https://developers.cloudflare.com/dns/reference/analytics-api-properties/) for detailed information about the available query parameters.","operationId":"dns-analytics-by-time","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dns-analytics_identifier"}},{"in":"query","name":"metrics","schema":{"$ref":"#/components/schemas/dns-analytics_metrics"}},{"in":"query","name":"dimensions","schema":{"$ref":"#/components/schemas/dns-analytics_dimensions"}},{"in":"query","name":"since","schema":{"$ref":"#/components/schemas/dns-analytics_since"}},{"in":"query","name":"until","schema":{"$ref":"#/components/schemas/dns-analytics_until"}},{"in":"query","name":"limit","schema":{"$ref":"#/components/schemas/dns-analytics_limit"}},{"in":"query","name":"sort","schema":{"$ref":"#/components/schemas/dns-analytics_sort"}},{"in":"query","name":"filters","schema":{"$ref":"#/components/schemas/dns-analytics_filters"}},{"in":"query","name":"time_delta","schema":{"$ref":"#/components/schemas/dns-analytics_time_delta"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-analytics_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dns-analytics_report_bytime"}},"type":"object"}]}}},"description":"By Time response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/dns-analytics_api-response-single"},{"properties":{"result":{"$ref":"#/components/schemas/dns-analytics_report_bytime"}},"type":"object"}]},{"$ref":"#/components/schemas/dns-analytics_api-response-common-failure"}]}}},"description":"By Time response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"By Time","tags":["DNS Analytics"],"x-api-token-group":["Analytics Read"],"x-cfPermissionsRequired":{"enum":["#analytics:read"]}}},"/zones/{zone_id}/dns_records":{"get":{"description":"List, search, sort, and filter a zones' DNS records.","operationId":"dns-records-for-a-zone-list-dns-records","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dns-records_identifier"}},{"in":"query","name":"name","schema":{"description":"Exact value of the DNS record name. This is a convenience alias for `name.exact`.\n","example":"www.example.com","type":"string"}},{"in":"query","name":"name.exact","schema":{"description":"Exact value of the DNS record name. Name filters are case-insensitive.\n","example":"www.example.com","type":"string"}},{"in":"query","name":"name.contains","schema":{"description":"Substring of the DNS record name. Name filters are case-insensitive.\n","example":"w.example.","type":"string"}},{"in":"query","name":"name.startswith","schema":{"description":"Prefix of the DNS record name. Name filters are case-insensitive.\n","example":"www.example","type":"string"}},{"in":"query","name":"name.endswith","schema":{"description":"Suffix of the DNS record name. Name filters are case-insensitive.\n","example":".example.com","type":"string"}},{"in":"query","name":"type","schema":{"$ref":"#/components/schemas/dns-records_type"}},{"in":"query","name":"content","schema":{"description":"Exact value of the DNS record content. This is a convenience alias for `content.exact`.\n","example":"127.0.0.1","type":"string"}},{"in":"query","name":"content.exact","schema":{"description":"Exact value of the DNS record content. Content filters are case-insensitive.\n","example":"127.0.0.1","type":"string"}},{"in":"query","name":"content.contains","schema":{"description":"Substring of the DNS record content. Content filters are case-insensitive.\n","example":"7.0.0.","type":"string"}},{"in":"query","name":"content.startswith","schema":{"description":"Prefix of the DNS record content. Content filters are case-insensitive.\n","example":"127.0.","type":"string"}},{"in":"query","name":"content.endswith","schema":{"description":"Suffix of the DNS record content. Content filters are case-insensitive.\n","example":".0.1","type":"string"}},{"in":"query","name":"proxied","schema":{"$ref":"#/components/schemas/dns-records_proxied"}},{"in":"query","name":"match","schema":{"$ref":"#/components/schemas/dns-records_match"}},{"in":"query","name":"comment","schema":{"description":"Exact value of the DNS record comment. This is a convenience alias for `comment.exact`.\n","example":"Hello, world","type":"string"}},{"in":"query","name":"comment.present","schema":{"description":"If this parameter is present, only records *with* a comment are returned.\n","type":"string"}},{"in":"query","name":"comment.absent","schema":{"description":"If this parameter is present, only records *without* a comment are returned.\n","type":"string"}},{"in":"query","name":"comment.exact","schema":{"description":"Exact value of the DNS record comment. Comment filters are case-insensitive.\n","example":"Hello, world","type":"string"}},{"in":"query","name":"comment.contains","schema":{"description":"Substring of the DNS record comment. Comment filters are case-insensitive.\n","example":"ello, worl","type":"string"}},{"in":"query","name":"comment.startswith","schema":{"description":"Prefix of the DNS record comment. Comment filters are case-insensitive.\n","example":"Hello, w","type":"string"}},{"in":"query","name":"comment.endswith","schema":{"description":"Suffix of the DNS record comment. Comment filters are case-insensitive.\n","example":"o, world","type":"string"}},{"in":"query","name":"tag","schema":{"description":"Condition on the DNS record tag.\n\nParameter values can be of the form `\u003ctag-name\u003e:\u003ctag-value\u003e` to search for an exact `name:value` pair, or just `\u003ctag-name\u003e` to search for records with a specific tag name regardless of its value.\n\nThis is a convenience shorthand for the more powerful `tag.\u003cpredicate\u003e` parameters.\nExamples:\n- `tag=important` is equivalent to `tag.present=important`\n- `tag=team:DNS` is equivalent to `tag.exact=team:DNS`\n","example":"team:DNS","type":"string"}},{"in":"query","name":"tag.present","schema":{"description":"Name of a tag which must be present on the DNS record. Tag filters are case-insensitive.\n","example":"important","type":"string"}},{"in":"query","name":"tag.absent","schema":{"description":"Name of a tag which must *not* be present on the DNS record. Tag filters are case-insensitive.\n","example":"important","type":"string"}},{"in":"query","name":"tag.exact","schema":{"description":"A tag and value, of the form `\u003ctag-name\u003e:\u003ctag-value\u003e`. The API will only return DNS records that have a tag named `\u003ctag-name\u003e` whose value is `\u003ctag-value\u003e`. Tag filters are case-insensitive.\n","example":"greeting:Hello, world","type":"string"}},{"in":"query","name":"tag.contains","schema":{"description":"A tag and value, of the form `\u003ctag-name\u003e:\u003ctag-value\u003e`. The API will only return DNS records that have a tag named `\u003ctag-name\u003e` whose value contains `\u003ctag-value\u003e`. Tag filters are case-insensitive.\n","example":"greeting:ello, worl","type":"string"}},{"in":"query","name":"tag.startswith","schema":{"description":"A tag and value, of the form `\u003ctag-name\u003e:\u003ctag-value\u003e`. The API will only return DNS records that have a tag named `\u003ctag-name\u003e` whose value starts with `\u003ctag-value\u003e`. Tag filters are case-insensitive.\n","example":"greeting:Hello, w","type":"string"}},{"in":"query","name":"tag.endswith","schema":{"description":"A tag and value, of the form `\u003ctag-name\u003e:\u003ctag-value\u003e`. The API will only return DNS records that have a tag named `\u003ctag-name\u003e` whose value ends with `\u003ctag-value\u003e`. Tag filters are case-insensitive.\n","example":"greeting:o, world","type":"string"}},{"in":"query","name":"search","schema":{"$ref":"#/components/schemas/dns-records_search"}},{"in":"query","name":"tag_match","schema":{"$ref":"#/components/schemas/dns-records_tag_match"}},{"in":"query","name":"page","schema":{"$ref":"#/components/schemas/dns-records_page"}},{"in":"query","name":"per_page","schema":{"$ref":"#/components/schemas/dns-records_per_page"}},{"in":"query","name":"order","schema":{"$ref":"#/components/schemas/dns-records_order"}},{"in":"query","name":"direction","schema":{"$ref":"#/components/schemas/dns-records_direction"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-records_dns_response_collection"}}},"description":"List DNS Records response"},"4xx":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-records_dns_response_collection"},{"$ref":"#/components/schemas/dns-records_api-response-common-failure"}]}}},"description":"List DNS Records response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List DNS Records","tags":["DNS Records for a Zone"],"x-api-token-group":["DNS Read","DNS Write"],"x-cfPermissionsRequired":{"enum":["#dns_records:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Create a new DNS record for a zone.\n\nNotes:\n- A/AAAA records cannot exist on the same name as CNAME records.\n- NS records cannot exist on the same name as any other record type.\n- Domain names are always represented in Punycode, even if Unicode\n characters were used when creating the record.\n","operationId":"dns-records-for-a-zone-create-dns-record","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dns-records_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-records_dns-record-post"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-records_dns_response_single"}}},"description":"Create DNS Record response"},"4xx":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-records_dns_response_single"},{"$ref":"#/components/schemas/dns-records_api-response-common-failure"}]}}},"description":"Create DNS Record response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create DNS Record","tags":["DNS Records for a Zone"],"x-api-token-group":["DNS Write"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/dns_records/batch":{"post":{"description":"Send a Batch of DNS Record API calls to be executed together.\n\nNotes:\n- Although Cloudflare will execute the batched operations in a single database transaction, Cloudflare's distributed KV store must treat each record change as a single key-value pair. This means that the propagation of changes is not atomic. See [the documentation](https://developers.cloudflare.com/dns/manage-dns-records/how-to/batch-record-changes/ \"Batch DNS records\") for more information.\n- The operations you specify within the /batch request body are always executed in the following order:\n\n - Deletes\n - Patches\n - Puts\n - Posts\n","operationId":"dns-records-for-a-zone-batch-dns-records","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dns-records_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-records_dns-request-batch-object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-records_dns_response_batch"}}},"description":"Batch DNS Records response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-records_api-response-common-failure"}]}}},"description":"Batch DNS Records response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Batch DNS Records","tags":["DNS Records for a Zone"],"x-api-token-group":["DNS Write"],"x-cfPermissionsRequired":{"enum":["#dns_records:batch"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/dns_records/export":{"get":{"description":"You can export your [BIND config](https://en.wikipedia.org/wiki/Zone_file \"Zone file\") through this endpoint.\n\nSee [the documentation](https://developers.cloudflare.com/dns/manage-dns-records/how-to/import-and-export/ \"Import and export records\") for more information.","operationId":"dns-records-for-a-zone-export-dns-records","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dns-records_identifier"}}],"responses":{"200":{"content":{"text/plain":{"schema":{"description":"Exported BIND zone file.","example":"www.example.com. 300 IN A 127.0.0.1\n","type":"string"}}},"description":"Export DNS Records response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-records_api-response-common-failure"}}},"description":"Export DNS Records response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Export DNS Records","tags":["DNS Records for a Zone"],"x-api-token-group":["DNS Read","DNS Write"],"x-cfPermissionsRequired":{"enum":["#dns_records:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/dns_records/import":{"post":{"description":"You can upload your [BIND config](https://en.wikipedia.org/wiki/Zone_file \"Zone file\") through this endpoint. It assumes that cURL is called from a location with bind_config.txt (valid BIND config) present.\n\nSee [the documentation](https://developers.cloudflare.com/dns/manage-dns-records/how-to/import-and-export/ \"Import and export records\") for more information.","operationId":"dns-records-for-a-zone-import-dns-records","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dns-records_identifier"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"description":"BIND config to import.\n\n**Tip:** When using cURL, a file can be uploaded using `--form 'file=@bind_config.txt'`.\n","example":"www.example.com. 300 IN A 127.0.0.1","type":"string"},"proxied":{"default":"false","description":"Whether or not proxiable records should receive the performance and security benefits of Cloudflare.\n\nThe value should be either `true` or `false`.","example":"true","type":"string"}},"required":["file"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-records_dns_response_import_scan"}}},"description":"Import DNS Records response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-records_dns_response_import_scan"},{"$ref":"#/components/schemas/dns-records_api-response-common-failure"}]}}},"description":"Import DNS Records response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Import DNS Records","tags":["DNS Records for a Zone"],"x-api-token-group":["DNS Write"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/dns_records/scan":{"post":{"description":"Scan for common DNS records on your domain and automatically add them to your zone. Useful if you haven't updated your nameservers yet.","operationId":"dns-records-for-a-zone-scan-dns-records","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dns-records_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-records_dns_response_import_scan"}}},"description":"Scan DNS Records response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-records_dns_response_import_scan"},{"$ref":"#/components/schemas/dns-records_api-response-common-failure"}]}}},"description":"Scan DNS Records response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Scan DNS Records","tags":["DNS Records for a Zone"],"x-api-token-group":["DNS Write"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/dns_records/{dns_record_id}":{"delete":{"operationId":"dns-records-for-a-zone-delete-dns-record","parameters":[{"in":"path","name":"dns_record_id","required":true,"schema":{"$ref":"#/components/schemas/dns-records_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dns-records_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/dns-records_identifier"}}}},"type":"object"}}},"description":"Delete DNS Record response"},"4xx":{"content":{"application/json":{"schema":{"allOf":[{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/dns-records_identifier"}}}},"type":"object"},{"$ref":"#/components/schemas/dns-records_api-response-common-failure"}]}}},"description":"Delete DNS Record response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete DNS Record","tags":["DNS Records for a Zone"],"x-api-token-group":["DNS Write"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"operationId":"dns-records-for-a-zone-dns-record-details","parameters":[{"in":"path","name":"dns_record_id","required":true,"schema":{"$ref":"#/components/schemas/dns-records_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dns-records_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-records_dns_response_single"}}},"description":"DNS Record Details response"},"4xx":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-records_dns_response_single"},{"$ref":"#/components/schemas/dns-records_api-response-common-failure"}]}}},"description":"DNS Record Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"DNS Record Details","tags":["DNS Records for a Zone"],"x-api-token-group":["DNS Read","DNS Write"],"x-cfPermissionsRequired":{"enum":["#dns_records:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Update an existing DNS record.\n\nNotes:\n- A/AAAA records cannot exist on the same name as CNAME records.\n- NS records cannot exist on the same name as any other record type.\n- Domain names are always represented in Punycode, even if Unicode\n characters were used when creating the record.\n","operationId":"dns-records-for-a-zone-patch-dns-record","parameters":[{"in":"path","name":"dns_record_id","required":true,"schema":{"$ref":"#/components/schemas/dns-records_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dns-records_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-records_dns-record-patch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-records_dns_response_single"}}},"description":"Patch DNS Record response"},"4xx":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-records_dns_response_single"},{"$ref":"#/components/schemas/dns-records_api-response-common-failure"}]}}},"description":"Patch DNS Record response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update DNS Record","tags":["DNS Records for a Zone"],"x-api-token-group":["DNS Write"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Overwrite an existing DNS record.\n\nNotes:\n- A/AAAA records cannot exist on the same name as CNAME records.\n- NS records cannot exist on the same name as any other record type.\n- Domain names are always represented in Punycode, even if Unicode\n characters were used when creating the record.\n","operationId":"dns-records-for-a-zone-update-dns-record","parameters":[{"in":"path","name":"dns_record_id","required":true,"schema":{"$ref":"#/components/schemas/dns-records_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dns-records_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-records_dns-record-post"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-records_dns_response_single"}}},"description":"Update DNS Record response"},"4xx":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-records_dns_response_single"},{"$ref":"#/components/schemas/dns-records_api-response-common-failure"}]}}},"description":"Update DNS Record response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Overwrite DNS Record","tags":["DNS Records for a Zone"],"x-api-token-group":["DNS Write"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/dns_settings":{"get":{"description":"Show DNS settings for a zone","operationId":"dns-settings-for-a-zone-list-dns-settings","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dns-settings_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-settings_schemas-dns_response_single"}}},"description":"Show DNS Settings response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-settings_schemas-dns_response_single"},{"$ref":"#/components/schemas/dns-settings_api-response-common-failure"}]}}},"description":"Show DNS Settings response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Show DNS Settings","tags":["DNS Settings for a Zone"],"x-api-token-group":["Zone DNS Settings Write","Zone DNS Settings Read","DNS Read","DNS Write"],"x-cfPermissionsRequired":{"enum":["#dns_records:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Update DNS settings for a zone","operationId":"dns-settings-for-a-zone-update-dns-settings","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dns-settings_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-settings_dns-settings"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dns-settings_schemas-dns_response_single"}}},"description":"Show DNS Settings response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dns-settings_schemas-dns_response_single"},{"$ref":"#/components/schemas/dns-settings_api-response-common-failure"}]}}},"description":"Show DNS Settings response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update DNS Settings","tags":["DNS Settings for a Zone"],"x-api-token-group":["Zone DNS Settings Write","DNS Write"],"x-cfPermissionsRequired":{"enum":["#dns_records:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/dnssec":{"delete":{"description":"Delete DNSSEC.","operationId":"dnssec-delete-dnssec-records","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dnssec_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dnssec_delete_dnssec_response_single"}}},"description":"Delete DNSSEC records response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dnssec_delete_dnssec_response_single"},{"$ref":"#/components/schemas/dnssec_api-response-common-failure"}]}}},"description":"Delete DNSSEC records response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete DNSSEC records","tags":["DNSSEC"],"x-api-token-group":["DNS Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Details about DNSSEC status and configuration.","operationId":"dnssec-dnssec-details","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dnssec_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dnssec_dnssec_response_single"}}},"description":"DNSSEC Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dnssec_dnssec_response_single"},{"$ref":"#/components/schemas/dnssec_api-response-common-failure"}]}}},"description":"DNSSEC Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"DNSSEC Details","tags":["DNSSEC"],"x-api-token-group":["DNS Read","DNS Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Enable or disable DNSSEC.","operationId":"dnssec-edit-dnssec-status","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/dnssec_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"dnssec_multi_signer":{"$ref":"#/components/schemas/dnssec_dnssec_multi_signer"},"dnssec_presigned":{"$ref":"#/components/schemas/dnssec_dnssec_presigned"},"status":{"description":"Status of DNSSEC, based on user-desired state and presence of necessary records.","enum":["active","disabled"],"example":"active"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/dnssec_dnssec_response_single"}}},"description":"Edit DNSSEC Status response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/dnssec_dnssec_response_single"},{"$ref":"#/components/schemas/dnssec_api-response-common-failure"}]}}},"description":"Edit DNSSEC Status response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Edit DNSSEC Status","tags":["DNSSEC"],"x-api-token-group":["DNS Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/email/routing":{"get":{"description":"Get information about the settings for your Email Routing zone.","operationId":"email-routing-settings-get-email-routing-settings","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/email_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_email_settings_response_single"}}},"description":"Get Email Routing settings response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Email Routing settings","tags":["Email Routing settings"],"x-api-token-group":["Zone Settings Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.zone.email.routing.config.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/email/routing/disable":{"post":{"deprecated":true,"description":"Disable your Email Routing zone. Also removes additional MX records previously required for Email Routing to work.","operationId":"email-routing-settings-disable-email-routing","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/email_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_email_settings_response_single"}}},"description":"Disable Email Routing response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Disable Email Routing","tags":["Email Routing settings"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.zone.email.routing.config.update"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/email/routing/dns":{"delete":{"description":"Disable your Email Routing zone. Also removes additional MX records previously required for Email Routing to work.","operationId":"email-routing-settings-disable-email-routing-dns","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/email_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_email_settings_response_single"}}},"description":"Disable Email Routing response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Disable Email Routing","tags":["Email Routing settings"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.zone.email.routing.config.update"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Show the DNS records needed to configure your Email Routing zone.","operationId":"email-routing-settings-email-routing-dns-settings","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/email_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_dns_settings_response_collection"}}},"description":"Email Routing - DNS settings response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Email Routing - DNS settings","tags":["Email Routing settings"],"x-api-token-group":["Zone Settings Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.zone.email.routing.config.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Unlock MX Records previously locked by Email Routing.","operationId":"email-routing-settings-unlock-email-routing-dns","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/email_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_email_settings_response_single"}}},"description":"Unlock Email Routing MX records"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Unlock Email Routing","tags":["Email Routing settings"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.zone.email.routing.config.update"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Enable you Email Routing zone. Add and lock the necessary MX and SPF records.","operationId":"email-routing-settings-enable-email-routing-dns","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/email_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_email_settings_response_single"}}},"description":"Enable Email Routing response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Enable Email Routing","tags":["Email Routing settings"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.zone.email.routing.config.update"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/email/routing/enable":{"post":{"deprecated":true,"description":"Enable you Email Routing zone. Add and lock the necessary MX and SPF records.","operationId":"email-routing-settings-enable-email-routing","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/email_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_email_settings_response_single"}}},"description":"Enable Email Routing response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Enable Email Routing","tags":["Email Routing settings"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.zone.email.routing.config.update"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/email/routing/rules":{"get":{"description":"Lists existing routing rules.","operationId":"email-routing-routing-rules-list-routing-rules","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/email_identifier"}},{"in":"query","name":"page","schema":{"default":1,"description":"Page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":20,"description":"Maximum number of results per page.","maximum":50,"minimum":5,"type":"number"}},{"in":"query","name":"enabled","schema":{"description":"Filter by enabled routing rules.","enum":[true,false],"example":true,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_rules_response_collection"}}},"description":"List routing rules response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List routing rules","tags":["Email Routing routing rules"],"x-api-token-group":["Email Routing Rules Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.zone.email.routing.rule.list"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Rules consist of a set of criteria for matching emails (such as an email being sent to a specific custom email address) plus a set of actions to take on the email (like forwarding it to a specific destination address).","operationId":"email-routing-routing-rules-create-routing-rule","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/email_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_create_rule_properties"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_rule_response_single"}}},"description":"Create routing rule response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create routing rule","tags":["Email Routing routing rules"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.zone.email.routing.rule.create"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/email/routing/rules/catch_all":{"get":{"description":"Get information on the default catch-all routing rule.","operationId":"email-routing-routing-rules-get-catch-all-rule","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/email_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_catch_all_rule_response_single"}}},"description":"Get catch-all rule response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get catch-all rule","tags":["Email Routing routing rules"],"x-api-token-group":["Email Routing Rules Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.zone.email.routing.rule.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Enable or disable catch-all routing rule, or change action to forward to specific destination address.","operationId":"email-routing-routing-rules-update-catch-all-rule","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/email_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_update_catch_all_rule_properties"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_catch_all_rule_response_single"}}},"description":"Update catch-all rule response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update catch-all rule","tags":["Email Routing routing rules"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.zone.email.routing.rule.update"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/email/routing/rules/{rule_identifier}":{"delete":{"description":"Delete a specific routing rule.","operationId":"email-routing-routing-rules-delete-routing-rule","parameters":[{"in":"path","name":"rule_identifier","required":true,"schema":{"$ref":"#/components/schemas/email_rule_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/email_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_rule_response_single"}}},"description":"Delete routing rule response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete routing rule","tags":["Email Routing routing rules"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.zone.email.routing.rule.delete"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Get information for a specific routing rule already created.","operationId":"email-routing-routing-rules-get-routing-rule","parameters":[{"in":"path","name":"rule_identifier","required":true,"schema":{"$ref":"#/components/schemas/email_rule_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/email_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_rule_response_single"}}},"description":"Get routing rule response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get routing rule","tags":["Email Routing routing rules"],"x-api-token-group":["Email Routing Rules Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.zone.email.routing.rule.read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Update actions and matches, or enable/disable specific routing rules.","operationId":"email-routing-routing-rules-update-routing-rule","parameters":[{"in":"path","name":"rule_identifier","required":true,"schema":{"$ref":"#/components/schemas/email_rule_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/email_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_update_rule_properties"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/email_rule_response_single"}}},"description":"Update routing rule response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update routing rule","tags":["Email Routing routing rules"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.api.account.zone.email.routing.rule.update"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/firewall/access_rules/rules":{"get":{"description":"Fetches IP Access rules of a zone. You can filter the results using several optional parameters.","operationId":"ip-access-rules-for-a-zone-list-ip-access-rules","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}},{"in":"query","name":"mode","schema":{"$ref":"#/components/schemas/firewall_schemas-mode"}},{"in":"query","name":"configuration.target","schema":{"description":"The target to search in existing rules.","enum":["ip","ip_range","asn","country"],"example":"ip","type":"string"}},{"in":"query","name":"configuration.value","schema":{"description":"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`.\nNotes: 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","type":"string"}},{"in":"query","name":"notes","schema":{"description":"The string to search for in the notes of existing IP Access rules.\nNotes: 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","type":"string"}},{"in":"query","name":"match","schema":{"default":"all","description":"When set to `all`, all the search requirements must match. When set to `any`, only one of the search requirements has to match.","enum":["any","all"],"type":"string"}},{"in":"query","name":"page","schema":{"description":"Requested page within paginated list of results.","example":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"description":"Maximum number of results requested.","example":20,"type":"number"}},{"in":"query","name":"order","schema":{"description":"The field used to sort returned rules.","enum":["configuration.target","configuration.value","mode"],"example":"mode","type":"string"}},{"in":"query","name":"direction","schema":{"description":"The direction used to sort returned rules.","enum":["asc","desc"],"example":"desc","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_rule_collection_response"}}},"description":"List IP Access rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_rule_collection_response"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"List IP Access rules response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List IP Access rules","tags":["IP Access rules for a zone"],"x-api-token-group":["Firewall Services Write","Firewall Services Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Creates a new IP Access rule for a zone.\n\nNote: To create an IP Access rule that applies to multiple zones, refer to [IP Access rules for a user](#ip-access-rules-for-a-user) or [IP Access rules for an account](#ip-access-rules-for-an-account) as appropriate.","operationId":"ip-access-rules-for-a-zone-create-an-ip-access-rule","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"configuration":{"$ref":"#/components/schemas/firewall_configuration"},"mode":{"$ref":"#/components/schemas/firewall_schemas-mode"},"notes":{"$ref":"#/components/schemas/firewall_notes"}},"required":["mode","configuration","notes"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_rule_single_response"}}},"description":"Create an IP Access rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_rule_single_response"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Create an IP Access rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create an IP Access rule","tags":["IP Access rules for a zone"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/firewall/access_rules/rules/{identifier}":{"delete":{"description":"Deletes an IP Access rule defined at the zone level.\n\nOptionally, you can use the `cascade` property to specify that you wish to delete similar rules in other zones managed by the same zone owner.","operationId":"ip-access-rules-for-a-zone-delete-an-ip-access-rule","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"cascade":{"default":"none","description":"The level to attempt to delete similar rules defined for other zones with the same owner. The default value is `none`, which will only delete the current rule. Using `basic` will delete rules that match the same action (mode) and configuration, while using `aggressive` will delete rules that match the same configuration.","enum":["none","basic","aggressive"],"type":"string"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_rule_single_id_response"}}},"description":"Delete an IP Access rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_rule_single_id_response"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Delete an IP Access rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete an IP Access rule","tags":["IP Access rules for a zone"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Updates an IP Access rule defined at the zone level. You can only update the rule action (`mode` parameter) and notes.","operationId":"ip-access-rules-for-a-zone-update-an-ip-access-rule","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/firewall_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"mode":{"$ref":"#/components/schemas/firewall_schemas-mode"},"notes":{"$ref":"#/components/schemas/firewall_notes"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/firewall_rule_single_response"}}},"description":"Update an IP Access rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/firewall_rule_single_response"},{"$ref":"#/components/schemas/firewall_api-response-common-failure"}]}}},"description":"Update an IP Access rule response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update an IP Access rule","tags":["IP Access rules for a zone"],"x-api-token-group":["Firewall Services Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/firewall/waf/packages/{package_id}/groups":{"get":{"deprecated":true,"description":"Fetches the WAF rule groups in a WAF package.\n\n**Note:** Applies only to the [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).","operationId":"waf-rule-groups-list-waf-rule-groups","parameters":[{"in":"path","name":"package_id","required":true,"schema":{"$ref":"#/components/schemas/waf-managed-rules_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waf-managed-rules_schemas-identifier"}},{"in":"query","name":"mode","schema":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_mode"}]}},{"in":"query","name":"page","schema":{"default":1,"description":"The page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":50,"description":"The number of rule groups per page.","maximum":100,"minimum":5,"type":"number"}},{"in":"query","name":"order","schema":{"description":"The field used to sort returned rule groups.","enum":["mode","rules_count"],"example":"mode"}},{"in":"query","name":"direction","schema":{"description":"The direction used to sort returned rule groups.","enum":["asc","desc"],"example":"desc"}},{"in":"query","name":"match","schema":{"default":"all","description":"When set to `all`, all the search requirements must match. When set to `any`, only one of the search requirements has to match.","enum":["any","all"]}},{"in":"query","name":"name","schema":{"description":"The name of the rule group.","example":"Project Honey Pot","readOnly":true,"type":"string"}},{"in":"query","name":"rules_count","schema":{"default":0,"description":"The number of rules in the current rule group.","example":10,"readOnly":true,"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waf-managed-rules_rule_group_response_collection"}}},"description":"List WAF rule groups response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_rule_group_response_collection"},{"$ref":"#/components/schemas/waf-managed-rules_api-response-common-failure"}]}}},"description":"List WAF rule groups response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List WAF rule groups","tags":["WAF rule groups"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_id}/firewall/waf/packages/{package_id}/groups/{group_id}":{"get":{"deprecated":true,"description":"Fetches the details of a WAF rule group.\n\n**Note:** Applies only to the [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).","operationId":"waf-rule-groups-get-a-waf-rule-group","parameters":[{"in":"path","name":"group_id","required":true,"schema":{"$ref":"#/components/schemas/waf-managed-rules_identifier"}},{"in":"path","name":"package_id","required":true,"schema":{"$ref":"#/components/schemas/waf-managed-rules_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waf-managed-rules_schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waf-managed-rules_rule_group_response_single"}}},"description":"Get a WAF rule group response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_rule_group_response_single"},{"$ref":"#/components/schemas/waf-managed-rules_api-response-common-failure"}]}}},"description":"Get a WAF rule group response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get a WAF rule group","tags":["WAF rule groups"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"patch":{"deprecated":true,"description":"Updates a WAF rule group. You can update the state (`mode` parameter) of a rule group.\n\n**Note:** Applies only to the [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).","operationId":"waf-rule-groups-update-a-waf-rule-group","parameters":[{"in":"path","name":"group_id","required":true,"schema":{"$ref":"#/components/schemas/waf-managed-rules_identifier"}},{"in":"path","name":"package_id","required":true,"schema":{"$ref":"#/components/schemas/waf-managed-rules_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waf-managed-rules_schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"mode":{"$ref":"#/components/schemas/waf-managed-rules_mode"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waf-managed-rules_rule_group_response_single"}}},"description":"Update a WAF rule group response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_rule_group_response_single"},{"$ref":"#/components/schemas/waf-managed-rules_api-response-common-failure"}]}}},"description":"Update a WAF rule group response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update a WAF rule group","tags":["WAF rule groups"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_id}/firewall/waf/packages/{package_id}/rules":{"get":{"deprecated":true,"description":"Fetches WAF rules in a WAF package.\n\n**Note:** Applies only to the [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).","operationId":"waf-rules-list-waf-rules","parameters":[{"in":"path","name":"package_id","required":true,"schema":{"$ref":"#/components/schemas/waf-managed-rules_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waf-managed-rules_schemas-identifier"}},{"in":"query","name":"mode","schema":{"description":"The action/mode a rule has been overridden to perform.","enum":["DIS","CHL","BLK","SIM"],"example":"CHL","type":"string"}},{"in":"query","name":"group_id","schema":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_components-schemas-identifier"}]}},{"in":"query","name":"page","schema":{"default":1,"description":"The page number of paginated results.","minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":50,"description":"The number of rules per page.","maximum":100,"minimum":5,"type":"number"}},{"in":"query","name":"order","schema":{"description":"The field used to sort returned rules.","enum":["priority","group_id","description"],"example":"status","type":"string"}},{"in":"query","name":"direction","schema":{"description":"The direction used to sort returned rules.","enum":["asc","desc"],"example":"desc","type":"string"}},{"in":"query","name":"match","schema":{"default":"all","description":"When set to `all`, all the search requirements must match. When set to `any`, only one of the search requirements has to match.","enum":["any","all"],"type":"string"}},{"in":"query","name":"description","schema":{"description":"The public description of the WAF rule.","example":"SQL injection prevention for SELECT statements","readOnly":true,"type":"string"}},{"in":"query","name":"priority","schema":{"description":"The order in which the individual WAF rule is executed within its rule group.","readOnly":true,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waf-managed-rules_rule_response_collection"}}},"description":"List WAF rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_rule_response_collection"},{"$ref":"#/components/schemas/waf-managed-rules_api-response-common-failure"}]}}},"description":"List WAF rules response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List WAF rules","tags":["WAF rules"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_id}/firewall/waf/packages/{package_id}/rules/{rule_id}":{"get":{"deprecated":true,"description":"Fetches the details of a WAF rule in a WAF package.\n\n**Note:** Applies only to the [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).","operationId":"waf-rules-get-a-waf-rule","parameters":[{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/waf-managed-rules_identifier"}},{"in":"path","name":"package_id","required":true,"schema":{"$ref":"#/components/schemas/waf-managed-rules_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waf-managed-rules_schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waf-managed-rules_rule_response_single"}}},"description":"Get a WAF rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_rule_response_single"},{"$ref":"#/components/schemas/waf-managed-rules_api-response-common-failure"}]}}},"description":"Get a WAF rule response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get a WAF rule","tags":["WAF rules"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"patch":{"deprecated":true,"description":"Updates a WAF rule. You can only update the mode/action of the rule.\n\n**Note:** Applies only to the [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).","operationId":"waf-rules-update-a-waf-rule","parameters":[{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/waf-managed-rules_identifier"}},{"in":"path","name":"package_id","required":true,"schema":{"$ref":"#/components/schemas/waf-managed-rules_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waf-managed-rules_schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"mode":{"description":"The mode/action of the rule when triggered. You must use a value from the `allowed_modes` array of the current rule.","enum":["default","disable","simulate","block","challenge","on","off"],"example":"on"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_rule_response_single"},{"properties":{"result":{"oneOf":[{"$ref":"#/components/schemas/waf-managed-rules_anomaly_rule"},{"$ref":"#/components/schemas/waf-managed-rules_traditional_deny_rule"},{"$ref":"#/components/schemas/waf-managed-rules_traditional_allow_rule"}]}}}]}}},"description":"Update a WAF rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/waf-managed-rules_rule_response_single"},{"properties":{"result":{"oneOf":[{"$ref":"#/components/schemas/waf-managed-rules_anomaly_rule"},{"$ref":"#/components/schemas/waf-managed-rules_traditional_deny_rule"},{"$ref":"#/components/schemas/waf-managed-rules_traditional_allow_rule"}]}}}]},{"$ref":"#/components/schemas/waf-managed-rules_api-response-common-failure"}]}}},"description":"Update a WAF rule response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update a WAF rule","tags":["WAF rules"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_id}/healthchecks":{"get":{"description":"List configured health checks.","operationId":"health-checks-list-health-checks","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/healthchecks_identifier"}},{"$ref":"#/components/parameters/healthchecks_page"},{"$ref":"#/components/parameters/healthchecks_per_page"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/healthchecks_response_collection"}}},"description":"List Health Checks response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/healthchecks_response_collection"},{"$ref":"#/components/schemas/healthchecks_api-response-common-failure"}]}}},"description":"List Health Checks response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Health Checks","tags":["Health Checks"],"x-api-token-group":["Health Checks Write","Health Checks Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"post":{"description":"Create a new health check.","operationId":"health-checks-create-health-check","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/healthchecks_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/healthchecks_query_healthcheck"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/healthchecks_single_response"}}},"description":"Create Health Check response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/healthchecks_single_response"},{"$ref":"#/components/schemas/healthchecks_api-response-common-failure"}]}}},"description":"Create Health Check response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create Health Check","tags":["Health Checks"],"x-api-token-group":["Health Checks Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_id}/healthchecks/preview":{"post":{"description":"Create a new preview health check.","operationId":"health-checks-create-preview-health-check","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/healthchecks_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/healthchecks_query_healthcheck"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/healthchecks_single_response"}}},"description":"Create Preview Health Check response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/healthchecks_single_response"},{"$ref":"#/components/schemas/healthchecks_api-response-common-failure"}]}}},"description":"Create Preview Health Check response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create Preview Health Check","tags":["Health Checks"],"x-api-token-group":["Health Checks Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_id}/healthchecks/preview/{healthcheck_id}":{"delete":{"description":"Delete a health check.","operationId":"health-checks-delete-preview-health-check","parameters":[{"in":"path","name":"healthcheck_id","required":true,"schema":{"$ref":"#/components/schemas/healthchecks_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/healthchecks_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/healthchecks_id_response"}}},"description":"Delete Preview Health Check response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/healthchecks_id_response"},{"$ref":"#/components/schemas/healthchecks_api-response-common-failure"}]}}},"description":"Delete Preview Health Check response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Preview Health Check","tags":["Health Checks"],"x-api-token-group":["Health Checks Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"get":{"description":"Fetch a single configured health check preview.","operationId":"health-checks-health-check-preview-details","parameters":[{"in":"path","name":"healthcheck_id","required":true,"schema":{"$ref":"#/components/schemas/healthchecks_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/healthchecks_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/healthchecks_single_response"}}},"description":"Health Check Preview Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/healthchecks_single_response"},{"$ref":"#/components/schemas/healthchecks_api-response-common-failure"}]}}},"description":"Health Check Preview Details response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Health Check Preview Details","tags":["Health Checks"],"x-api-token-group":["Health Checks Write","Health Checks Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_id}/healthchecks/{healthcheck_id}":{"delete":{"description":"Delete a health check.","operationId":"health-checks-delete-health-check","parameters":[{"in":"path","name":"healthcheck_id","required":true,"schema":{"$ref":"#/components/schemas/healthchecks_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/healthchecks_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/healthchecks_id_response"}}},"description":"Delete Health Check response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/healthchecks_id_response"},{"$ref":"#/components/schemas/healthchecks_api-response-common-failure"}]}}},"description":"Delete Health Check response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Health Check","tags":["Health Checks"],"x-api-token-group":["Health Checks Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"get":{"description":"Fetch a single configured health check.","operationId":"health-checks-health-check-details","parameters":[{"in":"path","name":"healthcheck_id","required":true,"schema":{"$ref":"#/components/schemas/healthchecks_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/healthchecks_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/healthchecks_single_response"}}},"description":"Health Check Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/healthchecks_single_response"},{"$ref":"#/components/schemas/healthchecks_api-response-common-failure"}]}}},"description":"Health Check Details response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Health Check Details","tags":["Health Checks"],"x-api-token-group":["Health Checks Write","Health Checks Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"patch":{"description":"Patch a configured health check.","operationId":"health-checks-patch-health-check","parameters":[{"in":"path","name":"healthcheck_id","required":true,"schema":{"$ref":"#/components/schemas/healthchecks_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/healthchecks_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/healthchecks_query_healthcheck"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/healthchecks_single_response"}}},"description":"Patch Health Check response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/healthchecks_single_response"},{"$ref":"#/components/schemas/healthchecks_api-response-common-failure"}]}}},"description":"Patch Health Check response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Patch Health Check","tags":["Health Checks"],"x-api-token-group":["Health Checks Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"put":{"description":"Update a configured health check.","operationId":"health-checks-update-health-check","parameters":[{"in":"path","name":"healthcheck_id","required":true,"schema":{"$ref":"#/components/schemas/healthchecks_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/healthchecks_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/healthchecks_query_healthcheck"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/healthchecks_single_response"}}},"description":"Update Health Check response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/healthchecks_single_response"},{"$ref":"#/components/schemas/healthchecks_api-response-common-failure"}]}}},"description":"Update Health Check response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update Health Check","tags":["Health Checks"],"x-api-token-group":["Health Checks Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_id}/hold":{"delete":{"description":"Stop enforcement of a zone hold on the zone, permanently or temporarily, allowing the\ncreation and activation of zones with this zone's hostname.","operationId":"zones-0-hold-delete","parameters":[{"description":"Zone ID","in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zones_identifier"}},{"description":"If `hold_after` is provided, the hold will be temporarily disabled,\nthen automatically re-enabled by the system at the time specified\nin this RFC3339-formatted timestamp. Otherwise, the hold will be\ndisabled indefinitely.","example":"2023-01-31T15:56:36+00:00","in":"query","name":"hold_after","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"properties":{"result":{"properties":{"hold":{"example":false,"type":"boolean"},"hold_after":{"type":"string"},"include_subdomains":{"example":false,"type":"string"}},"type":"object"}},"type":"object"}]}}},"description":"Successful Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zones_schemas-api-response-common-failure"}]}}},"description":"Client Error"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Remove Zone Hold","tags":["Zone Holds"],"x-api-token-group":["Zone Write"]},"get":{"description":"Retrieve whether the zone is subject to a zone hold, and metadata about the hold.","operationId":"zones-0-hold-get","parameters":[{"description":"Zone ID","in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zones_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zones_api-response-single"},{"properties":{"result":{"properties":{"hold":{"example":true,"type":"boolean"},"hold_after":{"example":"2023-01-31T15:56:36+00:00","type":"string"},"include_subdomains":{"example":false,"type":"string"}},"type":"object"}},"type":"object"}]}}},"description":"Successful Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zones_schemas-api-response-common-failure"}]}}},"description":"Client Error"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Zone Hold","tags":["Zone Holds"],"x-api-token-group":["Cloudflare Zero Trust PII Read","Zaraz Edit","Zaraz Read","Zaraz Admin","Access: Apps and Policies Revoke","Access: Apps and Policies Write","Access: Apps and Policies Read","Access: Apps and Policies Revoke","Access: Certificates Write","Access: Organizations, Identity Providers, and Groups Write","Zone Settings Write","Zone Settings Read","Zone Read","DNS Read","Workers Scripts Write","Workers Scripts Read","Zone Write","Workers Routes Write","Workers Routes Read","Stream Write","Stream Read","SSL and Certificates Write","SSL and Certificates Read","Logs Write","Logs Read","Cache Purge","Page Rules Write","Page Rules Read","Load Balancers Write","Load Balancers Read","Firewall Services Write","Firewall Services Read","DNS Write","Apps Write","Analytics Read","Access: Apps and Policies Write","Access: Apps and Policies Read"]},"post":{"description":"Enforce a zone hold on the zone, blocking the creation and activation of zones with this zone's hostname.","operationId":"zones-0-hold-post","parameters":[{"description":"Zone ID","in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zones_identifier"}},{"description":"If provided, the zone hold will extend to block any subdomain of the given zone, as well\nas SSL4SaaS Custom Hostnames. For example, a zone hold on a zone with the hostname\n'example.com' and include_subdomains=true will block 'example.com',\n'staging.example.com', 'api.staging.example.com', etc.","example":true,"in":"query","name":"include_subdomains","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zones_api-response-single"},{"properties":{"result":{"properties":{"hold":{"example":true,"type":"boolean"},"hold_after":{"example":"2023-01-31T15:56:36+00:00","type":"string"},"include_subdomains":{"example":true,"type":"string"}},"type":"object"}},"type":"object"}]}}},"description":"Successful Response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zones_schemas-api-response-common-failure"}]}}},"description":"Client Error"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create Zone Hold","tags":["Zone Holds"],"x-api-token-group":["Zone Write"]}},"/zones/{zone_id}/hostnames/settings/{setting_id}":{"get":{"description":"List the requested TLS setting for the hostnames under this zone.","operationId":"per-hostname-tls-settings-list","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"setting_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_setting_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_per_hostname_settings_response_collection"}}},"description":"List per-hostname TLS settings response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_per_hostname_settings_response_collection"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"List per-hostname TLS settings response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List TLS setting for hostnames","tags":["Per-Hostname TLS Settings"],"x-api-token-group":["SSL and Certificates Write","SSL and Certificates Read"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/hostnames/settings/{setting_id}/{hostname}":{"delete":{"description":"Delete the tls setting value for the hostname.","operationId":"per-hostname-tls-settings-delete","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"setting_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_setting_id"}},{"in":"path","name":"hostname","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-hostname"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_per_hostname_settings_response_delete"}}},"description":"Delete TLS setting for hostname response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_per_hostname_settings_response_delete"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Delete TLS setting for hostname response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete TLS setting for hostname","tags":["Per-Hostname TLS Settings"],"x-api-token-group":["SSL and Certificates Write"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Update the tls setting value for the hostname.","operationId":"per-hostname-tls-settings-put","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"setting_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_setting_id"}},{"in":"path","name":"hostname","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-hostname"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"value":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_value"}},"required":["value"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_per_hostname_settings_response"}}},"description":"Edit TLS setting for hostname response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_per_hostname_settings_response"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Edit TLS setting for hostname response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Edit TLS setting for hostname","tags":["Per-Hostname TLS Settings"],"x-api-token-group":["SSL and Certificates Write"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/keyless_certificates":{"get":{"description":"List all Keyless SSL configurations for a given zone.","operationId":"keyless-ssl-for-a-zone-list-keyless-ssl-configurations","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_keyless_response_collection"}}},"description":"List Keyless SSL Configurations response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_keyless_response_collection"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"List Keyless SSL Configurations response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Keyless SSL Configurations","tags":["Keyless SSL for a Zone"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"operationId":"keyless-ssl-for-a-zone-create-keyless-ssl-configuration","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"bundle_method":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_bundle_method"},"certificate":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-certificate"},"host":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_host"},"name":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_name_write"},"port":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_port"},"tunnel":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_keyless_tunnel"}},"required":["host","port","certificate"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_keyless_response_single"}}},"description":"Create Keyless SSL Configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_keyless_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Create Keyless SSL Configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create Keyless SSL Configuration","tags":["Keyless SSL for a Zone"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/keyless_certificates/{keyless_certificate_id}":{"delete":{"operationId":"keyless-ssl-for-a-zone-delete-keyless-ssl-configuration","parameters":[{"in":"path","name":"keyless_certificate_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_keyless_response_single_id"}}},"description":"Delete Keyless SSL Configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_keyless_response_single_id"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Delete Keyless SSL Configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Keyless SSL Configuration","tags":["Keyless SSL for a Zone"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"description":"Get details for one Keyless SSL configuration.","operationId":"keyless-ssl-for-a-zone-get-keyless-ssl-configuration","parameters":[{"in":"path","name":"keyless_certificate_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_keyless_response_single"}}},"description":"Get Keyless SSL Configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_keyless_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Get Keyless SSL Configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Keyless SSL Configuration","tags":["Keyless SSL for a Zone"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"patch":{"description":"This will update attributes of a Keyless SSL. Consists of one or more of the following: host,name,port.","operationId":"keyless-ssl-for-a-zone-edit-keyless-ssl-configuration","parameters":[{"in":"path","name":"keyless_certificate_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"enabled":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_enabled_write"},"host":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_host"},"name":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_name_write"},"port":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_port"},"tunnel":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_keyless_tunnel"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_keyless_response_single"}}},"description":"Edit Keyless SSL Configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_keyless_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Edit Keyless SSL Configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Edit Keyless SSL Configuration","tags":["Keyless SSL for a Zone"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/load_balancers":{"get":{"description":"List configured load balancers.","operationId":"load-balancers-list-load-balancers","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-response_collection"}}},"description":"List Load Balancers response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-response_collection"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"List Load Balancers response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Load Balancers","tags":["Load Balancers"],"x-api-token-group":["Load Balancers Write","Load Balancers Read"]},"post":{"description":"Create a new load balancer.","operationId":"load-balancers-create-load-balancer","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"adaptive_routing":{"$ref":"#/components/schemas/load-balancing_adaptive_routing"},"country_pools":{"$ref":"#/components/schemas/load-balancing_country_pools"},"default_pools":{"$ref":"#/components/schemas/load-balancing_default_pools"},"description":{"$ref":"#/components/schemas/load-balancing_components-schemas-description"},"fallback_pool":{"$ref":"#/components/schemas/load-balancing_fallback_pool"},"location_strategy":{"$ref":"#/components/schemas/load-balancing_location_strategy"},"name":{"$ref":"#/components/schemas/load-balancing_components-schemas-name"},"networks":{"$ref":"#/components/schemas/load-balancing_networks"},"pop_pools":{"$ref":"#/components/schemas/load-balancing_pop_pools"},"proxied":{"$ref":"#/components/schemas/load-balancing_proxied"},"random_steering":{"$ref":"#/components/schemas/load-balancing_random_steering"},"region_pools":{"$ref":"#/components/schemas/load-balancing_region_pools"},"rules":{"$ref":"#/components/schemas/load-balancing_rules"},"session_affinity":{"$ref":"#/components/schemas/load-balancing_session_affinity"},"session_affinity_attributes":{"$ref":"#/components/schemas/load-balancing_session_affinity_attributes"},"session_affinity_ttl":{"$ref":"#/components/schemas/load-balancing_session_affinity_ttl"},"steering_policy":{"$ref":"#/components/schemas/load-balancing_steering_policy"},"ttl":{"$ref":"#/components/schemas/load-balancing_ttl"}},"required":["name","default_pools","fallback_pool"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-single_response"}}},"description":"Create Load Balancer response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-single_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Create Load Balancer response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create Load Balancer","tags":["Load Balancers"],"x-api-token-group":["Load Balancers Write"]}},"/zones/{zone_id}/load_balancers/{load_balancer_id}":{"delete":{"description":"Delete a configured load balancer.","operationId":"load-balancers-delete-load-balancer","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-identifier"}},{"in":"path","name":"load_balancer_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_components-schemas-id_response"}}},"description":"Delete Load Balancer response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_components-schemas-id_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Delete Load Balancer response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete Load Balancer","tags":["Load Balancers"],"x-api-token-group":["Load Balancers Write"]},"get":{"description":"Fetch a single configured load balancer.","operationId":"load-balancers-load-balancer-details","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-identifier"}},{"in":"path","name":"load_balancer_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-single_response"}}},"description":"Load Balancer Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-single_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Load Balancer Details response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Load Balancer Details","tags":["Load Balancers"],"x-api-token-group":["Load Balancers Write","Load Balancers Read"]},"patch":{"description":"Apply changes to an existing load balancer, overwriting the supplied properties.","operationId":"load-balancers-patch-load-balancer","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-identifier"}},{"in":"path","name":"load_balancer_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"adaptive_routing":{"$ref":"#/components/schemas/load-balancing_adaptive_routing"},"country_pools":{"$ref":"#/components/schemas/load-balancing_country_pools"},"default_pools":{"$ref":"#/components/schemas/load-balancing_default_pools"},"description":{"$ref":"#/components/schemas/load-balancing_components-schemas-description"},"enabled":{"$ref":"#/components/schemas/load-balancing_components-schemas-enabled"},"fallback_pool":{"$ref":"#/components/schemas/load-balancing_fallback_pool"},"location_strategy":{"$ref":"#/components/schemas/load-balancing_location_strategy"},"name":{"$ref":"#/components/schemas/load-balancing_components-schemas-name"},"pop_pools":{"$ref":"#/components/schemas/load-balancing_pop_pools"},"proxied":{"$ref":"#/components/schemas/load-balancing_proxied"},"random_steering":{"$ref":"#/components/schemas/load-balancing_random_steering"},"region_pools":{"$ref":"#/components/schemas/load-balancing_region_pools"},"rules":{"$ref":"#/components/schemas/load-balancing_rules"},"session_affinity":{"$ref":"#/components/schemas/load-balancing_session_affinity"},"session_affinity_attributes":{"$ref":"#/components/schemas/load-balancing_session_affinity_attributes"},"session_affinity_ttl":{"$ref":"#/components/schemas/load-balancing_session_affinity_ttl"},"steering_policy":{"$ref":"#/components/schemas/load-balancing_steering_policy"},"ttl":{"$ref":"#/components/schemas/load-balancing_ttl"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-single_response"}}},"description":"Patch Load Balancer response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-single_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Patch Load Balancer response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Patch Load Balancer","tags":["Load Balancers"],"x-api-token-group":["Load Balancers Write"]},"put":{"description":"Update a configured load balancer.","operationId":"load-balancers-update-load-balancer","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-identifier"}},{"in":"path","name":"load_balancer_id","required":true,"schema":{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"adaptive_routing":{"$ref":"#/components/schemas/load-balancing_adaptive_routing"},"country_pools":{"$ref":"#/components/schemas/load-balancing_country_pools"},"default_pools":{"$ref":"#/components/schemas/load-balancing_default_pools"},"description":{"$ref":"#/components/schemas/load-balancing_components-schemas-description"},"enabled":{"$ref":"#/components/schemas/load-balancing_components-schemas-enabled"},"fallback_pool":{"$ref":"#/components/schemas/load-balancing_fallback_pool"},"location_strategy":{"$ref":"#/components/schemas/load-balancing_location_strategy"},"name":{"$ref":"#/components/schemas/load-balancing_components-schemas-name"},"networks":{"$ref":"#/components/schemas/load-balancing_networks"},"pop_pools":{"$ref":"#/components/schemas/load-balancing_pop_pools"},"proxied":{"$ref":"#/components/schemas/load-balancing_proxied"},"random_steering":{"$ref":"#/components/schemas/load-balancing_random_steering"},"region_pools":{"$ref":"#/components/schemas/load-balancing_region_pools"},"rules":{"$ref":"#/components/schemas/load-balancing_rules"},"session_affinity":{"$ref":"#/components/schemas/load-balancing_session_affinity"},"session_affinity_attributes":{"$ref":"#/components/schemas/load-balancing_session_affinity_attributes"},"session_affinity_ttl":{"$ref":"#/components/schemas/load-balancing_session_affinity_ttl"},"steering_policy":{"$ref":"#/components/schemas/load-balancing_steering_policy"},"ttl":{"$ref":"#/components/schemas/load-balancing_ttl"}},"required":["name","default_pools","fallback_pool"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-single_response"}}},"description":"Update Load Balancer response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/load-balancing_load-balancer_components-schemas-single_response"},{"$ref":"#/components/schemas/load-balancing_api-response-common-failure"}]}}},"description":"Update Load Balancer response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update Load Balancer","tags":["Load Balancers"],"x-api-token-group":["Load Balancers Write"]}},"/zones/{zone_id}/logpush/datasets/{dataset_id}/fields":{"get":{"description":"Lists all fields available for a dataset. The response result is an object with key-value pairs, where keys are field names, and values are descriptions.","operationId":"get-zones-zone_id-logpush-datasets-dataset_id-fields","parameters":[{"in":"path","name":"dataset_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_dataset"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logpush_logpush_field_response_collection"}}},"description":"List fields response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"List fields response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List fields","tags":["Logpush jobs for a zone"],"x-api-token-group":["Logs Write","Logs Read"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/logpush/datasets/{dataset_id}/jobs":{"get":{"description":"Lists Logpush jobs for a zone for a dataset.","operationId":"get-zones-zone_id-logpush-datasets-dataset_id-jobs","parameters":[{"in":"path","name":"dataset_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_dataset"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"responses":{"200":{"content":{"application/json":{"example":{"errors":[],"messages":[],"result":[{"dataset":"http_requests","destination_conf":"s3://mybucket/logs?region=us-west-2","enabled":false,"error_message":null,"id":1,"kind":"","last_complete":null,"last_error":null,"max_upload_bytes":5000000,"max_upload_interval_seconds":30,"max_upload_records":1000,"name":"example.com","output_options":{"CVE-2021-4428":false,"batch_prefix":"","batch_suffix":"","field_delimiter":",","field_names":["Datetime","DstIP","SrcIP"],"output_type":"ndjson","record_delimiter":"","record_prefix":"{","record_suffix":"}\n","record_template":"","sample_rate":1,"timestamp_format":"unixnano"}}],"success":true},"schema":{"$ref":"#/components/schemas/logpush_logpush_job_response_collection"}}},"description":"List Logpush jobs for a dataset response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"List Logpush jobs for a dataset response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Logpush jobs for a dataset","tags":["Logpush jobs for a zone"],"x-api-token-group":["Logs Write","Logs Read"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/logpush/edge":{"get":{"description":"Lists Instant Logs jobs for a zone.","operationId":"get-zones-zone_id-logpush-edge-jobs","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logpush_instant_logs_job_response_collection"}}},"description":"List Instant Logs jobs response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_instant_logs_job_response_collection"},{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"List Instant Logs jobs response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Instant Logs jobs","tags":["Instant Logs jobs for a zone"],"x-cfPermissionsRequired":{"enum":["#logs:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Creates a new Instant Logs job for a zone.","operationId":"post-zones-zone_id-logpush-edge-jobs","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"fields":{"$ref":"#/components/schemas/logpush_fields"},"filter":{"$ref":"#/components/schemas/logpush_filter"},"sample":{"$ref":"#/components/schemas/logpush_sample"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logpush_instant_logs_job_response_single"}}},"description":"Create Instant Logs job response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_instant_logs_job_response_single"},{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"Create Instant Logs job response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create Instant Logs job","tags":["Instant Logs jobs for a zone"],"x-cfPermissionsRequired":{"enum":["#logs:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/logpush/jobs":{"get":{"description":"Lists Logpush jobs for a zone.","operationId":"get-zones-zone_id-logpush-jobs","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"responses":{"200":{"content":{"application/json":{"example":{"errors":[],"messages":[],"result":[{"dataset":"http_requests","destination_conf":"s3://mybucket/logs?region=us-west-2","enabled":false,"error_message":null,"id":1,"kind":"","last_complete":null,"last_error":null,"max_upload_bytes":5000000,"max_upload_interval_seconds":30,"max_upload_records":1000,"name":"example.com","output_options":{"CVE-2021-4428":false,"batch_prefix":"","batch_suffix":"","field_delimiter":",","field_names":["Datetime","DstIP","SrcIP"],"output_type":"ndjson","record_delimiter":"","record_prefix":"{","record_suffix":"}\n","record_template":"","sample_rate":1,"timestamp_format":"unixnano"}}],"success":true},"schema":{"$ref":"#/components/schemas/logpush_logpush_job_response_collection"}}},"description":"List Logpush jobs response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"List Logpush jobs response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List Logpush jobs","tags":["Logpush jobs for a zone"],"x-api-token-group":["Logs Write","Logs Read"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Creates a new Logpush job for a zone.","operationId":"post-zones-zone_id-logpush-jobs","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"requestBody":{"content":{"application/json":{"example":{"dataset":"http_requests","destination_conf":"s3://mybucket/logs?region=us-west-2","enabled":false,"kind":"","max_upload_bytes":5000000,"max_upload_interval_seconds":30,"max_upload_records":1000,"name":"example.com","output_options":{"CVE-2021-4428":false,"batch_prefix":"","batch_suffix":"","field_delimiter":",","field_names":["RayID","ClientIP","EdgeStartTimestamp"],"output_type":"ndjson","record_delimiter":"","record_prefix":"{","record_suffix":"}\n","record_template":"","sample_rate":1,"timestamp_format":"unixnano"},"ownership_challenge\"":"00000000000000000000"},"schema":{"properties":{"dataset":{"$ref":"#/components/schemas/logpush_dataset"},"destination_conf":{"$ref":"#/components/schemas/logpush_destination_conf"},"enabled":{"$ref":"#/components/schemas/logpush_enabled"},"frequency":{"$ref":"#/components/schemas/logpush_frequency"},"kind":{"$ref":"#/components/schemas/logpush_kind"},"logpull_options":{"$ref":"#/components/schemas/logpush_logpull_options"},"max_upload_bytes":{"$ref":"#/components/schemas/logpush_max_upload_bytes"},"max_upload_interval_seconds":{"$ref":"#/components/schemas/logpush_max_upload_interval_seconds"},"max_upload_records":{"$ref":"#/components/schemas/logpush_max_upload_records"},"name":{"$ref":"#/components/schemas/logpush_name"},"output_options":{"$ref":"#/components/schemas/logpush_output_options"},"ownership_challenge":{"$ref":"#/components/schemas/logpush_ownership_challenge"}},"required":["destination_conf"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"example":{"errors":[],"messages":[],"result":{"dataset":"http_requests","destination_conf":"s3://mybucket/logs?region=us-west-2","enabled":false,"error_message":null,"id":1,"kind":"","last_complete":null,"last_error":null,"max_upload_bytes":5000000,"max_upload_interval_seconds":30,"max_upload_records":1000,"name":"example.com","output_options":{"CVE-2021-4428":false,"batch_prefix":"","batch_suffix":"","field_delimiter":",","field_names":["Datetime","DstIP","SrcIP"],"output_type":"ndjson","record_delimiter":"","record_prefix":"{","record_suffix":"}\n","record_template":"","sample_rate":1,"timestamp_format":"unixnano"}},"success":true},"schema":{"$ref":"#/components/schemas/logpush_logpush_job_response_single"}}},"description":"Create Logpush job response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"Create Logpush job response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Create Logpush job","tags":["Logpush jobs for a zone"],"x-api-token-group":["Logs Write"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/logpush/jobs/{job_id}":{"delete":{"description":"Deletes a Logpush job.","operationId":"delete-zones-zone_id-logpush-jobs-job_id","parameters":[{"in":"path","name":"job_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common"},{"properties":{"result":{"properties":{"id":{"$ref":"#/components/schemas/logpush_id"}},"type":"object"}}}]}}},"description":"Delete Logpush job response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"Delete Logpush job response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Delete Logpush job","tags":["Logpush jobs for a zone"],"x-api-token-group":["Logs Write"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"description":"Gets the details of a Logpush job.","operationId":"get-zones-zone_id-logpush-jobs-job_id","parameters":[{"in":"path","name":"job_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"responses":{"200":{"content":{"application/json":{"example":{"errors":[],"messages":[],"result":{"dataset":"http_requests","destination_conf":"s3://mybucket/logs?region=us-west-2","enabled":false,"error_message":null,"id":1,"kind":"","last_complete":null,"last_error":null,"max_upload_bytes":5000000,"max_upload_interval_seconds":30,"max_upload_records":1000,"name":"example.com","output_options":{"CVE-2021-4428":false,"batch_prefix":"","batch_suffix":"","field_delimiter":",","field_names":["Datetime","DstIP","SrcIP"],"output_type":"ndjson","record_delimiter":"","record_prefix":"{","record_suffix":"}\n","record_template":"","sample_rate":1,"timestamp_format":"unixnano"}},"success":true},"schema":{"$ref":"#/components/schemas/logpush_logpush_job_response_single"}}},"description":"Get Logpush job details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"Get Logpush job details response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get Logpush job details","tags":["Logpush jobs for a zone"],"x-api-token-group":["Logs Write","Logs Read"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Updates a Logpush job.","operationId":"put-zones-zone_id-logpush-jobs-job_id","parameters":[{"in":"path","name":"job_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"requestBody":{"content":{"application/json":{"example":{"destination_conf":"s3://mybucket/logs?region=us-west-2","enabled":false,"kind":"","max_upload_bytes":5000000,"max_upload_interval_seconds":30,"max_upload_records":1000,"output_options":{"CVE-2021-4428":false,"batch_prefix":"","batch_suffix":"","field_delimiter":",","field_names":["RayID","ClientIP","EdgeStartTimestamp"],"output_type":"ndjson","record_delimiter":"","record_prefix":"{","record_suffix":"}\n","record_template":"","sample_rate":1,"timestamp_format":"unixnano"},"ownership_challenge\"":"00000000000000000000"},"schema":{"properties":{"destination_conf":{"$ref":"#/components/schemas/logpush_destination_conf"},"enabled":{"$ref":"#/components/schemas/logpush_enabled"},"frequency":{"$ref":"#/components/schemas/logpush_frequency"},"kind":{"$ref":"#/components/schemas/logpush_kind"},"logpull_options":{"$ref":"#/components/schemas/logpush_logpull_options"},"max_upload_bytes":{"$ref":"#/components/schemas/logpush_max_upload_bytes"},"max_upload_interval_seconds":{"$ref":"#/components/schemas/logpush_max_upload_interval_seconds"},"max_upload_records":{"$ref":"#/components/schemas/logpush_max_upload_records"},"output_options":{"$ref":"#/components/schemas/logpush_output_options"},"ownership_challenge":{"$ref":"#/components/schemas/logpush_ownership_challenge"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"example":{"errors":[],"messages":[],"result":{"dataset":"http_requests","destination_conf":"s3://mybucket/logs?region=us-west-2","enabled":false,"error_message":null,"id":1,"kind":"","last_complete":null,"last_error":null,"max_upload_bytes":5000000,"max_upload_interval_seconds":30,"max_upload_records":1000,"name":"example.com","output_options":{"CVE-2021-4428":false,"batch_prefix":"","batch_suffix":"","field_delimiter":",","field_names":["Datetime","DstIP","SrcIP"],"output_type":"ndjson","record_delimiter":"","record_prefix":"{","record_suffix":"}\n","record_template":"","sample_rate":1,"timestamp_format":"unixnano"}},"success":true},"schema":{"$ref":"#/components/schemas/logpush_logpush_job_response_single"}}},"description":"Update Logpush job response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"Update Logpush job response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update Logpush job","tags":["Logpush jobs for a zone"],"x-api-token-group":["Logs Write"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/logpush/ownership":{"post":{"description":"Gets a new ownership challenge sent to your destination.","operationId":"post-zones-zone_id-logpush-ownership","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"destination_conf":{"$ref":"#/components/schemas/logpush_destination_conf"}},"required":["destination_conf"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logpush_get_ownership_response"}}},"description":"Get ownership challenge response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"Get ownership challenge response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get ownership challenge","tags":["Logpush jobs for a zone"],"x-api-token-group":["Logs Write"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/logpush/ownership/validate":{"post":{"description":"Validates ownership challenge of the destination.","operationId":"post-zones-zone_id-logpush-ownership-validate","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"destination_conf":{"$ref":"#/components/schemas/logpush_destination_conf"},"ownership_challenge":{"$ref":"#/components/schemas/logpush_ownership_challenge"}},"required":["destination_conf","ownership_challenge"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logpush_validate_ownership_response"}}},"description":"Validate ownership challenge response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"Validate ownership challenge response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Validate ownership challenge","tags":["Logpush jobs for a zone"],"x-api-token-group":["Logs Write"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/logpush/validate/destination/exists":{"post":{"description":"Checks if there is an existing job with a destination.","operationId":"post-zones-zone_id-logpush-validate-destination-exists","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"destination_conf":{"$ref":"#/components/schemas/logpush_destination_conf"}},"required":["destination_conf"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logpush_destination_exists_response"}}},"description":"Check destination exists response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"Check destination exists response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Check destination exists","tags":["Logpush jobs for a zone"],"x-api-token-group":["Logs Write"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/logpush/validate/origin":{"post":{"description":"Validates logpull origin with logpull_options.","operationId":"post-zones-zone_id-logpush-validate-origin","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/logpush_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"logpull_options":{"$ref":"#/components/schemas/logpush_logpull_options"}},"required":["logpull_options"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logpush_validate_response"}}},"description":"Validate origin response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logpush_api-response-common-failure"}]}}},"description":"Validate origin response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Validate origin","tags":["Logpush jobs for a zone"],"x-api-token-group":["Logs Write"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/logs/control/retention/flag":{"get":{"description":"Gets log retention flag for Logpull API.","operationId":"get-zones-zone_id-logs-control-retention-flag","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/logcontrol_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logcontrol_retention_flag_response_single"}}},"description":"Get log retention flag response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logcontrol_api-response-common-failure"}]}}},"description":"Get log retention flag response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get log retention flag","tags":["Logs Received"],"x-api-token-group":["Logs Write","Logs Read"],"x-cfPermissionsRequired":{"enum":["#logs:read","#analytics:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Updates log retention flag for Logpull API.","operationId":"post-zones-zone_id-logs-control-retention-flag","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/logcontrol_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logcontrol_retention_flag"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logcontrol_retention_flag_response_single"}}},"description":"Update log retention flag response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logcontrol_api-response-common-failure"}]}}},"description":"Update log retention flag response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Update log retention flag","tags":["Logs Received"],"x-api-token-group":["Logs Write"],"x-cfPermissionsRequired":{"enum":["#logs:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/logs/rayids/{ray_id}":{"get":{"description":"The `/rayids` api route allows lookups by specific rayid. The rayids route will return zero, one, or more records (ray ids are not unique).","operationId":"get-zones-zone_id-logs-rayids-ray_id","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/logshare_identifier"}},{"in":"path","name":"ray_id","required":true,"schema":{"$ref":"#/components/schemas/logshare_ray_identifier"}},{"in":"query","name":"fields","schema":{"$ref":"#/components/schemas/logshare_fields"}},{"in":"query","name":"timestamps","schema":{"$ref":"#/components/schemas/logshare_timestamps"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logshare_logs_response_json_lines"}}},"description":"Get logs RayIDs response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logshare_api-response-common-failure"}]}}},"description":"Get logs RayIDs response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get logs RayIDs","tags":["Logs Received"],"x-cfPermissionsRequired":{"enum":["#logs:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/logs/received":{"get":{"description":"The `/received` api route allows customers to retrieve their edge HTTP logs. The basic access pattern is \"give me all the logs for zone Z for minute M\", where the minute M refers to the time records were received at Cloudflare's central data center. `start` is inclusive, and `end` is exclusive. Because of that, to get all data, at minutely cadence, starting at 10AM, the proper values are: `start=2018-05-20T10:00:00Z\u0026end=2018-05-20T10:01:00Z`, then `start=2018-05-20T10:01:00Z\u0026end=2018-05-20T10:02:00Z` and so on; the overlap will be handled properly.","operationId":"get-zones-zone_id-logs-received","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/logshare_identifier"}},{"in":"query","name":"start","schema":{"$ref":"#/components/schemas/logshare_start"}},{"in":"query","name":"end","required":true,"schema":{"$ref":"#/components/schemas/logshare_end"}},{"in":"query","name":"fields","schema":{"$ref":"#/components/schemas/logshare_fields"}},{"in":"query","name":"sample","schema":{"$ref":"#/components/schemas/logshare_sample"}},{"in":"query","name":"count","schema":{"$ref":"#/components/schemas/logshare_count"}},{"in":"query","name":"timestamps","schema":{"$ref":"#/components/schemas/logshare_timestamps"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logshare_logs_response_json_lines"}}},"description":"Get logs received response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logshare_api-response-common-failure"}]}}},"description":"Get logs received response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get logs received","tags":["Logs Received"],"x-api-token-group":["Logs Write","Logs Read"],"x-cfPermissionsRequired":{"enum":["#logs:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/logs/received/fields":{"get":{"description":"Lists all fields available. The response is json object with key-value pairs, where keys are field names, and values are descriptions.","operationId":"get-zones-zone_id-logs-received-fields","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/logshare_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/logshare_fields_response"}}},"description":"List fields response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/logshare_api-response-common-failure"}]}}},"description":"List fields response failure"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"List fields","tags":["Logs Received"],"x-cfPermissionsRequired":{"enum":["#logs:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/managed_headers":{"get":{"description":"Fetches a list of all Managed Transforms.","operationId":"managed-transforms-list-managed-transforms","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"managed_request_headers":{"$ref":"#/components/schemas/rulesets_request_list"},"managed_response_headers":{"$ref":"#/components/schemas/rulesets_request_list"}},"type":"object"}}},"description":"List Managed Transforms response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"properties":{"managed_request_headers":{"$ref":"#/components/schemas/rulesets_request_list"},"managed_response_headers":{"$ref":"#/components/schemas/rulesets_request_list"}},"type":"object"},{"$ref":"#/components/schemas/rulesets_api-response-common-failure"}]}}},"description":"List Managed Transforms response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Managed Transforms","tags":["Managed Transforms"],"x-api-token-group":["Response Compression Write","Response Compression Read","Config Settings Write","Config Settings Read","Dynamic URL Redirects Write","Dynamic URL Redirects Read","Cache Settings Write","Cache Settings Read","Custom Errors Write","Custom Errors Read","Origin Write","Origin Read","Managed headers Write","Managed headers Read","Zone Transform Rules Write","Zone Transform Rules Read","HTTP DDoS Managed Ruleset Write","HTTP DDoS Managed Ruleset Read","Sanitize Write","Sanitize Read","Transform Rules Write","Transform Rules Read","Bot Management Write","Bot Management Read","Zone WAF Read","Account WAF Read","Mass URL Redirects Write","Mass URL Redirects Read","Magic Firewall Write","Magic Firewall Read","L4 DDoS Managed Ruleset Write","L4 DDoS Managed Ruleset Read","Select Configuration Write","Select Configuration Read","Account Rulesets Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Updates the status of one or more Managed Transforms.","operationId":"managed-transforms-update-status-of-managed-transforms","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"managed_request_headers":{"$ref":"#/components/schemas/rulesets_request_list"},"managed_response_headers":{"$ref":"#/components/schemas/rulesets_request_list"}},"required":["managed_request_headers","managed_response_headers"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"managed_request_headers":{"$ref":"#/components/schemas/rulesets_response_list"},"managed_response_headers":{"$ref":"#/components/schemas/rulesets_response_list"}},"type":"object"}}},"description":"Update status of Managed Transforms response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"properties":{"managed_request_headers":{"$ref":"#/components/schemas/rulesets_response_list"},"managed_response_headers":{"$ref":"#/components/schemas/rulesets_response_list"}},"type":"object"},{"$ref":"#/components/schemas/rulesets_api-response-common-failure"}]}}},"description":"Update status of Managed Transforms response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update status of Managed Transforms","tags":["Managed Transforms"],"x-api-token-group":["Response Compression Write","Config Settings Write","Dynamic URL Redirects Write","Cache Settings Write","Custom Errors Write","Origin Write","Managed headers Write","Zone Transform Rules Write","HTTP DDoS Managed Ruleset Write","Sanitize Write","Transform Rules Write","Bot Management Write","Mass URL Redirects Write","Magic Firewall Write","L4 DDoS Managed Ruleset Write","Select Configuration Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/origin_tls_client_auth":{"get":{"operationId":"zone-level-authenticated-origin-pulls-list-certificates","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-certificate_response_collection"}}},"description":"List Certificates response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-certificate_response_collection"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"List Certificates response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Certificates","tags":["Zone-Level Authenticated Origin Pulls"],"x-api-token-group":["SSL and Certificates Write","SSL and Certificates Read"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Upload your own certificate you want Cloudflare to use for edge-to-origin communication to override the shared certificate. Please note that it is important to keep only one certificate active. Also, make sure to enable zone-level authenticated origin pulls by making a PUT call to settings endpoint to see the uploaded certificate in use.","operationId":"zone-level-authenticated-origin-pulls-upload-certificate","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"certificate":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_zone-authenticated-origin-pull_components-schemas-certificate"},"private_key":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_private_key"}},"required":["certificate","private_key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-certificate_response_single"}}},"description":"Upload Certificate response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-certificate_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Upload Certificate response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Upload Certificate","tags":["Zone-Level Authenticated Origin Pulls"],"x-api-token-group":["SSL and Certificates Write"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/origin_tls_client_auth/hostnames":{"put":{"description":"Associate a hostname to a certificate and enable, disable or invalidate the association. If disabled, client certificate will not be sent to the hostname even if activated at the zone level. 100 maximum associations on a single certificate are allowed. Note: Use a null value for parameter *enabled* to invalidate the association.","operationId":"per-hostname-authenticated-origin-pull-enable-or-disable-a-hostname-for-client-authentication","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"config":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_config"}},"required":["config"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname_aop_response_collection"}}},"description":"Enable or Disable a Hostname for Client Authentication response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname_aop_response_collection"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Enable or Disable a Hostname for Client Authentication response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Enable or Disable a Hostname for Client Authentication","tags":["Per-hostname Authenticated Origin Pull"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/origin_tls_client_auth/hostnames/certificates":{"get":{"operationId":"per-hostname-authenticated-origin-pull-list-certificates","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-certificate_response_collection"}}},"description":"List Certificates response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-certificate_response_collection"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"List Certificates response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Certificates","tags":["Per-hostname Authenticated Origin Pull"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Upload a certificate to be used for client authentication on a hostname. 10 hostname certificates per zone are allowed.","operationId":"per-hostname-authenticated-origin-pull-upload-a-hostname-client-certificate","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"certificate":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-certificate"},"private_key":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-private_key"}},"required":["certificate","private_key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-certificate_response_single"}}},"description":"Upload a Hostname Client Certificate response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-certificate_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Upload a Hostname Client Certificate response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Upload a Hostname Client Certificate","tags":["Per-hostname Authenticated Origin Pull"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/origin_tls_client_auth/hostnames/certificates/{certificate_id}":{"delete":{"operationId":"per-hostname-authenticated-origin-pull-delete-hostname-client-certificate","parameters":[{"in":"path","name":"certificate_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-certificate_response_single"}}},"description":"Delete Hostname Client Certificate response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-certificate_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Delete Hostname Client Certificate response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Hostname Client Certificate","tags":["Per-hostname Authenticated Origin Pull"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Get the certificate by ID to be used for client authentication on a hostname.","operationId":"per-hostname-authenticated-origin-pull-get-the-hostname-client-certificate","parameters":[{"in":"path","name":"certificate_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-certificate_response_single"}}},"description":"Get the Hostname Client Certificate response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname-authenticated-origin-pull_components-schemas-certificate_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Get the Hostname Client Certificate response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get the Hostname Client Certificate","tags":["Per-hostname Authenticated Origin Pull"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/origin_tls_client_auth/hostnames/{hostname}":{"get":{"operationId":"per-hostname-authenticated-origin-pull-get-the-hostname-status-for-client-authentication","parameters":[{"in":"path","name":"hostname","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-hostname"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname_aop_single_response"}}},"description":"Get the Hostname Status for Client Authentication response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_hostname_aop_single_response"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Get the Hostname Status for Client Authentication response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get the Hostname Status for Client Authentication","tags":["Per-hostname Authenticated Origin Pull"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/origin_tls_client_auth/settings":{"get":{"description":"Get whether zone-level authenticated origin pulls is enabled or not. It is false by default.","operationId":"zone-level-authenticated-origin-pulls-get-enablement-setting-for-zone","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_enabled_response"}}},"description":"Get Enablement Setting for Zone response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_enabled_response"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Get Enablement Setting for Zone response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Enablement Setting for Zone","tags":["Zone-Level Authenticated Origin Pulls"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Enable or disable zone-level authenticated origin pulls. 'enabled' should be set true either before/after the certificate is uploaded to see the certificate in use.","operationId":"zone-level-authenticated-origin-pulls-set-enablement-for-zone","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"enabled":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_zone-authenticated-origin-pull_components-schemas-enabled"}},"required":["enabled"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_enabled_response"}}},"description":"Set Enablement for Zone response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_enabled_response"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Set Enablement for Zone response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Set Enablement for Zone","tags":["Zone-Level Authenticated Origin Pulls"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/origin_tls_client_auth/{certificate_id}":{"delete":{"operationId":"zone-level-authenticated-origin-pulls-delete-certificate","parameters":[{"in":"path","name":"certificate_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-certificate_response_single"}}},"description":"Delete Certificate response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-certificate_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Delete Certificate response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Certificate","tags":["Zone-Level Authenticated Origin Pulls"],"x-cfPermissionsRequired":{"enum":["#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"operationId":"zone-level-authenticated-origin-pulls-get-certificate-details","parameters":[{"in":"path","name":"certificate_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-certificate_response_single"}}},"description":"Get Certificate Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-certificate_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Get Certificate Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Certificate Details","tags":["Zone-Level Authenticated Origin Pulls"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/page_shield":{"get":{"description":"Fetches the Page Shield settings.","operationId":"page-shield-get-settings","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/page-shield_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/page-shield_api-get-response-collection"},{"properties":{"result":{"$ref":"#/components/schemas/page-shield_get-zone-settings-response"}}}]}}},"description":"Get Page Shield settings response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_api-response-common-failure"}}},"description":"Get Page Shield settings response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Page Shield settings","tags":["Page Shield"],"x-api-token-group":["Domain Page Shield Read","Page Shield Read","Zone Settings Write","Zone Settings Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"put":{"description":"Updates Page Shield settings.","operationId":"page-shield-update-settings","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/page-shield_id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"enabled":{"$ref":"#/components/schemas/page-shield_enabled"},"use_cloudflare_reporting_endpoint":{"$ref":"#/components/schemas/page-shield_use_cloudflare_reporting_endpoint"},"use_connection_url_path":{"$ref":"#/components/schemas/page-shield_use_connection_url_path"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/page-shield_zone_settings_response_single"},{"properties":{"result":{"$ref":"#/components/schemas/page-shield_update-zone-settings-response"}}}]}}},"description":"Update Page Shield settings response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_api-response-common-failure"}}},"description":"Update Page Shield settings response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Page Shield settings","tags":["Page Shield"],"x-api-token-group":["Zone Settings Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_id}/page_shield/connections":{"get":{"description":"Lists all connections detected by Page Shield.","operationId":"page-shield-list-connections","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/page-shield_id"}},{"in":"query","name":"exclude_urls","schema":{"description":"Excludes connections whose URL contains one of the URL-encoded URLs separated by commas.\n","example":"blog.cloudflare.com,www.example","type":"string"}},{"in":"query","name":"urls","schema":{"description":"Includes connections whose URL contain one or more URL-encoded URLs separated by commas.\n","example":"blog.cloudflare.com,www.example","type":"string"}},{"in":"query","name":"hosts","schema":{"description":"Includes connections that match one or more URL-encoded hostnames separated by commas.\n\nWildcards are supported at the start and end of each hostname to support starts with, ends with\nand contains. If no wildcards are used, results will be filtered by exact match\n","example":"blog.cloudflare.com,www.example*,*cloudflare.com","type":"string"}},{"in":"query","name":"page","schema":{"description":"The current page number of the paginated results.\n\nWe additionally support a special value \"all\". When \"all\" is used, the API will return all the connections\nwith the applied filters in a single page. This feature is best-effort and it may only work for zones with\na low number of connections\n","example":2,"type":"string"}},{"in":"query","name":"per_page","schema":{"description":"The number of results per page.","example":100,"maximum":100,"minimum":1,"type":"number"}},{"in":"query","name":"order_by","schema":{"description":"The field used to sort returned connections.","enum":["first_seen_at","last_seen_at"],"example":"first_seen_at","type":"string"}},{"in":"query","name":"direction","schema":{"description":"The direction used to sort returned connections.","enum":["asc","desc"],"example":"asc","type":"string"}},{"in":"query","name":"prioritize_malicious","schema":{"description":"When true, malicious connections appear first in the returned connections.","example":true,"type":"boolean"}},{"in":"query","name":"exclude_cdn_cgi","schema":{"description":"When true, excludes connections seen in a `/cdn-cgi` path from the returned connections. The default value is true.","example":true,"type":"boolean"}},{"in":"query","name":"status","schema":{"description":"Filters the returned connections using a comma-separated list of connection statuses. Accepted values: `active`, `infrequent`, and `inactive`. The default value is `active`.","example":"active,inactive","type":"string"}},{"in":"query","name":"page_url","schema":{"description":"Includes connections that match one or more page URLs (separated by commas) where they were last seen\n\nWildcards are supported at the start and end of each page URL to support starts with, ends with\nand contains. If no wildcards are used, results will be filtered by exact match\n","example":"example.com/page,*/checkout,example.com/*,*checkout*","type":"string"}},{"in":"query","name":"export","schema":{"description":"Export the list of connections as a file.","enum":["csv"],"example":"csv","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_list-zone-connections-response"}}},"description":"List Page Shield connections response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_api-response-common-failure"}}},"description":"List Page Shield connections response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Page Shield connections","tags":["Page Shield"],"x-api-token-group":["Domain Page Shield Read","Page Shield Read","Zone Settings Write","Zone Settings Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/page_shield/connections/{connection_id}":{"get":{"description":"Fetches a connection detected by Page Shield by connection ID.","operationId":"page-shield-get-connection","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/page-shield_id"}},{"in":"path","name":"connection_id","required":true,"schema":{"$ref":"#/components/schemas/page-shield_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_get-zone-connection-response"}}},"description":"Get a Page Shield connection response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_api-response-common-failure"}}},"description":"Get a Page Shield connection response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a Page Shield connection","tags":["Page Shield"],"x-api-token-group":["Domain Page Shield Read","Page Shield Read","Zone Settings Write","Zone Settings Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/page_shield/cookies":{"get":{"description":"Lists all cookies collected by Page Shield.","operationId":"page-shield-list-cookies","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/page-shield_id"}},{"in":"query","name":"hosts","schema":{"description":"Includes cookies that match one or more URL-encoded hostnames separated by commas.\n\nWildcards are supported at the start and end of each hostname to support starts with, ends with\nand contains. If no wildcards are used, results will be filtered by exact match\n","example":"blog.cloudflare.com,www.example*,*cloudflare.com","type":"string"}},{"in":"query","name":"page","schema":{"description":"The current page number of the paginated results.\n\nWe additionally support a special value \"all\". When \"all\" is used, the API will return all the cookies\nwith the applied filters in a single page. This feature is best-effort and it may only work for zones with \na low number of cookies\n","example":2,"type":"string"}},{"in":"query","name":"per_page","schema":{"description":"The number of results per page.","example":100,"maximum":100,"minimum":1,"type":"number"}},{"in":"query","name":"order_by","schema":{"description":"The field used to sort returned cookies.","enum":["first_seen_at","last_seen_at"],"example":"first_seen_at","type":"string"}},{"in":"query","name":"direction","schema":{"description":"The direction used to sort returned cookies.'","enum":["asc","desc"],"example":"asc","type":"string"}},{"in":"query","name":"page_url","schema":{"description":"Includes connections that match one or more page URLs (separated by commas) where they were last seen\n\nWildcards are supported at the start and end of each page URL to support starts with, ends with\nand contains. If no wildcards are used, results will be filtered by exact match\n","example":"example.com/page,*/checkout,example.com/*,*checkout*","type":"string"}},{"in":"query","name":"export","schema":{"description":"Export the list of cookies as a file.","enum":["csv"],"example":"csv","type":"string"}},{"in":"query","name":"name","schema":{"description":"Filters the returned cookies that match the specified name.\nWildcards are supported at the start and end to support starts with, ends with\nand contains. e.g. session*\n","example":"session_id","maxLength":1024,"type":"string"}},{"in":"query","name":"secure","schema":{"description":"Filters the returned cookies that are set with Secure","example":true,"type":"boolean"}},{"in":"query","name":"http_only","schema":{"description":"Filters the returned cookies that are set with HttpOnly","example":true,"type":"boolean"}},{"in":"query","name":"same_site","schema":{"description":"Filters the returned cookies that match the specified same_site attribute","enum":["lax","strict","none"],"example":"strict","type":"string"}},{"in":"query","name":"type","schema":{"description":"Filters the returned cookies that match the specified type attribute","enum":["first_party","unknown"],"example":"first_party","type":"string"}},{"in":"query","name":"path","schema":{"description":"Filters the returned cookies that match the specified path attribute","example":"/","maxLength":1024,"type":"string"}},{"in":"query","name":"domain","schema":{"description":"Filters the returned cookies that match the specified domain attribute","example":"example.com","maxLength":1024,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_list-zone-cookies-response"}}},"description":"List Page Shield cookies response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_api-response-common-failure"}}},"description":"List Page Shield cookies response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Page Shield Cookies","tags":["Page Shield"],"x-api-token-group":["Domain Page Shield Read","Page Shield Read","Zone Settings Write","Zone Settings Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/page_shield/cookies/{cookie_id}":{"get":{"description":"Fetches a cookie collected by Page Shield by cookie ID.","operationId":"page-shield-get-cookie","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/page-shield_id"}},{"in":"path","name":"cookie_id","required":true,"schema":{"$ref":"#/components/schemas/page-shield_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_get-zone-cookie-response"}}},"description":"Get a Page Shield cookie response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_api-response-common-failure"}}},"description":"Get a Page Shield cookie response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a Page Shield cookie","tags":["Page Shield"],"x-api-token-group":["Domain Page Shield Read","Page Shield Read","Zone Settings Write","Zone Settings Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/page_shield/policies":{"get":{"description":"Lists all Page Shield policies.","operationId":"page-shield-list-policies","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/page-shield_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_list-zone-policies-response"}}},"description":"List Page Shield policies response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_api-response-common-failure"}}},"description":"List Page Shield policies response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Page Shield policies","tags":["Page Shield"],"x-api-token-group":["Domain Page Shield Read","Page Shield Read","Zone Settings Write","Zone Settings Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"post":{"description":"Create a Page Shield policy.","operationId":"page-shield-create-policy","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/page-shield_id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_policy"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_get-zone-policy-response"}}},"description":"Create a Page Shield policy response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_api-response-common-failure"}}},"description":"Create a Page Shield policy response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create a Page Shield policy","tags":["Page Shield"],"x-api-token-group":["Zone Settings Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_id}/page_shield/policies/{policy_id}":{"delete":{"description":"Delete a Page Shield policy by ID.","operationId":"page-shield-delete-policy","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/page-shield_id"}},{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/page-shield_id"}}],"responses":{"204":{"description":"Delete a Page Shield policy response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_api-response-common-failure"}}},"description":"Delete a Page Shield policy response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete a Page Shield policy","tags":["Page Shield"],"x-api-token-group":["Zone Settings Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"get":{"description":"Fetches a Page Shield policy by ID.","operationId":"page-shield-get-policy","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/page-shield_id"}},{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/page-shield_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_get-zone-policy-response"}}},"description":"Get a Page Shield policy response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_api-response-common-failure"}}},"description":"Get a Page Shield policy response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a Page Shield policy","tags":["Page Shield"],"x-api-token-group":["Domain Page Shield Read","Page Shield Read","Zone Settings Write","Zone Settings Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}},"put":{"description":"Update a Page Shield policy by ID.","operationId":"page-shield-update-policy","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/page-shield_id"}},{"in":"path","name":"policy_id","required":true,"schema":{"$ref":"#/components/schemas/page-shield_id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"action":{"$ref":"#/components/schemas/page-shield_policy-action"},"description":{"$ref":"#/components/schemas/page-shield_policy-description"},"enabled":{"$ref":"#/components/schemas/page-shield_policy-enabled"},"expression":{"$ref":"#/components/schemas/page-shield_policy-expression"},"value":{"$ref":"#/components/schemas/page-shield_policy-value"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_get-zone-policy-response"}}},"description":"Update a Page Shield policy response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_api-response-common-failure"}}},"description":"Update a Page Shield policy response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update a Page Shield policy","tags":["Page Shield"],"x-api-token-group":["Zone Settings Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_id}/page_shield/scripts":{"get":{"description":"Lists all scripts detected by Page Shield.","operationId":"page-shield-list-scripts","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/page-shield_id"}},{"in":"query","name":"exclude_urls","schema":{"description":"Excludes scripts whose URL contains one of the URL-encoded URLs separated by commas.\n","example":"blog.cloudflare.com,www.example","type":"string"}},{"in":"query","name":"urls","schema":{"description":"Includes scripts whose URL contain one or more URL-encoded URLs separated by commas.\n","example":"blog.cloudflare.com,www.example","type":"string"}},{"in":"query","name":"hosts","schema":{"description":"Includes scripts that match one or more URL-encoded hostnames separated by commas.\n\nWildcards are supported at the start and end of each hostname to support starts with, ends with\nand contains. If no wildcards are used, results will be filtered by exact match\n","example":"blog.cloudflare.com,www.example*,*cloudflare.com","type":"string"}},{"in":"query","name":"page","schema":{"description":"The current page number of the paginated results.\n\nWe additionally support a special value \"all\". When \"all\" is used, the API will return all the scripts\nwith the applied filters in a single page. This feature is best-effort and it may only work for zones with \na low number of scripts\n","example":2,"type":"string"}},{"in":"query","name":"per_page","schema":{"description":"The number of results per page.","example":100,"maximum":100,"minimum":1,"type":"number"}},{"in":"query","name":"order_by","schema":{"description":"The field used to sort returned scripts.","enum":["first_seen_at","last_seen_at"],"example":"first_seen_at","type":"string"}},{"in":"query","name":"direction","schema":{"description":"The direction used to sort returned scripts.","enum":["asc","desc"],"example":"asc","type":"string"}},{"in":"query","name":"prioritize_malicious","schema":{"description":"When true, malicious scripts appear first in the returned scripts.","example":true,"type":"boolean"}},{"in":"query","name":"exclude_cdn_cgi","schema":{"default":true,"description":"When true, excludes scripts seen in a `/cdn-cgi` path from the returned scripts. The default value is true.","example":true,"type":"boolean"}},{"in":"query","name":"exclude_duplicates","schema":{"default":true,"description":"When true, excludes duplicate scripts. We consider a script duplicate of another if their javascript\ncontent matches and they share the same url host and zone hostname. In such case, we return the most\nrecent script for the URL host and zone hostname combination.\n","example":true,"type":"boolean"}},{"in":"query","name":"status","schema":{"description":"Filters the returned scripts using a comma-separated list of scripts statuses. Accepted values: `active`, `infrequent`, and `inactive`. The default value is `active`.","example":"active,inactive","type":"string"}},{"in":"query","name":"page_url","schema":{"description":"Includes scripts that match one or more page URLs (separated by commas) where they were last seen\n\nWildcards are supported at the start and end of each page URL to support starts with, ends with\nand contains. If no wildcards are used, results will be filtered by exact match\n","example":"example.com/page,*/checkout,example.com/*,*checkout*","type":"string"}},{"in":"query","name":"export","schema":{"description":"Export the list of scripts as a file.","enum":["csv"],"example":"csv","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_list-zone-scripts-response"}}},"description":"List Page Shield scripts response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_api-response-common-failure"}}},"description":"List Page Shield scripts response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Page Shield scripts","tags":["Page Shield"],"x-api-token-group":["Domain Page Shield Read","Page Shield Read","Zone Settings Write","Zone Settings Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_id}/page_shield/scripts/{script_id}":{"get":{"description":"Fetches a script detected by Page Shield by script ID.","operationId":"page-shield-get-script","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/page-shield_id"}},{"in":"path","name":"script_id","required":true,"schema":{"$ref":"#/components/schemas/page-shield_id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/page-shield_get-zone-script-response"}}},"description":"Get a Page Shield script response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/page-shield_api-response-common-failure"}]}}},"description":"Get a Page Shield script response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a Page Shield script","tags":["Page Shield"],"x-api-token-group":["Domain Page Shield Read","Page Shield Read","Zone Settings Write","Zone Settings Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":true}}},"/zones/{zone_id}/pagerules":{"get":{"description":"Fetches Page Rules in a zone.","operationId":"page-rules-list-page-rules","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zones_schemas-identifier"}},{"in":"query","name":"order","schema":{"default":"priority","description":"The field used to sort returned Page Rules.","enum":["status","priority"],"example":"status","type":"string"}},{"in":"query","name":"direction","schema":{"default":"desc","description":"The direction used to sort returned Page Rules.","enum":["asc","desc"],"example":"desc","type":"string"}},{"in":"query","name":"match","schema":{"default":"all","description":"When set to `all`, all the search requirements must match. When set to `any`, only one of the search requirements has to match.","enum":["any","all"],"type":"string"}},{"in":"query","name":"status","schema":{"default":"disabled","description":"The status of the Page Rule.","enum":["active","disabled"],"example":"active","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_pagerule_response_collection"}}},"description":"List Page Rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zones_pagerule_response_collection"},{"$ref":"#/components/schemas/zones_schemas-api-response-common-failure"}]}}},"description":"List Page Rules response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Page Rules","tags":["Page Rules"],"x-cfPermissionsRequired":{"enum":["#zone:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Creates a new Page Rule.","operationId":"page-rules-create-a-page-rule","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zones_schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"actions":{"$ref":"#/components/schemas/zones_actions"},"priority":{"$ref":"#/components/schemas/zones_priority"},"status":{"$ref":"#/components/schemas/zones_status"},"targets":{"$ref":"#/components/schemas/zones_targets"}},"required":["targets","actions"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_pagerule_response_single"}}},"description":"Create a Page Rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zones_pagerule_response_single"},{"$ref":"#/components/schemas/zones_schemas-api-response-common-failure"}]}}},"description":"Create a Page Rule response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create a Page Rule","tags":["Page Rules"],"x-cfPermissionsRequired":{"enum":["#zone:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/pagerules/settings":{"get":{"description":"Returns a list of settings (and their details) that Page Rules can apply to matching requests.","operationId":"available-page-rules-settings-list-available-page-rules-settings","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zones_schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_pagerule_settings_response_collection"}}},"description":"List available Page Rules settings response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zones_pagerule_settings_response_collection"},{"$ref":"#/components/schemas/zones_schemas-api-response-common-failure"}]}}},"description":"List available Page Rules settings response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List available Page Rules settings","tags":["Available Page Rules settings"],"x-cfPermissionsRequired":{"enum":["#zone:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/pagerules/{pagerule_id}":{"delete":{"description":"Deletes an existing Page Rule.","operationId":"page-rules-delete-a-page-rule","parameters":[{"in":"path","name":"pagerule_id","required":true,"schema":{"$ref":"#/components/schemas/zones_schemas-identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zones_schemas-identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_schemas-api-response-single-id"}}},"description":"Delete a Page Rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zones_schemas-api-response-single-id"},{"$ref":"#/components/schemas/zones_schemas-api-response-common-failure"}]}}},"description":"Delete a Page Rule response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete a Page Rule","tags":["Page Rules"],"x-cfPermissionsRequired":{"enum":["#zone:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Fetches the details of a Page Rule.","operationId":"page-rules-get-a-page-rule","parameters":[{"in":"path","name":"pagerule_id","required":true,"schema":{"$ref":"#/components/schemas/zones_schemas-identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zones_schemas-identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_pagerule_response_single"}}},"description":"Get a Page Rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zones_pagerule_response_single"},{"$ref":"#/components/schemas/zones_schemas-api-response-common-failure"}]}}},"description":"Get a Page Rule response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get a Page Rule","tags":["Page Rules"],"x-cfPermissionsRequired":{"enum":["#zone:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Updates one or more fields of an existing Page Rule.","operationId":"page-rules-edit-a-page-rule","parameters":[{"in":"path","name":"pagerule_id","required":true,"schema":{"$ref":"#/components/schemas/zones_schemas-identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zones_schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"actions":{"$ref":"#/components/schemas/zones_actions"},"priority":{"$ref":"#/components/schemas/zones_priority"},"status":{"$ref":"#/components/schemas/zones_status"},"targets":{"$ref":"#/components/schemas/zones_targets"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_pagerule_response_single"}}},"description":"Edit a Page Rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zones_pagerule_response_single"},{"$ref":"#/components/schemas/zones_schemas-api-response-common-failure"}]}}},"description":"Edit a Page Rule response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Edit a Page Rule","tags":["Page Rules"],"x-cfPermissionsRequired":{"enum":["#zone:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Replaces the configuration of an existing Page Rule. The configuration of the updated Page Rule will exactly match the data passed in the API request.","operationId":"page-rules-update-a-page-rule","parameters":[{"in":"path","name":"pagerule_id","required":true,"schema":{"$ref":"#/components/schemas/zones_schemas-identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zones_schemas-identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"actions":{"$ref":"#/components/schemas/zones_actions"},"priority":{"$ref":"#/components/schemas/zones_priority"},"status":{"$ref":"#/components/schemas/zones_status"},"targets":{"$ref":"#/components/schemas/zones_targets"}},"required":["targets","actions"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_pagerule_response_single"}}},"description":"Update a Page Rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zones_pagerule_response_single"},{"$ref":"#/components/schemas/zones_schemas-api-response-common-failure"}]}}},"description":"Update a Page Rule response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update a Page Rule","tags":["Page Rules"],"x-cfPermissionsRequired":{"enum":["#zone:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/purge_cache":{"post":{"description":"### Purge All Cached Content\nRemoves ALL files from Cloudflare's cache. All tiers can purge everything.\n```\n{\"purge_everything\": true}\n```\n\n### Purge Cached Content by URL\nGranularly removes one or more files from Cloudflare's cache by specifying URLs. All tiers can purge by URL.\n\nTo purge files with custom cache keys, include the headers used to compute the cache key as in the example. If you have a device type or geo in your cache key, you will need to include the CF-Device-Type or CF-IPCountry headers. If you have lang in your cache key, you will need to include the Accept-Language header.\n\n**NB:** When including the Origin header, be sure to include the **scheme** and **hostname**. The port number can be omitted if it is the default port (80 for http, 443 for https), but must be included otherwise.\n\n**NB:** For Zones on Free/Pro/Business plan, you may purge up to 30 URLs in one API call. For Zones on Enterprise plan, you may purge up to 500 URLs in one API call.\n\nSingle file purge example with files:\n```\n{\"files\": [\"http://www.example.com/css/styles.css\", \"http://www.example.com/js/index.js\"]}\n```\nSingle file purge example with url and header pairs:\n```\n{\"files\": [{url: \"http://www.example.com/cat_picture.jpg\", headers: { \"CF-IPCountry\": \"US\", \"CF-Device-Type\": \"desktop\", \"Accept-Language\": \"zh-CN\" }}, {url: \"http://www.example.com/dog_picture.jpg\", headers: { \"CF-IPCountry\": \"EU\", \"CF-Device-Type\": \"mobile\", \"Accept-Language\": \"en-US\" }}]}\n```\n\n### Purge Cached Content by Tag, Host or Prefix\nGranularly removes one or more files from Cloudflare's cache either by specifying the host, the associated Cache-Tag, or a Prefix. Only Enterprise customers are permitted to purge by Tag, Host or Prefix.\n\n**NB:** Cache-Tag, host, and prefix purging each have a rate limit of 30,000 purge API calls in every 24 hour period. You may purge up to 30 tags, hosts, or prefixes in one API call. This rate limit can be raised for customers who need to purge at higher volume.\n\nFlex purge with tags:\n```\n{\"tags\": [\"a-cache-tag\", \"another-cache-tag\"]}\n```\nFlex purge with hosts:\n```\n{\"hosts\": [\"www.example.com\", \"images.example.com\"]}\n```\nFlex purge with prefixes:\n```\n{\"prefixes\": [\"www.example.com/foo\", \"images.example.com/bar/baz\"]}\n```\n","operationId":"zone-purge","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cache-purge_identifier"}}],"requestBody":{"content":{"application/json":{"examples":{"Flex Purge with Hosts":{"summary":"Flex purge example with hosts list","value":{"hosts":["www.example.com","images.example.com"]}},"Flex Purge with Prefixes":{"summary":"Flex purge example with prefixes list","value":{"prefixes":["www.example.com/foo","images.example.com/bar/baz"]}},"Flex Purge with Tags":{"summary":"Flex purge example with tags list","value":{"tags":["a-cache-tag","another-cache-tag"]}},"Purge Everything":{"summary":"Purge everything example","value":{"purge_everything":true}},"Single File Purge":{"summary":"Single file purge example with files list","value":{"files":["http://www.example.com/css/styles.css","http://www.example.com/js/index.js"]}},"Single File Purge with UrlAndHeaders":{"summary":"Single file purge example with url and headers list","value":{"files":[{"headers":{"Accept-Language":"zh-CN","CF-Device-Type":"desktop","CF-IPCountry":"US"},"url":"http://www.example.com/cat_picture.jpg"},{"headers":{"Accept-Language":"en-US","CF-Device-Type":"mobile","CF-IPCountry":"EU"},"url":"http://www.example.com/dog_picture.jpg"}]}}},"schema":{"anyOf":[{"$ref":"#/components/schemas/cache-purge_FlexPurgeByTags"},{"$ref":"#/components/schemas/cache-purge_FlexPurgeByHostnames"},{"$ref":"#/components/schemas/cache-purge_FlexPurgeByPrefixes"},{"$ref":"#/components/schemas/cache-purge_Everything"},{"$ref":"#/components/schemas/cache-purge_SingleFile"},{"$ref":"#/components/schemas/cache-purge_SingleFileWithUrlAndHeaders"}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cache-purge_api-response-single-id"}}},"description":"Purge Cached Content"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/cache-purge_api-response-single-id"},{"$ref":"#/components/schemas/cache-purge_api-response-common-failure"}]}}},"description":"Purge Cached Content failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Purge Cached Content","tags":["Zone"],"x-api-token-group":["Cache Purge"],"x-cfPermissionsRequired":{"enum":["#cache_purge:edit"]}}},"/zones/{zone_id}/rulesets":{"get":{"description":"Fetches all rulesets at the zone level.","operationId":"listZoneRulesets","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_ZoneId"}}],"responses":{"200":{"$ref":"#/components/responses/rulesets_Rulesets"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"List zone rulesets","tags":["Zone Rulesets"],"x-api-token-group":["Zone WAF Read","Account WAF Read","Account Rulesets Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Creates a ruleset at the zone level.","operationId":"createZoneRuleset","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_ZoneId"}}],"requestBody":{"$ref":"#/components/requestBodies/rulesets_CreateRuleset"},"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Create a zone ruleset","tags":["Zone Rulesets"],"x-api-token-group":["Response Compression Write","Config Settings Write","Dynamic URL Redirects Write","Cache Settings Write","Custom Errors Write","Origin Write","Managed headers Write","Zone Transform Rules Write","HTTP DDoS Managed Ruleset Write","Sanitize Write","Transform Rules Write","Bot Management Write","Mass URL Redirects Write","Magic Firewall Write","L4 DDoS Managed Ruleset Write","Select Configuration Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/rulesets/phases/{ruleset_phase}/entrypoint":{"get":{"description":"Fetches the latest version of the zone entry point ruleset for a given phase.","operationId":"getZoneEntrypointRuleset","parameters":[{"in":"path","name":"ruleset_phase","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetPhase"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_ZoneId"}}],"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Get a zone entry point ruleset","tags":["Zone Rulesets"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Updates a zone entry point ruleset, creating a new version.","operationId":"updateZoneEntrypointRuleset","parameters":[{"in":"path","name":"ruleset_phase","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetPhase"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_ZoneId"}}],"requestBody":{"$ref":"#/components/requestBodies/rulesets_UpdateEntrypointRuleset"},"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Update a zone entry point ruleset","tags":["Zone Rulesets"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/rulesets/phases/{ruleset_phase}/entrypoint/versions":{"get":{"description":"Fetches the versions of a zone entry point ruleset.","operationId":"listZoneEntrypointRulesetVersions","parameters":[{"in":"path","name":"ruleset_phase","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetPhase"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_ZoneId"}}],"responses":{"200":{"$ref":"#/components/responses/rulesets_Rulesets"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"List a zone entry point ruleset's versions","tags":["Zone Rulesets"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/rulesets/phases/{ruleset_phase}/entrypoint/versions/{ruleset_version}":{"get":{"description":"Fetches a specific version of a zone entry point ruleset.","operationId":"getZoneEntrypointRulesetVersion","parameters":[{"in":"path","name":"ruleset_version","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetVersion"}},{"in":"path","name":"ruleset_phase","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetPhase"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_ZoneId"}}],"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Get a zone entry point ruleset version","tags":["Zone Rulesets"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/rulesets/{ruleset_id}":{"delete":{"description":"Deletes all versions of an existing zone ruleset.","operationId":"deleteZoneRuleset","parameters":[{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetId"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_ZoneId"}}],"responses":{"204":{"$ref":"#/components/responses/rulesets_Empty"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Delete a zone ruleset","tags":["Zone Rulesets"],"x-api-token-group":["Response Compression Write","Config Settings Write","Dynamic URL Redirects Write","Cache Settings Write","Custom Errors Write","Origin Write","Managed headers Write","Zone Transform Rules Write","HTTP DDoS Managed Ruleset Write","Sanitize Write","Transform Rules Write","Bot Management Write","Mass URL Redirects Write","Magic Firewall Write","L4 DDoS Managed Ruleset Write","Select Configuration Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Fetches the latest version of a zone ruleset.","operationId":"getZoneRuleset","parameters":[{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetId"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_ZoneId"}}],"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Get a zone ruleset","tags":["Zone Rulesets"],"x-api-token-group":["Response Compression Write","Response Compression Read","Config Settings Write","Config Settings Read","Dynamic URL Redirects Write","Dynamic URL Redirects Read","Cache Settings Write","Cache Settings Read","Custom Errors Write","Custom Errors Read","Origin Write","Origin Read","Managed headers Write","Managed headers Read","Zone Transform Rules Write","Zone Transform Rules Read","HTTP DDoS Managed Ruleset Write","HTTP DDoS Managed Ruleset Read","Sanitize Write","Sanitize Read","Transform Rules Write","Transform Rules Read","Bot Management Write","Bot Management Read","Zone WAF Read","Account WAF Read","Mass URL Redirects Write","Mass URL Redirects Read","Magic Firewall Write","Magic Firewall Read","L4 DDoS Managed Ruleset Write","L4 DDoS Managed Ruleset Read","Select Configuration Write","Select Configuration Read","Account Rulesets Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Updates a zone ruleset, creating a new version.","operationId":"updateZoneRuleset","parameters":[{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetId"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_ZoneId"}}],"requestBody":{"$ref":"#/components/requestBodies/rulesets_UpdateRuleset"},"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Update a zone ruleset","tags":["Zone Rulesets"],"x-api-token-group":["Response Compression Write","Config Settings Write","Dynamic URL Redirects Write","Cache Settings Write","Custom Errors Write","Origin Write","Managed headers Write","Zone Transform Rules Write","HTTP DDoS Managed Ruleset Write","Sanitize Write","Transform Rules Write","Bot Management Write","Mass URL Redirects Write","Magic Firewall Write","L4 DDoS Managed Ruleset Write","Select Configuration Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/rulesets/{ruleset_id}/rules":{"post":{"description":"Adds a new rule to a zone ruleset. The rule will be added to the end of the existing list of rules in the ruleset by default.","operationId":"createZoneRulesetRule","parameters":[{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetId"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_ZoneId"}}],"requestBody":{"$ref":"#/components/requestBodies/rulesets_Rule"},"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Create a zone ruleset rule","tags":["Zone Rulesets"],"x-api-token-group":["Response Compression Write","Config Settings Write","Dynamic URL Redirects Write","Cache Settings Write","Custom Errors Write","Origin Write","Managed headers Write","Zone Transform Rules Write","HTTP DDoS Managed Ruleset Write","Sanitize Write","Transform Rules Write","Bot Management Write","Mass URL Redirects Write","Magic Firewall Write","L4 DDoS Managed Ruleset Write","Select Configuration Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/rulesets/{ruleset_id}/rules/{rule_id}":{"delete":{"description":"Deletes an existing rule from a zone ruleset.","operationId":"deleteZoneRulesetRule","parameters":[{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RuleId"}},{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetId"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_ZoneId"}}],"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Delete a zone ruleset rule","tags":["Zone Rulesets"],"x-api-token-group":["Response Compression Write","Config Settings Write","Dynamic URL Redirects Write","Cache Settings Write","Custom Errors Write","Origin Write","Managed headers Write","Zone Transform Rules Write","HTTP DDoS Managed Ruleset Write","Sanitize Write","Transform Rules Write","Bot Management Write","Mass URL Redirects Write","Magic Firewall Write","L4 DDoS Managed Ruleset Write","Select Configuration Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Updates an existing rule in a zone ruleset.","operationId":"updateZoneRulesetRule","parameters":[{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RuleId"}},{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetId"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_ZoneId"}}],"requestBody":{"$ref":"#/components/requestBodies/rulesets_Rule"},"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Update a zone ruleset rule","tags":["Zone Rulesets"],"x-api-token-group":["Response Compression Write","Config Settings Write","Dynamic URL Redirects Write","Cache Settings Write","Custom Errors Write","Origin Write","Managed headers Write","Zone Transform Rules Write","HTTP DDoS Managed Ruleset Write","Sanitize Write","Transform Rules Write","Bot Management Write","Mass URL Redirects Write","Magic Firewall Write","L4 DDoS Managed Ruleset Write","Select Configuration Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/rulesets/{ruleset_id}/versions":{"get":{"description":"Fetches the versions of a zone ruleset.","operationId":"listZoneRulesetVersions","parameters":[{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetId"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_ZoneId"}}],"responses":{"200":{"$ref":"#/components/responses/rulesets_Rulesets"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"List a zone ruleset's versions","tags":["Zone Rulesets"],"x-api-token-group":["Response Compression Write","Response Compression Read","Config Settings Write","Config Settings Read","Dynamic URL Redirects Write","Dynamic URL Redirects Read","Cache Settings Write","Cache Settings Read","Custom Errors Write","Custom Errors Read","Origin Write","Origin Read","Managed headers Write","Managed headers Read","Zone Transform Rules Write","Zone Transform Rules Read","HTTP DDoS Managed Ruleset Write","HTTP DDoS Managed Ruleset Read","Sanitize Write","Sanitize Read","Transform Rules Write","Transform Rules Read","Bot Management Write","Bot Management Read","Zone WAF Read","Account WAF Read","Mass URL Redirects Write","Mass URL Redirects Read","Magic Firewall Write","Magic Firewall Read","L4 DDoS Managed Ruleset Write","L4 DDoS Managed Ruleset Read","Select Configuration Write","Select Configuration Read","Account Rulesets Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/rulesets/{ruleset_id}/versions/{ruleset_version}":{"delete":{"description":"Deletes an existing version of a zone ruleset.","operationId":"deleteZoneRulesetVersion","parameters":[{"in":"path","name":"ruleset_version","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetVersion"}},{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetId"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_ZoneId"}}],"responses":{"204":{"$ref":"#/components/responses/rulesets_Empty"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Delete a zone ruleset version","tags":["Zone Rulesets"],"x-api-token-group":["Response Compression Write","Config Settings Write","Dynamic URL Redirects Write","Cache Settings Write","Custom Errors Write","Origin Write","Managed headers Write","Zone Transform Rules Write","HTTP DDoS Managed Ruleset Write","Sanitize Write","Transform Rules Write","Bot Management Write","Mass URL Redirects Write","Magic Firewall Write","L4 DDoS Managed Ruleset Write","Select Configuration Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Fetches a specific version of a zone ruleset.","operationId":"getZoneRulesetVersion","parameters":[{"in":"path","name":"ruleset_version","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetVersion"}},{"in":"path","name":"ruleset_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_RulesetId"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_ZoneId"}}],"responses":{"200":{"$ref":"#/components/responses/rulesets_Ruleset"},"4XX":{"$ref":"#/components/responses/rulesets_Failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]},{"api_email":[],"api_key":[]}],"summary":"Get a zone ruleset version","tags":["Zone Rulesets"],"x-api-token-group":["Response Compression Write","Response Compression Read","Config Settings Write","Config Settings Read","Dynamic URL Redirects Write","Dynamic URL Redirects Read","Cache Settings Write","Cache Settings Read","Custom Errors Write","Custom Errors Read","Origin Write","Origin Read","Managed headers Write","Managed headers Read","Zone Transform Rules Write","Zone Transform Rules Read","HTTP DDoS Managed Ruleset Write","HTTP DDoS Managed Ruleset Read","Sanitize Write","Sanitize Read","Transform Rules Write","Transform Rules Read","Bot Management Write","Bot Management Read","Zone WAF Read","Account WAF Read","Mass URL Redirects Write","Mass URL Redirects Read","Magic Firewall Write","Magic Firewall Read","L4 DDoS Managed Ruleset Write","L4 DDoS Managed Ruleset Read","Select Configuration Write","Select Configuration Read","Account Rulesets Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/secondary_dns/force_axfr":{"post":{"description":"Sends AXFR zone transfer request to primary nameserver(s).","operationId":"secondary-dns-(-secondary-zone)-force-axfr","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_force_response"}}},"description":"Force AXFR response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_force_response"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Force AXFR response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Force AXFR","tags":["Secondary DNS (Secondary Zone)"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/secondary_dns/incoming":{"delete":{"description":"Delete secondary zone configuration for incoming zone transfers.","operationId":"secondary-dns-(-secondary-zone)-delete-secondary-zone-configuration","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_id_response"}}},"description":"Delete Secondary Zone Configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_id_response"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Delete Secondary Zone Configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Secondary Zone Configuration","tags":["Secondary DNS (Secondary Zone)"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"description":"Get secondary zone configuration for incoming zone transfers.","operationId":"secondary-dns-(-secondary-zone)-secondary-zone-configuration-details","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_single_response_incoming"}}},"description":"Secondary Zone Configuration Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_single_response_incoming"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Secondary Zone Configuration Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Secondary Zone Configuration Details","tags":["Secondary DNS (Secondary Zone)"],"x-cfPermissionsRequired":{"enum":["#dns_records:read"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Create secondary zone configuration for incoming zone transfers.","operationId":"secondary-dns-(-secondary-zone)-create-secondary-zone-configuration","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_dns-secondary-secondary-zone"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_single_response_incoming"}}},"description":"Create Secondary Zone Configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_single_response_incoming"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Create Secondary Zone Configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create Secondary Zone Configuration","tags":["Secondary DNS (Secondary Zone)"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Update secondary zone configuration for incoming zone transfers.","operationId":"secondary-dns-(-secondary-zone)-update-secondary-zone-configuration","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_dns-secondary-secondary-zone"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_single_response_incoming"}}},"description":"Update Secondary Zone Configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_single_response_incoming"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Update Secondary Zone Configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Secondary Zone Configuration","tags":["Secondary DNS (Secondary Zone)"],"x-cfPermissionsRequired":{"enum":["#dns_records:edit"]},"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/secondary_dns/outgoing":{"delete":{"description":"Delete primary zone configuration for outgoing zone transfers.","operationId":"secondary-dns-(-primary-zone)-delete-primary-zone-configuration","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_id_response"}}},"description":"Delete Primary Zone Configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_id_response"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Delete Primary Zone Configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Primary Zone Configuration","tags":["Secondary DNS (Primary Zone)"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"description":"Get primary zone configuration for outgoing zone transfers.","operationId":"secondary-dns-(-primary-zone)-primary-zone-configuration-details","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_single_response_outgoing"}}},"description":"Primary Zone Configuration Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_single_response_outgoing"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Primary Zone Configuration Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Primary Zone Configuration Details","tags":["Secondary DNS (Primary Zone)"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Create primary zone configuration for outgoing zone transfers.","operationId":"secondary-dns-(-primary-zone)-create-primary-zone-configuration","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_single_request_outgoing"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_single_response_outgoing"}}},"description":"Create Primary Zone Configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_single_response_outgoing"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Create Primary Zone Configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create Primary Zone Configuration","tags":["Secondary DNS (Primary Zone)"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Update primary zone configuration for outgoing zone transfers.","operationId":"secondary-dns-(-primary-zone)-update-primary-zone-configuration","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_single_request_outgoing"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_single_response_outgoing"}}},"description":"Update Primary Zone Configuration response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_single_response_outgoing"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Update Primary Zone Configuration response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update Primary Zone Configuration","tags":["Secondary DNS (Primary Zone)"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/secondary_dns/outgoing/disable":{"post":{"description":"Disable outgoing zone transfers for primary zone and clears IXFR backlog of primary zone.","operationId":"secondary-dns-(-primary-zone)-disable-outgoing-zone-transfers","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_disable_transfer_response"}}},"description":"Disable Outgoing Zone Transfers response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_disable_transfer_response"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Disable Outgoing Zone Transfers response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Disable Outgoing Zone Transfers","tags":["Secondary DNS (Primary Zone)"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/secondary_dns/outgoing/enable":{"post":{"description":"Enable outgoing zone transfers for primary zone.","operationId":"secondary-dns-(-primary-zone)-enable-outgoing-zone-transfers","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_enable_transfer_response"}}},"description":"Enable Outgoing Zone Transfers response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_enable_transfer_response"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Enable Outgoing Zone Transfers response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Enable Outgoing Zone Transfers","tags":["Secondary DNS (Primary Zone)"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/secondary_dns/outgoing/force_notify":{"post":{"description":"Notifies the secondary nameserver(s) and clears IXFR backlog of primary zone.","operationId":"secondary-dns-(-primary-zone)-force-dns-notify","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_schemas-force_response"}}},"description":"Force DNS NOTIFY response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_schemas-force_response"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Force DNS NOTIFY response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Force DNS NOTIFY","tags":["Secondary DNS (Primary Zone)"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/secondary_dns/outgoing/status":{"get":{"description":"Get primary zone transfer status.","operationId":"secondary-dns-(-primary-zone)-get-outgoing-zone-transfer-status","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/secondary-dns_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secondary-dns_enable_transfer_response"}}},"description":"Get Outgoing Zone Transfer Status response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/secondary-dns_enable_transfer_response"},{"$ref":"#/components/schemas/secondary-dns_api-response-common-failure"}]}}},"description":"Get Outgoing Zone Transfer Status response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Outgoing Zone Transfer Status","tags":["Secondary DNS (Primary Zone)"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/security-center/securitytxt":{"delete":{"operationId":"delete-security-txt","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/security-center_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/security-center_api-response-single"}]}}},"description":"OK"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/security-center_api-response-common-failure"}}},"description":"Client Error"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"Delete security.txt","tags":["security.txt"]},"get":{"operationId":"get-security-txt","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/security-center_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/security-center_api-response-common"},{"properties":{"result":{"anyOf":[{"$ref":"#/components/schemas/security-center_securityTxt"}]}}}]}}},"description":"OK"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/security-center_api-response-common-failure"}}},"description":"Client Error"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"Get security.txt","tags":["security.txt"]},"put":{"operationId":"update-security-txt","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/security-center_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/security-center_securityTxt"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/security-center_api-response-single"}]}}},"description":"OK"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/security-center_api-response-common-failure"}}},"description":"Client Error"}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]}],"summary":"Update security.txt","tags":["security.txt"]}},"/zones/{zone_id}/settings":{"get":{"description":"Available settings for your user in relation to a zone.","operationId":"zone-settings-get-all-zone-settings","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zones_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_zone_settings_response_collection"}}},"description":"Get all Zone settings response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_api-response-common-failure"}}},"description":"Get all Zone settings response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get all zone settings","tags":["Zone Settings"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Edit settings for a zone.","operationId":"zone-settings-edit-zone-settings-info","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zones_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_multiple_settings"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_zone_settings_response_collection"}}},"description":"Edit zone settings info response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_api-response-common-failure"}}},"description":"Edit zone settings info response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Edit multiple zone settings","tags":["Zone Settings"],"x-cfPermissionsRequired":{"enum":["#zone_settings:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/settings/fonts":{"get":{"description":"Enhance your website's font delivery with Cloudflare Fonts. Deliver Google Hosted fonts from your own domain,\nboost performance, and enhance user privacy. Refer to the Cloudflare Fonts documentation for more information.\n","operationId":"zone-settings-get-fonts-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/speed_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/speed_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/speed_cloudflare_fonts"}}}]}}},"description":"Get Cloudflare Fonts setting response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/speed_api-response-common-failure"}}},"description":"Get Cloudflare Fonts setting response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Cloudflare Fonts setting","tags":["Zone Settings"],"x-api-token-group":["Zone Settings Write","Zone Settings Read"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Enhance your website's font delivery with Cloudflare Fonts. Deliver Google Hosted fonts from your own domain,\nboost performance, and enhance user privacy. Refer to the Cloudflare Fonts documentation for more information.\n","operationId":"zone-settings-change-fonts-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/speed_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"value":{"$ref":"#/components/schemas/speed_cloudflare_fonts_value"}},"required":["value"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/speed_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/speed_cloudflare_fonts"}}}]}}},"description":"Change Cloudflare Fonts setting response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/speed_api-response-common-failure"}}},"description":"Change Cloudflare Fonts setting response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Change Cloudflare Fonts setting","tags":["Zone Settings"],"x-api-token-group":["Zone Settings Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/settings/origin_max_http_version":{"get":{"description":"Origin Max HTTP Setting Version sets 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.). The default value is \"2\" for all plan types except ENT where it is \"1\"","operationId":"zone-cache-settings-get-origin-max-http-version-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cache_identifier"}}],"responses":{"200":{"content":{"application/json":{"examples":{"max_http_version_2":{"$ref":"#/components/examples/cache_origin_max_http_version_2"}},"schema":{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_origin_max_http_version_response_value"}]}}},"description":"Get Origin Max HTTP Version Setting Response"},"4XX":{"content":{"application/json":{"examples":{"Error":{"$ref":"#/components/examples/cache_dummy_error_response"}},"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_origin_max_http_version_response_value"}]},{"$ref":"#/components/schemas/cache_api-response-common-failure"}]}}},"description":"Get Origin Max HTTP Version Setting Response Failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Origin Max HTTP Version Setting","tags":["Zone Cache Settings"],"x-api-token-group":["Zone Settings Write","Zone Settings Read","Zone Read","Zone Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Origin Max HTTP Setting Version sets 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.). The default value is \"2\" for all plan types except ENT where it is \"1\"","operationId":"zone-cache-settings-change-origin-max-http-version-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/cache_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"value":{"$ref":"#/components/schemas/cache_origin_max_http_version_value"}},"required":["value"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"examples":{"max_http_version_2":{"$ref":"#/components/examples/cache_origin_max_http_version_2"}},"schema":{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_origin_max_http_version_response_value"}]}}},"description":"Change Origin Max HTTP Version Setting Response"},"4XX":{"content":{"application/json":{"examples":{"Error":{"$ref":"#/components/examples/cache_dummy_error_response"}},"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/cache_zone_cache_settings_response_single"},{"$ref":"#/components/schemas/cache_origin_max_http_version_response_value"}]},{"$ref":"#/components/schemas/cache_api-response-common-failure"}]}}},"description":"Change Origin Max HTTP Version Response Failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Change Origin Max HTTP Version Setting","tags":["Zone Cache Settings"],"x-api-token-group":["Zone Settings Write","Zone Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/settings/rum":{"get":{"description":"Retrieves RUM status for a zone.","operationId":"web-analytics-get-rum-status","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rum_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_rum-site-response-single"}}},"description":"Rum Status"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Get RUM status for a zone","tags":["Web Analytics"],"x-api-token-group":["Zone Settings Write","Zone Settings Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Toggles RUM on/off for an existing zone","operationId":"web-analytics-toggle-rum","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rum_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_toggle-rum-request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_rum-site-response-single"}}},"description":"Rum toggled on/off for an existing zone."},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rum_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[],"api_token":[]}],"summary":"Toggle RUM on/off for a zone","tags":["Web Analytics"],"x-api-token-group":["Zone Settings Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/settings/speed_brain":{"get":{"description":"Speed Brain lets compatible browsers speculate on content which can be prefetched or preloaded, making website\nnavigation faster. Refer to the Cloudflare Speed Brain documentation for more information.\n","operationId":"zone-settings-get-speed-brain-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/speed_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/speed_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/speed_cloudflare_speed_brain_response"}}}]}}},"description":"Get Cloudflare Speed Brain setting response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/speed_api-response-common-failure"}}},"description":"Get Cloudflare Speed Brain setting response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Cloudflare Speed Brain setting","tags":["Zone Settings"],"x-api-token-group":["Zone Settings Write","Zone Settings Read"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Speed Brain lets compatible browsers speculate on content which can be prefetched or preloaded, making website\nnavigation faster. Refer to the Cloudflare Speed Brain documentation for more information.\n","operationId":"zone-settings-change-speed-brain-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/speed_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"value":{"description":"Whether the feature is enabled or disabled.","enum":["on","off"],"type":"string"}},"required":["value"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/speed_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/speed_cloudflare_speed_brain_response"}}}]}}},"description":"Cloudflare Speed Brain setting response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/speed_api-response-common-failure"}}},"description":"Change Cloudflare Speed Brain setting response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Change Cloudflare Speed Brain setting","tags":["Zone Settings"],"x-api-token-group":["Zone Settings Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/settings/zaraz/config":{"get":{"description":"Gets latest Zaraz configuration for a zone. It can be preview or published configuration, whichever was the last updated. Secret variables values will not be included.","operationId":"get-zones-zone_identifier-zaraz-config","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zaraz_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_zaraz-config-response"}}},"description":"Get Zaraz configuration response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_api-response-common-failure"}}},"description":"Get Zaraz configuration response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Zaraz configuration","tags":["Zaraz"],"x-cfPermissionsRequired":{"enum":["#zaraz:read"]}},"put":{"description":"Updates Zaraz configuration for a zone.","operationId":"put-zones-zone_identifier-zaraz-config","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zaraz_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_zaraz-config-body"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_zaraz-config-response"}}},"description":"Update Zaraz configuration response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_api-response-common-failure"}}},"description":"Update Zaraz configuration response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update Zaraz configuration","tags":["Zaraz"],"x-cfPermissionsRequired":{"enum":["#zaraz:edit"]}}},"/zones/{zone_id}/settings/zaraz/default":{"get":{"description":"Gets default Zaraz configuration for a zone.","operationId":"get-zones-zone_identifier-zaraz-default","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zaraz_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_zaraz-config-response"}}},"description":"Get Zaraz default configuration response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_api-response-common-failure"}}},"description":"Get Zaraz default configuration response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get default Zaraz configuration","tags":["Zaraz"],"x-cfPermissionsRequired":{"enum":["#zaraz:read"]}}},"/zones/{zone_id}/settings/zaraz/export":{"get":{"description":"Exports full current published Zaraz configuration for a zone, secret variables included.","operationId":"get-zones-zone_identifier-zaraz-export","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zaraz_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_zaraz-config-return"}}},"description":"Get Zaraz configuration response","headers":{"Content-Disposition":{"example":"attachment; filename=zaraz-2023-11-10-23-00.json","schema":{"type":"string"}}}},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_api-response-common-failure"}}},"description":"Get Zaraz configuration response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Export Zaraz configuration","tags":["Zaraz"],"x-cfPermissionsRequired":{"enum":["#zaraz:publish"]}}},"/zones/{zone_id}/settings/zaraz/history":{"get":{"description":"Lists a history of published Zaraz configuration records for a zone.","operationId":"get-zones-zone_identifier-zaraz-history","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zaraz_identifier"}},{"description":"Ordinal number to start listing the results with. Default value is 0.","example":0,"in":"query","name":"offset","schema":{"minimum":0,"type":"integer"}},{"description":"Maximum amount of results to list. Default value is 10.","example":10,"in":"query","name":"limit","schema":{"minimum":1,"type":"integer"}},{"description":"The field to sort by. Default is updated_at.","example":"updated_at","in":"query","name":"sortField","schema":{"enum":["id","user_id","description","created_at","updated_at"],"type":"string"}},{"description":"Sorting order. Default is DESC.","example":"DESC","in":"query","name":"sortOrder","schema":{"enum":["DESC","ASC"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_zaraz-history-response"}}},"description":"List Zaraz historical configuration records response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_api-response-common-failure"}}},"description":"List Zaraz historical configuration records failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Zaraz historical configuration records","tags":["Zaraz"],"x-cfPermissionsRequired":{"enum":["#zaraz:publish"]}},"put":{"description":"Restores a historical published Zaraz configuration by ID for a zone.","operationId":"put-zones-zone_identifier-zaraz-history","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zaraz_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"ID of the Zaraz configuration to restore.","example":12345,"minimum":1,"type":"integer"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_zaraz-config-response"}}},"description":"Restore Zaraz historical configuration by ID response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_api-response-common-failure"}}},"description":"Restore Zaraz historical configuration by ID failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Restore Zaraz historical configuration by ID","tags":["Zaraz"],"x-cfPermissionsRequired":{"enum":["#zaraz:publish"]}}},"/zones/{zone_id}/settings/zaraz/history/configs":{"get":{"description":"Gets a history of published Zaraz configurations by ID(s) for a zone.","operationId":"get-zones-zone_identifier-zaraz-config-history","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zaraz_identifier"}},{"description":"Comma separated list of Zaraz configuration IDs","example":[12345,23456],"explode":false,"in":"query","name":"ids","required":true,"schema":{"items":{"type":"integer"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_zaraz-config-history-response"}}},"description":"Get Zaraz historical configurations by ID(s) response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_api-response-common-failure"}}},"description":"Get Zaraz historical configurations by ID(s) failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Zaraz historical configurations by ID(s)","tags":["Zaraz"],"x-cfPermissionsRequired":{"enum":["#zaraz:read"]}}},"/zones/{zone_id}/settings/zaraz/publish":{"post":{"description":"Publish current Zaraz preview configuration for a zone.","operationId":"post-zones-zone_identifier-zaraz-publish","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zaraz_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"Zaraz configuration description.","example":"Config with enabled ecommerce tracking","type":"string"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zaraz_api-response-common"},{"properties":{"result":{"example":"Config has been published successfully","type":"string"}}}]}}},"description":"Update Zaraz workflow response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_api-response-common-failure"}}},"description":"Update Zaraz workflow response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Publish Zaraz preview configuration","tags":["Zaraz"],"x-api-token-group":["Zaraz Admin"],"x-cfPermissionsRequired":{"enum":["#zaraz:publish"]}}},"/zones/{zone_id}/settings/zaraz/workflow":{"get":{"description":"Gets Zaraz workflow for a zone.","operationId":"get-zones-zone_identifier-zaraz-workflow","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zaraz_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_zaraz-workflow-response"}}},"description":"Get Zaraz workflow response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_api-response-common-failure"}}},"description":"Get Zaraz workflow response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Zaraz workflow","tags":["Zaraz"],"x-cfPermissionsRequired":{"enum":["#zaraz:read"]}},"put":{"description":"Updates Zaraz workflow for a zone.","operationId":"put-zones-zone_identifier-zaraz-workflow","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zaraz_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_zaraz-workflow"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_zaraz-workflow-response"}}},"description":"Update Zaraz workflow response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zaraz_api-response-common-failure"}}},"description":"Update Zaraz workflow response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update Zaraz workflow","tags":["Zaraz"],"x-cfPermissionsRequired":{"enum":["#zaraz:publish"]}}},"/zones/{zone_id}/settings/{setting_id}":{"get":{"description":"Fetch a single zone setting by name","operationId":"zone-settings-get-single-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zones_identifier"}},{"in":"path","name":"setting_id","required":true,"schema":{"$ref":"#/components/schemas/zones_setting_name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zones_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/zones_setting"}}}]}}},"description":"Get zone setting response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_api-response-common-failure"}}},"description":"Get zone setting response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get zone setting","tags":["Zone Settings"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}},"patch":{"description":"Updates a single zone setting by the identifier","operationId":"zone-settings-edit-single-setting","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/zones_identifier"}},{"in":"path","name":"setting_id","required":true,"schema":{"$ref":"#/components/schemas/zones_setting_name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_setting"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/zones_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/zones_setting"}}}]}}},"description":"Edit zone setting response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/zones_api-response-common-failure"}}},"description":"Edit zone settings info response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Edit zone setting","tags":["Zone Settings"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/snippets":{"get":{"operationId":"zone-snippets","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/snippets_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common"},{"properties":{"result":{"description":"List of all zone snippets","items":{"$ref":"#/components/schemas/snippets_snippet"},"type":"array"}},"type":"object"}],"type":"object"}}},"description":"Snippets response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common-failure"}]}}},"description":"Snippet response failure"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common-failure"}]}}},"description":"Snippet response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"All Snippets","tags":["Zone Snippets"],"x-api-token-group":["Snippets Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/snippets/snippet_rules":{"get":{"operationId":"zone-snippets-snippet-rules","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/snippets_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/snippets_rules"}},"type":"object"}],"type":"object"}}},"description":"Snippets rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common-failure"}]}}},"description":"Snippet response failure"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common-failure"}]}}},"description":"Snippet response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Rules","tags":["Zone Snippets"],"x-api-token-group":["Snippets Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"operationId":"zone-snippets-snippet-rules-put","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/snippets_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"rules":{"$ref":"#/components/schemas/snippets_rules"}},"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/snippets_rules"}},"type":"object"}],"type":"object"}}},"description":"Snippets rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common-failure"}]}}},"description":"Snippet response failure"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common-failure"}]}}},"description":"Snippet response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Put Rules","tags":["Zone Snippets"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/snippets/{snippet_name}":{"delete":{"operationId":"zone-snippets-snippet-delete","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/snippets_identifier"}},{"in":"path","name":"snippet_name","required":true,"schema":{"$ref":"#/components/schemas/snippets_snippet_name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common"}],"type":"object"}}},"description":"Snippet response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common-failure"}]}}},"description":"Snippet response failure"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common-failure"}]}}},"description":"Snippet response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Snippet","tags":["Zone Snippets"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"operationId":"zone-snippets-snippet","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/snippets_identifier"}},{"in":"path","name":"snippet_name","required":true,"schema":{"$ref":"#/components/schemas/snippets_snippet_name"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/snippets_snippet"}},"type":"object"}],"type":"object"}}},"description":"Snippet response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common-failure"}]}}},"description":"Snippet response failure"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common-failure"}]}}},"description":"Snippet response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Snippet","tags":["Zone Snippets"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"operationId":"zone-snippets-snippet-put","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/snippets_identifier"}},{"in":"path","name":"snippet_name","required":true,"schema":{"$ref":"#/components/schemas/snippets_snippet_name"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"files":{"description":"Content files of uploaded snippet","example":"export { async function fetch(request, env) {return new Response('some_response') } }","type":"string"},"metadata":{"properties":{"main_module":{"description":"Main module name of uploaded snippet","example":"main.js","type":"string"}},"type":"object"}},"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common"},{"properties":{"result":{"$ref":"#/components/schemas/snippets_snippet"}},"type":"object"}],"type":"object"}}},"description":"Snippet response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common-failure"}]}}},"description":"Snippet response failure"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common-failure"}]}}},"description":"Snippet response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Put Snippet","tags":["Zone Snippets"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/snippets/{snippet_name}/content":{"get":{"operationId":"zone-snippets-snippet-content","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/snippets_identifier"}},{"in":"path","name":"snippet_name","required":true,"schema":{"$ref":"#/components/schemas/snippets_snippet_name"}}],"responses":{"200":{"content":{"multipart/form-data":{"schema":{"properties":{"files":{"description":"Content files of uploaded snippet","example":"export { async function fetch(request, env) {return new Response('some_response') } }","type":"string"}}}}},"description":"Snippet response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common-failure"}]}}},"description":"Snippet response failure"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/snippets_api-response-common-failure"}]}}},"description":"Snippet response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Snippet Content","tags":["Zone Snippets"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/spectrum/analytics/aggregate/current":{"get":{"description":"Retrieves analytics aggregated from the last minute of usage on Spectrum applications underneath a given zone.","operationId":"spectrum-aggregate-analytics-get-current-aggregated-analytics","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/spectrum-analytics_identifier"}},{"in":"query","name":"appID","schema":{"$ref":"#/components/schemas/spectrum-analytics_app_id_param"}},{"in":"query","name":"colo_name","schema":{"description":"Co-location identifier.","example":"PDX","maxLength":3,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/spectrum-analytics_query-response-aggregate"}}},"description":"Get current aggregated analytics response"},"4xx":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/spectrum-analytics_api-response-common-failure"}}},"description":"Get current aggregated analytics response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get current aggregated analytics","tags":["Spectrum Analytics"]}},"/zones/{zone_id}/spectrum/analytics/events/bytime":{"get":{"description":"Retrieves a list of aggregate metrics grouped by time interval.","operationId":"spectrum-analytics-(-by-time)-get-analytics-by-time","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/spectrum-analytics_identifier"}},{"in":"query","name":"dimensions","schema":{"$ref":"#/components/schemas/spectrum-analytics_dimensions"}},{"in":"query","name":"sort","schema":{"$ref":"#/components/schemas/spectrum-analytics_sort"}},{"in":"query","name":"until","schema":{"$ref":"#/components/schemas/spectrum-analytics_until"}},{"in":"query","name":"metrics","schema":{"$ref":"#/components/schemas/spectrum-analytics_metrics"}},{"in":"query","name":"filters","schema":{"$ref":"#/components/schemas/spectrum-analytics_filters"}},{"in":"query","name":"since","schema":{"$ref":"#/components/schemas/spectrum-analytics_since"}},{"in":"query","name":"time_delta","required":true,"schema":{"description":"Used to select time series resolution.","enum":["year","quarter","month","week","day","hour","dekaminute","minute"],"example":"minute","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/spectrum-analytics_query-response-single"}}},"description":"Get analytics by time response"},"4xx":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/spectrum-analytics_api-response-common-failure"}}},"description":"Get analytics by time response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get analytics by time","tags":["Spectrum Analytics"]}},"/zones/{zone_id}/spectrum/analytics/events/summary":{"get":{"description":"Retrieves a list of summarised aggregate metrics over a given time period.","operationId":"spectrum-analytics-(-summary)-get-analytics-summary","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/spectrum-analytics_identifier"}},{"in":"query","name":"dimensions","schema":{"$ref":"#/components/schemas/spectrum-analytics_dimensions"}},{"in":"query","name":"sort","schema":{"$ref":"#/components/schemas/spectrum-analytics_sort"}},{"in":"query","name":"until","schema":{"$ref":"#/components/schemas/spectrum-analytics_until"}},{"in":"query","name":"metrics","schema":{"$ref":"#/components/schemas/spectrum-analytics_metrics"}},{"in":"query","name":"filters","schema":{"$ref":"#/components/schemas/spectrum-analytics_filters"}},{"in":"query","name":"since","schema":{"$ref":"#/components/schemas/spectrum-analytics_since"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/spectrum-analytics_query-response-single"}}},"description":"Get analytics summary response"},"4xx":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/spectrum-analytics_api-response-common-failure"}}},"description":"Get analytics summary response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get analytics summary","tags":["Spectrum Analytics"]}},"/zones/{zone_id}/spectrum/apps":{"get":{"description":"Retrieves a list of currently existing Spectrum applications inside a zone.","operationId":"spectrum-applications-list-spectrum-applications","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/spectrum-config_zone_identifier"}},{"in":"query","name":"page","schema":{"description":"Page number of paginated results. This parameter is required in order to use other pagination parameters. If included in the query, `result_info` will be present in the response.","example":1,"minimum":1,"type":"number"}},{"in":"query","name":"per_page","schema":{"default":20,"description":"Sets the maximum number of results per page.","maximum":100,"minimum":1,"type":"number"}},{"in":"query","name":"direction","schema":{"default":"asc","description":"Sets the direction by which results are ordered.","enum":["asc","desc"],"example":"desc","type":"string"}},{"in":"query","name":"order","schema":{"default":"dns","description":"Application field by which results are ordered.","enum":["protocol","app_id","created_on","modified_on","dns"],"example":"protocol","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/spectrum-config_app_config_collection"}}},"description":"List Spectrum applications response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/spectrum-config_api-response-common-failure"}}},"description":"List Spectrum applications response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Spectrum applications","tags":["Spectrum Applications"],"x-api-token-group":["Zone Settings Write","Zone Settings Read"]},"post":{"description":"Creates a new Spectrum application from a configuration using a name for the origin.","operationId":"spectrum-applications-create-spectrum-application-using-a-name-for-the-origin","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/spectrum-config_zone_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/spectrum-config_update_app_config"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/spectrum-config_app_config_single"}}},"description":"Create Spectrum application using a name for the origin response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/spectrum-config_api-response-common-failure"}}},"description":"Create Spectrum application using a name for the origin response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create Spectrum application using a name for the origin","tags":["Spectrum Applications"],"x-api-token-group":["Zone Settings Write"]}},"/zones/{zone_id}/spectrum/apps/{app_id}":{"delete":{"description":"Deletes a previously existing application.","operationId":"spectrum-applications-delete-spectrum-application","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/spectrum-config_app_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/spectrum-config_zone_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/spectrum-config_api-response-single-id"}}},"description":"Delete Spectrum application response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/spectrum-config_api-response-common-failure"}}},"description":"Delete Spectrum application response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Spectrum application","tags":["Spectrum Applications"],"x-api-token-group":["Zone Settings Write"]},"get":{"description":"Gets the application configuration of a specific application inside a zone.","operationId":"spectrum-applications-get-spectrum-application-configuration","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/spectrum-config_app_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/spectrum-config_zone_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/spectrum-config_app_config_single"}}},"description":"Get Spectrum application configuration response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/spectrum-config_api-response-common-failure"}}},"description":"Get Spectrum application configuration response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Spectrum application configuration","tags":["Spectrum Applications"],"x-api-token-group":["Zone Settings Write","Zone Settings Read"]},"put":{"description":"Updates a previously existing application's configuration that uses a name for the origin.","operationId":"spectrum-applications-update-spectrum-application-configuration-using-a-name-for-the-origin","parameters":[{"in":"path","name":"app_id","required":true,"schema":{"$ref":"#/components/schemas/spectrum-config_app_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/spectrum-config_zone_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/spectrum-config_update_app_config"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/spectrum-config_app_config_single"}}},"description":"Update Spectrum application configuration using a name for the origin response"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/spectrum-config_api-response-common-failure"}}},"description":"Update Spectrum application configuration using a name for the origin response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update Spectrum application configuration using a name for the origin","tags":["Spectrum Applications"],"x-api-token-group":["Zone Settings Write"]}},"/zones/{zone_id}/speed_api/availabilities":{"get":{"description":"Retrieves quota for all plans, as well as the current zone quota.","operationId":"speed-get-availabilities","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/observatory_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_availabilities-response"}}},"description":"Page test availability"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get quota and availability","tags":["Observatory"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/speed_api/pages":{"get":{"description":"Lists all webpages which have been tested.","operationId":"speed-list-pages","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/observatory_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_pages-response-collection"}}},"description":"List of pages"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List tested webpages","tags":["Observatory"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/speed_api/pages/{url}/tests":{"delete":{"description":"Deletes all tests for a specific webpage from a specific region. Deleted tests are still counted as part of the quota.","operationId":"speed-delete-tests","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/observatory_identifier"}},{"in":"path","name":"url","required":true,"schema":{"$ref":"#/components/schemas/observatory_url"}},{"in":"query","name":"region","schema":{"allOf":[{"$ref":"#/components/schemas/observatory_region"},{"default":"us-central1"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_count-response"}}},"description":"Number of deleted tests"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete all page tests","tags":["Observatory"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Test history (list of tests) for a specific webpage.","operationId":"speed-list-test-history","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/observatory_identifier"}},{"in":"path","name":"url","required":true,"schema":{"$ref":"#/components/schemas/observatory_url"}},{"in":"query","name":"page","schema":{"default":1,"type":"integer"}},{"in":"query","name":"per_page","schema":{"default":20,"maximum":50,"minimum":5,"type":"integer"}},{"in":"query","name":"region","schema":{"allOf":[{"$ref":"#/components/schemas/observatory_region"},{"default":"us-central1"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_page-test-response-collection"}}},"description":"List of test history for a page"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List page test history","tags":["Observatory"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Starts a test for a specific webpage, in a specific region.","operationId":"speed-create-test","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/observatory_identifier"}},{"in":"path","name":"url","required":true,"schema":{"$ref":"#/components/schemas/observatory_url"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"region":{"allOf":[{"$ref":"#/components/schemas/observatory_region"},{"default":"us-central1"}]}},"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_page-test-response-single"}}},"description":"Page test details"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Start page test","tags":["Observatory"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/speed_api/pages/{url}/tests/{test_id}":{"get":{"description":"Retrieves the result of a specific test.","operationId":"speed-get-test","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/observatory_identifier"}},{"in":"path","name":"url","required":true,"schema":{"$ref":"#/components/schemas/observatory_url"}},{"in":"path","name":"test_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_page-test-response-single"}}},"description":"Page test result"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a page test result","tags":["Observatory"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/speed_api/pages/{url}/trend":{"get":{"description":"Lists the core web vital metrics trend over time for a specific page.","operationId":"speed-list-page-trend","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/observatory_identifier"}},{"in":"path","name":"url","required":true,"schema":{"$ref":"#/components/schemas/observatory_url"}},{"in":"query","name":"region","required":true,"schema":{"$ref":"#/components/schemas/observatory_region"}},{"in":"query","name":"deviceType","required":true,"schema":{"$ref":"#/components/schemas/observatory_device_type"}},{"in":"query","name":"start","required":true,"schema":{"$ref":"#/components/schemas/observatory_timestamp"}},{"in":"query","name":"end","schema":{"$ref":"#/components/schemas/observatory_timestamp"}},{"description":"The timezone of the start and end timestamps.","example":"America/Chicago","in":"query","name":"tz","required":true,"schema":{"type":"string"}},{"description":"A comma-separated list of metrics to include in the results.","in":"query","name":"metrics","required":true,"schema":{"example":"performanceScore,ttfb,fcp,si,lcp,tti,tbt,cls","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_trend-response"}}},"description":"Page trend"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List core web vital metrics trend","tags":["Observatory"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/speed_api/schedule/{url}":{"delete":{"description":"Deletes a scheduled test for a page.","operationId":"speed-delete-test-schedule","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/observatory_identifier"}},{"in":"path","name":"url","required":true,"schema":{"$ref":"#/components/schemas/observatory_url"}},{"in":"query","name":"region","schema":{"allOf":[{"$ref":"#/components/schemas/observatory_region"},{"default":"us-central1"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_count-response"}}},"description":"Number of deleted tests"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete scheduled page test","tags":["Observatory"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"Retrieves the test schedule for a page in a specific region.","operationId":"speed-get-scheduled-test","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/observatory_identifier"}},{"in":"path","name":"url","required":true,"schema":{"$ref":"#/components/schemas/observatory_url"}},{"in":"query","name":"region","schema":{"allOf":[{"$ref":"#/components/schemas/observatory_region"},{"default":"us-central1"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_schedule-response-single"}}},"description":"Page test schedule"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get a page test schedule","tags":["Observatory"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"description":"Creates a scheduled test for a page.","operationId":"speed-create-scheduled-test","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/observatory_identifier"}},{"in":"path","name":"url","required":true,"schema":{"$ref":"#/components/schemas/observatory_url"}},{"in":"query","name":"region","schema":{"allOf":[{"$ref":"#/components/schemas/observatory_region"},{"default":"us-central1"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_create-schedule-response"}}},"description":"Page test schedule"},"4XX":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/observatory_api-response-common-failure"}}},"description":"Failure response"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create scheduled page test","tags":["Observatory"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/ssl/analyze":{"post":{"description":"Returns the set of hostnames, the signature algorithm, and the expiration date of the certificate.","operationId":"analyze-certificate-analyze-certificate","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"bundle_method":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_bundle_method"},"certificate":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_analyze_response"}}},"description":"Analyze Certificate response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_analyze_response"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Analyze Certificate response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Analyze Certificate","tags":["Analyze Certificate"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/ssl/certificate_packs":{"get":{"description":"For a given zone, list all active certificate packs.","operationId":"certificate-packs-list-certificate-packs","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"query","name":"status","schema":{"description":"Include Certificate Packs of all statuses, not just active ones.","enum":["all"],"example":"all"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_pack_response_collection"}}},"description":"List Certificate Packs response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_pack_response_collection"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"List Certificate Packs response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Certificate Packs","tags":["Certificate Packs"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/ssl/certificate_packs/order":{"post":{"description":"For a given zone, order an advanced certificate pack.","operationId":"certificate-packs-order-advanced-certificate-manager-certificate-pack","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"certificate_authority":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-certificate_authority"},"cloudflare_branding":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_cloudflare_branding"},"hosts":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_schemas-hosts"},"type":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_advanced_type"},"validation_method":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_validation_method"},"validity_days":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_validity_days"}},"required":["type","hosts","validation_method","validity_days","certificate_authority"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_advanced_certificate_pack_response_single"}}},"description":"Order Advanced Certificate Manager Certificate Pack response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_advanced_certificate_pack_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Order Advanced Certificate Manager Certificate Pack response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Order Advanced Certificate Manager Certificate Pack","tags":["Certificate Packs"],"x-api-token-group":["SSL and Certificates Write"],"x-cfPermissionsRequired":{"enum":["#ssl:read","#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/ssl/certificate_packs/quota":{"get":{"description":"For a given zone, list certificate pack quotas.","operationId":"certificate-packs-get-certificate-pack-quotas","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_pack_quota_response"}}},"description":"Get Certificate Pack Quotas response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_pack_quota_response"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Get Certificate Pack Quotas response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Certificate Pack Quotas","tags":["Certificate Packs"],"x-api-token-group":["SSL and Certificates Write","SSL and Certificates Read"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/ssl/certificate_packs/{certificate_pack_id}":{"delete":{"description":"For a given zone, delete an advanced certificate pack.","operationId":"certificate-packs-delete-advanced-certificate-manager-certificate-pack","parameters":[{"in":"path","name":"certificate_pack_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_delete_advanced_certificate_pack_response_single"}}},"description":"Delete Advanced Certificate Manager Certificate Pack response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_delete_advanced_certificate_pack_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Delete Advanced Certificate Manager Certificate Pack response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Advanced Certificate Manager Certificate Pack","tags":["Certificate Packs"],"x-cfPermissionsRequired":{"enum":["#ssl:read","#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"description":"For a given zone, get a certificate pack.","operationId":"certificate-packs-get-certificate-pack","parameters":[{"in":"path","name":"certificate_pack_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_pack_response_single"}}},"description":"Get Certificate Pack response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_certificate_pack_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Get Certificate Pack response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get Certificate Pack","tags":["Certificate Packs"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"For a given zone, restart validation for an advanced certificate pack. This is only a validation operation for a Certificate Pack in a validation_timed_out status.","operationId":"certificate-packs-restart-validation-for-advanced-certificate-manager-certificate-pack","parameters":[{"in":"path","name":"certificate_pack_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_advanced_certificate_pack_response_single"}}},"description":"Restart Validation for Advanced Certificate Manager Certificate Pack response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_advanced_certificate_pack_response_single"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Restart Validation for Advanced Certificate Manager Certificate Pack response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Restart Validation for Advanced Certificate Manager Certificate Pack","tags":["Certificate Packs"],"x-cfPermissionsRequired":{"enum":["#ssl:read","#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/ssl/universal/settings":{"get":{"description":"Get Universal SSL Settings for a Zone.","operationId":"universal-ssl-settings-for-a-zone-universal-ssl-settings-details","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_ssl_universal_settings_response"}}},"description":"Universal SSL Settings Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_ssl_universal_settings_response"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Universal SSL Settings Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Universal SSL Settings Details","tags":["Universal SSL Settings for a Zone"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"Patch Universal SSL Settings for a Zone.","operationId":"universal-ssl-settings-for-a-zone-edit-universal-ssl-settings","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_universal"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_ssl_universal_settings_response"}}},"description":"Edit Universal SSL Settings response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_ssl_universal_settings_response"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Edit Universal SSL Settings response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Edit Universal SSL Settings","tags":["Universal SSL Settings for a Zone"],"x-cfPermissionsRequired":{"enum":["#ssl:read","#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/ssl/verification":{"get":{"description":"Get SSL Verification Info for a Zone.","operationId":"ssl-verification-ssl-verification-details","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}},{"in":"query","name":"retry","schema":{"description":"Immediately retry SSL Verification.","enum":[true],"example":true}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_ssl_verification_response_collection"}}},"description":"SSL Verification Details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_ssl_verification_response_collection"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"SSL Verification Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"SSL Verification Details","tags":["SSL Verification"],"x-cfPermissionsRequired":{"enum":["#ssl:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/ssl/verification/{certificate_pack_id}":{"patch":{"description":"Edit SSL validation method for a certificate pack. A PATCH request will request an immediate validation check on any certificate, and return the updated status. If a validation method is provided, the validation will be immediately attempted using that method.","operationId":"ssl-verification-edit-ssl-certificate-pack-validation-method","parameters":[{"in":"path","name":"certificate_pack_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_cert_pack_uuid"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_components-schemas-validation_method"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tls-certificates-and-hostnames_ssl_validation_method_response_collection"}}},"description":"Edit SSL Certificate Pack Validation Method response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/tls-certificates-and-hostnames_ssl_validation_method_response_collection"},{"$ref":"#/components/schemas/tls-certificates-and-hostnames_api-response-common-failure"}]}}},"description":"Edit SSL Certificate Pack Validation Method response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Edit SSL Certificate Pack Validation Method","tags":["SSL Verification"],"x-cfPermissionsRequired":{"enum":["#ssl:read","#ssl:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/url_normalization":{"get":{"description":"Fetches the current URL normalization settings.","operationId":"url-normalization-get-url-normalization-settings","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rulesets_schemas-response_model"}}},"description":"Get URL normalization settings response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/rulesets_schemas-response_model"},{"$ref":"#/components/schemas/rulesets_api-response-common-failure"}]}}},"description":"Get URL normalization settings response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get URL normalization settings","tags":["URL Normalization"],"x-api-token-group":["Response Compression Write","Response Compression Read","Config Settings Write","Config Settings Read","Dynamic URL Redirects Write","Dynamic URL Redirects Read","Cache Settings Write","Cache Settings Read","Custom Errors Write","Custom Errors Read","Origin Write","Origin Read","Managed headers Write","Managed headers Read","Zone Transform Rules Write","Zone Transform Rules Read","HTTP DDoS Managed Ruleset Write","HTTP DDoS Managed Ruleset Read","Sanitize Write","Sanitize Read","Transform Rules Write","Transform Rules Read","Bot Management Write","Bot Management Read","Zone WAF Read","Account WAF Read","Mass URL Redirects Write","Mass URL Redirects Read","Magic Firewall Write","Magic Firewall Read","L4 DDoS Managed Ruleset Write","L4 DDoS Managed Ruleset Read","Select Configuration Write","Select Configuration Read","Account Rulesets Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"put":{"description":"Updates the URL normalization settings.","operationId":"url-normalization-update-url-normalization-settings","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/rulesets_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rulesets_schemas-request_model"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rulesets_schemas-response_model"}}},"description":"Update URL normalization settings response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/rulesets_schemas-response_model"},{"$ref":"#/components/schemas/rulesets_api-response-common-failure"}]}}},"description":"Update URL normalization settings response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update URL normalization settings","tags":["URL Normalization"],"x-api-token-group":["Response Compression Write","Config Settings Write","Dynamic URL Redirects Write","Cache Settings Write","Custom Errors Write","Origin Write","Managed headers Write","Zone Transform Rules Write","HTTP DDoS Managed Ruleset Write","Sanitize Write","Transform Rules Write","Bot Management Write","Mass URL Redirects Write","Magic Firewall Write","L4 DDoS Managed Ruleset Write","Select Configuration Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/waiting_rooms":{"get":{"description":"Lists waiting rooms.","operationId":"waiting-room-list-waiting-rooms","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}},{"$ref":"#/components/parameters/waitingroom_page"},{"$ref":"#/components/parameters/waitingroom_per_page"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_response_collection"}}},"description":"List waiting rooms response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_response_collection"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"List waiting rooms response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List waiting rooms","tags":["Waiting Room"],"x-api-token-group":["Waiting Rooms Read","Waiting Rooms Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Creates a new waiting room.","operationId":"waiting-room-create-waiting-room","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_query_waitingroom"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_single_response"}}},"description":"Create waiting room response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_single_response"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"Create waiting room response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create waiting room","tags":["Waiting Room"],"x-api-token-group":["Waiting Rooms Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/waiting_rooms/preview":{"post":{"description":"Creates a waiting room page preview. Upload a custom waiting room page for preview. You will receive a preview URL in the form `http://waitingrooms.dev/preview/\u003cuuid\u003e`. You can use the following query parameters to change the state of the preview:\n1. `force_queue`: Boolean indicating if all users will be queued in the waiting room and no one will be let into the origin website (also known as queueAll).\n2. `queue_is_full`: Boolean indicating if the waiting room's queue is currently full and not accepting new users at the moment.\n3. `queueing_method`: The queueing method currently used by the waiting room.\n\t- **fifo** indicates a FIFO queue.\n\t- **random** indicates a Random queue.\n\t- **passthrough** indicates a Passthrough queue. Keep in mind that the waiting room page will only be displayed if `force_queue=true` or `event=prequeueing` — for other cases the request will pass through to the origin. For our preview, this will be a fake origin website returning \"Welcome\". \n\t- **reject** indicates a Reject queue.\n4. `event`: Used to preview a waiting room event.\n\t- **none** indicates no event is occurring.\n\t- **prequeueing** indicates that an event is prequeueing (between `prequeue_start_time` and `event_start_time`).\n\t- **started** indicates that an event has started (between `event_start_time` and `event_end_time`).\n5. `shuffle_at_event_start`: Boolean indicating if the event will shuffle users in the prequeue when it starts. This can only be set to **true** if an event is active (`event` is not **none**).\n\nFor example, you can make a request to `http://waitingrooms.dev/preview/\u003cuuid\u003e?force_queue=false\u0026queue_is_full=false\u0026queueing_method=random\u0026event=started\u0026shuffle_at_event_start=true`\n6. `waitTime`: Non-zero, positive integer indicating the estimated wait time in minutes. The default value is 10 minutes.\n\nFor example, you can make a request to `http://waitingrooms.dev/preview/\u003cuuid\u003e?waitTime=50` to configure the estimated wait time as 50 minutes.","operationId":"waiting-room-create-a-custom-waiting-room-page-preview","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_query_preview"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_preview_response"}}},"description":"Create a custom waiting room page preview response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_preview_response"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"Create a custom waiting room page preview response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create a custom waiting room page preview","tags":["Waiting Room"],"x-api-token-group":["Waiting Rooms Write"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/waiting_rooms/settings":{"get":{"operationId":"waiting-room-get-zone-settings","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_zone_settings_response"}}},"description":"The current zone-level Waiting Room settings"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_zone_settings_response"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"The current zone-level Waiting Room settings response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get zone-level Waiting Room settings","tags":["Waiting Room"],"x-api-token-group":["Waiting Rooms Read","Waiting Rooms Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}},"patch":{"operationId":"waiting-room-patch-zone-settings","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_zone_settings"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_zone_settings_response"}}},"description":"The updated zone-level Waiting Room settings"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_zone_settings_response"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"The zone-level Waiting Room settings response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Patch zone-level Waiting Room settings","tags":["Waiting Room"],"x-api-token-group":["Waiting Rooms Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}},"put":{"operationId":"waiting-room-update-zone-settings","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_zone_settings"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_zone_settings_response"}}},"description":"The updated zone-level Waiting Room settings"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_zone_settings_response"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"The zone-level Waiting Room settings response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update zone-level Waiting Room settings","tags":["Waiting Room"],"x-api-token-group":["Waiting Rooms Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/waiting_rooms/{waiting_room_id}":{"delete":{"description":"Deletes a waiting room.","operationId":"waiting-room-delete-waiting-room","parameters":[{"in":"path","name":"waiting_room_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_waiting_room_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_waiting_room_id_response"}}},"description":"Delete waiting room response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_waiting_room_id_response"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"Delete waiting room response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete waiting room","tags":["Waiting Room"],"x-api-token-group":["Waiting Rooms Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}},"get":{"description":"Fetches a single configured waiting room.","operationId":"waiting-room-waiting-room-details","parameters":[{"in":"path","name":"waiting_room_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_waiting_room_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_single_response"}}},"description":"Waiting room details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_single_response"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"Waiting room details response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Waiting room details","tags":["Waiting Room"],"x-api-token-group":["Waiting Rooms Read","Waiting Rooms Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}},"patch":{"description":"Patches a configured waiting room.","operationId":"waiting-room-patch-waiting-room","parameters":[{"in":"path","name":"waiting_room_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_waiting_room_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_query_waitingroom"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_single_response"}}},"description":"Patch waiting room response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_single_response"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"Patch waiting room response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Patch waiting room","tags":["Waiting Room"],"x-api-token-group":["Waiting Rooms Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Updates a configured waiting room.","operationId":"waiting-room-update-waiting-room","parameters":[{"in":"path","name":"waiting_room_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_waiting_room_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_query_waitingroom"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_single_response"}}},"description":"Update waiting room response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_single_response"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"Update waiting room response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update waiting room","tags":["Waiting Room"],"x-api-token-group":["Waiting Rooms Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/waiting_rooms/{waiting_room_id}/events":{"get":{"description":"Lists events for a waiting room.","operationId":"waiting-room-list-events","parameters":[{"in":"path","name":"waiting_room_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_waiting_room_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}},{"$ref":"#/components/parameters/waitingroom_page"},{"$ref":"#/components/parameters/waitingroom_per_page"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_event_response_collection"}}},"description":"List events response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_event_response_collection"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"List events response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List events","tags":["Waiting Room"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Only available for the Waiting Room Advanced subscription. Creates an event for a waiting room. An event takes place during a specified period of time, temporarily changing the behavior of a waiting room. While the event is active, some of the properties in the event's configuration may either override or inherit from the waiting room's configuration. Note that events cannot overlap with each other, so only one event can be active at a time.","operationId":"waiting-room-create-event","parameters":[{"in":"path","name":"waiting_room_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_waiting_room_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_query_event"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_event_response"}}},"description":"Create event response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_event_response"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"Create event response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create event","tags":["Waiting Room"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/waiting_rooms/{waiting_room_id}/events/{event_id}":{"delete":{"description":"Deletes an event for a waiting room.","operationId":"waiting-room-delete-event","parameters":[{"in":"path","name":"event_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_event_id"}},{"in":"path","name":"waiting_room_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_waiting_room_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_event_id_response"}}},"description":"Delete event response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_event_id_response"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"Delete event response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete event","tags":["Waiting Room"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"description":"Fetches a single configured event for a waiting room.","operationId":"waiting-room-event-details","parameters":[{"in":"path","name":"event_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_event_id"}},{"in":"path","name":"waiting_room_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_waiting_room_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_event_response"}}},"description":"Event details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_event_response"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"Event details response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Event details","tags":["Waiting Room"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"patch":{"description":"Patches a configured event for a waiting room.","operationId":"waiting-room-patch-event","parameters":[{"in":"path","name":"event_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_event_id"}},{"in":"path","name":"waiting_room_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_waiting_room_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_query_event"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_event_response"}}},"description":"Patch event response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_event_response"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"Patch event response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Patch event","tags":["Waiting Room"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Updates a configured event for a waiting room.","operationId":"waiting-room-update-event","parameters":[{"in":"path","name":"event_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_event_id"}},{"in":"path","name":"waiting_room_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_waiting_room_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_query_event"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_event_response"}}},"description":"Update event response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_event_response"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"Update event response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update event","tags":["Waiting Room"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/waiting_rooms/{waiting_room_id}/events/{event_id}/details":{"get":{"description":"Previews an event's configuration as if it was active. Inherited fields from the waiting room will be displayed with their current values.","operationId":"waiting-room-preview-active-event-details","parameters":[{"in":"path","name":"event_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_event_id"}},{"in":"path","name":"waiting_room_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_waiting_room_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_event_details_response"}}},"description":"Preview active event details response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_event_details_response"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"Preview active event details response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Preview active event details","tags":["Waiting Room"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/waiting_rooms/{waiting_room_id}/rules":{"get":{"description":"Lists rules for a waiting room.","operationId":"waiting-room-list-waiting-room-rules","parameters":[{"in":"path","name":"waiting_room_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_waiting_room_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_rules_response_collection"}}},"description":"List Waiting Room Rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_rules_response_collection"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"List Waiting Room Rules response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Waiting Room Rules","tags":["Waiting Room"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"description":"Only available for the Waiting Room Advanced subscription. Creates a rule for a waiting room.","operationId":"waiting-room-create-waiting-room-rule","parameters":[{"in":"path","name":"waiting_room_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_waiting_room_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_create_rule"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_rules_response_collection"}}},"description":"Create Waiting Room Rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_rules_response_collection"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"Create Waiting Room Rule response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create Waiting Room Rule","tags":["Waiting Room"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"description":"Only available for the Waiting Room Advanced subscription. Replaces all rules for a waiting room.","operationId":"waiting-room-replace-waiting-room-rules","parameters":[{"in":"path","name":"waiting_room_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_waiting_room_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_update_rules"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_rules_response_collection"}}},"description":"Replace Waiting Room Rules response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_rules_response_collection"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"Replace Waiting Room Rules response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Replace Waiting Room Rules","tags":["Waiting Room"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/waiting_rooms/{waiting_room_id}/rules/{rule_id}":{"delete":{"description":"Deletes a rule for a waiting room.","operationId":"waiting-room-delete-waiting-room-rule","parameters":[{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_rule_id"}},{"in":"path","name":"waiting_room_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_waiting_room_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_rules_response_collection"}}},"description":"Delete Waiting Room Rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_rules_response_collection"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"Delete Waiting Room Rule response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Waiting Room Rule","tags":["Waiting Room"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"patch":{"description":"Patches a rule for a waiting room.","operationId":"waiting-room-patch-waiting-room-rule","parameters":[{"in":"path","name":"rule_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_rule_id"}},{"in":"path","name":"waiting_room_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_waiting_room_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_patch_rule"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_rules_response_collection"}}},"description":"Patch Waiting Room Rule response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_rules_response_collection"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"Patch Waiting Room Rule response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Patch Waiting Room Rule","tags":["Waiting Room"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/waiting_rooms/{waiting_room_id}/status":{"get":{"description":"Fetches the status of a configured waiting room. Response fields include:\n1. `status`: String indicating the status of the waiting room. The possible status are:\n\t- **not_queueing** indicates that the configured thresholds have not been met and all users are going through to the origin.\n\t- **queueing** indicates that the thresholds have been met and some users are held in the waiting room.\n\t- **event_prequeueing** indicates that an event is active and is currently prequeueing users before it starts.\n2. `event_id`: String of the current event's `id` if an event is active, otherwise an empty string.\n3. `estimated_queued_users`: Integer of the estimated number of users currently waiting in the queue.\n4. `estimated_total_active_users`: Integer of the estimated number of users currently active on the origin.\n5. `max_estimated_time_minutes`: Integer of the maximum estimated time currently presented to the users.","operationId":"waiting-room-get-waiting-room-status","parameters":[{"in":"path","name":"waiting_room_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_waiting_room_id"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/waitingroom_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/waitingroom_status_response"}}},"description":"Get waiting room status response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/waitingroom_status_response"},{"$ref":"#/components/schemas/waitingroom_api-response-common-failure"}]}}},"description":"Get waiting room status response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get waiting room status","tags":["Waiting Room"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/web3/hostnames":{"get":{"operationId":"web3-hostname-list-web3-hostnames","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web3_collection_response"}}},"description":"List Web3 Hostnames response"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/web3_collection_response"},{"$ref":"#/components/schemas/web3_api-response-common-failure"}]}}},"description":"List Web3 Hostnames response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List Web3 Hostnames","tags":["Web3 Hostname"],"x-api-token-group":["Web3 Hostnames Write","Web3 Hostnames Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"post":{"operationId":"web3-hostname-create-web3-hostname","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web3_create_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web3_single_response"}}},"description":"Create Web3 Hostname response"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/web3_single_response"},{"$ref":"#/components/schemas/web3_api-response-common-failure"}]}}},"description":"Create Web3 Hostname response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create Web3 Hostname","tags":["Web3 Hostname"],"x-api-token-group":["Web3 Hostnames Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/web3/hostnames/{identifier}":{"delete":{"operationId":"web3-hostname-delete-web3-hostname","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web3_api-response-single-id"}}},"description":"Delete Web3 Hostname response"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/web3_api-response-single-id"},{"$ref":"#/components/schemas/web3_api-response-common-failure"}]}}},"description":"Delete Web3 Hostname response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete Web3 Hostname","tags":["Web3 Hostname"],"x-api-token-group":["Web3 Hostnames Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"get":{"operationId":"web3-hostname-web3-hostname-details","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web3_single_response"}}},"description":"Web3 Hostname Details response"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/web3_single_response"},{"$ref":"#/components/schemas/web3_api-response-common-failure"}]}}},"description":"Web3 Hostname Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Web3 Hostname Details","tags":["Web3 Hostname"],"x-api-token-group":["Web3 Hostnames Write","Web3 Hostnames Read"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"operationId":"web3-hostname-edit-web3-hostname","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web3_modify_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web3_single_response"}}},"description":"Edit Web3 Hostname response"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/web3_single_response"},{"$ref":"#/components/schemas/web3_api-response-common-failure"}]}}},"description":"Edit Web3 Hostname response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Edit Web3 Hostname","tags":["Web3 Hostname"],"x-api-token-group":["Web3 Hostnames Write"],"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}},"/zones/{zone_id}/web3/hostnames/{identifier}/ipfs_universal_path/content_list":{"get":{"operationId":"web3-hostname-ipfs-universal-path-gateway-content-list-details","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web3_content_list_details_response"}}},"description":"IPFS Universal Path Gateway Content List Details response"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/web3_content_list_details_response"},{"$ref":"#/components/schemas/web3_api-response-common-failure"}]}}},"description":"IPFS Universal Path Gateway Content List Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"IPFS Universal Path Gateway Content List Details","tags":["Web3 Hostname"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"operationId":"web3-hostname-update-ipfs-universal-path-gateway-content-list","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web3_content_list_update_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web3_content_list_details_response"}}},"description":"Update IPFS Universal Path Gateway Content List response"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/web3_content_list_details_response"},{"$ref":"#/components/schemas/web3_api-response-common-failure"}]}}},"description":"Update IPFS Universal Path Gateway Content List response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update IPFS Universal Path Gateway Content List","tags":["Web3 Hostname"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/web3/hostnames/{identifier}/ipfs_universal_path/content_list/entries":{"get":{"operationId":"web3-hostname-list-ipfs-universal-path-gateway-content-list-entries","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web3_content_list_entry_collection_response"}}},"description":"List IPFS Universal Path Gateway Content List Entries response"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/web3_content_list_entry_collection_response"},{"$ref":"#/components/schemas/web3_api-response-common-failure"}]}}},"description":"List IPFS Universal Path Gateway Content List Entries response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"List IPFS Universal Path Gateway Content List Entries","tags":["Web3 Hostname"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"post":{"operationId":"web3-hostname-create-ipfs-universal-path-gateway-content-list-entry","parameters":[{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web3_content_list_entry_create_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web3_content_list_entry_single_response"}}},"description":"Create IPFS Universal Path Gateway Content List Entry response"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/web3_content_list_entry_single_response"},{"$ref":"#/components/schemas/web3_api-response-common-failure"}]}}},"description":"Create IPFS Universal Path Gateway Content List Entry response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Create IPFS Universal Path Gateway Content List Entry","tags":["Web3 Hostname"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/web3/hostnames/{identifier}/ipfs_universal_path/content_list/entries/{content_list_entry_identifier}":{"delete":{"operationId":"web3-hostname-delete-ipfs-universal-path-gateway-content-list-entry","parameters":[{"in":"path","name":"content_list_entry_identifier","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}},{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web3_api-response-single-id"}}},"description":"Delete IPFS Universal Path Gateway Content List Entry response"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/web3_api-response-single-id"},{"$ref":"#/components/schemas/web3_api-response-common-failure"}]}}},"description":"Delete IPFS Universal Path Gateway Content List Entry response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Delete IPFS Universal Path Gateway Content List Entry","tags":["Web3 Hostname"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"get":{"operationId":"web3-hostname-ipfs-universal-path-gateway-content-list-entry-details","parameters":[{"in":"path","name":"content_list_entry_identifier","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}},{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web3_content_list_entry_single_response"}}},"description":"IPFS Universal Path Gateway Content List Entry Details response"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/web3_content_list_entry_single_response"},{"$ref":"#/components/schemas/web3_api-response-common-failure"}]}}},"description":"IPFS Universal Path Gateway Content List Entry Details response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"IPFS Universal Path Gateway Content List Entry Details","tags":["Web3 Hostname"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}},"put":{"operationId":"web3-hostname-edit-ipfs-universal-path-gateway-content-list-entry","parameters":[{"in":"path","name":"content_list_entry_identifier","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}},{"in":"path","name":"identifier","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/web3_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web3_content_list_entry_create_request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web3_content_list_entry_single_response"}}},"description":"Edit IPFS Universal Path Gateway Content List Entry response"},"5XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/web3_content_list_entry_single_response"},{"$ref":"#/components/schemas/web3_api-response-common-failure"}]}}},"description":"Edit IPFS Universal Path Gateway Content List Entry response failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Edit IPFS Universal Path Gateway Content List Entry","tags":["Web3 Hostname"],"x-cfPlanAvailability":{"business":false,"enterprise":true,"free":false,"pro":false}}},"/zones/{zone_id}/workers/filters":{"get":{"deprecated":true,"operationId":"worker-filters-(-deprecated)-list-filters","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_filter-response-collection"}}},"description":"List Filters response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_filter-response-collection"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"List Filters response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Filters","tags":["Worker Filters (Deprecated)"],"x-cfDeprecation":{"description":"This endpoint and its related APIs are deprecated in favor of the `/routes` equivalent APIs. These APIs are for use with the previously limited single-script zones.","display":true,"id":"worker_filter_deprecation"}},"post":{"deprecated":true,"operationId":"worker-filters-(-deprecated)-create-filter","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_filter-no-id"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-single-id"}}},"description":"Create Filter response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-single-id"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Create Filter response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create Filter","tags":["Worker Filters (Deprecated)"],"x-cfDeprecation":{"description":"This endpoint and its related APIs are deprecated in favor of the `/routes` equivalent APIs. These APIs are for use with the previously limited single-script zones.","display":true,"id":"worker_filter_deprecation"}}},"/zones/{zone_id}/workers/filters/{filter_id}":{"delete":{"deprecated":true,"operationId":"worker-filters-(-deprecated)-delete-filter","parameters":[{"in":"path","name":"filter_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-single-id"}}},"description":"Delete Filter response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-single-id"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Delete Filter response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Filter","tags":["Worker Filters (Deprecated)"],"x-cfDeprecation":{"description":"This endpoint and its related APIs are deprecated in favor of the `/routes` equivalent APIs. These APIs are for use with the previously limited single-script zones.","display":true,"id":"worker_filter_deprecation"}},"put":{"deprecated":true,"operationId":"worker-filters-(-deprecated)-update-filter","parameters":[{"in":"path","name":"filter_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_filter-no-id"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_filter-response-single"}}},"description":"Update Filter response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_filter-response-single"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Update Filter response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update Filter","tags":["Worker Filters (Deprecated)"],"x-cfDeprecation":{"description":"This endpoint and its related APIs are deprecated in favor of the `/routes` equivalent APIs. These APIs are for use with the previously limited single-script zones.","display":true,"id":"worker_filter_deprecation"}}},"/zones/{zone_id}/workers/routes":{"get":{"description":"Returns routes for a zone.","operationId":"worker-routes-list-routes","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_route-response-collection"}}},"description":"List Routes response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_route-response-collection"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"List Routes response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Routes","tags":["Worker Routes"],"x-api-token-group":["Workers Routes Write","Workers Routes Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.route.list"]}},"post":{"description":"Creates a route that maps a URL pattern to a Worker.","operationId":"worker-routes-create-route","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_route-no-id"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-single"}}},"description":"Create Route response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-single"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Create Route response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Create Route","tags":["Worker Routes"],"x-api-token-group":["Workers Routes Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.route.create"]}}},"/zones/{zone_id}/workers/routes/{route_id}":{"delete":{"description":"Deletes a route.","operationId":"worker-routes-delete-route","parameters":[{"in":"path","name":"route_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_api-response-single"}}},"description":"Delete Route response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-single"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Delete Route response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Route","tags":["Worker Routes"],"x-api-token-group":["Workers Routes Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.route.delete"]}},"get":{"description":"Returns information about a route, including URL pattern and Worker.","operationId":"worker-routes-get-route","parameters":[{"in":"path","name":"route_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_route-response-single"}}},"description":"Get Route response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_route-response-single"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Get Route response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Route","tags":["Worker Routes"],"x-api-token-group":["Workers Routes Write","Workers Routes Read"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.route.read"]}},"put":{"description":"Updates the URL pattern or Worker associated with a route.","operationId":"worker-routes-update-route","parameters":[{"in":"path","name":"route_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}},{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_route-no-id"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_route-response-single"}}},"description":"Update Route response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_route-response-single"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Update Route response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Update Route","tags":["Worker Routes"],"x-api-token-group":["Workers Routes Write"],"x-cfPermissionsRequired":{"enum":["com.cloudflare.edge.worker.route.update"]}}},"/zones/{zone_id}/workers/script":{"delete":{"deprecated":true,"description":"Delete your Worker. This call has no response body on a successful delete.","operationId":"worker-script-(-deprecated)-delete-worker","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"requestBody":{"content":{"application/json":{}},"required":true},"responses":{"200":{"content":{"application/json":{}},"description":"Delete Worker response."},"4XX":{"content":{"application/json":{}},"description":"Delete Worker response failure."}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Delete Worker","tags":["Worker Script (Deprecated)"],"x-cfDeprecation":{"description":"This endpoint and its related APIs are deprecated in favor of the `/accounts` equivalent APIs. These APIs are for use with the previously limited single-script zones.","display":true,"id":"worker_script_deprecation"}},"get":{"deprecated":true,"description":"Fetch raw script content for your worker. Note this is the original script content, not JSON encoded.","operationId":"worker-script-(-deprecated)-download-worker","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"responses":{"200":{"content":{"undefined":{"schema":{"example":"addEventListener('fetch', event =\u003e { event.respondWith(fetch(event.request)) })"}}},"description":"Download Worker response"},"4XX":{"content":{"undefined":{"schema":{"example":"addEventListener('fetch', event =\u003e { event.respondWith(fetch(event.request)) })"}}},"description":"Download Worker response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Download Worker","tags":["Worker Script (Deprecated)"],"x-cfDeprecation":{"description":"This endpoint and its related APIs are deprecated in favor of the `/accounts` equivalent APIs. These APIs are for use with the previously limited single-script zones.","display":true,"id":"worker_script_deprecation"}},"put":{"deprecated":true,"description":"Upload a worker, or a new version of a worker.","operationId":"worker-script-(-deprecated)-upload-worker","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"requestBody":{"content":{"application/javascript":{"schema":{"example":"addEventListener('fetch', event =\u003e { event.respondWith(fetch(event.request)) })","type":"string"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/workers_schemas-script-response-single"}}},"description":"Upload Worker response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_schemas-script-response-single"},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"Upload Worker response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Upload Worker","tags":["Worker Script (Deprecated)"],"x-cfDeprecation":{"description":"This endpoint and its related APIs are deprecated in favor of the `/accounts` equivalent APIs. These APIs are for use with the previously limited single-script zones.","display":true,"id":"worker_script_deprecation"}}},"/zones/{zone_id}/workers/script/bindings":{"get":{"deprecated":true,"description":"List the bindings for a Workers script.","operationId":"worker-binding-(-deprecated)-list-bindings","parameters":[{"in":"path","name":"zone_id","required":true,"schema":{"$ref":"#/components/schemas/workers_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/workers_schemas-binding"},"type":"array"}},"type":"object"}]}}},"description":"List Bindings response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"allOf":[{"$ref":"#/components/schemas/workers_api-response-common"},{"properties":{"result":{"items":{"$ref":"#/components/schemas/workers_schemas-binding"},"type":"array"}},"type":"object"}]},{"$ref":"#/components/schemas/workers_api-response-common-failure"}]}}},"description":"List Bindings response failure"}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"List Bindings","tags":["Worker Binding (Deprecated)"],"x-cfDeprecation":{"description":"This endpoint and its related APIs are deprecated in favor of the `/accounts` equivalent APIs. These APIs are for use with the previously limited single-script zones.","display":true,"id":"worker_binding_deprecation"}}},"/zones/{zone_tag}/devices/policy/certificates":{"get":{"description":"Fetches device certificate provisioning","operationId":"devices-get-policy-certificates","parameters":[{"in":"path","name":"zone_tag","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_devices_policy_certificates_single"}}},"description":"Get WARP client provision certificates enabled status response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_devices_policy_certificates_single"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Get WARP client provision certificates enabled status failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Get device certificate provisioning status","tags":["Devices"],"x-api-token-group":["SSL and Certificates Write","SSL and Certificates Read"]},"patch":{"description":"Enable Zero Trust Clients to provision a certificate, containing a x509 subject, and referenced by Access device posture policies when the client visits MTLS protected domains. This facilitates device posture without a WARP session.","operationId":"devices-update-policy-certificates","parameters":[{"in":"path","name":"zone_tag","required":true,"schema":{"$ref":"#/components/schemas/teams-devices_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_devices_policy_certificates"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/teams-devices_devices_policy_certificates_single"}}},"description":"Update a zone to toggle permission for devices to provision certificates response"},"4XX":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/teams-devices_devices_policy_certificates_single"},{"$ref":"#/components/schemas/teams-devices_api-response-common-failure"}]}}},"description":"Patch a zone to toggle permission for devices to provision certificates failure"}},"security":[{"api_email":[],"api_key":[]}],"summary":"Update device certificate provisioning status","tags":["Devices"],"x-api-token-group":["SSL and Certificates Write"]}},"/zones/{zone_tag}/settings/ssl_automatic_mode":{"get":{"description":"If the system is enabled, the response will include next_scheduled_scan, representing the next time this zone will be scanned and the zone's ssl/tls encryption mode is potentially upgraded by the system. If the system is disabled, next_scheduled_scan will not be present in the response body.","operationId":"ssl-detector-automatic-mode-get-enrollment","parameters":[{"in":"path","name":"zone_tag","required":true,"schema":{"$ref":"#/components/schemas/cache_zone_identifier"}}],"responses":{"200":{"content":{"application/json":{"examples":{"Disabled":{"$ref":"#/components/examples/cache_dummy_automatic_upgrader_enabled_response"},"Enabled":{"$ref":"#/components/examples/cache_dummy_automatic_upgrader_disabled_response"}},"schema":{"$ref":"#/components/schemas/cache_automatic_upgrader_response"}}},"description":"Get Automatic SSL/TLS Enrollment status response."},"4XX":{"content":{"application/json":{"examples":{"Error":{"$ref":"#/components/examples/cache_dummy_error_response"}},"schema":{"$ref":"#/components/schemas/cache_api-response-common-failure"}}},"description":"Get Automatic SSL/TLS Enrollment status failure."}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Get Automatic SSL/TLS enrollment status for the given zone","tags":["Automatic SSL/TLS"],"x-api-token-group":["Zone Settings Write","Zone Settings Read","SSL and Certificates Write","SSL and Certificates Read"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}},"patch":{"description":"The automatic system is enabled when this endpoint is hit with value in the request body is set to \"auto\", and disabled when the request body value is set to \"custom\".","operationId":"ssl-detector-automatic-mode-patch-enrollment","parameters":[{"in":"path","name":"zone_tag","required":true,"schema":{"$ref":"#/components/schemas/cache_zone_identifier"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cache_schemas_patch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"examples":{"Enabled":{"$ref":"#/components/examples/cache_dummy_automatic_upgrader_enabled_response"}},"schema":{"$ref":"#/components/schemas/cache_automatic_upgrader_response"}}},"description":"Patch Automatic SSL/TLS Enrollment status response."},"4XX":{"content":{"application/json":{"examples":{"Error":{"$ref":"#/components/examples/cache_dummy_error_response"}},"schema":{"$ref":"#/components/schemas/cache_api-response-common-failure"}}},"description":"Patch Automatic SSL/TLS Enrollment status failure."}},"security":[{"api_token":[]},{"api_email":[],"api_key":[]}],"summary":"Patch Automatic SSL/TLS Enrollment status for given zone","tags":["Automatic SSL/TLS"],"x-api-token-group":["Zone Settings Write","SSL and Certificates Write"],"x-cfPermissionsRequired":{"enum":["#zone_settings:read","#zone_settings:edit"]},"x-cfPlanAvailability":{"business":true,"enterprise":true,"free":true,"pro":true}}}},"security":[{"api_email":[],"api_key":[]},{"api_token":[]},{"user_service_key":[]}],"servers":[{"description":"Client API","url":"https://api.cloudflare.com/client/v4"}]} \ No newline at end of file diff --git a/tests/globalSetup.ts b/tests/globalSetup.ts new file mode 100644 index 000000000000000..8236531c2be0e04 --- /dev/null +++ b/tests/globalSetup.ts @@ -0,0 +1,21 @@ +import type { GlobalSetupContext } from "vitest/node"; +import puppeteer, { Browser } from "puppeteer"; + +let browser: Browser; + +export default async function setup({ provide }: GlobalSetupContext) { + browser = await puppeteer.launch({ + args: ["--no-sandbox", "--disable-setuid-sandbox"], + }); + provide("browserWSEndpoint", browser.wsEndpoint()); +} + +export async function teardown() { + await browser.close(); +} + +declare module "vitest" { + export interface ProvidedContext { + browserWSEndpoint: string; + } +} diff --git a/tests/index.test.ts b/tests/index.test.ts new file mode 100644 index 000000000000000..9cdcc00c69de1ca --- /dev/null +++ b/tests/index.test.ts @@ -0,0 +1,125 @@ +import { fetchMock, SELF } from "cloudflare:test"; +import { describe, it, expect, beforeAll, afterEach } from "vitest"; +import openAPISchema from "./fixtures/openapi.json"; +import puppeteer, { Browser, HTTPRequest } from "@cloudflare/puppeteer"; +import { inject } from "vitest"; + +const interceptRequest = async (request: HTTPRequest) => { + const miniflareRequest = new Request(request.url(), { + method: request.method(), + body: request.postData(), + }); + const response = await SELF.fetch(miniflareRequest); + const arrayBuffer = await response.arrayBuffer(); + + await request.respond({ + body: Buffer.from(arrayBuffer), + headers: Object.fromEntries(response.headers.entries()), + status: response.status, + }); +}; + +describe("Cloudflare Docs", () => { + let browser: Browser; + + beforeAll(async () => { + fetchMock.activate(); + fetchMock.disableNetConnect(); + + browser = await puppeteer.connect({ + browserWSEndpoint: inject("browserWSEndpoint"), + }); + }); + + afterEach(() => { + fetchMock.assertNoPendingInterceptors(); + }); + + it("responds with index.html at `/`", async () => { + const request = new Request("http://fakehost/"); + const response = await SELF.fetch(request); + expect(response.status).toBe(200); + expect(await response.text()).toContain("Cloudflare Docs"); + }); + + // Remove once the whacky double-slash rules get removed + it("responds with index.html at `//`", async () => { + const request = new Request("http://fakehost//"); + const response = await SELF.fetch(request); + expect(response.status).toBe(200); + expect(await response.text()).toContain("Cloudflare Docs"); + }); + + it("redirects requests with a trailing slash", async () => { + const request = new Request("http://fakehost/docs/"); + const response = await SELF.fetch(request, { redirect: "manual" }); + expect(response.status).toBe(301); + expect(response.headers.get("Location")).toBe("/products/"); + }); + + it("redirects requests without a trailing slash", async () => { + const request = new Request("http://fakehost/docs"); + const response = await SELF.fetch(request, { redirect: "manual" }); + expect(response.status).toBe(301); + expect(response.headers.get("Location")).toBe("/products/"); + }); + + it("responds with 404.html at `/non-existent`", async () => { + const request = new Request("http://fakehost/non-existent"); + const response = await SELF.fetch(request); + expect(response.status).toBe(404); + expect(await response.text()).toContain("Page not found."); + }); + + it("works in Chrome", async () => { + const page = await browser.newPage(); + + page.setRequestInterception(true); + page.on("request", interceptRequest); + + await page.goto("http://developers.cloudflare.com/workers"); + + const textSelector = await page.locator("text/Cloudflare").waitHandle(); + const fullTitle = await textSelector?.evaluate((el) => el.textContent); + expect(fullTitle).toContain("Cloudflare Docs"); + }); + + it("responds with API schema at `/schema`", async () => { + fetchMock + .get("https://raw.githubusercontent.com") + .intercept({ path: "/cloudflare/api-schemas/main/openapi.json" }) + .reply(200, JSON.stringify(openAPISchema)); + + const request = new Request("http://fakehost/schema"); + const response = await SELF.fetch(request); + expect(response.headers.get("Content-Type")).toBe("application/json"); + const data = (await response.json()) as any; + expect(Object.keys(data)).toMatchInlineSnapshot(` + [ + "components", + "info", + "openapi", + "paths", + "security", + "servers", + ] + `); + }); + + it("responds with API docs files at `/api/*`", async () => { + const mockContents = `const some = 'js';`; + + fetchMock + .get("https://cloudflare-api-docs-frontend.pages.dev") + .intercept({ + path: (p) => { + return p === "//static/js/file.js"; + }, + }) + .reply(200, mockContents); + + const request = new Request("http://fakehost/api/static/js/file.js"); + const response = await SELF.fetch(request); + expect(await response.text()).toEqual(mockContents); + }); +}); diff --git a/tests/tsconfig.json b/tests/tsconfig.json new file mode 100644 index 000000000000000..cd1a9ca06787a5f --- /dev/null +++ b/tests/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "moduleResolution": "Bundler", + "types": [ + "@cloudflare/workers-types/experimental", + "@cloudflare/vitest-pool-workers" + ] + }, + "include": ["./**/*.ts", "../wrangler-configuration.d.ts"] +} diff --git a/tsconfig.json b/tsconfig.json index 03d4b076527a2a1..dc92f2969d986d0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,5 +6,5 @@ "~/*": ["src/*"] } }, - "exclude": ["dist", "functions", "./worker"] + "exclude": ["dist", "functions", "./worker", "tests"] } diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 000000000000000..55f4d47ae6bbc98 --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,12 @@ +import { defineWorkersConfig } from "@cloudflare/vitest-pool-workers/config"; + +export default defineWorkersConfig({ + test: { + globalSetup: ["./tests/globalSetup.ts"], + poolOptions: { + workers: { + wrangler: { configPath: "./wrangler-workers.toml" }, + }, + }, + }, +}); diff --git a/worker/index.ts b/worker/index.ts index 9ff4604b5b46af0..77ab6ebc494b913 100644 --- a/worker/index.ts +++ b/worker/index.ts @@ -7,11 +7,58 @@ const redirectsEvaluator = generateRedirectsEvaluator(redirectsFileContents); export default class extends WorkerEntrypoint { override async fetch(request: Request) { - const redirect = await redirectsEvaluator(request, this.env.ASSETS); - if (redirect) { - return redirect; + try { + try { + // Remove once the whacky double-slash rules get removed + const url = new URL(request.url); + request = new Request( + new URL( + url.pathname.replaceAll("//", "/") + url.search, + "https://developers.cloudflare.com/", + ), + request, + ); + } catch (error) { + console.error("Could not normalize request URL", error); + } + + try { + const redirect = await redirectsEvaluator(request, this.env.ASSETS); + if (redirect) { + return redirect; + } + } catch (error) { + console.error("Could not evaluate redirects", error); + } + + try { + const forceTrailingSlashURL = new URL( + request.url.replace(/([^/])$/, "$1/"), + request.url, + ); + const redirect = await redirectsEvaluator( + new Request(forceTrailingSlashURL, request), + this.env.ASSETS, + ); + if (redirect) { + return redirect; + } + } catch (error) { + console.error( + "Could not evaluate redirects with a forced trailing slash", + error, + ); + } + + try { + return await functions.fetch(request, this.env, this.ctx); + } catch (error) { + console.error("Could not evaluate functions", error); + } + } catch (error) { + console.error("Unknown error", error); } - return await functions.fetch(request, this.env, this.ctx); + return this.env.ASSETS.fetch(request); } } diff --git a/wrangler-workers.toml b/wrangler-workers.toml index a99cdb3530b78b3..1a9da100733f639 100644 --- a/wrangler-workers.toml +++ b/wrangler-workers.toml @@ -1,8 +1,13 @@ +#:schema ./node_modules/wrangler/config-schema.json name = "cloudflare-docs" account_id = "b54f07a6c269ecca2fa60f1ae4920c99" -compatibility_date = "2022-09-27" +compatibility_date = "2024-10-14" +compatibility_flags = ["nodejs_compat"] main = "./worker/index.ts" +workers_dev = true +route = { pattern = "developers.cloudflare.com/*", zone_name = "developers.cloudflare.com"} + rules = [ { type = "Text", globs = ["**/_redirects"], fallthrough = true }, ] diff --git a/wrangler.toml b/wrangler.toml index 106084015341008..a0aaf55ec832480 100644 --- a/wrangler.toml +++ b/wrangler.toml @@ -1,3 +1,3 @@ +#:schema ./node_modules/wrangler/config-schema.json name = "cloudflare-docs" compatibility_date = "2022-09-27" - From 555301e9b8fd0adf183e896b0884f7a3af7c24bd Mon Sep 17 00:00:00 2001 From: Renan Dincer Date: Tue, 15 Oct 2024 11:12:46 -0400 Subject: [PATCH 016/110] Calls: Clarify what the limits are for (#17545) --- src/content/docs/calls/turn/index.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/content/docs/calls/turn/index.mdx b/src/content/docs/calls/turn/index.mdx index 20904cc7ca54da3..fcd5597aa3a4b9b 100644 --- a/src/content/docs/calls/turn/index.mdx +++ b/src/content/docs/calls/turn/index.mdx @@ -54,4 +54,6 @@ Cloudflare Calls TURN service places limits on: * Packet rate outbound and inbound to the relay allocation (>5-10 kpps) * Data rate outbound and inbound to the relay allocation (>50-100 Mbps) +A relay allocation often represents a single TURN client connection with the TURN server, not all connections for a single customer. + These limits are suitable for high-demand applications and also have burst rates higher than those documented above. Hitting these limits will result in packet drops. From d717b6a51b3a7bb5f3c05397635161b0b4ddfaf0 Mon Sep 17 00:00:00 2001 From: Kian Date: Tue, 15 Oct 2024 16:13:58 +0100 Subject: [PATCH 017/110] [Docs Site] Cache Astro assets in ci.yml (#17487) * [Docs Site] Cache Astro assets in ci.yml * Cache whole Astro folder --- .github/workflows/ci.yml | 23 +++++++++++------------ .github/workflows/publish-preview.yml | 6 ++---- .github/workflows/publish-production.yml | 6 ++---- 3 files changed, 15 insertions(+), 20 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9dc91e565774d4a..109c1b1eca6c690 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,19 +20,12 @@ jobs: - uses: actions/setup-node@v4 with: node-version: 22 - - - name: Get npm cache directory - id: npm-cache-dir - shell: bash - run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT} - - - uses: actions/cache@v4 - id: npm-cache + cache: "npm" + - uses: actions/cache/restore@v4 with: - path: ${{ steps.npm-cache-dir.outputs.dir }} - key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-node- + path: | + node_modules/.astro + key: static - run: npm ci - run: npm run check @@ -44,6 +37,12 @@ jobs: NODE_OPTIONS: "--max-old-space-size=4192" RUN_LINK_CHECK: true + - uses: actions/cache/save@v4 + with: + path: | + node_modules/.astro + key: static + - name: Check - Validate redirects (infinite loops, sources with fragment) run: npx tsm bin/validate-redirects.ts diff --git a/.github/workflows/publish-preview.yml b/.github/workflows/publish-preview.yml index 8aa9c0b3720a9ac..405fce150c642d9 100644 --- a/.github/workflows/publish-preview.yml +++ b/.github/workflows/publish-preview.yml @@ -23,8 +23,7 @@ jobs: - uses: actions/cache/restore@v4 with: path: | - node_modules/.astro/_astro - node_modules/.astro/assets + node_modules/.astro key: static - run: npx astro build env: @@ -42,6 +41,5 @@ jobs: if: always() with: path: | - node_modules/.astro/_astro - node_modules/.astro/assets + node_modules/.astro key: static diff --git a/.github/workflows/publish-production.yml b/.github/workflows/publish-production.yml index df1289496b948f6..c22b3c3f211dc4b 100644 --- a/.github/workflows/publish-production.yml +++ b/.github/workflows/publish-production.yml @@ -19,8 +19,7 @@ jobs: - uses: actions/cache/restore@v4 with: path: | - node_modules/.astro/_astro - node_modules/.astro/assets + node_modules/.astro key: static - run: npx astro build env: @@ -38,6 +37,5 @@ jobs: if: always() with: path: | - node_modules/.astro/_astro - node_modules/.astro/assets + node_modules/.astro key: static From 9ba1c24ffa0be14b64e6f646c6df6177a862a02f Mon Sep 17 00:00:00 2001 From: Greg Brimble Date: Tue, 15 Oct 2024 11:21:24 -0400 Subject: [PATCH 018/110] Fix CI jobs (#17546) --- .github/workflows/anchor-link-audit.yml | 2 +- .github/workflows/publish-preview.yml | 5 +++-- .github/workflows/publish-production.yml | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/anchor-link-audit.yml b/.github/workflows/anchor-link-audit.yml index f9fd36ddcfdffa1..11620d5e81c3cc5 100644 --- a/.github/workflows/anchor-link-audit.yml +++ b/.github/workflows/anchor-link-audit.yml @@ -36,7 +36,7 @@ jobs: - run: npm ci - - run: npx astro build + - run: npm run build env: NODE_OPTIONS: "--max-old-space-size=4192" diff --git a/.github/workflows/publish-preview.yml b/.github/workflows/publish-preview.yml index 405fce150c642d9..07d872d560300d4 100644 --- a/.github/workflows/publish-preview.yml +++ b/.github/workflows/publish-preview.yml @@ -25,7 +25,8 @@ jobs: path: | node_modules/.astro key: static - - run: npx astro build + - run: npm run build + name: Build env: NODE_OPTIONS: --max-old-space-size=4096 - run: npx wrangler pages deploy --project-name cloudflare-docs dist @@ -33,7 +34,7 @@ jobs: env: CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} - - run: npm run build:worker && npx wrangler versions upload -c ./wrangler-workers.toml + - run: npx wrangler versions upload -c ./wrangler-workers.toml name: Deploy to Cloudflare Workers env: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} diff --git a/.github/workflows/publish-production.yml b/.github/workflows/publish-production.yml index c22b3c3f211dc4b..e40e382f8565b8b 100644 --- a/.github/workflows/publish-production.yml +++ b/.github/workflows/publish-production.yml @@ -21,7 +21,8 @@ jobs: path: | node_modules/.astro key: static - - run: npx astro build + - run: npm run build + name: Build env: NODE_OPTIONS: --max-old-space-size=4096 - run: npx wrangler pages deploy --project-name cloudflare-docs dist From d43e89389c1ecbf21f814f09adaec9ef551f1a47 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:38:48 +0100 Subject: [PATCH 019/110] [Docs Site] Bump marked from 14.1.2 to 14.1.3 (#17539) Bumps [marked](https://github.com/markedjs/marked) from 14.1.2 to 14.1.3. - [Release notes](https://github.com/markedjs/marked/releases) - [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json) - [Commits](https://github.com/markedjs/marked/compare/v14.1.2...v14.1.3) --- updated-dependencies: - dependency-name: marked dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 9 ++++----- package.json | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index aa37eb9115d8468..7beef3d52e7f5b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,7 +43,7 @@ "instantsearch.css": "^8.5.0", "instantsearch.js": "^4.74.0", "lz-string": "^1.5.0", - "marked": "^14.1.1", + "marked": "^14.1.3", "mermaid": "^11.3.0", "node-html-parser": "^6.1.13", "patch-package": "^8.0.0", @@ -10068,11 +10068,10 @@ } }, "node_modules/marked": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/marked/-/marked-14.1.2.tgz", - "integrity": "sha512-f3r0yqpz31VXiDB/wj9GaOB0a2PRLQl6vJmXiFrniNwjkKdvakqJRULhjFKJpxOchlCRiG5fcacoUZY5Xa6PEQ==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/marked/-/marked-14.1.3.tgz", + "integrity": "sha512-ZibJqTULGlt9g5k4VMARAktMAjXoVnnr+Y3aCqW1oDftcV4BA3UmrBifzXoZyenHRk75csiPu9iwsTj4VNBT0g==", "dev": true, - "license": "MIT", "bin": { "marked": "bin/marked.js" }, diff --git a/package.json b/package.json index ea1586f138a01a3..689cc6e9fcdcfd7 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "instantsearch.css": "^8.5.0", "instantsearch.js": "^4.74.0", "lz-string": "^1.5.0", - "marked": "^14.1.1", + "marked": "^14.1.3", "mermaid": "^11.3.0", "node-html-parser": "^6.1.13", "patch-package": "^8.0.0", From 20c486f412867ed05c85c5aec08db72d694fdf18 Mon Sep 17 00:00:00 2001 From: vs-mg <105089031+vs-mg@users.noreply.github.com> Date: Tue, 15 Oct 2024 08:53:09 -0700 Subject: [PATCH 020/110] Release-Oct-14-2024 (#17521) --- src/content/changelogs/waf.yaml | 7 +++- .../docs/waf/change-log/2024-10-14.mdx | 37 +++++++++++++++++++ .../docs/waf/change-log/scheduled-changes.mdx | 30 +++++++++++++-- 3 files changed, 68 insertions(+), 6 deletions(-) create mode 100644 src/content/docs/waf/change-log/2024-10-14.mdx diff --git a/src/content/changelogs/waf.yaml b/src/content/changelogs/waf.yaml index 89660d792bc8b7a..d6f20b8a5858cf1 100644 --- a/src/content/changelogs/waf.yaml +++ b/src/content/changelogs/waf.yaml @@ -5,11 +5,14 @@ productLink: "/waf/" productArea: Application security productAreaLink: /fundamentals/reference/changelog/security/ entries: - - publish_date: "2024-10-07" - scheduled_date: "2024-10-14" + - publish_date: "2024-10-14" + scheduled_date: "2024-10-21" individual_page: true scheduled: true link: "/waf/change-log/scheduled-changes/" + - publish_date: "2024-10-14" + individual_page: true + link: "/waf/change-log/2024-10-14/" - publish_date: "2024-10-07" individual_page: true link: "/waf/change-log/2024-10-07/" diff --git a/src/content/docs/waf/change-log/2024-10-14.mdx b/src/content/docs/waf/change-log/2024-10-14.mdx new file mode 100644 index 000000000000000..cbdbc3a2ef84360 --- /dev/null +++ b/src/content/docs/waf/change-log/2024-10-14.mdx @@ -0,0 +1,37 @@ +--- +title: "2024-10-14" +type: table +pcx_content_type: changelog +sidebar: + order: 808 +tableOfContents: false +--- + +import { RuleID } from "~/components"; + + + + + + + + + + + + + + + + + + + + + + + + +
RulesetRule IDLegacy Rule IDDescriptionPrevious ActionNew ActionComments
Cloudflare Specials + + 100673GoAnywhere - Remote Code Execution - CVE:CVE-2023-0669LogBlockNew Detection
diff --git a/src/content/docs/waf/change-log/scheduled-changes.mdx b/src/content/docs/waf/change-log/scheduled-changes.mdx index 4f02eeddce6c56f..bef4ef3a3ef146b 100644 --- a/src/content/docs/waf/change-log/scheduled-changes.mdx +++ b/src/content/docs/waf/change-log/scheduled-changes.mdx @@ -23,14 +23,36 @@ import { RuleID } from "~/components"; - 2024-10-07 2024-10-14 + 2024-10-21 Block - 100673 + 100675 - + - GoAnywhere - Remote Code Execution - CVE:CVE-2023-0669 + Adobe ColdFusion - Auth Bypass - CVE:CVE-2023-38205 + This is a New Detection + + + 2024-10-14 + 2024-10-21 + Block + 100676 + + + + Palo Alto Networks - Auth Bypass - CVE:CVE-2024-5910 + This is a New Detection + + + 2024-10-14 + 2024-10-21 + Block + 100677 + + + + SolarWinds - Auth Bypass - CVE:CVE-2024-28987 This is a New Detection From 4118e9c856b9b75fb7f4dd38558a3144c039aa83 Mon Sep 17 00:00:00 2001 From: angelampcosta <92738954+angelampcosta@users.noreply.github.com> Date: Tue, 15 Oct 2024 17:22:10 +0100 Subject: [PATCH 021/110] Updates link (#17547) --- src/content/docs/google-tag-first-party-mode/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/google-tag-first-party-mode/index.mdx b/src/content/docs/google-tag-first-party-mode/index.mdx index dc4e73e7cd18aee..87aee26829800bb 100644 --- a/src/content/docs/google-tag-first-party-mode/index.mdx +++ b/src/content/docs/google-tag-first-party-mode/index.mdx @@ -10,7 +10,7 @@ sidebar: Google tag in first-party mode allows website owners using Cloudflare as a CDN to get the most out of ad measurement tools with just a few clicks. -At the moment, Google tag in first-party mode is in closed beta. You can [sign up](https://docs.google.com/forms/d/e/1FAIpQLSdOx5gL9HhSKH2eJ_LpaiCMAMnV6zPUy4-BrkA6ndc3AUNuCQ/viewform) to participate in the closed beta through [Google Ads](http://ads.google.com), [Google Analytics](http://analytics.google.com) or [Google Marketing Platform](https://marketingplatform.google.com/). +At the moment, Google tag in first-party mode is in closed beta. You can [sign up](https://www.cloudflare.com/en-gb/lp/google-tag-first-party-mode/) to participate in the closed beta through [Google Ads](http://ads.google.com), [Google Analytics](http://analytics.google.com) or [Google Marketing Platform](https://marketingplatform.google.com/). ### Configure Google tag in first-party mode in the dashboard From a49ab93921c7841977ccaf46795a4d2d9fb67409 Mon Sep 17 00:00:00 2001 From: Rebecca Tamachiro <62246989+RebeccaTamachiro@users.noreply.github.com> Date: Tue, 15 Oct 2024 17:39:56 +0100 Subject: [PATCH 022/110] Delete basic-features.mdx and create redirect (#17549) --- public/_redirects | 1 + .../basic-tasks/basic-features.mdx | 33 ------------------- 2 files changed, 1 insertion(+), 33 deletions(-) delete mode 100644 src/content/docs/fundamentals/basic-tasks/basic-features.mdx diff --git a/public/_redirects b/public/_redirects index a4b94c5f94eaf3d..0ae2f87e89930ea 100644 --- a/public/_redirects +++ b/public/_redirects @@ -407,6 +407,7 @@ /fundamentals/account-and-billing/account-setup/account-roles/ /fundamentals/setup/manage-members/roles/ 301 /fundamentals/account-and-billing/account-setup/manage-account-members/ /fundamentals/setup/manage-members/ 301 /fundamentals/account-and-billing/members/roles/ /fundamentals/setup/manage-members/roles/ 301 +/fundamentals/basic-tasks/basic-features/ /fundamentals/basic-tasks/ 301 /fundamentals/get-started/cdn/ /fundamentals/concepts/how-cloudflare-works/ 301 /fundamentals/get-started/how-cloudflare-works/ /fundamentals/concepts/how-cloudflare-works/ 301 /fundamentals/get-started/cloudflare-cookies/ /fundamentals/reference/policies-compliances/cloudflare-cookies/ 301 diff --git a/src/content/docs/fundamentals/basic-tasks/basic-features.mdx b/src/content/docs/fundamentals/basic-tasks/basic-features.mdx deleted file mode 100644 index ab5bd1ff215e12d..000000000000000 --- a/src/content/docs/fundamentals/basic-tasks/basic-features.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -pcx_content_type: reference -title: Enable basic features in bulk ---- - -Use the **Basic Features** toggle to activate 10 core speed and security features included in your domain plan. - -## Included features - -The following features can be activated from **Basic Features**: - -- [HTTP/2 to Origin](/speed/optimization/protocol/http2-to-origin/) -- [HTTP/3 (with QUIC)](/speed/optimization/protocol/http3/) -- [0-RTT Connection Resumption](/speed/optimization/protocol/0-rtt-connection-resumption/) -- [Always Use HTTPS](/ssl/edge-certificates/additional-options/always-use-https/) -- [TLS 1.3](/ssl/edge-certificates/additional-options/tls-13/) -- [Normalize incoming URLs](/rules/normalization/) -- [WebSockets](/network/websockets/) -- [Onion Routing](/network/onion-routing/) -- [Browser Integrity Check](/waf/tools/browser-integrity-check/) -- [Hotlink Protection](/waf/tools/scrape-shield/hotlink-protection/) -- [Web analytics using real user measurement (RUM)](/web-analytics/) - -## Activate basic features - -To enable several basic features in bulk: - -1. Log in to the [Cloudflare dashboard](https://dash.cloudflare.com). -2. Select your account and domain. -3. On the selected domain's **Overview** page, go to **Quick Actions**. -4. For **Basic Features**, select **Activate**. -5. Choose which features you want to be activated. -6. Select **Activate selections**. From 7be44680ec14817804f87de2c6d274952364f30c Mon Sep 17 00:00:00 2001 From: fry69 <142489379+fry69@users.noreply.github.com> Date: Tue, 15 Oct 2024 19:55:52 +0200 Subject: [PATCH 023/110] fix delete jumping to the wrong section in commands.mdx (#17548) See title. --- src/content/docs/workers/wrangler/commands.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/workers/wrangler/commands.mdx b/src/content/docs/workers/wrangler/commands.mdx index 5133158cfba84b0..6ce40af398a200e 100644 --- a/src/content/docs/workers/wrangler/commands.mdx +++ b/src/content/docs/workers/wrangler/commands.mdx @@ -20,7 +20,7 @@ Wrangler offers a number of commands to manage your Cloudflare Workers. - [`deploy`](#deploy) - Deploy your Worker to Cloudflare. - [`dev`](#dev) - Start a local server for developing your Worker. - [`publish`](#publish) - Publish your Worker to Cloudflare. -- [`delete`](#delete-3) - Delete your Worker from Cloudflare. +- [`delete`](#delete-2) - Delete your Worker from Cloudflare. - [`kv namespace`](#kv-namespace) - Manage Workers KV namespaces. - [`kv key`](#kv-key) - Manage key-value pairs within a Workers KV namespace. - [`kv bulk`](#kv-bulk) - Manage multiple key-value pairs within a Workers KV namespace in batches. From df30027d11919142463c73d55ebe02710a9ae84a Mon Sep 17 00:00:00 2001 From: JourneyJ012 <109593756+JourneyJ012@users.noreply.github.com> Date: Tue, 15 Oct 2024 22:30:51 +0100 Subject: [PATCH 024/110] Fix spelling error on guide.mdx (#17553) fix spelling error --- src/content/docs/workers/get-started/guide.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/workers/get-started/guide.mdx b/src/content/docs/workers/get-started/guide.mdx index c33b4e39dc1f4bd..762c52e31a0ee6b 100644 --- a/src/content/docs/workers/get-started/guide.mdx +++ b/src/content/docs/workers/get-started/guide.mdx @@ -199,7 +199,7 @@ If you see [`523` errors](/support/troubleshooting/cloudflare-errors/troubleshoo To do more: -- Visit the [Cloudlfare dashboard](https://dash.cloudflare.com/) for simpler editing. +- Visit the [Cloudflare dashboard](https://dash.cloudflare.com/) for simpler editing. - Review our [Examples](/workers/examples/) and [Tutorials](/workers/tutorials/) for inspiration. - Set up [bindings](/workers/runtime-apis/bindings/) to allow your Worker to interact with other resources and unlock new functionality. - Learn how to [test and debug](/workers/testing/) your Workers. From 40339359e9f359258905b94fe9190ce41e66128b Mon Sep 17 00:00:00 2001 From: fry69 <142489379+fry69@users.noreply.github.com> Date: Tue, 15 Oct 2024 23:32:35 +0200 Subject: [PATCH 025/110] fix npm create clouldflare@latest in commands.mdx (#17554) fix info box inconsistency --- src/content/docs/workers/wrangler/commands.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/workers/wrangler/commands.mdx b/src/content/docs/workers/wrangler/commands.mdx index 6ce40af398a200e..3346194f55b6e1c 100644 --- a/src/content/docs/workers/wrangler/commands.mdx +++ b/src/content/docs/workers/wrangler/commands.mdx @@ -141,7 +141,7 @@ wrangler docs [] :::note -The `init` command will be removed in a future version. Please use `npm create cloudflare\@2.5.0` instead. +The `init` command will be removed in a future version. Please use `npm create cloudflare@latest` instead. ::: From e517d308294971653e09e885014d4e6a943a44e1 Mon Sep 17 00:00:00 2001 From: dbenCF <125887610+dbenCF@users.noreply.github.com> Date: Wed, 16 Oct 2024 10:33:10 +0100 Subject: [PATCH 026/110] Developer Spotlight October 2024 update. (#17563) * Open dev spotlight applications Oct 2024 * Update application guide * Update src/content/docs/developer-spotlight/application-guide.mdx Co-authored-by: marciocloudflare <83226960+marciocloudflare@users.noreply.github.com> * Update src/content/docs/developer-spotlight/index.mdx Co-authored-by: marciocloudflare <83226960+marciocloudflare@users.noreply.github.com> --------- Co-authored-by: marciocloudflare <83226960+marciocloudflare@users.noreply.github.com> --- .../developer-spotlight/application-guide.mdx | 16 ++++++++++++---- src/content/docs/developer-spotlight/index.mdx | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/content/docs/developer-spotlight/application-guide.mdx b/src/content/docs/developer-spotlight/application-guide.mdx index db3a9c6d30898c3..1439740686a3579 100644 --- a/src/content/docs/developer-spotlight/application-guide.mdx +++ b/src/content/docs/developer-spotlight/application-guide.mdx @@ -5,15 +5,15 @@ title: Application guide If you use Cloudflare's developer products and would like to share your expertise then Cloudflare's Developer Spotlight program is for you. Whether you use Cloudflare in your profession, as a student or as a hobby, let us spotlight your creativity. Write a tutorial for our documentation and earn credits for your Cloudflare account along with having your name credited on your work. -The Developer Spotlight program is not currently open for applicants. Check our official Discord channel for future announcements. +The Developer Spotlight program is open for applicants until Thursday, the 24th of October 2024. ## Who can apply? The following is required in order to be an eligible applicant for the Developer Spotlight program: - You must not be an employee of Cloudflare. -- You must be at least 18 years old. -- All participants must agree to the [Developer Spotlight terms](https://drive.google.com/file/d/1llRCAkBOE7cp6TVofHGxQXsSQ2fMsx1o/view?usp=sharing) +- You must be 18 or older. +- All participants must agree to the [Developer Spotlight terms](https://drive.google.com/file/d/1llRCAkBOE7cp6TVofHGxQXsSQ2fMsx1o/view?usp=sharing). ## Submission rules @@ -23,9 +23,17 @@ Your tutorial must be: 2. Technically accurate. 3. Entirely original, written only by you. 4. Written following Cloudflare's documentation style guide. For more information, please visit our [style guide documentation](/style-guide/) and our [tutorial style guide documentation](/style-guide/documentation-content-strategy/content-types/tutorial/#template) -5. About using Cloudflare's Developer Platform products. +5. About how to use [Cloudflare's Developer Platform products](/products/?product-group=Developer+platform) to create a project or solve a problem. 6. Complete, not an unfinished draft. +## How to apply + +To apply to the program, submit an application through the [Developer Spotlight signup form](https://forms.gle/anpTPu45tnwjwXsk8). Successful applicants will be contacted by email. + +## Account credits + +Account credits can be used towards recurring monthly charges for Cloudflare plans or add-on services. Once a tutorial submission has been approved and published, we can then add 350 credits to your Cloudflare account. Credits are only valid for three years. Valid payment details must be stored on the recieving account before credits can be added. + ## FAQ ### How many tutorial topic ideas can I submit? diff --git a/src/content/docs/developer-spotlight/index.mdx b/src/content/docs/developer-spotlight/index.mdx index 8b347bfc04211b0..8474ce5fb2a1a62 100644 --- a/src/content/docs/developer-spotlight/index.mdx +++ b/src/content/docs/developer-spotlight/index.mdx @@ -9,7 +9,7 @@ import { LinkTitleCard } from "~/components"; Find examples of how our community of developers are getting the most out of our products. -While applications are not currently open, you can register your interest to get updates on the program via email by filling out the [Developer Spotlight program interest form](https://docs.google.com/forms/d/e/1FAIpQLSd7CESg7obtOh7CPVEbBeJ2_DtwWeAwb6aazNpukjbka_zYUw/viewform?usp=sf_link). +Applications are currently open until Thursday, the 24th of October 2024. To apply, please read the (application guide)[/developer-spotlight/application-guide/] ## View latest contributions From 591acafd2a949a041f7756d9d2ba0a0f1e5b4faf Mon Sep 17 00:00:00 2001 From: Rebecca Tamachiro <62246989+RebeccaTamachiro@users.noreply.github.com> Date: Wed, 16 Oct 2024 10:37:22 +0100 Subject: [PATCH 027/110] Add note about new validation and auto quoted TXT records (#17552) --- .../dns/manage-dns-records/reference/dns-record-types.mdx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/content/docs/dns/manage-dns-records/reference/dns-record-types.mdx b/src/content/docs/dns/manage-dns-records/reference/dns-record-types.mdx index ceb271853c88a52..64c86646c37ed22 100644 --- a/src/content/docs/dns/manage-dns-records/reference/dns-record-types.mdx +++ b/src/content/docs/dns/manage-dns-records/reference/dns-record-types.mdx @@ -212,9 +212,11 @@ A Domain-based Message Authentication Reporting and Conformance (DMARC) record h A [text (TXT) record](https://www.cloudflare.com/learning/dns/dns-records/dns-txt-record/) lets you enter text into the DNS system. -At Cloudflare, these are most commonly used to demonstrate domain ownership prior to issuing SSL/TLS certificates for [your domain](/ssl/edge-certificates/changing-dcv-method/) or a [Cloudflare for SaaS domain](/cloudflare-for-platforms/cloudflare-for-saas/security/certificate-management/issue-and-validate/). +As the content of TXT records consist of one or more text strings delimited by double quotes (`"`), you might find a validation error if you add inconsistent quotation marks (for example, `"this` or `"these" ones"`). For new records, if you save your TXT content without any quotes, Cloudflare will automatically add double quotes. For details, refer to [What is a DNS TXT record](https://www.cloudflare.com/learning/dns/dns-records/dns-txt-record/). -You could also use these to create email authentication records, but we recommend that you use our [Email Security Wizard](/dns/manage-dns-records/how-to/email-records/#prevent-domain-spoofing) instead. +At Cloudflare, TXT records are most commonly used to demonstrate domain ownership prior to issuing SSL/TLS certificates for [your domain](/ssl/edge-certificates/changing-dcv-method/) or a [Cloudflare for SaaS domain](/cloudflare-for-platforms/cloudflare-for-saas/security/certificate-management/issue-and-validate/). + +You could also use TXT to create email authentication records, but we recommend that you use our [Email Security Wizard](/dns/manage-dns-records/how-to/email-records/#prevent-domain-spoofing) instead. From 4d74a84dbfa9120280f54343cd60ba25174f8ce9 Mon Sep 17 00:00:00 2001 From: fry69 <142489379+fry69@users.noreply.github.com> Date: Wed, 16 Oct 2024 12:00:03 +0200 Subject: [PATCH 028/110] fix markdown syntax in developer-spotlight/index.mdx (#17565) `[]()` not `()[]` --- src/content/docs/developer-spotlight/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/developer-spotlight/index.mdx b/src/content/docs/developer-spotlight/index.mdx index 8474ce5fb2a1a62..7d3671b3224c29b 100644 --- a/src/content/docs/developer-spotlight/index.mdx +++ b/src/content/docs/developer-spotlight/index.mdx @@ -9,7 +9,7 @@ import { LinkTitleCard } from "~/components"; Find examples of how our community of developers are getting the most out of our products. -Applications are currently open until Thursday, the 24th of October 2024. To apply, please read the (application guide)[/developer-spotlight/application-guide/] +Applications are currently open until Thursday, the 24th of October 2024. To apply, please read the [application guide](/developer-spotlight/application-guide/) ## View latest contributions From d7239eabe37b3432952247ca52d2001fe98089a6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 11:25:37 +0100 Subject: [PATCH 029/110] [Docs Site] Bump react-textarea-autosize from 8.5.3 to 8.5.4 (#17557) --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7beef3d52e7f5b7..0a8e1349291e3c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52,7 +52,7 @@ "puppeteer": "^23.5.3", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-textarea-autosize": "^8.5.3", + "react-textarea-autosize": "^8.5.4", "redirects-in-workers": "^0.0.5", "rehype-autolink-headings": "^7.1.0", "rehype-external-links": "^3.0.0", @@ -13475,9 +13475,9 @@ } }, "node_modules/react-textarea-autosize": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz", - "integrity": "sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==", + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.4.tgz", + "integrity": "sha512-eSSjVtRLcLfFwFcariT77t9hcbVJHQV76b51QjQGarQIHml2+gM2lms0n3XrhnDmgK5B+/Z7TmQk5OHNzqYm/A==", "dev": true, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/package.json b/package.json index 689cc6e9fcdcfd7..cf5ed0e0e2793ab 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "puppeteer": "^23.5.3", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-textarea-autosize": "^8.5.3", + "react-textarea-autosize": "^8.5.4", "redirects-in-workers": "^0.0.5", "rehype-autolink-headings": "^7.1.0", "rehype-external-links": "^3.0.0", From 46ff4c6e98763dbf49b7b7e62c23d879f619bcd9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 11:26:06 +0100 Subject: [PATCH 030/110] [Docs Site] Bump @astrojs/check from 0.9.3 to 0.9.4 (#17556) --- package-lock.json | 229 ++++++++++++++++++++-------------------------- package.json | 2 +- 2 files changed, 100 insertions(+), 131 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0a8e1349291e3c7..43347a344ec640b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "hasInstallScript": true, "devDependencies": { "@astro-community/astro-embed-youtube": "^0.5.5", - "@astrojs/check": "^0.9.3", + "@astrojs/check": "^0.9.4", "@astrojs/react": "^3.6.2", "@astrojs/rss": "^4.0.7", "@astrojs/sitemap": "^3.1.6", @@ -339,15 +339,13 @@ } }, "node_modules/@astrojs/check": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@astrojs/check/-/check-0.9.3.tgz", - "integrity": "sha512-I6Dz45bMI5YRbp4yK2LKWsHH3/kkHRGdPGruGkLap6pqxhdcNh7oCgN04Ac+haDfc9ow5BYPGPmEhkwef15GQQ==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@astrojs/check/-/check-0.9.4.tgz", + "integrity": "sha512-IOheHwCtpUfvogHHsvu0AbeRZEnjJg3MopdLddkJE70mULItS/Vh37BHcI00mcOJcH1vhD3odbpvWokpxam7xA==", "dev": true, - "license": "MIT", "dependencies": { - "@astrojs/language-server": "^2.14.1", - "chokidar": "^3.5.3", - "fast-glob": "^3.3.1", + "@astrojs/language-server": "^2.15.0", + "chokidar": "^4.0.1", "kleur": "^4.1.5", "yargs": "^17.7.2" }, @@ -358,6 +356,34 @@ "typescript": "^5.0.0" } }, + "node_modules/@astrojs/check/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@astrojs/check/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@astrojs/compiler": { "version": "2.10.3", "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.10.3.tgz", @@ -372,20 +398,18 @@ "dev": true }, "node_modules/@astrojs/language-server": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/@astrojs/language-server/-/language-server-2.14.1.tgz", - "integrity": "sha512-mkKtCTPRD4dyKdAqIP0zmmPyO/ZABOqFESnaVca47Dg/sAagJnDSEsDUDzNbHFh1+9Dj1o5y4iwNsxJboGdaNg==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/@astrojs/language-server/-/language-server-2.15.0.tgz", + "integrity": "sha512-wJHSjGApm5X8Rg1GvkevoatZBfvaFizY4kCPvuSYgs3jGCobuY3KstJGKC1yNLsRJlDweHruP+J54iKn9vEKoA==", "dev": true, - "license": "MIT", "dependencies": { "@astrojs/compiler": "^2.10.3", "@astrojs/yaml2ts": "^0.2.1", "@jridgewell/sourcemap-codec": "^1.4.15", - "@volar/kit": "~2.4.0", - "@volar/language-core": "~2.4.0", - "@volar/language-server": "~2.4.0", - "@volar/language-service": "~2.4.0", - "@volar/typescript": "~2.4.0", + "@volar/kit": "~2.4.5", + "@volar/language-core": "~2.4.5", + "@volar/language-server": "~2.4.5", + "@volar/language-service": "~2.4.5", "fast-glob": "^3.2.12", "muggle-string": "^0.4.1", "volar-service-css": "0.0.61", @@ -620,7 +644,6 @@ "resolved": "https://registry.npmjs.org/@astrojs/yaml2ts/-/yaml2ts-0.2.1.tgz", "integrity": "sha512-CBaNwDQJz20E5WxzQh4thLVfhB3JEEGz72wRA+oJp6fQR37QLAqXZJU0mHC+yqMOQ6oj0GfRPJrz6hjf+zm6zA==", "dev": true, - "license": "MIT", "dependencies": { "yaml": "^2.5.0" } @@ -2081,7 +2104,6 @@ "resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.3.3.tgz", "integrity": "sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==", "dev": true, - "license": "MIT", "dependencies": { "@emmetio/scanner": "^1.0.4" } @@ -2091,7 +2113,6 @@ "resolved": "https://registry.npmjs.org/@emmetio/css-abbreviation/-/css-abbreviation-2.1.8.tgz", "integrity": "sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==", "dev": true, - "license": "MIT", "dependencies": { "@emmetio/scanner": "^1.0.4" } @@ -2101,7 +2122,6 @@ "resolved": "https://registry.npmjs.org/@emmetio/css-parser/-/css-parser-0.4.0.tgz", "integrity": "sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==", "dev": true, - "license": "MIT", "dependencies": { "@emmetio/stream-reader": "^2.2.0", "@emmetio/stream-reader-utils": "^0.1.0" @@ -2112,7 +2132,6 @@ "resolved": "https://registry.npmjs.org/@emmetio/html-matcher/-/html-matcher-1.3.0.tgz", "integrity": "sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==", "dev": true, - "license": "ISC", "dependencies": { "@emmetio/scanner": "^1.0.0" } @@ -2121,22 +2140,19 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.4.tgz", "integrity": "sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@emmetio/stream-reader": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz", "integrity": "sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@emmetio/stream-reader-utils": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz", "integrity": "sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@emnapi/runtime": { "version": "1.2.0", @@ -4215,14 +4231,13 @@ } }, "node_modules/@volar/kit": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@volar/kit/-/kit-2.4.0.tgz", - "integrity": "sha512-uqwtPKhrbnP+3f8hs+ltDYXLZ6Wdbs54IzkaPocasI4aBhqWLht5qXctE1MqpZU52wbH359E0u9nhxEFmyon+w==", + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@volar/kit/-/kit-2.4.6.tgz", + "integrity": "sha512-OaMtpmLns6IYD1nOSd0NdG/F5KzJ7Jr4B7TLeb4byPzu+ExuuRVeO56Dn1C7Frnw6bGudUQd90cpQAmxdB+RlQ==", "dev": true, - "license": "MIT", "dependencies": { - "@volar/language-service": "2.4.0", - "@volar/typescript": "2.4.0", + "@volar/language-service": "2.4.6", + "@volar/typescript": "2.4.6", "typesafe-path": "^0.2.2", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" @@ -4232,25 +4247,23 @@ } }, "node_modules/@volar/language-core": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.0.tgz", - "integrity": "sha512-FTla+khE+sYK0qJP+6hwPAAUwiNHVMph4RUXpxf/FIPKUP61NFrVZorml4mjFShnueR2y9/j8/vnh09YwVdH7A==", + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.6.tgz", + "integrity": "sha512-FxUfxaB8sCqvY46YjyAAV6c3mMIq/NWQMVvJ+uS4yxr1KzOvyg61gAuOnNvgCvO4TZ7HcLExBEsWcDu4+K4E8A==", "dev": true, - "license": "MIT", "dependencies": { - "@volar/source-map": "2.4.0" + "@volar/source-map": "2.4.6" } }, "node_modules/@volar/language-server": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@volar/language-server/-/language-server-2.4.0.tgz", - "integrity": "sha512-rmGIjAxWekWQiGH97Mosb4juiD/hfFYNQKV5Py9r7vDOLSkbIwRhITbwHm88NJKs8P6TNc6w/PfBXN6yjKadJg==", + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@volar/language-server/-/language-server-2.4.6.tgz", + "integrity": "sha512-ARIbMXapEUPj9UFbZqWqw/iZ+ZuxUcY+vY212+2uutZVo/jrdzhLPu2TfZd9oB9akX8XXuslinT3051DyHLLRA==", "dev": true, - "license": "MIT", "dependencies": { - "@volar/language-core": "2.4.0", - "@volar/language-service": "2.4.0", - "@volar/typescript": "2.4.0", + "@volar/language-core": "2.4.6", + "@volar/language-service": "2.4.6", + "@volar/typescript": "2.4.6", "path-browserify": "^1.0.1", "request-light": "^0.7.0", "vscode-languageserver": "^9.0.1", @@ -4260,33 +4273,30 @@ } }, "node_modules/@volar/language-service": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.0.tgz", - "integrity": "sha512-4P3yeQXIL68mLfS3n6P3m02IRg3GnLHUU9k/1PCHEfm5FG9bySkDOc72dbBn2vAa2BxOqm18bmmZXrsWuQ5AOw==", + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.6.tgz", + "integrity": "sha512-wNeEVBgBKgpP1MfMYPrgTf1K8nhOGEh3ac0+9n6ECyk2N03+j0pWCpQ2i99mRWT/POvo1PgizDmYFH8S67bZOA==", "dev": true, - "license": "MIT", "dependencies": { - "@volar/language-core": "2.4.0", + "@volar/language-core": "2.4.6", "vscode-languageserver-protocol": "^3.17.5", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" } }, "node_modules/@volar/source-map": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.0.tgz", - "integrity": "sha512-2ceY8/NEZvN6F44TXw2qRP6AQsvCYhV2bxaBPWxV9HqIfkbRydSksTFObCF1DBDNBfKiZTS8G/4vqV6cvjdOIQ==", - "dev": true, - "license": "MIT" + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.6.tgz", + "integrity": "sha512-Nsh7UW2ruK+uURIPzjJgF0YRGP5CX9nQHypA2OMqdM2FKy7rh+uv3XgPnWPw30JADbKvZ5HuBzG4gSbVDYVtiw==", + "dev": true }, "node_modules/@volar/typescript": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.0.tgz", - "integrity": "sha512-9zx3lQWgHmVd+JRRAHUSRiEhe4TlzL7U7e6ulWXOxHH/WNYxzKwCvZD7WYWEZFdw4dHfTD9vUR0yPQO6GilCaQ==", + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.6.tgz", + "integrity": "sha512-NMIrA7y5OOqddL9VtngPWYmdQU03htNKFtAYidbYfWA0TOhyGVd9tfcP4TsLWQ+RBWDZCbBqsr8xzU0ZOxYTCQ==", "dev": true, - "license": "MIT", "dependencies": { - "@volar/language-core": "2.4.0", + "@volar/language-core": "2.4.6", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -4296,7 +4306,6 @@ "resolved": "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.9.3.tgz", "integrity": "sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==", "dev": true, - "license": "MIT", "dependencies": { "emmet": "^2.4.3", "jsonc-parser": "^2.3.0", @@ -4309,15 +4318,13 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz", "integrity": "sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@vscode/l10n": { "version": "0.0.18", "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz", "integrity": "sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@vue/compiler-core": { "version": "3.5.10", @@ -4519,7 +4526,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -7093,17 +7099,10 @@ "license": "EPL-2.0" }, "node_modules/emmet": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.4.7.tgz", - "integrity": "sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==", + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.4.11.tgz", + "integrity": "sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==", "dev": true, - "license": "MIT", - "workspaces": [ - "./packages/scanner", - "./packages/abbreviation", - "./packages/css-abbreviation", - "./" - ], "dependencies": { "@emmetio/abbreviation": "^2.3.3", "@emmetio/css-abbreviation": "^2.1.8" @@ -7642,8 +7641,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/fast-fifo": { "version": "1.3.2", @@ -7670,11 +7668,10 @@ } }, "node_modules/fast-uri": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", - "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", - "dev": true, - "license": "MIT" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "dev": true }, "node_modules/fast-xml-parser": { "version": "4.4.1", @@ -9658,8 +9655,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/json-stable-stringify": { "version": "1.1.1", @@ -9696,8 +9692,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/jsonfile": { "version": "6.1.0", @@ -12057,8 +12052,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/mustache": { "version": "4.2.0", @@ -12852,8 +12846,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/path-data-parser": { "version": "0.1.0", @@ -13985,8 +13978,7 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.7.0.tgz", "integrity": "sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/require-directory": { "version": "2.1.1", @@ -14002,7 +13994,6 @@ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -16099,8 +16090,7 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/typesafe-path/-/typesafe-path-0.2.2.tgz", "integrity": "sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/typescript": { "version": "5.6.2", @@ -16121,7 +16111,6 @@ "resolved": "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.3.tgz", "integrity": "sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==", "dev": true, - "license": "MIT", "dependencies": { "semver": "^7.3.8" } @@ -16741,7 +16730,6 @@ "resolved": "https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.61.tgz", "integrity": "sha512-Ct9L/w+IB1JU8F4jofcNCGoHy6TF83aiapfZq9A0qYYpq+Kk5dH+ONS+rVZSsuhsunq8UvAuF8Gk6B8IFLfniw==", "dev": true, - "license": "MIT", "dependencies": { "vscode-css-languageservice": "^6.3.0", "vscode-languageserver-textdocument": "^1.0.11", @@ -16761,7 +16749,6 @@ "resolved": "https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.61.tgz", "integrity": "sha512-iiYqBxjjcekqrRruw4COQHZME6EZYWVbkHjHDbULpml3g8HGJHzpAMkj9tXNCPxf36A+f1oUYjsvZt36qPg4cg==", "dev": true, - "license": "MIT", "dependencies": { "@emmetio/css-parser": "^0.4.0", "@emmetio/html-matcher": "^1.3.0", @@ -16782,7 +16769,6 @@ "resolved": "https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.61.tgz", "integrity": "sha512-yFE+YmmgqIL5HI4ORqP++IYb1QaGcv+xBboI0WkCxJJ/M35HZj7f5rbT3eQ24ECLXFbFCFanckwyWJVz5KmN3Q==", "dev": true, - "license": "MIT", "dependencies": { "vscode-html-languageservice": "^5.3.0", "vscode-languageserver-textdocument": "^1.0.11", @@ -16802,7 +16788,6 @@ "resolved": "https://registry.npmjs.org/volar-service-prettier/-/volar-service-prettier-0.0.61.tgz", "integrity": "sha512-F612nql5I0IS8HxXemCGvOR2Uxd4XooIwqYVUvk7WSBxP/+xu1jYvE3QJ7EVpl8Ty3S4SxPXYiYTsG3bi+gzIQ==", "dev": true, - "license": "MIT", "dependencies": { "vscode-uri": "^3.0.8" }, @@ -16824,7 +16809,6 @@ "resolved": "https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.61.tgz", "integrity": "sha512-4kRHxVbW7wFBHZWRU6yWxTgiKETBDIJNwmJUAWeP0mHaKpnDGj/astdRFKqGFRYVeEYl45lcUPhdJyrzanjsdQ==", "dev": true, - "license": "MIT", "dependencies": { "path-browserify": "^1.0.1", "semver": "^7.6.2", @@ -16847,7 +16831,6 @@ "resolved": "https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.61.tgz", "integrity": "sha512-99FICGrEF0r1E2tV+SvprHPw9Knyg7BdW2fUch0tf59kG+KG+Tj4tL6tUg+cy8f23O/VXlmsWFMIE+bx1dXPnQ==", "dev": true, - "license": "MIT", "dependencies": { "vscode-uri": "^3.0.8" }, @@ -16865,7 +16848,6 @@ "resolved": "https://registry.npmjs.org/volar-service-yaml/-/volar-service-yaml-0.0.61.tgz", "integrity": "sha512-L+gbDiLDQQ1rZUbJ3mf3doDsoQUa8OZM/xdpk/unMg1Vz24Zmi2Ign8GrZyBD7bRoIQDwOH9gdktGDKzRPpUNw==", "dev": true, - "license": "MIT", "dependencies": { "vscode-uri": "^3.0.8", "yaml-language-server": "~1.15.0" @@ -16880,27 +16862,25 @@ } }, "node_modules/vscode-css-languageservice": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.3.0.tgz", - "integrity": "sha512-nU92imtkgzpCL0xikrIb8WvedV553F2BENzgz23wFuok/HLN5BeQmroMy26pUwFxV2eV8oNRmYCUv8iO7kSMhw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.3.1.tgz", + "integrity": "sha512-1BzTBuJfwMc3A0uX4JBdJgoxp74cjj4q2mDJdp49yD/GuAq4X0k5WtK6fNcMYr+FfJ9nqgR6lpfCSZDkARJ5qQ==", "dev": true, - "license": "MIT", "dependencies": { "@vscode/l10n": "^0.0.18", - "vscode-languageserver-textdocument": "^1.0.11", + "vscode-languageserver-textdocument": "^1.0.12", "vscode-languageserver-types": "3.17.5", "vscode-uri": "^3.0.8" } }, "node_modules/vscode-html-languageservice": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.3.0.tgz", - "integrity": "sha512-C4Z3KsP5Ih+fjHpiBc5jxmvCl+4iEwvXegIrzu2F5pktbWvQaBT3YkVPk8N+QlSSMk8oCG6PKtZ/Sq2YHb5e8g==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.3.1.tgz", + "integrity": "sha512-ysUh4hFeW/WOWz/TO9gm08xigiSsV/FOAZ+DolgJfeLftna54YdmZ4A+lIn46RbdO3/Qv5QHTn1ZGqmrXQhZyA==", "dev": true, - "license": "MIT", "dependencies": { "@vscode/l10n": "^0.0.18", - "vscode-languageserver-textdocument": "^1.0.11", + "vscode-languageserver-textdocument": "^1.0.12", "vscode-languageserver-types": "^3.17.5", "vscode-uri": "^3.0.8" } @@ -16910,7 +16890,6 @@ "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.1.8.tgz", "integrity": "sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==", "dev": true, - "license": "MIT", "dependencies": { "jsonc-parser": "^3.0.0", "vscode-languageserver-textdocument": "^1.0.1", @@ -16926,8 +16905,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/vscode-jsonrpc": { "version": "8.2.0", @@ -16981,8 +16959,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz", "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/vscode-uri": { "version": "3.0.8", @@ -17846,7 +17823,6 @@ "resolved": "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-1.15.0.tgz", "integrity": "sha512-N47AqBDCMQmh6mBLmI6oqxryHRzi33aPFPsJhYy3VTUGCdLHYjGh4FZzpUjRlphaADBBkDmnkM/++KNIOHi5Rw==", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^8.11.0", "lodash": "4.17.21", @@ -17871,7 +17847,6 @@ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", "dev": true, - "license": "MIT", "optional": true, "bin": { "prettier": "bin-prettier.js" @@ -17887,15 +17862,13 @@ "version": "0.5.8", "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.5.8.tgz", "integrity": "sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/yaml-language-server/node_modules/vscode-jsonrpc": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz", "integrity": "sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8.0.0 || >=10.0.0" } @@ -17905,7 +17878,6 @@ "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz", "integrity": "sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==", "dev": true, - "license": "MIT", "dependencies": { "vscode-languageserver-protocol": "3.16.0" }, @@ -17918,7 +17890,6 @@ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz", "integrity": "sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==", "dev": true, - "license": "MIT", "dependencies": { "vscode-jsonrpc": "6.0.0", "vscode-languageserver-types": "3.16.0" @@ -17928,15 +17899,13 @@ "version": "3.16.0", "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/yaml-language-server/node_modules/yaml": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", "dev": true, - "license": "ISC", "engines": { "node": ">= 14" } diff --git a/package.json b/package.json index cf5ed0e0e2793ab..bc3f9457c011ea1 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ }, "devDependencies": { "@astro-community/astro-embed-youtube": "^0.5.5", - "@astrojs/check": "^0.9.3", + "@astrojs/check": "^0.9.4", "@astrojs/react": "^3.6.2", "@astrojs/rss": "^4.0.7", "@astrojs/sitemap": "^3.1.6", From 4f45fc1269dbf19a88b43779ec2837fe85498928 Mon Sep 17 00:00:00 2001 From: Christos Alexiou Date: Wed, 16 Oct 2024 15:01:27 +0300 Subject: [PATCH 031/110] [R2] Fix typo (#17567) --- src/content/docs/r2/buckets/event-notifications.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/r2/buckets/event-notifications.mdx b/src/content/docs/r2/buckets/event-notifications.mdx index c28f2371898bd53..283ed7beef7713f 100644 --- a/src/content/docs/r2/buckets/event-notifications.mdx +++ b/src/content/docs/r2/buckets/event-notifications.mdx @@ -231,5 +231,5 @@ Queue consumers receive notifications as [Messages](/queues/configuration/javasc ## Notes -- Event notifications are not available for buckets with [jursdictional restrictions](/r2/reference/data-location/#jurisdictional-restrictions) (_coming soon_). +- Event notifications are not available for buckets with [jurisdictional restrictions](/r2/reference/data-location/#jurisdictional-restrictions) (_coming soon_). - Queues [per-queue message throughput](/queues/platform/limits/) is currently 5,000 messages per second. If your workload produces more than 5,000 notifications per second, we recommend splitting notification rules across multiple queues. From bc7a3ce9cd9c923b24ff279ad1bb525577cdee65 Mon Sep 17 00:00:00 2001 From: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> Date: Wed, 16 Oct 2024 14:42:39 +0100 Subject: [PATCH 032/110] [WAF] Add OWASP account config example (#17533) --------- Co-authored-by: marciocloudflare <83226960+marciocloudflare@users.noreply.github.com> --- .../waf/account/managed-rulesets/index.mdx | 93 ++++++++++++++++++- .../reference/owasp-core-ruleset/concepts.mdx | 16 ++-- .../owasp-core-ruleset/configure-api.mdx | 4 +- .../reference/owasp-core-ruleset/example.mdx | 2 +- 4 files changed, 103 insertions(+), 12 deletions(-) diff --git a/src/content/docs/waf/account/managed-rulesets/index.mdx b/src/content/docs/waf/account/managed-rulesets/index.mdx index f513746f34fe0fe..bd65d7305429b6b 100644 --- a/src/content/docs/waf/account/managed-rulesets/index.mdx +++ b/src/content/docs/waf/account/managed-rulesets/index.mdx @@ -5,7 +5,7 @@ sidebar: order: 4 --- -import { Render } from "~/components"; +import { Render, Tabs, TabItem, Details } from "~/components"; :::note This feature requires an Enterprise plan with a paid add-on. @@ -17,7 +17,96 @@ This feature requires an Enterprise plan with a paid add-on. At the account level, you can deploy each [WAF managed ruleset](/waf/managed-rules/#managed-rulesets) more than once. This means that you can apply the same managed ruleset with different configurations to different subsets of incoming traffic for the Enterprise zones in your account. -For example, you could deploy the [Cloudflare OWASP Core Ruleset](/waf/managed-rules/reference/owasp-core-ruleset/) multiple times with different paranoia levels and a different action (_Log_ action for PL4 and _Block_ action for PL2). +For example, you could deploy the [Cloudflare OWASP Core Ruleset](/waf/managed-rules/reference/owasp-core-ruleset/) multiple times with different paranoia levels and a different action (_Managed Challenge_ action for PL3 and _Log_ action for PL4). + +
+ +The following example deploys the [Cloudflare OWASP Core Ruleset](/waf/managed-rules/reference/owasp-core-ruleset/) multiple times at the account level through the following execute rules: + +- First execute rule: Enable OWASP rules up to paranoia level 3 (PL3) and set the action to _Managed Challenge_. +- Second execute rule: Enable OWASP rules up to PL4 and set the action to _Log_. + +This configuration gives you additional protection by enabling PL3 rules, but without blocking the requests, since higher paranoia levels are more prone to false positives. + +The second rule logs any matches for PL4 rules, the most strict set of rules in the ruleset, so that it does not affect live traffic. You could use this configuration to understand which traffic would be affected by PL4 rules. + + + +1. Deploy the Cloudflare OWASP Core Ruleset by following the [dashboard instructions](/waf/account/managed-rulesets/deploy-dashboard/#deploy-a-managed-ruleset), customizing the ruleset behavior using these settings: + + - **OWASP Anomaly Score Threshold**: _Medium - 40 and higher_ + - **OWASP Paranoia Level**: _PL3_ + - **OWASP Action**: _Managed Challenge_ + +2. Select **Deploy**. + +3. Repeat the deployment procedure for the OWASP ruleset, but with following ruleset configuration: + + - **OWASP Anomaly Score Threshold**: _Medium - 40 and higher_ + - **OWASP Paranoia Level**: _PL4_ + - **OWASP Action**: _Log_ + +Once you finish your configuration, the **Deployed managed rulesets** list will show two _Execute_ rules for the Cloudflare OWASP Core Ruleset. + + + +The following `POST` request for the [Create an account ruleset](/api/operations/createAccountRuleset) operation creates an [entry point ruleset](/ruleset-engine/about/rulesets/#entry-point-ruleset) for the `http_request_firewall_managed` phase at the account level. The ruleset includes two rules deploying the Cloudflare OWASP Core Ruleset twice with different configurations. + +```bash +curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets" \ +--header "Authorization: Bearer " \ +--header "Content-Type: application/json" \ +--data '{ + "name": "My ruleset", + "description": "Entry point ruleset for WAF managed rulesets (account)", + "kind": "root", + "phase": "http_request_firewall_managed", + "rules": [ + { + "action": "execute", + "action_parameters": { + "id": "4814384a9e5d4991b9815dcfc25d2f1f", + "overrides": { + "categories": [ + { + "category": "paranoia-level-4", + "enabled": false + } + ], + "rules": [ + { + "id": "6179ae15870a4bb7b2d480d4843b323c", + "action": "managed_challenge" + } + ] + } + }, + "expression": "cf.zone.plan eq \"ENT\"", + "description": "Execute OWASP ruleset at PL3 with Managed Challenge action" + }, + { + "action": "execute", + "action_parameters": { + "id": "4814384a9e5d4991b9815dcfc25d2f1f", + "overrides": { + "rules": [ + { + "id": "6179ae15870a4bb7b2d480d4843b323c", + "action": "log" + } + ] + } + }, + "expression": "cf.zone.plan eq \"ENT\"", + "description": "Execute OWASP ruleset at PL4 with Log action" + } + ] +}' +``` + + + +
" \ @@ -269,7 +268,6 @@ This example configures the managed ruleset score threshold and the performed ac "action": "execute", "action_parameters": { "id": "4814384a9e5d4991b9815dcfc25d2f1f", - "version": "latest", "overrides": { "rules": [ { diff --git a/src/content/docs/waf/managed-rules/reference/owasp-core-ruleset/example.mdx b/src/content/docs/waf/managed-rules/reference/owasp-core-ruleset/example.mdx index 1bcee800d584565..da87c0ada2af06d 100644 --- a/src/content/docs/waf/managed-rules/reference/owasp-core-ruleset/example.mdx +++ b/src/content/docs/waf/managed-rules/reference/owasp-core-ruleset/example.mdx @@ -1,5 +1,5 @@ --- -title: Example +title: Evaluation example pcx_content_type: concept sidebar: order: 3 From 4ab45e940eeaf5373b1c9eeedbd8368cd9221715 Mon Sep 17 00:00:00 2001 From: fry69 <142489379+fry69@users.noreply.github.com> Date: Wed, 16 Oct 2024 15:48:10 +0200 Subject: [PATCH 033/110] fix duplicate tutorial listing in developer-spotlight/index.mdx (#17572) Basically re-apply #16319 --- src/content/docs/developer-spotlight/index.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/content/docs/developer-spotlight/index.mdx b/src/content/docs/developer-spotlight/index.mdx index 7d3671b3224c29b..2ea8447cc068afb 100644 --- a/src/content/docs/developer-spotlight/index.mdx +++ b/src/content/docs/developer-spotlight/index.mdx @@ -35,8 +35,8 @@ Applications are currently open until Thursday, the 24th of October 2024. To app By Cody Walsh From 35c065de2149672cfc8446f6523fe79b02527379 Mon Sep 17 00:00:00 2001 From: Kian Date: Wed, 16 Oct 2024 15:42:32 +0100 Subject: [PATCH 034/110] [Docs Site] Upgrade Astro to 4.16.4, Starlight to 0.28.3 (#17536) * [Docs Site] Upgrade Astro to 4.16.4, Starlight to 0.28.3 * Remove SiteTitle override * fix package.json --- astro.config.ts | 2 +- package-lock.json | 347 +++++++++++------- package.json | 10 +- ....patch => @astrojs+starlight+0.28.3.patch} | 0 src/components/overrides/SiteTitle.astro | 55 --- src/title.css | 11 + 6 files changed, 223 insertions(+), 202 deletions(-) rename patches/{@astrojs+starlight+0.28.2.patch => @astrojs+starlight+0.28.3.patch} (100%) delete mode 100644 src/components/overrides/SiteTitle.astro create mode 100644 src/title.css diff --git a/astro.config.ts b/astro.config.ts index 54326c36ef9d24f..aebdaf4214d085b 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -155,7 +155,6 @@ export default defineConfig({ MarkdownContent: "./src/components/overrides/MarkdownContent.astro", Sidebar: "./src/components/overrides/Sidebar.astro", PageSidebar: "./src/components/overrides/PageSidebar.astro", - SiteTitle: "./src/components/overrides/SiteTitle.astro", PageTitle: "./src/components/overrides/PageTitle.astro", SocialIcons: "./src/components/overrides/SocialIcons.astro", SkipLink: "./src/components/overrides/SkipLink.astro", @@ -170,6 +169,7 @@ export default defineConfig({ "./src/mermaid.css", "./src/table.css", "./src/tailwind.css", + "./src/title.css", "./src/tooltips.css", ], pagination: false, diff --git a/package-lock.json b/package-lock.json index 43347a344ec640b..2a34774a757135f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,12 +11,12 @@ "@astro-community/astro-embed-youtube": "^0.5.5", "@astrojs/check": "^0.9.4", "@astrojs/react": "^3.6.2", - "@astrojs/rss": "^4.0.7", - "@astrojs/sitemap": "^3.1.6", - "@astrojs/starlight": "^0.28.1", + "@astrojs/rss": "^4.0.8", + "@astrojs/sitemap": "^3.2.1", + "@astrojs/starlight": "^0.28.3", "@astrojs/starlight-docsearch": "^0.2.0", "@astrojs/starlight-tailwind": "^2.0.3", - "@astrojs/tailwind": "^5.1.1", + "@astrojs/tailwind": "^5.1.2", "@cloudflare/puppeteer": "^0.0.14", "@cloudflare/vitest-pool-workers": "^0.5.18", "@cloudflare/workers-types": "^4.20240903.0", @@ -28,7 +28,7 @@ "@types/react": "^18.3.11", "@types/react-dom": "^18.3.0", "algoliasearch": "^4.24.0", - "astro": "^4.15.7", + "astro": "^4.16.4", "astro-breadcrumbs": "^3.2.0", "astro-icon": "^1.1.1", "astro-live-code": "^0.0.3", @@ -361,6 +361,7 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", "dev": true, + "license": "MIT", "dependencies": { "readdirp": "^4.0.1" }, @@ -376,6 +377,7 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 14.16.0" }, @@ -525,31 +527,32 @@ } }, "node_modules/@astrojs/rss": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@astrojs/rss/-/rss-4.0.7.tgz", - "integrity": "sha512-ZEG55XFB19l+DplUvBISmz04UbjDtKliRO4Y5+ERRhAMjgCVVobEBNE6ZwWG1h6orWUocy4nfPihKXDyB73x9g==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@astrojs/rss/-/rss-4.0.8.tgz", + "integrity": "sha512-63UYWS2xj00+N79JPiLeHiBBB3nHfjFlJ81T9a+UaYQ7aUZyvU0E9JdZeuONwHKKcSsvP+goPjWmoVifPToRGA==", "dev": true, + "license": "MIT", "dependencies": { - "fast-xml-parser": "^4.4.0", + "fast-xml-parser": "^4.5.0", "kleur": "^4.1.5" } }, "node_modules/@astrojs/sitemap": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-3.1.6.tgz", - "integrity": "sha512-1Qp2NvAzVImqA6y+LubKi1DVhve/hXXgFvB0szxiipzh7BvtuKe4oJJ9dXSqaubaTkt4nMa6dv6RCCAYeB6xaQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-3.2.1.tgz", + "integrity": "sha512-uxMfO8f7pALq0ADL6Lk68UV6dNYjJ2xGUzyjjVj60JLBs5a6smtlkBYv3tQ0DzoqwS7c9n4FUx5lgv0yPo/fgA==", "dev": true, "license": "MIT", "dependencies": { - "sitemap": "^7.1.2", + "sitemap": "^8.0.0", "stream-replace-string": "^2.0.0", "zod": "^3.23.8" } }, "node_modules/@astrojs/starlight": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@astrojs/starlight/-/starlight-0.28.2.tgz", - "integrity": "sha512-Q1/Ujl2EzWX71qwqdt/0KP3wOyX6Rvyzcep/zD3hRCtw/Vi2TReh4Q2wLwz7mnbuYU9H7YvBKYknbkmjC+K/0w==", + "version": "0.28.3", + "resolved": "https://registry.npmjs.org/@astrojs/starlight/-/starlight-0.28.3.tgz", + "integrity": "sha512-GXXIPKSu5d50mLVtgI4jf6pb3FPQm8n4MI6ZXuQQqqnA0xg7PJQ76WFSVyrICeqM5fKABSqcBksp/glyEJes/A==", "dev": true, "license": "MIT", "dependencies": { @@ -606,14 +609,14 @@ } }, "node_modules/@astrojs/tailwind": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@astrojs/tailwind/-/tailwind-5.1.1.tgz", - "integrity": "sha512-LwurA10uIKcGRxQP2R81RvAnBT0WPKzBntXZBF4hrAefDgM5Uumn0nsGr6tdIjSARgYz4X+Cq/Vh78t3bql3yw==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@astrojs/tailwind/-/tailwind-5.1.2.tgz", + "integrity": "sha512-IvOF0W/dtHElcXvhrPR35nHmhyV3cfz1EzPitMGtU7sYy9Hci3BNK1To6FWmVuuNKPxza1IgCGetSynJZL7fOg==", "dev": true, "license": "MIT", "dependencies": { "autoprefixer": "^10.4.20", - "postcss": "^8.4.45", + "postcss": "^8.4.47", "postcss-load-config": "^4.0.2" }, "peerDependencies": { @@ -663,30 +666,32 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", - "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.8.tgz", + "integrity": "sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", - "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.8.tgz", + "integrity": "sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helpers": "^7.25.7", + "@babel/parser": "^7.25.8", + "@babel/template": "^7.25.7", + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.8", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -740,14 +745,15 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", - "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz", + "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", + "@babel/compat-data": "^7.25.7", + "@babel/helper-validator-option": "^7.25.7", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -760,6 +766,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -943,13 +950,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", - "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz", + "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -972,13 +980,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.7.tgz", - "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz", + "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.7" + "@babel/types": "^7.25.8" }, "bin": { "parser": "bin/babel-parser.js" @@ -1038,16 +1046,17 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz", - "integrity": "sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.7.tgz", + "integrity": "sha512-vILAg5nwGlR9EXE8JIOX4NHXd49lrYbN8hnjffDtoULwpL9hUx/N55nqh2qd0q6FyNDfjl9V79ecKGvFbcSA0Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/types": "^7.25.2" + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-module-imports": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/plugin-syntax-jsx": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1174,9 +1183,9 @@ } }, "node_modules/@babel/types": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.7.tgz", - "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz", + "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==", "dev": true, "license": "MIT", "dependencies": { @@ -3622,47 +3631,47 @@ ] }, "node_modules/@shikijs/core": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.21.1.tgz", - "integrity": "sha512-scBQo4V4O4WZLEDg11e75UPmXoCMq4Ya2A16U6efi/aTiR4o7T/GMNWZs2rq1U8dEvFKGxJZxiUy+tXgmr/4vw==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.22.0.tgz", + "integrity": "sha512-S8sMe4q71TJAW+qG93s5VaiihujRK6rqDFqBnxqvga/3LvqHEnxqBIOPkt//IdXVtHkQWKu4nOQNk0uBGicU7Q==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/engine-javascript": "1.21.1", - "@shikijs/engine-oniguruma": "1.21.1", - "@shikijs/types": "1.21.1", + "@shikijs/engine-javascript": "1.22.0", + "@shikijs/engine-oniguruma": "1.22.0", + "@shikijs/types": "1.22.0", "@shikijs/vscode-textmate": "^9.3.0", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.3" } }, "node_modules/@shikijs/engine-javascript": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.21.1.tgz", - "integrity": "sha512-29EG4KYKlAona8yikEx8uoKbK7N2YoXUO26LS1GOIxpMMIAlQS9UFONg95lkGmIfp1rRcvCvSpYYIJ/blsQxvg==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.22.0.tgz", + "integrity": "sha512-AeEtF4Gcck2dwBqCFUKYfsCq0s+eEbCEbkUuFou53NZ0sTGnJnJ/05KHQFZxpii5HMXbocV9URYVowOP2wH5kw==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "1.21.1", + "@shikijs/types": "1.22.0", "@shikijs/vscode-textmate": "^9.3.0", "oniguruma-to-js": "0.4.3" } }, "node_modules/@shikijs/engine-oniguruma": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.21.1.tgz", - "integrity": "sha512-PvfEtXCDbQZc9ud0SC0bPiuMbul44Cv0Ky2go4SsvVkYAAKYJsMe/Hx7nxThW8yS0r+w8USa0WfOtQKsD9DU9A==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.22.0.tgz", + "integrity": "sha512-5iBVjhu/DYs1HB0BKsRRFipRrD7rqjxlWTj4F2Pf+nQSPqc3kcyqFFeZXnBMzDf0HdqaFVvhDRAGiYNvyLP+Mw==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "1.21.1", + "@shikijs/types": "1.22.0", "@shikijs/vscode-textmate": "^9.3.0" } }, "node_modules/@shikijs/types": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.21.1.tgz", - "integrity": "sha512-yLuTJTCHmYznerJ0nxF+f2rBKHQf2FMAd08QL/3du2xNBy/7yQ8CjuKN4Zc+Pk0vfIFzdBoxdzvEXE4JtXoR4Q==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.22.0.tgz", + "integrity": "sha512-Fw/Nr7FGFhlQqHfxzZY8Cwtwk5E9nKDUgeLjZgt3UuhcM3yJR9xj3ZGNravZZok8XmEZMiYkSMTPlPkULB8nww==", "dev": true, "license": "MIT", "dependencies": { @@ -4043,6 +4052,7 @@ "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -4288,7 +4298,8 @@ "version": "2.4.6", "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.6.tgz", "integrity": "sha512-Nsh7UW2ruK+uURIPzjJgF0YRGP5CX9nQHypA2OMqdM2FKy7rh+uv3XgPnWPw30JADbKvZ5HuBzG4gSbVDYVtiw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@volar/typescript": { "version": "2.4.6", @@ -4787,19 +4798,19 @@ } }, "node_modules/astro": { - "version": "4.15.11", - "resolved": "https://registry.npmjs.org/astro/-/astro-4.15.11.tgz", - "integrity": "sha512-uA9fenaRR+j6ksPFsmhM88ttz94a66SET1TZxAJLxctxWkDlgz58BxZYUc1gNlt0azhgzOgh4hP3q9M4YzAmBA==", + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/astro/-/astro-4.16.4.tgz", + "integrity": "sha512-W/ETxHRkt9iEAj1RVSqV3bjSGaGXEFJHqeNpPhvJIj720hC3V/ZBDAd6FpMW291eiZPtxhGh+c/VDtkD6avPXQ==", "dev": true, "license": "MIT", "dependencies": { "@astrojs/compiler": "^2.10.3", "@astrojs/internal-helpers": "0.4.1", - "@astrojs/markdown-remark": "5.2.0", + "@astrojs/markdown-remark": "5.3.0", "@astrojs/telemetry": "3.1.0", - "@babel/core": "^7.25.2", - "@babel/plugin-transform-react-jsx": "^7.25.2", - "@babel/types": "^7.25.6", + "@babel/core": "^7.25.8", + "@babel/plugin-transform-react-jsx": "^7.25.7", + "@babel/types": "^7.25.8", "@oslojs/encoding": "^1.1.0", "@rollup/pluginutils": "^5.1.2", "@types/babel__core": "^7.20.5", @@ -4811,7 +4822,7 @@ "ci-info": "^4.0.0", "clsx": "^2.1.1", "common-ancestor-path": "^1.0.1", - "cookie": "^0.6.0", + "cookie": "^0.7.2", "cssesc": "^3.0.0", "debug": "^4.3.7", "deterministic-object-hash": "^2.0.2", @@ -4823,7 +4834,6 @@ "esbuild": "^0.21.5", "estree-walker": "^3.0.3", "fast-glob": "^3.3.2", - "fastq": "^1.17.1", "flattie": "^1.1.1", "github-slugger": "^2.0.0", "gray-matter": "^4.0.3", @@ -4831,7 +4841,7 @@ "http-cache-semantics": "^4.1.1", "js-yaml": "^4.1.0", "kleur": "^4.1.5", - "magic-string": "^0.30.11", + "magic-string": "^0.30.12", "magicast": "^0.3.5", "micromatch": "^4.0.8", "mrmime": "^2.0.0", @@ -4843,15 +4853,13 @@ "prompts": "^2.4.2", "rehype": "^13.0.2", "semver": "^7.6.3", - "shiki": "^1.21.0", - "string-width": "^7.2.0", - "strip-ansi": "^7.1.0", + "shiki": "^1.22.0", "tinyexec": "^0.3.0", - "tsconfck": "^3.1.3", + "tsconfck": "^3.1.4", "unist-util-visit": "^5.0.0", "vfile": "^6.0.3", - "vite": "^5.4.8", - "vitefu": "^1.0.2", + "vite": "^5.4.9", + "vitefu": "^1.0.3", "which-pm": "^3.0.0", "xxhash-wasm": "^1.0.2", "yargs-parser": "^21.1.1", @@ -4939,6 +4947,52 @@ "unist-util-visit-parents": "^6.0.1" } }, + "node_modules/astro/node_modules/@astrojs/markdown-remark": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-5.3.0.tgz", + "integrity": "sha512-r0Ikqr0e6ozPb5bvhup1qdWnSPUvQu6tub4ZLYaKyG50BXZ0ej6FhGz3GpChKpH7kglRFPObJd/bDyf2VM9pkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@astrojs/prism": "3.1.0", + "github-slugger": "^2.0.0", + "hast-util-from-html": "^2.0.3", + "hast-util-to-text": "^4.0.2", + "import-meta-resolve": "^4.1.0", + "mdast-util-definitions": "^6.0.0", + "rehype-raw": "^7.0.0", + "rehype-stringify": "^10.0.1", + "remark-gfm": "^4.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.1.1", + "remark-smartypants": "^3.0.2", + "shiki": "^1.22.0", + "unified": "^11.0.5", + "unist-util-remove-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "unist-util-visit-parents": "^6.0.1", + "vfile": "^6.0.3" + } + }, + "node_modules/astro/node_modules/hast-util-from-html": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz", + "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.1.0", + "hast-util-from-parse5": "^8.0.0", + "parse5": "^7.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -5291,9 +5345,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", "dev": true, "funding": [ { @@ -5311,8 +5365,8 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", "node-releases": "^2.0.18", "update-browserslist-db": "^1.1.0" }, @@ -5992,10 +6046,11 @@ "dev": true }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -7674,9 +7729,9 @@ "dev": true }, "node_modules/fast-xml-parser": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", - "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz", + "integrity": "sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==", "dev": true, "funding": [ { @@ -7688,6 +7743,7 @@ "url": "https://paypal.me/naturalintelligence" } ], + "license": "MIT", "dependencies": { "strnum": "^1.0.5" }, @@ -9996,6 +10052,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } @@ -10020,10 +10077,11 @@ } }, "node_modules/magic-string": { - "version": "0.30.11", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", - "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } @@ -13714,10 +13772,11 @@ } }, "node_modules/rehype-stringify": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.0.tgz", - "integrity": "sha512-1TX1i048LooI9QoecrXy7nGFFbFSufxVRAfc6Y9YMRAi56l+oB0zP51mLSV312uRuvVLPV1opSlJmslozR1XHQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.1.tgz", + "integrity": "sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "hast-util-to-html": "^9.0.0", @@ -13928,10 +13987,11 @@ } }, "node_modules/remark-rehype": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz", - "integrity": "sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz", + "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -14409,7 +14469,8 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/scheduler": { "version": "0.23.2", @@ -14560,16 +14621,16 @@ } }, "node_modules/shiki": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.21.1.tgz", - "integrity": "sha512-jSOKRHyQJxGOW3kJflmwzHJbp/kjg6hP8LYuVbCPw5oyX+fSNNoCywvcCD3w9eHbj2rvNljt7YMa5BP5Xi+nHg==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.22.0.tgz", + "integrity": "sha512-/t5LlhNs+UOKQCYBtl5ZsH/Vclz73GIqT2yQsCBygr8L/ppTdmpL4w3kPLoZJbMKVWtoG77Ue1feOjZfDxvMkw==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/core": "1.21.1", - "@shikijs/engine-javascript": "1.21.1", - "@shikijs/engine-oniguruma": "1.21.1", - "@shikijs/types": "1.21.1", + "@shikijs/core": "1.22.0", + "@shikijs/engine-javascript": "1.22.0", + "@shikijs/engine-oniguruma": "1.22.0", + "@shikijs/types": "1.22.0", "@shikijs/vscode-textmate": "^9.3.0", "@types/hast": "^3.0.4" } @@ -14628,10 +14689,11 @@ "dev": true }, "node_modules/sitemap": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.2.tgz", - "integrity": "sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-8.0.0.tgz", + "integrity": "sha512-+AbdxhM9kJsHtruUF39bwS/B0Fytw6Fr1o4ZAIAEqA6cke2xcoO2GleBw9Zw7nRzILVEgz7zBM5GiTJjie1G9A==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "^17.0.5", "@types/sax": "^1.2.1", @@ -14642,15 +14704,16 @@ "sitemap": "dist/cli.js" }, "engines": { - "node": ">=12.0.0", - "npm": ">=5.6.0" + "node": ">=14.0.0", + "npm": ">=6.0.0" } }, "node_modules/sitemap/node_modules/@types/node": { "version": "17.0.45", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/slash": { "version": "2.0.0", @@ -15115,7 +15178,8 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/style-to-object": { "version": "0.4.4", @@ -15513,9 +15577,9 @@ "dev": true }, "node_modules/tsconfck": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.3.tgz", - "integrity": "sha512-ulNZP1SVpRDesxeMLON/LtWM8HIgAJEIVpVVhBM6gsmvQ8+Rh+ZG7FWGvHh7Ah3pRABwVJWklWCr/BTZSv0xnQ==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.4.tgz", + "integrity": "sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==", "dev": true, "license": "MIT", "bin": { @@ -16559,9 +16623,9 @@ } }, "node_modules/vite": { - "version": "5.4.8", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", - "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", + "version": "5.4.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.9.tgz", + "integrity": "sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==", "dev": true, "license": "MIT", "dependencies": { @@ -16642,9 +16706,9 @@ } }, "node_modules/vitefu": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.2.tgz", - "integrity": "sha512-0/iAvbXyM3RiPPJ4lyD4w6Mjgtf4ejTK6TPvTNG3H32PLwuT0N/ZjJLiXug7ETE/LWtTeHw9WRv7uX/tIKYyKg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.3.tgz", + "integrity": "sha512-iKKfOMBHob2WxEJbqbJjHAkmYgvFDPhuqrO82om83S8RLk+17FtyMBfcyeH8GqD0ihShtkMW/zzJgiA51hCNCQ==", "dev": true, "license": "MIT", "workspaces": [ @@ -16652,7 +16716,7 @@ "tests/projects/*" ], "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0-beta.0" }, "peerDependenciesMeta": { "vite": { @@ -17803,7 +17867,8 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/yaml": { "version": "2.5.1", diff --git a/package.json b/package.json index bc3f9457c011ea1..2bab62b692be658 100644 --- a/package.json +++ b/package.json @@ -23,12 +23,12 @@ "@astro-community/astro-embed-youtube": "^0.5.5", "@astrojs/check": "^0.9.4", "@astrojs/react": "^3.6.2", - "@astrojs/rss": "^4.0.7", - "@astrojs/sitemap": "^3.1.6", - "@astrojs/starlight": "^0.28.1", + "@astrojs/rss": "^4.0.8", + "@astrojs/sitemap": "^3.2.1", + "@astrojs/starlight": "^0.28.3", "@astrojs/starlight-docsearch": "^0.2.0", "@astrojs/starlight-tailwind": "^2.0.3", - "@astrojs/tailwind": "^5.1.1", + "@astrojs/tailwind": "^5.1.2", "@cloudflare/puppeteer": "^0.0.14", "@cloudflare/vitest-pool-workers": "^0.5.18", "@cloudflare/workers-types": "^4.20240903.0", @@ -40,7 +40,7 @@ "@types/react": "^18.3.11", "@types/react-dom": "^18.3.0", "algoliasearch": "^4.24.0", - "astro": "^4.15.7", + "astro": "^4.16.4", "astro-breadcrumbs": "^3.2.0", "astro-icon": "^1.1.1", "astro-live-code": "^0.0.3", diff --git a/patches/@astrojs+starlight+0.28.2.patch b/patches/@astrojs+starlight+0.28.3.patch similarity index 100% rename from patches/@astrojs+starlight+0.28.2.patch rename to patches/@astrojs+starlight+0.28.3.patch diff --git a/src/components/overrides/SiteTitle.astro b/src/components/overrides/SiteTitle.astro deleted file mode 100644 index c9fba6b3bdc9b47..000000000000000 --- a/src/components/overrides/SiteTitle.astro +++ /dev/null @@ -1,55 +0,0 @@ ---- -/// -import { logos } from "virtual:starlight/user-images"; -import config from "virtual:starlight/user-config"; -import type { Props } from "@astrojs/starlight/props"; -const { siteTitle, siteTitleHref } = Astro.props; ---- - - - { - config.logo && logos.dark && ( - <> - {config.logo.alt} - {/* Show light alternate if a user configure both light and dark logos. */} - {!("src" in config.logo) && ( - {config.logo.alt} - )} - - ) - } - - {siteTitle} - - - - diff --git a/src/title.css b/src/title.css new file mode 100644 index 000000000000000..ec82711a53728a9 --- /dev/null +++ b/src/title.css @@ -0,0 +1,11 @@ +.site-title { + gap: calc(0.5 * var(--sl-nav-gap)); + + span { + color: var(--sl-color-white); + } + + img { + height: calc(var(--sl-nav-height) - 3 * var(--sl-nav-pad-y)); + } +} From b841ca5b869646ab9cf4627721cc3d253be0a1c4 Mon Sep 17 00:00:00 2001 From: nenizera Date: Wed, 16 Oct 2024 16:56:08 +0100 Subject: [PATCH 035/110] [APO] Update change-nameservers.mdx (#17560) /confirm-dns-records/ --- .../get-started/change-nameservers.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/automatic-platform-optimization/get-started/change-nameservers.mdx b/src/content/docs/automatic-platform-optimization/get-started/change-nameservers.mdx index 1c5350953bd9f03..a38d052346aa3d2 100644 --- a/src/content/docs/automatic-platform-optimization/get-started/change-nameservers.mdx +++ b/src/content/docs/automatic-platform-optimization/get-started/change-nameservers.mdx @@ -6,7 +6,7 @@ sidebar: --- -After you [confirm your DNS records](/automatic-platform-optimization/get-started/change-nameservers/), change your nameservers. +After you [confirm your DNS records](/automatic-platform-optimization/get-started/confirm-dns-records/), change your nameservers. Updating your domain to use Cloudflare's nameservers is a critical step to ensure Cloudflare can optimize and protect your site. Nameservers are your primary DNS controller and identify the location of your domain on the Internet. From 0d8a917a32f9b13379c018ea7b95706eca8bbea5 Mon Sep 17 00:00:00 2001 From: Jun Lee Date: Wed, 16 Oct 2024 17:15:34 +0100 Subject: [PATCH 036/110] [DO] Relocating the limit increase box away from the footnotes for clarity. (#17575) * Relocating the limit increase box away from the footnotes for clarity. * Using new footnote components instead of superscripts. * Update src/content/docs/durable-objects/platform/limits.mdx Co-authored-by: marciocloudflare <83226960+marciocloudflare@users.noreply.github.com> --------- Co-authored-by: marciocloudflare <83226960+marciocloudflare@users.noreply.github.com> --- .../docs/durable-objects/platform/limits.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/content/docs/durable-objects/platform/limits.mdx b/src/content/docs/durable-objects/platform/limits.mdx index d147e6b2d696892..d694ee9420dda4c 100644 --- a/src/content/docs/durable-objects/platform/limits.mdx +++ b/src/content/docs/durable-objects/platform/limits.mdx @@ -10,27 +10,25 @@ import { Render } from "~/components"; Durable Objects are only available on the [Workers Paid plan](/workers/platform/pricing/#workers). Durable Objects limits are the same as [Workers Limits](/workers/platform/limits/), as well as the following limits that are specific to Durable Objects: -| Feature | Limit for class with key-value storage backend | Limit for class with SQite storage backend 1 | -| --------------------------------- | ---------------------------------------------------------------- | --------------------------------------------- | +| Feature | Limit for class with key-value storage backend | Limit for class with SQite storage backend [^1] | +| --------------------------------- | ---------------------------------------------------------------- | ----------------------------------------------- | | Number of Objects | Unlimited (within an account or of a given class) | Unlimited (within an account or of a given class) | | Maximum Durable Object namespaces | 500 (identical to the [script limit](/workers/platform/limits/)) | 500 (identical to the [script limit](/workers/platform/limits/)) | -| Storage per account | 50 GB (can be raised by contacting Cloudflare) 2 | 50 GB (can be raised by contacting Cloudflare) 2 | +| Storage per account | 50 GB (can be raised by contacting Cloudflare) [^2] | 50 GB (can be raised by contacting Cloudflare) [^2] | | Storage per class | Unlimited | Unlimited | -| Storage per Durable Object | Unlimited | 1 GB 4 | +| Storage per Durable Object | Unlimited | 1 GB [^3] | | Key size | 2 KiB (2048 bytes) | Key and value combined cannot exceed 2 MB | | Value size | 128 KiB (131072 bytes) | Key and value combined cannot exceed 2 MB | | WebSocket message size | 1 MiB (only for received messages) | 1 MiB (only for received messages) | -| CPU per request | 30s (including WebSocket messages) 3 | 30s (including WebSocket messages) 3 | +| CPU per request | 30s (including WebSocket messages) [^4] | 30s (including WebSocket messages) [^4] | -1 The new beta version of Durable Objects is available where each Durable Object has a private, embedded SQLite database. When creating a Durabe Object class, users can [opt-in to using SQL storage](/durable-objects/reference/durable-objects-migrations/#enable-sql-storage-on-create-durable-object-class-migration). +[^1]: The new beta version of Durable Objects is available where each Durable Object has a private, embedded SQLite database. When creating a Durable Object class, users can [opt-in to using SQL storage](/durable-objects/reference/durable-objects-migrations/#enable-sql-storage-on-create-durable-object-class-migration). -2 Durable Objects both bills and measures storage based on a gigabyte
(1 GB = 1,000,000,000 bytes) and not a gibibyte (GiB).
+[^2]: Durable Objects both bills and measures storage based on a gigabyte
(1 GB = 1,000,000,000 bytes) and not a gibibyte (GiB).
-3 Each incoming HTTP request or WebSocket *message* resets the remaining available CPU time to 30 seconds. This allows the Durable Object to consume up to 30 seconds of compute after each incoming network request, with each new network request resetting the timer. If you consume more than 30 seconds of compute between incoming network requests, there is a heightened chance that the individual Durable Object is evicted and reset. +[^3]: Will be raised to 10 GB for general availability. -4 Will be raised to 10GB for general availability. - - +[^4]: Each incoming HTTP request or WebSocket *message* resets the remaining available CPU time to 30 seconds. This allows the Durable Object to consume up to 30 seconds of compute after each incoming network request, with each new network request resetting the timer. If you consume more than 30 seconds of compute between incoming network requests, there is a heightened chance that the individual Durable Object is evicted and reset. For Durable Object classes with [SQLite storage backend](/durable-objects/best-practices/access-durable-objects-storage/#sqlite-storage-backend) these SQL limits apply: @@ -44,6 +42,8 @@ For Durable Object classes with [SQLite storage backend](/durable-objects/best-p | Maximum arguments per SQL function | 32 | | Maximum characters (bytes) in a `LIKE` or `GLOB` pattern | 50 bytes | + + ## How much work can a single Durable Object do? Durable Objects can scale horizontally across many Durable Objects. Each individual Object is inherently single-threaded. From ba2881ba426bea438bb257aad849fd20fabdb6fd Mon Sep 17 00:00:00 2001 From: Kian Date: Wed, 16 Oct 2024 17:25:21 +0100 Subject: [PATCH 037/110] [Docs Site] Support custom heading IDs with MDX comments (#17551) * [Docs Site] Support custom heading IDs with MDX comments * Amend AnchorHeading usage guidance * include rehype-slug behaviour, move to individual file --- astro.config.ts | 4 +-- package-lock.json | 21 ++--------- package.json | 2 +- plugins/rehype/heading-slugs.ts | 35 +++++++++++++++++++ .../style-guide/components/anchor-heading.mdx | 12 ++++++- 5 files changed, 51 insertions(+), 23 deletions(-) create mode 100644 plugins/rehype/heading-slugs.ts diff --git a/astro.config.ts b/astro.config.ts index aebdaf4214d085b..fe39d8fd1015ecf 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -4,7 +4,6 @@ import tailwind from "@astrojs/tailwind"; import starlightDocSearch from "@astrojs/starlight-docsearch"; import starlightImageZoom from "starlight-image-zoom"; import liveCode from "astro-live-code"; -import rehypeSlug from "rehype-slug"; import rehypeMermaid from "rehype-mermaid"; import rehypeAutolinkHeadings, { type Options as rehypeAutolinkHeadingsOptions, @@ -17,6 +16,7 @@ import icon from "astro-icon"; import sitemap from "@astrojs/sitemap"; import react from "@astrojs/react"; import rehypeTitleFigure from "rehype-title-figure"; +import rehypeHeadingSlugs from "./plugins/rehype/heading-slugs"; const runLinkCheck = process.env.RUN_LINK_CHECK || false; @@ -95,7 +95,7 @@ export default defineConfig({ rel: ["noopener"], }, ], - rehypeSlug, + rehypeHeadingSlugs, [rehypeAutolinkHeadings, autolinkConfig], // @ts-expect-error TODO: fix types rehypeTitleFigure, diff --git a/package-lock.json b/package-lock.json index 2a34774a757135f..876bee16c6539a0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,7 +57,6 @@ "rehype-autolink-headings": "^7.1.0", "rehype-external-links": "^3.0.0", "rehype-mermaid": "^2.1.0", - "rehype-slug": "^6.0.0", "rehype-title-figure": "^0.1.2", "sharp": "^0.33.5", "solarflare-theme": "^0.0.2", @@ -69,6 +68,7 @@ "tippy.js": "^6.3.7", "tsx": "^4.19.1", "typescript": "^5.5.4", + "unist-util-visit": "^5.0.0", "vitest": "2.0.5", "wrangler": "^3.78.10", "yaml": "^2.5.1" @@ -13753,24 +13753,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/rehype-slug": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-6.0.0.tgz", - "integrity": "sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "github-slugger": "^2.0.0", - "hast-util-heading-rank": "^3.0.0", - "hast-util-to-string": "^3.0.0", - "unist-util-visit": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/rehype-stringify": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.1.tgz", @@ -16368,6 +16350,7 @@ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", diff --git a/package.json b/package.json index 2bab62b692be658..91ba96670f9d766 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,6 @@ "rehype-autolink-headings": "^7.1.0", "rehype-external-links": "^3.0.0", "rehype-mermaid": "^2.1.0", - "rehype-slug": "^6.0.0", "rehype-title-figure": "^0.1.2", "sharp": "^0.33.5", "solarflare-theme": "^0.0.2", @@ -81,6 +80,7 @@ "tippy.js": "^6.3.7", "tsx": "^4.19.1", "typescript": "^5.5.4", + "unist-util-visit": "^5.0.0", "vitest": "2.0.5", "wrangler": "^3.78.10", "yaml": "^2.5.1" diff --git a/plugins/rehype/heading-slugs.ts b/plugins/rehype/heading-slugs.ts new file mode 100644 index 000000000000000..42493dd7b643ec0 --- /dev/null +++ b/plugins/rehype/heading-slugs.ts @@ -0,0 +1,35 @@ +import { toString } from "hast-util-to-string"; +import { visit } from "unist-util-visit"; +import GithubSlugger from "github-slugger"; + +const slugs = new GithubSlugger(); + +// # foo {/*bar*/} = foo +export default function () { + return function (tree: any) { + slugs.reset(); + + visit(tree, "element", function (element: any) { + if (/^h[1-6]$/.test(element.tagName)) { + const last = element.children.at(-1); + + if ( + last.type === "mdxTextExpression" && + last.value.startsWith("/*") && + last.value.endsWith("*/") + ) { + const id = last.value.slice(2, -2).trim(); + element.properties.id = slugs.slug(id); + + const text = element.children.at(-2); + text.value = text.value.trimEnd(); + element.children.with(-2, text); + } else { + if (!element.properties.id) { + element.properties.id = slugs.slug(toString(element)); + } + } + } + }); + }; +} diff --git a/src/content/docs/style-guide/components/anchor-heading.mdx b/src/content/docs/style-guide/components/anchor-heading.mdx index 12635a69327c5c3..64b7a3d2110246f 100644 --- a/src/content/docs/style-guide/components/anchor-heading.mdx +++ b/src/content/docs/style-guide/components/anchor-heading.mdx @@ -17,7 +17,17 @@ import { AnchorHeading } from "~/components"; Markdown files (including partials) have this behavior by default, applied via rehype plugins. Therefore, the `AnchorHeading` component is usually only required when writing headings yourself inside components, or when working on non-markdown files. -Additionally, `AnchorHeading` is useful when rendering partial files into one location where there are duplicate headings (for example, when there are multiple H3 corresponding to `/#create` in one page). `AnchorHeading` allows you to explicitly define fragments, ensuring that each heading can be referred correctly with unique anchors. +To override the ID given to a heading within Markdown, add an MDX comment at the end of the line: + +```mdx +# foo {/*bar*/} +``` + +It will result in the following HTML: + +```html +foo +``` :::note From 2ba7478d99d723b7cecac93808eeaa8a83ae54d1 Mon Sep 17 00:00:00 2001 From: Kian Date: Wed, 16 Oct 2024 18:12:35 +0100 Subject: [PATCH 038/110] [Docs Site] Fix footnotes with multiple references (#17576) --- src/scripts/footnotes.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/footnotes.ts b/src/scripts/footnotes.ts index ee79cb82d3f1c8b..eb6f3a948af61c4 100644 --- a/src/scripts/footnotes.ts +++ b/src/scripts/footnotes.ts @@ -9,7 +9,7 @@ if (footnotes) { const content = note.querySelector("p") as HTMLParagraphElement; const fnrefs = document.querySelectorAll( - `#${note.id.replace("fn", "fnref")}`, + `a[id^='${note.id.replace("fn", "fnref")}']`, ); for (const fnref of fnrefs) { From c806794ba8b028d6098705e8b42e8ec38480c460 Mon Sep 17 00:00:00 2001 From: ranbel <101146722+ranbel@users.noreply.github.com> Date: Wed, 16 Oct 2024 13:55:19 -0400 Subject: [PATCH 039/110] [ZT] New WARP Connector flow (#16486) * remove unnecessary steps * New warp connector flow * add missing iptables command * fix details component * tweak wording * split into multiple pages * remove old page * fix glossary formatting * missing components * clean up site-to-site * combine steps * site-to-Internet * user to site * apply review feedback * remove old page * update user-to-site test * add device profile note * Update src/content/partials/cloudflare-one/tunnel/warp-connector-install.mdx Co-authored-by: Jun Lee * Update src/content/partials/cloudflare-one/tunnel/warp-connector-install.mdx Co-authored-by: Jun Lee * Update src/content/partials/cloudflare-one/tunnel/warp-connector-install.mdx Co-authored-by: Jun Lee * Update src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/site-to-site.mdx Co-authored-by: Jun Lee * Update src/content/partials/cloudflare-one/tunnel/warp-connector-alternate-gateway.mdx Co-authored-by: Jun Lee * Update src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/user-to-site.mdx Co-authored-by: Jun Lee * Update src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/user-to-site.mdx Co-authored-by: Jun Lee * Update src/content/partials/cloudflare-one/tunnel/warp-connector-install.mdx Co-authored-by: Jun Lee * Update src/content/partials/cloudflare-one/tunnel/warp-connector-install.mdx Co-authored-by: Jun Lee --------- Co-authored-by: Jun Lee --- .../private-net/warp-connector.mdx | 423 ------------------ .../private-net/warp-connector/index.mdx | 49 ++ .../warp-connector/site-to-internet.mdx | 83 ++++ .../warp-connector/site-to-site.mdx | 179 ++++++++ .../warp-connector/user-to-site.mdx | 114 +++++ .../warp-connector/vpc-deployments.mdx | 23 + src/content/glossary/cloudflare-one.yaml | 6 +- .../warp-connector-alternate-gateway-flow.mdx | 10 + .../warp-connector-alternate-gateway.mdx | 7 + .../tunnel/warp-connector-default-gateway.mdx | 7 + .../tunnel/warp-connector-device-profile.mdx | 17 + .../tunnel/warp-connector-install.mdx | 61 +++ .../warp-connector-intermediate-gateway.mdx | 7 + .../tunnel/warp-connector-linux-packages.mdx | 5 + .../warp-connector-route-all-traffic.mdx | 33 ++ .../tunnel/warp-connector-verify-routes.mdx | 5 + 16 files changed, 605 insertions(+), 424 deletions(-) delete mode 100644 src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector.mdx create mode 100644 src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/index.mdx create mode 100644 src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/site-to-internet.mdx create mode 100644 src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/site-to-site.mdx create mode 100644 src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/user-to-site.mdx create mode 100644 src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/vpc-deployments.mdx create mode 100644 src/content/partials/cloudflare-one/tunnel/warp-connector-alternate-gateway-flow.mdx create mode 100644 src/content/partials/cloudflare-one/tunnel/warp-connector-alternate-gateway.mdx create mode 100644 src/content/partials/cloudflare-one/tunnel/warp-connector-default-gateway.mdx create mode 100644 src/content/partials/cloudflare-one/tunnel/warp-connector-device-profile.mdx create mode 100644 src/content/partials/cloudflare-one/tunnel/warp-connector-install.mdx create mode 100644 src/content/partials/cloudflare-one/tunnel/warp-connector-intermediate-gateway.mdx create mode 100644 src/content/partials/cloudflare-one/tunnel/warp-connector-linux-packages.mdx create mode 100644 src/content/partials/cloudflare-one/tunnel/warp-connector-route-all-traffic.mdx create mode 100644 src/content/partials/cloudflare-one/tunnel/warp-connector-verify-routes.mdx diff --git a/src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector.mdx b/src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector.mdx deleted file mode 100644 index d35efa48171386d..000000000000000 --- a/src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector.mdx +++ /dev/null @@ -1,423 +0,0 @@ ---- -pcx_content_type: how-to -title: Site-to-site connectivity -sidebar: - order: 5 - badge: - text: Beta -head: - - tag: title - content: Set up WARP Connector ---- - -import { Details, GlossaryTooltip, TabItem, Tabs } from "~/components"; - -
- -| [WARP modes](/cloudflare-one/connections/connect-devices/warp/configure-warp/warp-modes/) | [Zero Trust plans](https://www.cloudflare.com/teams-pricing/) | -| ----------------------------------------------------------------------------------------- | ------------------------------------------------------------- | -| Gateway with WARP | All plans | - -| System | Availability | -| -------- | ------------ | -| Windows | ❌ | -| macOS | ❌ | -| Linux | ✅ | -| iOS | ❌ | -| Android | ❌ | -| ChromeOS | ❌ | - -
- -Cloudflare WARP Connector is a piece of software [^1] that enables site-to-site, bidirectional, and mesh networking connectivity without requiring changes to underlying network routing infrastructure. WARP Connector establishes a secure Layer 3 connection between a private network and Cloudflare, allowing you to: - -- Connect two or more private networks to each other. -- Connect IoT devices that cannot run external software, such as printers and IP phones. -- Filter and log server-initiated traffic, such as VoIP and SIP traffic. -- Apply Zero Trust security policies based on the source IP of the request. - -![Two subnets connected with WARP Connector](~/assets/images/cloudflare-one/connections/connect-apps/warp-connector/overview.png) - -As shown in the diagram, WARP Connector acts as a router for a subnet within the private network to on-ramp and off-ramp traffic through Cloudflare. All devices on the subnet can access any services connected to Cloudflare, and all devices connected to Cloudflare can access any services on the subnet. Each subnet runs a WARP Connector on a designated Linux machine (typically the default gateway router), but other devices on the network do not need to install software. - -This guide will cover how to connect two independent subnets, for example `10.0.0.0/24` and `192.168.1.0/24`. - -## Prerequisites - -- A Linux host [^2] on each subnet -- Verify that your firewall allows inbound/outbound traffic over the [WARP IP addresses, ports, and domains](/cloudflare-one/connections/connect-devices/warp/deployment/firewall/). - -## 1. Create a service token - -[Create a new service token](/cloudflare-one/identity/service-tokens/#create-a-service-token) and copy its **Client ID** and **Client Secret**. WARP Connector will use this service token to authenticate with your Zero Trust organization. - -## 2. Add a device enrollment rule - -Next, create a device enrollment rule that allows the WARP Connector to authenticate: - -1. In [Zero Trust](https://one.dash.cloudflare.com), go to **Settings** > **WARP Client**. - -2. In the **Device enrollment** card, select **Manage**. - -3. Select **Add a rule**. - -4. Name the rule. - -5. For **Rule action**, select _Service Auth_. - -6. Configure the following fields: - - | Selector | Value | - | ------------- | ---------------------- | - | Service Token | `` | - -7. Select **Save**. - -## 3. Enable CGNAT routing - -All WARP Connector and WARP client devices in your Zero Trust organization have the same local IP address by default. To route traffic between various WARP devices, you must allow Cloudflare to assign a unique CGNAT IP to each device. - -1. In [Zero Trust](https://one.dash.cloudflare.com), go to **Settings** > **Network**. -2. Enable **Proxy**. -3. Enable **Warp to Warp**. This allows Cloudflare to route traffic to the CGNAT IP space. -4. Next, go to **Settings** > **WARP Client**. -5. Enable [**Override local interface IP**](/cloudflare-one/connections/connect-devices/warp/configure-warp/warp-settings/#override-local-interface-ip-). -6. [Check your Split Tunnel configuration](/cloudflare-one/connections/connect-networks/private-net/cloudflared/#3-route-private-network-ips-through-warp) and ensure that the CGNAT IP space (`100.96.0.0/12`) routes through WARP. - - For example, if you are using **Exclude** mode, delete `100.64.0.0/10` from the list and re-add `100.64.0.0/11` and `100.112.0.0/12`. - -## 4. Install a WARP Connector - -Each subnet must run its own WARP Connector on a Linux host. Installing on your router is the simplest setup, but if you do not have access to the router, you may choose any other machine on the subnet. - -In this example, we will create a WARP Connector for subnet `10.0.0.0/24` and install it on `10.0.0.1`. We will then create a second WARP Connector for subnet `192.168.1.0/24` and install it on `192.168.1.97`. - -1. In [Zero Trust](https://one.dash.cloudflare.com), go to **Network** > **Tunnels**. -2. Select **Create a tunnel**. -3. For the connector type, select **WARP**. Select **Next**. -4. A window will appear with a list of prerequisites. Select **Confirm** to continue. -5. Give the tunnel any name (for example, `Subnet-10.0.0.0/24`) and select **Save tunnel**. -6. Select the operating system of your host machine. -7. Copy-paste the command into a terminal window and run the command. WARP Connector software is now installed, but not yet connected to Cloudflare. -8. To authenticate the WARP Connector to your Zero Trust organization: - - 1. Create an `mdm.xml` file in `/var/lib/cloudflare-warp` using any text editor: - - ```sh - cd /var/lib/cloudflare-warp - sudo vim mdm.xml - ``` - - 2. Add the following text to the file. Make sure to fill in your team name, the Client ID and Client Secret of your [service token](#1-create-a-service-token), and the WARP Connector token value (shown in the dashboard). As soon as you save this file, WARP will automatically register with the provided credentials. - - ```txt - - organization - myteam - auth_client_id - b33d5a65a6e801cd875scefff5908457f29.access - auth_client_secret - cdb5fa2721018c39cfaf8ec7fca9b5f62860ff5c584a89121241c6d0c83878124591cce23 - warp_connector_token - fVTLilTWgMiF3TMxTIMM3nMU2NsixOYTTDHW1IamOMyORL0Y0jUcMWAoZDZhVhLVdn2pTDhy0VFRWZdE22rQCFNN6jQUoOx0eIV0ehcj5RyTZl5PYRwU25wMMi0kDGUS2XZn5W0eJS3mZXS9DkUTJatMNiMZDtNb1TmtmMptENJ20WY0NmdYmIBLoVhtToFichIjtiMnTZIMMOYOGZmpATzzEm2MjhnC6tWMHwNwFGhoIN== - - ``` - - 3. Verify the registration: - - ```sh - warp-cli registration show - ``` - - ```sh output - Account type: Team - Device ID: f174e90a-fafe-4643-bbbc-4a0ed4fc8415 - Public key: 4w5uugfh0q03nrmcn95ltfzeghfzuhl75o7pruyd0h7z9ar9x6doxwq50aszar5kd - Account ID: 699d98642c564d2e855e9661899b7252 - Organization: myteam - ``` - -
- If the registration did not go through, try the following troubleshooting strategies: - - - Ensure that `mdm.xml` is formatted correctly and stored in `/var/lib/cloudflare-warp`. - - Ensure that you have a [device enrollment rule](/cloudflare-one/connections/connect-networks/private-net/warp-connector/#2-add-a-device-enrollment-rule) with the _Service Auth_ action (not _Allow_). - - Restart the WARP systemd service: - ```sh - sudo systemctl restart warp-svc.service - ``` - - Clear an old registration and trigger WARP to re-register: - ```sh - sudo warp-cli registration delete - ``` - - Review your [WARP daemon logs](/cloudflare-one/connections/connect-devices/warp/troubleshooting/warp-logs/) for information about why the registration is failing. - -
- - 4. Verify that WARP is connected to Cloudflare: - - ```sh - warp-cli status - ``` - - ```sh output - Status update: Connected - ``` - -
- - - If WARP is disconnected, try the following troubleshooting strategies: - - * Run `warp-cli connect`. - - * If your private network uses a firewall to restrict Internet traffic, ensure that it allows the [WARP ports and IPs](/cloudflare-one/connections/connect-devices/warp/deployment/firewall/). - - * Review your [WARP daemon logs](/cloudflare-one/connections/connect-devices/warp/troubleshooting/warp-logs/) for information about why the connection is failing. - -
- -:::caution[Warning] - -If you are managing the deployment remotely over SSH, your connection may drop when you register the WARP Connector. Because the connector immediately starts forwarding traffic to Cloudflare, the remote SSH server's traffic will be routed to Cloudflare instead of via the server's public IP and will timeout your existing connection. You can work around this issue by temporarily adding the public IP of your local machine to your [Split Tunnel Exclude list](/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/split-tunnels/). -::: - -9. Select **Next**. -10. In **CIDR**, enter the private IPv4 address range that you wish to route through this WARP Connector (for example, `10.0.0.0/24`). WARP Connector does not currently support IPv6 routes. - -:::note - -If you do not already have a private network range, you can choose a subnet from one of these [pre-defined CIDRs](https://datatracker.ietf.org/doc/html/rfc1918#section-3). -::: - -11. Select **Save Tunnel**. - -12. In your [Split Tunnel configuration](/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/split-tunnels/), ensure that your CIDR is routing through the WARP tunnel. For instructions on how to do this, refer to [Route private network IPs through WARP](/cloudflare-one/connections/connect-networks/private-net/cloudflared/#3-route-private-network-ips-through-warp). - - The `10.0.0.0/24` WARP Connector is now connected to Cloudflare. - - ```mermaid - flowchart LR - subgraph subnet1[Subnet 10.0.0.0/24] - router1["Device running - WARP Connector - 10.0.0.1"] - end - router1<-->C((Cloudflare)) - ``` - -13. Repeat these steps to install an additional WARP Connector on subnet `192.168.1.0/24`. You can reuse the service token, but you will need to create a new tunnel and MDM file. - - ```mermaid - flowchart LR - subgraph subnet1[Subnet 10.0.0.0/24] - router1["Device running - WARP Connector #1 - 10.0.0.1"] - end - subgraph subnet2[Subnet 192.168.1.0/24] - router2["Device running - WARP Connector #2 - 192.168.1.97"] - end - router1<-->C((Cloudflare))<-->router2 - ``` - -## 5. Configure the host - -Run the following commands on the machine where you installed WARP Connector. You will need to configure the host machine on each subnet. - -1. Enable IP forwarding: - - ```sh - sudo sysctl -w net.ipv4.ip_forward=1 - ``` - -
- - ```sh - echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-warp-svc.conf - sudo sysctl -p /etc/sysctl.d/99-warp-svc.conf - ``` -
- -:::note[IP forwarding on VPC] - -If you are setting up WARP Connector on a [virtual private cloud (VPC)](https://www.cloudflare.com/learning/cloud/what-is-a-virtual-private-cloud/), you may need to enable IP forwarding on the VM instance. -::: - -2. WARP's [virtual interface](/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/warp-architecture/#virtual-interface) has a [maximum transmission unit (MTU)](https://www.cloudflare.com/learning/network-layer/what-is-mtu/) of 1280 bytes, whereas the standard Ethernet MTU is 1500 bytes. To avoid dropping packets that exceed 1280 bytes, clamp the [maximum segment size (MSS)](https://www.cloudflare.com/learning/network-layer/what-is-mss/) of the host machine so that incoming payloads are less than the MTU of WARP: - - ```sh - sudo iptables -t mangle -A FORWARD -i CloudflareWARP -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu - sudo iptables -t mangle -A FORWARD -o CloudflareWARP -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu - ``` - -
- - 1. Create a bash script that writes the `iptable` rules to a file: - - ```bash - echo '#!/bin/bash - # Define your rules - RULES=( - "-A FORWARD -i CloudflareWARP -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu" - "-A FORWARD -o CloudflareWARP -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu" - ) - - # Apply the rules - for rule in "${RULES[@]}"; do - iptables -t mangle $rule - done - - # Save the rules - iptables-save > /etc/iptables/rules.v4 - ' | sudo tee /usr/local/bin/apply_iptables_rules.sh - ``` - - 2. Run the script: - - ```sh - sudo chmod +x /usr/local/bin/apply_iptables_rules.sh - sudo /usr/local/bin/apply_iptables_rules.sh - ``` - - 3. Create a systemd service to restore the rules at startup: - - ```bash - echo '[Unit] - Description=Load iptables rules at startup - - [Service] - Type=oneshot - ExecStart=/sbin/iptables-restore < /etc/iptables/rules.v4 - - [Install] - WantedBy=multi-user.target - ' | sudo tee /etc/systemd/system/iptables-persistent.service - ``` - -
- -## 6. Route traffic through WARP Connector - -Depending on where you installed the WARP Connector, you may need to configure other devices on the subnet to route traffic through WARP Connector. - -### Option 1: Default gateway - -If you installed WARP Connector on your router, no additional configuration is necessary. All traffic will use the router as the default gateway. - -![Default gateway routing configuration](~/assets/images/cloudflare-one/connections/connect-apps/warp-connector/default-gateway.png) - -### Option 2: Alternate gateway - -If you have access to the router but installed WARP Connector on another machine, you can configure the router to forward traffic to the WARP Connector. This typically involves adding a static route for the destination IPs that you want to connect to through Cloudflare. Refer to your router's documentation for specific instructions on how to add an IP route. - -For example, if you are on subnet `10.0.0.0/24` and want to reach applications behind subnet `192.168.1.0/24`, add a rule that routes `192.168.1.0/24` to the WARP Connector IP (`10.0.0.100` in the diagram below). When a device sends a request to `192.168.1.0/24`, the router will first redirect the traffic to the WARP Connector machine. WARP Connector encrypts the traffic, changes its destination IP to the [WARP ingress IP](/cloudflare-one/connections/connect-devices/warp/deployment/firewall/#warp-ingress-ip), and sends it back to the router. The router will now forward this encrypted traffic to Cloudflare. - -![Alternate gateway routing configuration](~/assets/images/cloudflare-one/connections/connect-apps/warp-connector/alternate-gateway.png) - -:::note - -Ensure that your routing rules do not forward the [WARP ingress IP](/cloudflare-one/connections/connect-devices/warp/deployment/firewall/#warp-ingress-ip) back to the WARP Connector. -::: - -### Option 3: Intermediate gateway - -If you do not have access to the router, you will need to configure each device on the subnet to egress through the WARP Connector machine instead of the default gateway. - -![Intermediate gateway routing configuration](~/assets/images/cloudflare-one/connections/connect-apps/warp-connector/intermediate-gateway.png) - -#### Route all traffic - -You can configure all traffic on a device to egress through WARP Connector with its local source IP. All traffic will be filtered by your Gateway network policies. - - - -```sh -sudo ip route add default via dev eth0 metric 101 -``` - -Ensure that the `metric` value is lower than other default gateways. To verify that WARP Connector is now the preferred default gateway, run `ip route get `. - - - -```sh -sudo route -n change default -interface en0 -``` - - - - - -```bash -route /p add 0.0.0.0 mask 0.0.0.0 metric 101 -``` - - - -#### Route specific IPs - -You can configure only certain routes to egress through WARP Connector. For example, you may only want to filter traffic destined to internal applications and devices, but allow public Internet traffic to bypass Cloudflare. - - - -```sh -sudo ip route add via dev eth0 -``` - - - -```sh -sudo route -n add -net -``` - - - - - -```bash -route /p add mask 255.255.255.255 -``` - - - -:::note[WARP device IPs] - -`100.96.0.0/12` is the default CIDR for all user devices running [Cloudflare WARP](/cloudflare-one/connections/connect-devices/warp/). Setting `` to `100.96.0.0/12` configures the local machine to connect to user devices through Cloudflare. -::: - -#### Verify routes - -To validate subnet routing, [check your routing table](/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/warp-architecture/#routing-table) and ensure that traffic is routing through the `CloudflareWARP` [virtual interface](/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/warp-architecture/#virtual-interface). - -## 7. Test the WARP Connector - -You can now test the connection between the two subnets. For example, on the `10.0.0.2` device run `ping 192.168.1.100`. - -```mermaid - flowchart LR - subgraph subnet1[Subnet 10.0.0.0/24] - device1["Device - 10.0.0.2"]--"ping - 192.168.1.100"-->router1["Device running - WARP Connector - 10.0.0.1"] - end - subgraph subnet2[Subnet 192.168.1.0/24] - router2["Device running - WARP Connector - 192.168.1.97"]-->device2["Device - 192.168.1.100"] - end - router1-->C((Cloudflare))-->router2 -``` - -:::note - -If you are testing with curl using private hostnames, make sure to add the `--ipv4` flag to your curl commands. -::: - -[^1]: WARP Connector is an extension of the [WARP client](/cloudflare-one/connections/connect-devices/warp/). - -[^2]: Check the [system requirements](/cloudflare-one/connections/connect-devices/warp/download-warp/#linux). Package dependencies are the following: `curl`, `gpg`, `iptables`, `iptables-persistent`, `lsb-core`, and `sudo`. diff --git a/src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/index.mdx b/src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/index.mdx new file mode 100644 index 000000000000000..424d1780a40c33c --- /dev/null +++ b/src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/index.mdx @@ -0,0 +1,49 @@ +--- +pcx_content_type: concept +title: WARP Connector +sidebar: + label: Overview + order: 5 + badge: + text: Beta +tableOfContents: false +--- + +import { Render, Details} from "~/components"; + +
+ +| [WARP modes](/cloudflare-one/connections/connect-devices/warp/configure-warp/warp-modes/) | [Zero Trust plans](https://www.cloudflare.com/teams-pricing/) | +| ----------------------------------------------------------------------------------------- | ------------------------------------------------------------- | +| Gateway with WARP | All plans | + +| System | Availability | +| -------- | ------------ | +| Windows | ❌ | +| macOS | ❌ | +| Linux | ✅ | +| iOS | ❌ | +| Android | ❌ | +| ChromeOS | ❌ | + +
+ +Cloudflare WARP Connector is a piece of software [^1] that enables site-to-site, bidirectional, and mesh networking connectivity without requiring changes to underlying network routing infrastructure. WARP Connector establishes a secure Layer 3 connection between a private network and Cloudflare, allowing you to: + +- Connect two or more private networks to each other. +- Connect IoT devices that cannot run external software, such as printers and IP phones. +- Filter and log server-initiated traffic, such as VoIP and SIP traffic. +- Apply Zero Trust security policies based on the source IP of the request. + +![Two subnets connected with WARP Connector](~/assets/images/cloudflare-one/connections/connect-apps/warp-connector/overview.png) + +As shown in the diagram, WARP Connector acts as a router for a subnet within the private network to on-ramp and off-ramp traffic through Cloudflare. All devices on the subnet can access any services connected to Cloudflare, and all devices connected to Cloudflare can access any services on the subnet. Each subnet runs a WARP Connector on a designated Linux machine (typically the default gateway router), but other devices on the network do not need to install software. + +To set up WARP Connector, refer to the guide for your use case: + +- **[Site-to-Internet](/cloudflare-one/connections/connect-networks/private-net/warp-connector/site-to-internet/)**: Send requests from your private network to the Internet. +- **[Site-to-site](/cloudflare-one/connections/connect-networks/private-net/warp-connector/site-to-site/)**: Send requests between two or more private networks. +- **[User-to-site](/cloudflare-one/connections/connect-networks/private-net/warp-connector/user-to-site/)**: Allow WARP client devices to send requests to your private network. +- **Internet-to-site**: Not supported by WARP Connector. To provide clientless access to applications on your private network, set up a [Cloudflare Tunnel with `cloudflared`](/cloudflare-one/connections/connect-networks/get-started/create-remote-tunnel/) and configure a [public hostname route](/cloudflare-one/connections/connect-networks/routing-to-tunnel/). + +[^1]: WARP Connector is an extension of the [WARP client](/cloudflare-one/connections/connect-devices/warp/). diff --git a/src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/site-to-internet.mdx b/src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/site-to-internet.mdx new file mode 100644 index 000000000000000..0f00eb2485c9eb4 --- /dev/null +++ b/src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/site-to-internet.mdx @@ -0,0 +1,83 @@ +--- +pcx_content_type: how-to +title: Connect private network to Internet +sidebar: + label: Site-to-Internet + order: 3 +--- + +import { Render, Details, GlossaryTooltip, TabItem, Tabs } from "~/components"; + +This guide covers how to connect a private network to the Internet using WARP Connector. In this example, we will create a WARP Connector for subnet `10.0.0.0/24` and install it on `10.0.0.1`. + +```mermaid + flowchart LR + subgraph subnet1[Subnet 10.0.0.0/24] + device1["Device + 10.0.0.2"]-->router1["WARP Connector + 10.0.0.1"] + end + router1-->C((Cloudflare))-->I{Internet} +``` + +## Prerequisites + +- A Linux host [^1] on the subnet +- Verify that your firewall allows inbound/outbound traffic over the [WARP IP addresses, ports, and domains](/cloudflare-one/connections/connect-devices/warp/deployment/firewall/). + +## 1. Install a WARP Connector + + + +## 2. (Recommended) Create a device profile + + + +## 3. Route traffic from subnet to WARP Connector + +Depending on where you installed the WARP Connector, you may need to configure other devices on the subnet to route outbound requests through WARP Connector. + +### Option 1: Default gateway + + + +### Option 2: Alternate gateway + + + +#### Add route to router + +For example, for all traffic from the subnet to egress through WARP Connector, add a rule on the router that routes `0.0.0.0` to the WARP Connector host machine (`10.0.0.100`). + + + +### Option 3: Intermediate gateway + + + +#### Add route to devices + + + +#### Verify routes + + + +## 4. Test the WARP Connector + +You can now test if traffic from your subnet routes through Cloudflare. For example, + +1. On the `10.0.0.2` device, run `curl --ipv4 www.google.com`. +2. Check your [Gateway DNS logs](/cloudflare-one/insights/logs/gateway-logs/) for queries from `warp_connector@.cloudflareaccess.com`. Logs may take a few minutes to populate. + +```mermaid + flowchart LR + subgraph subnet1[Subnet 10.0.0.0/24] + device1["Device + 10.0.0.2"]--Request-->router1["WARP Connector + 10.0.0.1"] + end + router1-->C((Cloudflare))-->I{Internet} +``` + +[^1]: \ No newline at end of file diff --git a/src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/site-to-site.mdx b/src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/site-to-site.mdx new file mode 100644 index 000000000000000..37ea1e416ad369b --- /dev/null +++ b/src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/site-to-site.mdx @@ -0,0 +1,179 @@ +--- +pcx_content_type: how-to +title: Connect two or more private networks +sidebar: + label: Site-to-site + order: 3 +--- + +import { Render, Details, GlossaryTooltip, TabItem, Tabs } from "~/components"; + +This guide covers how to connect two independent subnets with WARP Connector. Each subnet must run its own WARP Connector on a Linux host. Installing on your router is the simplest setup, but if you do not have access to the router, you may choose any other machine on the subnet. + +```mermaid + flowchart LR + subgraph subnet1[Subnet 10.0.0.0/24] + router1["WARP Connector #1 + 10.0.0.1"] + end + subgraph subnet2[Subnet 192.168.1.0/24] + router2["WARP Connector #2 + 192.168.1.97"] + end + router1<-->C((Cloudflare))<-->router2 +``` + +In this example, we will create a WARP Connector for subnet `10.0.0.0/24` and install it on `10.0.0.1`. We will then create a second WARP Connector for subnet `192.168.1.0/24` and install it on `192.168.1.97`. + +## Prerequisites + +- A Linux host [^1] on each subnet. +- Verify that your firewall allows inbound/outbound traffic over the [WARP IP addresses, ports, and domains](/cloudflare-one/connections/connect-devices/warp/deployment/firewall/). + +## 1. Install a WARP Connector + + + +## 2. (Recommended) Create a device profile + + + +## 3. Route traffic from WARP Connector to subnet + +1. In [Zero Trust](https://one.dash.cloudflare.com), go to **Networks** > **Routes**. +2. Select **Create route**. +3. In **CIDR**, enter the private IPv4 address range that you wish to route through this WARP Connector (for example, `10.0.0.0/24`). WARP Connector does not currently support IPv6 routes. + :::note + If you do not already have a private network range, you can choose a subnet from one of these [pre-defined CIDRs](https://datatracker.ietf.org/doc/html/rfc1918#section-3). + ::: +4. For **Tunnel**, select the name of your WARP Connector (_Subnet-10.0.0.0/24_). +5. Select **Create**. +6. In your WARP Connector device profile, [configure Split Tunnels](/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/split-tunnels/) so that traffic to your private network CIDR (`10.0.0.0/24`) routes through the WARP tunnel. For example, if you are using **Exclude** mode, delete `10.0.0.0/8` from Split Tunnels and re-add the following IPs: `10.0.1.0/24`, `10.0.2.0/23`, `10.0.4.0/22`, `10.0.8.0/21`, `10.0.16.0/20`, `10.0.32.0/19`, `10.0.64.0/18`, `10.0.128.0/17`, `10.1.0.0/16`, `10.2.0.0/15`, `10.4.0.0/14`, `10.8.0.0/13`, `10.16.0.0/12`, `10.32.0.0/11`, `10.64.0.0/10`, `10.128.0.0/9` + +The WARP Connector will now forward inbound requests to devices on the subnet. + +```mermaid + flowchart LR + subgraph subnet1[Subnet 10.0.0.0/24] + router1["WARP Connector #1 + 10.0.0.1"] + device["Device + 10.0.0.2"] + end + + C((Cloudflare))--Requests to 10.0.0.2--> router1 --> device + +``` + +## 4. Route traffic from subnet to WARP Connector + +Depending on where you installed the WARP Connector, you may need to configure other devices on the subnet to route outbound requests through WARP Connector. + +```mermaid + flowchart LR + subgraph subnet1[Subnet 10.0.0.0/24] + router1["WARP Connector #1 + 10.0.0.1"] + device["Device + 10.0.0.2"] + end + + device --Requests to + 192.168.1.0/24 --> router1 --> C((Cloudflare)) + +``` + +### Option 1: Default gateway + + + +### Option 2: Alternate gateway + + + +#### Add route to router + +For example, for devices on subnet `10.0.0.0/24` to reach applications behind subnet `192.168.1.0/24`, add a rule on the router that routes `192.168.1.0/24` to the WARP Connector host machine (`10.0.0.100`). + + + +### Option 3: Intermediate gateway + + + +#### Add route to devices + + + +Alternatively, you can configure only certain routes to egress through WARP Connector. For example, you may only want to filter traffic destined to internal applications and devices, but allow public Internet traffic to bypass Cloudflare. + + + +```sh +sudo ip route add via dev eth0 +``` + + + +```sh +sudo route -n add -net +``` + + + + + +```bash +route /p add mask 255.255.255.255 +``` + + + + +#### Verify routes + + + +## 5. Install another WARP Connector + +Repeat steps 1, 3, and 4 above to install an additional WARP Connector on subnet `192.168.1.0/24`. The device profile created in Step 2 will apply to all WARP Connectors. + +```mermaid + flowchart LR + subgraph subnet1[Subnet 10.0.0.0/24] + router1["WARP Connector #1 + 10.0.0.1"] + end + subgraph subnet2[Subnet 192.168.1.0/24] + router2["WARP Connector #2 + 192.168.1.97"] + end + router1<-->C((Cloudflare))<-->router2 +``` + +## 6. Test the WARP Connector + +You can now test the connection between the two subnets. For example, on the `10.0.0.2` device run `ping 192.168.1.100`. + +```mermaid + flowchart LR + subgraph subnet1[Subnet 10.0.0.0/24] + device1["Device + 10.0.0.2"]--"ping + 192.168.1.100"-->router1["WARP Connector #1 + 10.0.0.1"] + end + subgraph subnet2[Subnet 192.168.1.0/24] + router2["WARP Connector #2 + 192.168.1.97"]-->device2["Device + 192.168.1.100"] + end + router1-->C((Cloudflare))-->router2 +``` + +:::note + +If you are testing with curl using private hostnames, add the `--ipv4` flag to your curl commands. +::: + +[^1]: \ No newline at end of file diff --git a/src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/user-to-site.mdx b/src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/user-to-site.mdx new file mode 100644 index 000000000000000..270dcc6fc8a8f6d --- /dev/null +++ b/src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/user-to-site.mdx @@ -0,0 +1,114 @@ +--- +pcx_content_type: how-to +title: Connect private network to WARP clients +sidebar: + label: User-to-site + order: 3 +--- + +import { Render, Details, GlossaryTooltip, TabItem, Tabs } from "~/components"; + +This guide covers how to connect WARP client user devices to a private network behind WARP Connector. In this example, we will create a WARP Connector for subnet `10.0.0.0/24` and install it on `10.0.0.1`. + +```mermaid + flowchart LR + subgraph subnet1[Subnet 10.0.0.0/24] + router1["WARP Connector + 10.0.0.1"]--> device1["Device + 10.0.0.2"] + router1["WARP Connector + 10.0.0.1"] + end + W[WARP clients]-->C((Cloudflare))-->router1 +``` + +## Prerequisites + +- A Linux host [^1] on the subnet. +- Verify that your firewall allows inbound/outbound traffic over the [WARP IP addresses, ports, and domains](/cloudflare-one/connections/connect-devices/warp/deployment/firewall/). + +## 1. Install a WARP Connector + + + +## 2. (Recommended) Create a device profile + + + +## 3. Route CGNAT IPs through Cloudflare + +WARP clients and WARP Connectors are accessed using their CGNAT IP. Therefore, CGNAT IP traffic must route through Cloudflare on both the WARP Connector host and WARP client devices. + +1. In your WARP Connector device profile, go to [Split Tunnels](/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/split-tunnels/). +2. Ensure that `100.96.0.0/12` routes through the WARP tunnel. For example, if you are using **Exclude** mode, delete `100.64.0.0/10` from the list and re-add `100.64.0.0/11` and `100.112.0.0/12`. +3. Repeat the previous steps for all WARP client device profiles. + +## 4. Route traffic from subnet to WARP Connector + +Depending on where you installed the WARP Connector, you may need to configure other devices on the subnet to route requests through WARP Connector. + +### Option 1: Default gateway + + + +### Option 2: Alternate gateway + + + +#### Add route to router + +`100.96.0.0/12` is the default CIDR for all user devices running the [WARP client](/cloudflare-one/connections/connect-devices/warp/). On your router, add a rule that routes the destination IP `100.96.0.0/12` to the WARP Connector host machine (`10.0.0.100`). + + + +### Option 3: Intermediate gateway + + + +#### Add route to devices + +To route all CGNAT IP traffic through WARP Connector: + + + +```sh +sudo ip route add 100.96.0.0/12 via dev eth0 +``` + + + +```sh +sudo route -n add -net 100.96.0.0/12 +``` + + + + + +```bash +route /p add 100.96.0.0/12 mask 255.255.255.255 +``` + + + +#### Verify routes + + + +## 5. Test the WARP Connector + +You can now send a request from a WARP client user device to a device behind WARP connector. For example, on the WARP client device run `ping 10.0.0.2`. + +```mermaid + flowchart LR + subgraph subnet1[Subnet 10.0.0.0/24] + router1["WARP Connector + 10.0.0.1"]--> device1["Device + 10.0.0.2"] + router1["WARP Connector + 10.0.0.1"] + end + W[WARP client]--ping 10.0.0.2 -->C((Cloudflare))-->router1 +``` + +[^1]: \ No newline at end of file diff --git a/src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/vpc-deployments.mdx b/src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/vpc-deployments.mdx new file mode 100644 index 000000000000000..d6c07df28ff08c5 --- /dev/null +++ b/src/content/docs/cloudflare-one/connections/connect-networks/private-net/warp-connector/vpc-deployments.mdx @@ -0,0 +1,23 @@ +--- +pcx_content_type: reference +title: Tips for VPC deployments +sidebar: + label: VPC deployments + order: 3 +--- + +When setting up WARP Connector on a virtual private cloud (VPC), you may need to configure additional settings in the cloud service provider. + +## GCP + +For Google Cloud Project (GCP) deployments, [enable IP forwarding](https://cloud.google.com/vpc/docs/using-routes#canipforward) on the VM instance where you installed WARP Connector. + +## AWS + +For Amazon Web Services (AWS) deployments: +- Stop [source/destination checking](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) on the EC2 instance where you installed WARP Connector. +- In your [subnet route table](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-route-tables.html), route all IPv4 traffic to the EC2 instance where you installed WARP Connector. For example, + + | Destination | Target | + | ----------- | ------ | + | `0.0.0.0/0` | `eni-11223344556677889` | diff --git a/src/content/glossary/cloudflare-one.yaml b/src/content/glossary/cloudflare-one.yaml index 37adda115428ba2..4a95a3bcfcbfc83 100644 --- a/src/content/glossary/cloudflare-one.yaml +++ b/src/content/glossary/cloudflare-one.yaml @@ -23,7 +23,7 @@ entries: - term: CGNAT IP general_definition: |- - a unique, virtual IP address assigned to each WARP device from the `100.96.0.0/12` range. You can view the CGNAT IP for a device on its **My Team** > **Devices** page. + a unique, virtual IP address assigned to each WARP device from the `100.96.0.0/12` range. You can view the CGNAT IP for a device in **My Team** > **Devices** > **Virtual IPv4/IPv6**. - term: cloudflared general_definition: |- @@ -239,6 +239,10 @@ entries: general_definition: |- a software abstraction that allows you to logically segregate resources on a private network. Virtual networks are especially useful for exposing resources which have overlapping IP routes. + - term: Virtual Private Cloud (VPC) + general_definition: |- + a secure, isolated private network hosted on public cloud infrastructure. Examples of public cloud providers include Google Cloud, AWS, and Microsoft Azure. + - term: Virtual Private Network (VPN) general_definition: |- a tool that allows users to send and receive data across shared or public networks as if their devices were directly connected to the private network. For example, employees working from home can use a VPN to access files on the corporate network. diff --git a/src/content/partials/cloudflare-one/tunnel/warp-connector-alternate-gateway-flow.mdx b/src/content/partials/cloudflare-one/tunnel/warp-connector-alternate-gateway-flow.mdx new file mode 100644 index 000000000000000..e9d746288c52e16 --- /dev/null +++ b/src/content/partials/cloudflare-one/tunnel/warp-connector-alternate-gateway-flow.mdx @@ -0,0 +1,10 @@ +--- +{} +--- + +When a device on the subnet sends a request, the router will first redirect the traffic to the WARP Connector host. WARP Connector encrypts the traffic, changes its destination IP to the [WARP ingress IP](/cloudflare-one/connections/connect-devices/warp/deployment/firewall/#warp-ingress-ip), and sends it back to the router. The router will now forward this encrypted traffic to Cloudflare. + +:::note + +Ensure that your routing rules do not forward the [WARP ingress IP](/cloudflare-one/connections/connect-devices/warp/deployment/firewall/#warp-ingress-ip) back to the WARP Connector. +::: \ No newline at end of file diff --git a/src/content/partials/cloudflare-one/tunnel/warp-connector-alternate-gateway.mdx b/src/content/partials/cloudflare-one/tunnel/warp-connector-alternate-gateway.mdx new file mode 100644 index 000000000000000..b85b3b959c9fb28 --- /dev/null +++ b/src/content/partials/cloudflare-one/tunnel/warp-connector-alternate-gateway.mdx @@ -0,0 +1,7 @@ +--- +{} +--- + +If you have access to the router but installed WARP Connector on another machine, you can configure the router to forward traffic to the WARP Connector. This typically involves adding a static route for the destination IPs that you want to connect to through Cloudflare. Refer to your router documentation for specific instructions on how to add an IP route. + +![Alternate gateway routing configuration](~/assets/images/cloudflare-one/connections/connect-apps/warp-connector/alternate-gateway.png) \ No newline at end of file diff --git a/src/content/partials/cloudflare-one/tunnel/warp-connector-default-gateway.mdx b/src/content/partials/cloudflare-one/tunnel/warp-connector-default-gateway.mdx new file mode 100644 index 000000000000000..d86900345cd4301 --- /dev/null +++ b/src/content/partials/cloudflare-one/tunnel/warp-connector-default-gateway.mdx @@ -0,0 +1,7 @@ +--- +{} +--- + +If you installed WARP Connector on your router, no additional configuration is necessary. All traffic will use the router as the default gateway. + +![Default gateway routing configuration](~/assets/images/cloudflare-one/connections/connect-apps/warp-connector/default-gateway.png) \ No newline at end of file diff --git a/src/content/partials/cloudflare-one/tunnel/warp-connector-device-profile.mdx b/src/content/partials/cloudflare-one/tunnel/warp-connector-device-profile.mdx new file mode 100644 index 000000000000000..2e18443ba38bdb3 --- /dev/null +++ b/src/content/partials/cloudflare-one/tunnel/warp-connector-device-profile.mdx @@ -0,0 +1,17 @@ +--- +{} +--- + +A dedicated [device profile](/cloudflare-one/connections/connect-devices/warp/configure-warp/device-profiles/) allows you to manage the WARP Connector host machine separately from WARP client user devices. WARP Connector hosts are registered to your Zero Trust organization with the email address `warp_connector@.cloudflareaccess.com`. To set up a device profile for WARP Connector: + +1. [Create a new profile](/cloudflare-one/connections/connect-devices/warp/configure-warp/device-profiles/#create-a-new-profile) that matches on the following expression: + + | Selector | Operator | Value | + | -------- | -------- | ----- | + | User email | is | `warp_connector@.cloudflareaccess.com` | + +2. In the profile settings, ensure that **Service mode** is set to **Gateway with WARP**. + +:::note +`warp_connector@.cloudflareaccess.com` will only match WARP Connectors deployed with WARP client version `2024.9.346.0` and above. WARP Connectors deployed using the legacy workflow will use the generic email for service token registrations (`non-identity@.cloudflareaccess.com`). +::: \ No newline at end of file diff --git a/src/content/partials/cloudflare-one/tunnel/warp-connector-install.mdx b/src/content/partials/cloudflare-one/tunnel/warp-connector-install.mdx new file mode 100644 index 000000000000000..0081befa3c4ba78 --- /dev/null +++ b/src/content/partials/cloudflare-one/tunnel/warp-connector-install.mdx @@ -0,0 +1,61 @@ +--- +{} +--- + +import { Details, GlossaryTooltip } from "~/components"; + +To install WARP Connector on a host machine: + +1. In [Zero Trust](https://one.dash.cloudflare.com), go to **Networks** > **Tunnels**. +2. Select **Create a tunnel**. +3. For the tunnel type, select **WARP Connector**. +4. You will be prompted to turn on **Warp to Warp** and [**Override local interface IP**](/cloudflare-one/connections/connect-devices/warp/configure-warp/warp-settings/#override-local-interface-ip) if they are currently turned off. These settings allow Cloudflare to assign a unique CGNAT IP to each WARP device and route traffic between them. +5. Give the tunnel any name (for example, `Subnet-10.0.0.0/24`) and select **Create tunnel**. +6. Select the operating system of your host machine. +7. On your host machine, open a terminal window and run the commands shown in the Zero Trust dashboard. Those commands will install the WARP Connector, enable IP forwarding on the host, and connect WARP Connector to your Zero Trust organization. + + :::note[Remote SSH connections] + + If you are managing the deployment remotely over SSH, your connection may drop when you install the WARP Connector. Because the WARP connector immediately starts forwarding traffic to Cloudflare, the remote SSH server's traffic will now route via Cloudflare instead of via the server's public IP. To work around the issue: + - **Option 1**: In your WARP Connector [device profile](#3-recommended-create-a-device-profile), temporarily add the public IP of your local machine to the [Split Tunnel Exclude list](/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/split-tunnels/). + + - **Option 2**: If your local machine is connected to Zero Trust (for example, via the WARP client), you can SSH to the CGNAT IP of the WARP Connector. Traffic to the CGNAT IP must [route through the WARP tunnel](#4-configure-split-tunnels). + ::: + +8. (Optional) Configure IP forwarding: + +
+ ```sh + echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-warp-svc.conf + sudo sysctl -p /etc/sysctl.d/99-warp-svc.conf + ``` +
+ +
+ If you are setting up WARP Connector on a host with iptables enabled, make sure that your iptables FORWARD chain includes rules to accept the desired traffic. For testing and troubleshooting purposes, you can set the default policy for the WARP interface to ACCEPT: + ```sh + iptables -A FORWARD -i CloudflareWARP -J ACCEPT + iptables -A FORWARD -o CloudflareWARP -J ACCEPT + ``` +
+ + +9. To verify that the WARP Connector is connected to Cloudflare: + ```sh + $ warp-cli status + Status update: Connected + ``` + +
+ + If WARP is disconnected, try the following troubleshooting strategies: + + - Run `warp-cli connect`. + + - If your private network uses a firewall to restrict Internet traffic, ensure that it allows the [WARP ports and IPs](/cloudflare-one/connections/connect-devices/warp/deployment/firewall/). + + - Review your [WARP daemon logs](/cloudflare-one/connections/connect-devices/warp/troubleshooting/warp-logs/) for information about why the connection is failing. + +
+ +WARP Connector software is now installed but not yet routing traffic. \ No newline at end of file diff --git a/src/content/partials/cloudflare-one/tunnel/warp-connector-intermediate-gateway.mdx b/src/content/partials/cloudflare-one/tunnel/warp-connector-intermediate-gateway.mdx new file mode 100644 index 000000000000000..7c82d640cdff706 --- /dev/null +++ b/src/content/partials/cloudflare-one/tunnel/warp-connector-intermediate-gateway.mdx @@ -0,0 +1,7 @@ +--- +{} +--- + +If you do not have access to the router, you will need to configure each device on the subnet to egress through the WARP Connector machine instead of the default gateway. + +![Intermediate gateway routing configuration](~/assets/images/cloudflare-one/connections/connect-apps/warp-connector/intermediate-gateway.png) \ No newline at end of file diff --git a/src/content/partials/cloudflare-one/tunnel/warp-connector-linux-packages.mdx b/src/content/partials/cloudflare-one/tunnel/warp-connector-linux-packages.mdx new file mode 100644 index 000000000000000..892d1feb0af43bd --- /dev/null +++ b/src/content/partials/cloudflare-one/tunnel/warp-connector-linux-packages.mdx @@ -0,0 +1,5 @@ +--- +{} +--- + +Check the [system requirements](/cloudflare-one/connections/connect-devices/warp/download-warp/#linux). Package dependencies are the following: `curl`, `gpg`, `iptables`, `iptables-persistent`, `lsb-core`, and `sudo`. diff --git a/src/content/partials/cloudflare-one/tunnel/warp-connector-route-all-traffic.mdx b/src/content/partials/cloudflare-one/tunnel/warp-connector-route-all-traffic.mdx new file mode 100644 index 000000000000000..8d4e96fb65133ee --- /dev/null +++ b/src/content/partials/cloudflare-one/tunnel/warp-connector-route-all-traffic.mdx @@ -0,0 +1,33 @@ +--- +{} +--- + +import { TabItem, Tabs } from "~/components"; + +You can configure all traffic on a device to egress through WARP Connector with its local source IP. All traffic will be filtered by your Gateway network policies. + + + +```sh +sudo ip route add default via dev eth0 metric 101 +``` + +Ensure that the `metric` value is lower than other default gateways. + + + +```sh +sudo route -n change default -interface en0 +``` + + + + + +```bash +route /p add 0.0.0.0 mask 0.0.0.0 metric 101 +``` + +Ensure that the `metric` value is lower than other default gateways. + + diff --git a/src/content/partials/cloudflare-one/tunnel/warp-connector-verify-routes.mdx b/src/content/partials/cloudflare-one/tunnel/warp-connector-verify-routes.mdx new file mode 100644 index 000000000000000..c4370efabf6cea0 --- /dev/null +++ b/src/content/partials/cloudflare-one/tunnel/warp-connector-verify-routes.mdx @@ -0,0 +1,5 @@ +--- +{} +--- + +To validate subnet routing, [check your routing table](/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/warp-architecture/#routing-table) and ensure that traffic is routing through the `CloudflareWARP` [virtual interface](/cloudflare-one/connections/connect-devices/warp/configure-warp/route-traffic/warp-architecture/#virtual-interface). From 074f48f233d2433f420ef6c2757b01b9359bef42 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 19:59:45 +0100 Subject: [PATCH 040/110] [Docs Site] Bump algoliasearch from 4.24.0 to 5.8.1 (#17538) --- package-lock.json | 321 +++++++++++++++++++++++++++++++++-------- package.json | 6 +- src/pages/search.astro | 2 +- 3 files changed, 266 insertions(+), 63 deletions(-) diff --git a/package-lock.json b/package-lock.json index 876bee16c6539a0..cf1320569cc43e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,7 @@ "@types/node": "^20.16.1", "@types/react": "^18.3.11", "@types/react-dom": "^18.3.0", - "algoliasearch": "^4.24.0", + "algoliasearch": "^5.8.1", "astro": "^4.16.4", "astro-breadcrumbs": "^3.2.0", "astro-icon": "^1.1.1", @@ -40,8 +40,8 @@ "github-slugger": "^2.0.0", "hastscript": "^9.0.0", "he": "^1.2.0", - "instantsearch.css": "^8.5.0", - "instantsearch.js": "^4.74.0", + "instantsearch.css": "^8.5.1", + "instantsearch.js": "^4.75.1", "lz-string": "^1.5.0", "marked": "^14.1.3", "mermaid": "^11.3.0", @@ -146,6 +146,30 @@ "@algolia/cache-common": "4.24.0" } }, + "node_modules/@algolia/client-abtesting": { + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.8.1.tgz", + "integrity": "sha512-a2umbOcAPHS8mWRMssNqqkSCJdX7ssGZmj7rjhqCrUXoOwTihU9aUyiHihy8JHV1upJXch3T70ni7/bWrMpR6g==", + "dev": true, + "dependencies": { + "@algolia/client-common": "5.8.1", + "@algolia/requester-browser-xhr": "5.8.1", + "@algolia/requester-fetch": "5.8.1", + "@algolia/requester-node-http": "5.8.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-abtesting/node_modules/@algolia/client-common": { + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.8.1.tgz", + "integrity": "sha512-MLX/gipPFEhJPCExsxXf9tnt+kLfWCe9JWRp1adcoVySkhzPxpIeSiWaQaOqyy0TYIgIpdeVx/emlBT9Ni8GFw==", + "dev": true, + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/@algolia/client-account": { "version": "4.24.0", "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.24.0.tgz", @@ -158,15 +182,27 @@ } }, "node_modules/@algolia/client-analytics": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.24.0.tgz", - "integrity": "sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.8.1.tgz", + "integrity": "sha512-vE+cU1agk79nmBghxe9C7Hr/euj9cIDbk9SiBsnhWA2rsS4yOSSnxdY+GJGOoiJjvS2yQm7cjyxMd5M6q2aAKQ==", "dev": true, "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" + "@algolia/client-common": "5.8.1", + "@algolia/requester-browser-xhr": "5.8.1", + "@algolia/requester-fetch": "5.8.1", + "@algolia/requester-node-http": "5.8.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-analytics/node_modules/@algolia/client-common": { + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.8.1.tgz", + "integrity": "sha512-MLX/gipPFEhJPCExsxXf9tnt+kLfWCe9JWRp1adcoVySkhzPxpIeSiWaQaOqyy0TYIgIpdeVx/emlBT9Ni8GFw==", + "dev": true, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/@algolia/client-common": { @@ -180,14 +216,27 @@ } }, "node_modules/@algolia/client-personalization": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.24.0.tgz", - "integrity": "sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.8.1.tgz", + "integrity": "sha512-QXlX5zKa420vMABJ6V119ig5kqrzF+8jfaXSmzmXoXZXAiOnbOrGyuEHNYsVbOlkupSs6+sz4ECkKdCoVGew+A==", "dev": true, "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" + "@algolia/client-common": "5.8.1", + "@algolia/requester-browser-xhr": "5.8.1", + "@algolia/requester-fetch": "5.8.1", + "@algolia/requester-node-http": "5.8.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-personalization/node_modules/@algolia/client-common": { + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.8.1.tgz", + "integrity": "sha512-MLX/gipPFEhJPCExsxXf9tnt+kLfWCe9JWRp1adcoVySkhzPxpIeSiWaQaOqyy0TYIgIpdeVx/emlBT9Ni8GFw==", + "dev": true, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/@algolia/client-search": { @@ -224,31 +273,48 @@ } }, "node_modules/@algolia/recommend": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.24.0.tgz", - "integrity": "sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.8.1.tgz", + "integrity": "sha512-g+x39Uc673ysZ0OjAW7wDtn6qii2XttctSpSuz0GFNKhUUVE/GgjZPbbBG/DgTkWnYmDBYEscsoGZ43yjvcykQ==", "dev": true, "dependencies": { - "@algolia/cache-browser-local-storage": "4.24.0", - "@algolia/cache-common": "4.24.0", - "@algolia/cache-in-memory": "4.24.0", - "@algolia/client-common": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/logger-common": "4.24.0", - "@algolia/logger-console": "4.24.0", - "@algolia/requester-browser-xhr": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/requester-node-http": "4.24.0", - "@algolia/transporter": "4.24.0" + "@algolia/client-common": "5.8.1", + "@algolia/requester-browser-xhr": "5.8.1", + "@algolia/requester-fetch": "5.8.1", + "@algolia/requester-node-http": "5.8.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/recommend/node_modules/@algolia/client-common": { + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.8.1.tgz", + "integrity": "sha512-MLX/gipPFEhJPCExsxXf9tnt+kLfWCe9JWRp1adcoVySkhzPxpIeSiWaQaOqyy0TYIgIpdeVx/emlBT9Ni8GFw==", + "dev": true, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz", - "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.8.1.tgz", + "integrity": "sha512-x0iULVrx5PocaYBqH+G6jyEsEHf7m5FDiZW7CP8AaJdzdCzoUyx7YH6e6TSCNlkFEjwmn8uj05coN8uljCHXTg==", "dev": true, "dependencies": { - "@algolia/requester-common": "4.24.0" + "@algolia/client-common": "5.8.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-browser-xhr/node_modules/@algolia/client-common": { + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.8.1.tgz", + "integrity": "sha512-MLX/gipPFEhJPCExsxXf9tnt+kLfWCe9JWRp1adcoVySkhzPxpIeSiWaQaOqyy0TYIgIpdeVx/emlBT9Ni8GFw==", + "dev": true, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-common": { @@ -257,13 +323,46 @@ "integrity": "sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==", "dev": true }, + "node_modules/@algolia/requester-fetch": { + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.8.1.tgz", + "integrity": "sha512-SRWGrNsKSLNYIDNlVKVkf4wxsm6h57xI+0b8JPm0wUe0ly0jymAgQU2yW2GDzNuXyiPiS7U1oWwaVGs71IT5Pw==", + "dev": true, + "dependencies": { + "@algolia/client-common": "5.8.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-fetch/node_modules/@algolia/client-common": { + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.8.1.tgz", + "integrity": "sha512-MLX/gipPFEhJPCExsxXf9tnt+kLfWCe9JWRp1adcoVySkhzPxpIeSiWaQaOqyy0TYIgIpdeVx/emlBT9Ni8GFw==", + "dev": true, + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/@algolia/requester-node-http": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz", - "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.8.1.tgz", + "integrity": "sha512-pYylr2gBsV68E88bltaVoJHIc3YNIllVmA12d+jefAcutR9ytQM7iP6dXbCYuRqF4CHF32YvZuwvqNI3J4kowA==", "dev": true, "dependencies": { - "@algolia/requester-common": "4.24.0" + "@algolia/client-common": "5.8.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-node-http/node_modules/@algolia/client-common": { + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.8.1.tgz", + "integrity": "sha512-MLX/gipPFEhJPCExsxXf9tnt+kLfWCe9JWRp1adcoVySkhzPxpIeSiWaQaOqyy0TYIgIpdeVx/emlBT9Ni8GFw==", + "dev": true, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/@algolia/transporter": { @@ -2108,6 +2207,89 @@ } } }, + "node_modules/@docsearch/react/node_modules/@algolia/client-analytics": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.24.0.tgz", + "integrity": "sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==", + "dev": true, + "dependencies": { + "@algolia/client-common": "4.24.0", + "@algolia/client-search": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@docsearch/react/node_modules/@algolia/client-personalization": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.24.0.tgz", + "integrity": "sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==", + "dev": true, + "dependencies": { + "@algolia/client-common": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@docsearch/react/node_modules/@algolia/recommend": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.24.0.tgz", + "integrity": "sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==", + "dev": true, + "dependencies": { + "@algolia/cache-browser-local-storage": "4.24.0", + "@algolia/cache-common": "4.24.0", + "@algolia/cache-in-memory": "4.24.0", + "@algolia/client-common": "4.24.0", + "@algolia/client-search": "4.24.0", + "@algolia/logger-common": "4.24.0", + "@algolia/logger-console": "4.24.0", + "@algolia/requester-browser-xhr": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/requester-node-http": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@docsearch/react/node_modules/@algolia/requester-browser-xhr": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz", + "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==", + "dev": true, + "dependencies": { + "@algolia/requester-common": "4.24.0" + } + }, + "node_modules/@docsearch/react/node_modules/@algolia/requester-node-http": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz", + "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==", + "dev": true, + "dependencies": { + "@algolia/requester-common": "4.24.0" + } + }, + "node_modules/@docsearch/react/node_modules/algoliasearch": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.24.0.tgz", + "integrity": "sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==", + "dev": true, + "dependencies": { + "@algolia/cache-browser-local-storage": "4.24.0", + "@algolia/cache-common": "4.24.0", + "@algolia/cache-in-memory": "4.24.0", + "@algolia/client-account": "4.24.0", + "@algolia/client-analytics": "4.24.0", + "@algolia/client-common": "4.24.0", + "@algolia/client-personalization": "4.24.0", + "@algolia/client-search": "4.24.0", + "@algolia/logger-common": "4.24.0", + "@algolia/logger-console": "4.24.0", + "@algolia/recommend": "4.24.0", + "@algolia/requester-browser-xhr": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/requester-node-http": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, "node_modules/@emmetio/abbreviation": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.3.3.tgz", @@ -4549,26 +4731,23 @@ } }, "node_modules/algoliasearch": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.24.0.tgz", - "integrity": "sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.8.1.tgz", + "integrity": "sha512-9qYA9fVEhf3d3sGA71hIr0tBJp8+byqirjzvvVvwokc3uTN7J+rnsNcbgxFXlJQrBpfssDG08olVBqCbtZl4Mw==", "dev": true, "dependencies": { - "@algolia/cache-browser-local-storage": "4.24.0", - "@algolia/cache-common": "4.24.0", - "@algolia/cache-in-memory": "4.24.0", - "@algolia/client-account": "4.24.0", - "@algolia/client-analytics": "4.24.0", - "@algolia/client-common": "4.24.0", - "@algolia/client-personalization": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/logger-common": "4.24.0", - "@algolia/logger-console": "4.24.0", - "@algolia/recommend": "4.24.0", - "@algolia/requester-browser-xhr": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/requester-node-http": "4.24.0", - "@algolia/transporter": "4.24.0" + "@algolia/client-abtesting": "5.8.1", + "@algolia/client-analytics": "5.8.1", + "@algolia/client-common": "5.8.1", + "@algolia/client-personalization": "5.8.1", + "@algolia/client-search": "5.8.1", + "@algolia/recommend": "5.8.1", + "@algolia/requester-browser-xhr": "5.8.1", + "@algolia/requester-fetch": "5.8.1", + "@algolia/requester-node-http": "5.8.1" + }, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/algoliasearch-helper": { @@ -4584,6 +4763,30 @@ "algoliasearch": ">= 3.1 < 6" } }, + "node_modules/algoliasearch/node_modules/@algolia/client-common": { + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.8.1.tgz", + "integrity": "sha512-MLX/gipPFEhJPCExsxXf9tnt+kLfWCe9JWRp1adcoVySkhzPxpIeSiWaQaOqyy0TYIgIpdeVx/emlBT9Ni8GFw==", + "dev": true, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/algoliasearch/node_modules/@algolia/client-search": { + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.8.1.tgz", + "integrity": "sha512-zy3P4fI28GfzKihUw5+L76pEedQxyLDiMsdDYEWghIz8yAnELDatPNEThyWuUk8fD0PeVoCi1M4tr1iz00fOtQ==", + "dev": true, + "dependencies": { + "@algolia/client-common": "5.8.1", + "@algolia/requester-browser-xhr": "5.8.1", + "@algolia/requester-fetch": "5.8.1", + "@algolia/requester-node-http": "5.8.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", @@ -9084,9 +9287,9 @@ "license": "MIT" }, "node_modules/instantsearch.js": { - "version": "4.74.2", - "resolved": "https://registry.npmjs.org/instantsearch.js/-/instantsearch.js-4.74.2.tgz", - "integrity": "sha512-wBRUCfVTeVkv2Ec/v2NGScZUT4LHCxu15U8DaNf9YW9ASfi9vCZACrcAc4sA5HOFsloE5RXr6I9ZrKTrMmGQQQ==", + "version": "4.75.1", + "resolved": "https://registry.npmjs.org/instantsearch.js/-/instantsearch.js-4.75.1.tgz", + "integrity": "sha512-jqefF4z2bAjjcpNwKGgfGnH4ejs5P7MpdzOLyzzzAwtPIUPuBllVqAI2Kgfvx86yzaRzTPtt6KIPm3TLTdcSRg==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 91ba96670f9d766..2d4983b8a4ab2c0 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "@types/node": "^20.16.1", "@types/react": "^18.3.11", "@types/react-dom": "^18.3.0", - "algoliasearch": "^4.24.0", + "algoliasearch": "^5.8.1", "astro": "^4.16.4", "astro-breadcrumbs": "^3.2.0", "astro-icon": "^1.1.1", @@ -52,8 +52,8 @@ "github-slugger": "^2.0.0", "hastscript": "^9.0.0", "he": "^1.2.0", - "instantsearch.css": "^8.5.0", - "instantsearch.js": "^4.74.0", + "instantsearch.css": "^8.5.1", + "instantsearch.js": "^4.75.1", "lz-string": "^1.5.0", "marked": "^14.1.3", "mermaid": "^11.3.0", diff --git a/src/pages/search.astro b/src/pages/search.astro index 41dce52f6788c33..802b2480c0e013b 100644 --- a/src/pages/search.astro +++ b/src/pages/search.astro @@ -30,7 +30,7 @@ import "instantsearch.css/themes/satellite.css"; panel, } from "instantsearch.js/es/widgets"; - import algoliasearch from "algoliasearch"; + import { liteClient as algoliasearch } from "algoliasearch/lite"; // Functions needed for dropdowns, pulled from https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/facet-dropdown/js/ From 5504b018902336d885d52477eaaafb564516210f Mon Sep 17 00:00:00 2001 From: DRayCloudflare <139528909+DRayCloudflare@users.noreply.github.com> Date: Thu, 17 Oct 2024 06:46:41 +1100 Subject: [PATCH 041/110] Update user-agents.mdx (#17561) --- src/content/partials/speed/user-agents.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/content/partials/speed/user-agents.mdx b/src/content/partials/speed/user-agents.mdx index 4b9decb20c1a9c1..164369b545ab0f4 100644 --- a/src/content/partials/speed/user-agents.mdx +++ b/src/content/partials/speed/user-agents.mdx @@ -6,14 +6,14 @@ :::note -Cloudflare Observatory tests are generated with the following user agents: +For **IPv6** Cloudflare Observatory tests originate from **ASN 15169** and are generated with the following user agents: * Mozilla/5.0 (Linux; Android 11; Moto G Power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Mobile Safari/537.36 * Mozilla/5.0 (Macintosh; Intel Mac OS X 10\_15\_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 -Cloudflare Observatory tests originate from: -* IPv6: ASN 15169. -* IPv4: ASN 396982. +For **IPv4** Cloudflare Observatory tests originate from **ASN 396982** and are generated with the following user agents: +* Mozilla/5.0 (Linux; Android 11; moto g power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Mobile Safari/537.36 CloudflareObservatory/1.0 +* Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 CloudflareObservatory/1.0 ::: From d1182f543ea2812cdab9c2bc7cb4ef6698ae3b73 Mon Sep 17 00:00:00 2001 From: Max Phillips Date: Wed, 16 Oct 2024 15:21:48 -0500 Subject: [PATCH 042/110] [Gateway/DLP] HTTP policy supported files (#17579) --- .../dlp-policies/common-policies.mdx | 5 +- .../gateway/http-policies/common-policies.mdx | 7 +-- .../policies/gateway/http-policies/index.mdx | 51 +++++++++++++++++-- .../gateway/policies/block-file-types.mdx | 9 ++-- 4 files changed, 59 insertions(+), 13 deletions(-) diff --git a/src/content/docs/cloudflare-one/policies/data-loss-prevention/dlp-policies/common-policies.mdx b/src/content/docs/cloudflare-one/policies/data-loss-prevention/dlp-policies/common-policies.mdx index a756d747b691e2d..4c676ded9900e2f 100644 --- a/src/content/docs/cloudflare-one/policies/data-loss-prevention/dlp-policies/common-policies.mdx +++ b/src/content/docs/cloudflare-one/policies/data-loss-prevention/dlp-policies/common-policies.mdx @@ -6,10 +6,9 @@ sidebar: head: - tag: title content: Common DLP policies - --- -import { GlossaryTooltip, Render } from "~/components" +import { GlossaryTooltip, Render } from "~/components"; The following in-line DLP policies are commonly used to secure data in uploaded and downloaded files. @@ -24,6 +23,8 @@ The **Allow** action functions as an implicit logger, providing visibility into +For more information on what file formats DLP can scan, refer to [Supported file types](/cloudflare-one/policies/data-loss-prevention/#supported-file-types). + ## Block uploads/downloads for specific users You can configure access on a per-user or group basis by adding [identity-based conditions](/cloudflare-one/policies/gateway/identity-selectors/) to your policies. The following example blocks only contractors from uploading/downloading Financial Information to file sharing apps. diff --git a/src/content/docs/cloudflare-one/policies/gateway/http-policies/common-policies.mdx b/src/content/docs/cloudflare-one/policies/gateway/http-policies/common-policies.mdx index 520848fa0ddabdc..3cdc7512e815e1b 100644 --- a/src/content/docs/cloudflare-one/policies/gateway/http-policies/common-policies.mdx +++ b/src/content/docs/cloudflare-one/policies/gateway/http-policies/common-policies.mdx @@ -6,10 +6,9 @@ sidebar: head: - tag: title content: Common HTTP policies - --- -import { Render } from "~/components" +import { Render } from "~/components"; The following policies are commonly used to secure HTTP traffic. @@ -53,7 +52,7 @@ Gateway [evaluates Do Not Inspect policies first](/cloudflare-one/policies/gatew :::note -You can select either individual applications or the entire Do Not Inspect set, which will update as new applications are added. +You can select either individual applications or the entire Do Not Inspect set, which will update as new applications are added. ::: ## Check device posture @@ -97,6 +96,8 @@ When accessing origin servers with certificates not signed by a public certifica +For more information on supported file types, refer to [Download and Upload File Types](/cloudflare-one/policies/gateway/http-policies/#download-and-upload-file-types). + ## Block Google services To enable Gateway inspection for Google Drive traffic, you must [add the Cloudflare certificate to Google Drive](/cloudflare-one/connections/connect-devices/warp/user-side-certificates/install-cloudflare-cert/#google-drive-for-desktop). diff --git a/src/content/docs/cloudflare-one/policies/gateway/http-policies/index.mdx b/src/content/docs/cloudflare-one/policies/gateway/http-policies/index.mdx index 7bf30f530b5fadf..cd6bc2ac89f394c 100644 --- a/src/content/docs/cloudflare-one/policies/gateway/http-policies/index.mdx +++ b/src/content/docs/cloudflare-one/policies/gateway/http-policies/index.mdx @@ -460,12 +460,57 @@ Use this selector to match against a domain and all subdomains -- for example, i ### Download and Upload File Types :::caution[Deprecated selectors] - The **Download File Types** and **Upload File Types** selectors supersede the **Download File Type** and **Upload File Type** selectors. Gateway will still evaluate policies with the previous selectors. However, Cloudflare recommends migrating any policies with deprecated selectors to the new corresponding selectors. - ::: -These selectors will scan file signatures in the HTTP body. You can select from file categories or specific file types, including executables, archives and compressed files, Microsoft 365/Office documents, and Adobe files. +These selectors will scan file signatures in the HTTP body. You can select from file categories or specific file types, such as executables, archives and compressed files, Microsoft 365/Office documents, and Adobe files: + +
+ +**Compressed** + +- 7-Zip archive (`.7z`) +- `bzip2` archive (`.bz2`) +- GNU Gzip archive (`.gz`) +- Microsoft Cabinet file (`.cab`) +- Microsoft Compiled HTML Help file (`.chm`) +- RAR archive (`.rar`) +- `xz` archive (`.xz`) +- ZIP archive (`.zip`) + +**Documents** + +- Microsoft Office/365 files + - Word document (`.doc`, `.docx`, `.docm`) + - Excel spreadsheet (`.xls`, `.xlsx`, `.xlsm`) + - PowerPoint presentation (`.ppt`, `.pptx`, `.pptm`) +- PDF document (`.pdf`) + +**Executable** + +- Dynamic-link library (DLL) file (`.dll`) +- Executable and Linkable Format (ELF) file (`.elf`) +- Java archive (JAR) package (`.jar`) +- Java class file (`.class`) +- Mach object (Mach-O) file (`.macho`) +- Microsoft Windows installer (`.msi`) +- Microsoft Windows executable (`.exe`) + +**Image** + +- Adobe Photoshop document (`.psd`) +- Bitmap image (`.bmp`) +- GIF image (`.gif`) +- Icon file (`.ico`) +- JPEG image (`.jpg`, `.jpeg`) +- PNG image (`.png`) +- WebP image (`.webp`) + +**Other** + +- BitTorrent file (`.torrent`) + +
| UI name | API example | | ------------------- | --------------------------------------------------- | diff --git a/src/content/partials/cloudflare-one/gateway/policies/block-file-types.mdx b/src/content/partials/cloudflare-one/gateway/policies/block-file-types.mdx index 887bcc1d73c6720..fda7276c0940617 100644 --- a/src/content/partials/cloudflare-one/gateway/policies/block-file-types.mdx +++ b/src/content/partials/cloudflare-one/gateway/policies/block-file-types.mdx @@ -1,13 +1,12 @@ --- {} - --- ## Block file types Block the upload or download of files based on their type. -| Selector | Operator | Value | Logic | Action | -| ------------------ | -------- | ------------------------------------- | ----- | ------ | -| Upload File Type | in | Microsoft Office Word Document (docx) | And | Block | -| Download File Type | in | PDF (pdf) | | | +| Selector | Operator | Value | Logic | Action | +| ------------------ | -------- | --------------------------------------- | ----- | ------ | +| Upload File Type | in | _Microsoft Office Word Document (docx)_ | And | Block | +| Download File Type | in | _PDF (pdf)_ | | | From 0cc038b3bcfa9377e02296fe62c12242d030ceed Mon Sep 17 00:00:00 2001 From: marciocloudflare <83226960+marciocloudflare@users.noreply.github.com> Date: Thu, 17 Oct 2024 09:46:05 +0100 Subject: [PATCH 043/110] added dash status (#17588) --- .../express-cni/create-interconnects.mdx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/content/docs/network-interconnect/express-cni/create-interconnects.mdx b/src/content/docs/network-interconnect/express-cni/create-interconnects.mdx index 3911d50e8d517a6..01a0b45c989fce0 100644 --- a/src/content/docs/network-interconnect/express-cni/create-interconnects.mdx +++ b/src/content/docs/network-interconnect/express-cni/create-interconnects.mdx @@ -17,3 +17,13 @@ pcx_content_type: how-to 6. Review the options you have chosen, and select **Confirm order**. 7. Download the Letter of Authorization that Cloudflare created with your settings. You will need this document to contact your data center and provide them the IP addresses for the CNI connection. 8. Select **View Interconnects** to review the CNIs you have ordered. + +## Review interconnects + +The Cloudflare dashboard shows a list of all previously created interconnects, as well as useful information such as IP addresses, speed, type of interconnect, and status. + +Direct CNI connections are LACP (Link Aggregation Control Protocol) enabled and use LACP packets to negotiate with other ports. The [Status column](https://dash.cloudflare.com/?to=/:account/interconnects/all) in the dashboard shows three different status: + +- **Pending**: Pending shows up in new interconnects that are not yet active. This is expected and can occur for several reasons: the customer has not received their interconnect, the device is unresponsive, or physical adjustments may be required, such as swapping RX/TX fibers. The `Pending` status will go away after the customer completes the cross-connect. +- **Active**: The interconnect port on the Customer Connectivity Router (CCR) has established a LACP session with the connected port on the customer device. +- **Unhealthy**: The interconnect port on the CCR has lost a previously established LACP session with the connected port on the customer device. You can take general troubleshooting steps to solve the issue (such as checking cables and status lights for connectivity issues). If you are unable to solve the issue in this way, contact your account team. \ No newline at end of file From 692e9494737f23cb0e8e60e8bb798c30163bcff3 Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Thu, 17 Oct 2024 11:44:48 +0200 Subject: [PATCH 044/110] [Workers] Fix code formatting (#17505) --------- Co-authored-by: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> --- .../workers/examples/openai-sdk-streaming.mdx | 61 ++++++++++--------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/src/content/docs/workers/examples/openai-sdk-streaming.mdx b/src/content/docs/workers/examples/openai-sdk-streaming.mdx index 092255024743c2b..c9c416a30fe5fc7 100644 --- a/src/content/docs/workers/examples/openai-sdk-streaming.mdx +++ b/src/content/docs/workers/examples/openai-sdk-streaming.mdx @@ -12,49 +12,50 @@ sidebar: order: 1001 head: [] description: Use the OpenAI v4 SDK to stream responses from OpenAI. - --- In order to run this code, you must install the OpenAI SDK by running `npm i openai`. :::note - For analytics, caching, rate limiting, and more, you can also send requests like this through Cloudflare's [AI Gateway](/ai-gateway/providers/openai/). - ::: ```ts import OpenAI from "openai"; export default { - async fetch(request, env, ctx): Promise { - const openai = new OpenAI({ - apiKey: env.OPENAI_API_KEY - }); - -// Create a TransformStream to handle streaming data - let { readable, writable } = new TransformStream(); - let writer = writable.getWriter(); - const textEncoder = new TextEncoder(); - - ctx.waitUntil((async () => { - const stream = await openai.chat.completions.create({ - model: 'gpt-4o-mini', - messages: [{ role: 'user', content: 'Tell me a story' }], - stream: true, - }); - - // loop over the data as it is streamed and write to the writeable - for await (const part of stream) { - writer.write(textEncoder.encode(part.choices[0]?.delta?.content || '')); - } - writer.close(); - })()); - - // Send the readable back to the browser - return new Response(readable); - }, + async fetch(request, env, ctx): Promise { + const openai = new OpenAI({ + apiKey: env.OPENAI_API_KEY, + }); + + // Create a TransformStream to handle streaming data + let { readable, writable } = new TransformStream(); + let writer = writable.getWriter(); + const textEncoder = new TextEncoder(); + + ctx.waitUntil( + (async () => { + const stream = await openai.chat.completions.create({ + model: "gpt-4o-mini", + messages: [{ role: "user", content: "Tell me a story" }], + stream: true, + }); + + // loop over the data as it is streamed and write to the writeable + for await (const part of stream) { + writer.write( + textEncoder.encode(part.choices[0]?.delta?.content || ""), + ); + } + writer.close(); + })(), + ); + + // Send the readable back to the browser + return new Response(readable); + }, } satisfies ExportedHandler; ``` From 5c413eb5ef3c9c1902555ee0d5806ca9905dd1f5 Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Thu, 17 Oct 2024 12:02:49 +0200 Subject: [PATCH 045/110] [Workers] Update Stream documentation (#17506) --------- Co-authored-by: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> --- .../workers/runtime-apis/streams/index.mdx | 111 +++++++++--------- 1 file changed, 53 insertions(+), 58 deletions(-) diff --git a/src/content/docs/workers/runtime-apis/streams/index.mdx b/src/content/docs/workers/runtime-apis/streams/index.mdx index f1cea4434280220..a007716bd867995 100644 --- a/src/content/docs/workers/runtime-apis/streams/index.mdx +++ b/src/content/docs/workers/runtime-apis/streams/index.mdx @@ -6,28 +6,25 @@ head: content: Streams - Runtime APIs description: A web standard API that allows JavaScript to programmatically access and process streams of data. - --- -import { DirectoryListing, TabItem, Tabs } from "~/components" +import { DirectoryListing, TabItem, Tabs } from "~/components"; The [Streams API](https://developer.mozilla.org/en-US/docs/Web/API/Streams_API) is a web standard API that allows JavaScript to programmatically access and process streams of data. -Workers do not need to prepare an entire response body before delivering it to `event.respondWith()`. You can use [`TransformStream`](/workers/runtime-apis/streams/transformstream/) to stream a response body after sending the front matter (that is, HTTP status line and headers). This allows you to minimize: +Workers do not need to prepare an entire response body before returning a `Response`. You can use a [`ReadableStream`](/workers/runtime-apis/streams/readablestream/) to stream a response body after sending the front matter (that is, HTTP status line and headers). This allows you to minimize: -* The visitor’s time-to-first-byte. -* The buffering done in the Worker. +- The visitor's time-to-first-byte. +- The buffering done in the Worker. Minimizing buffering is especially important for processing or transforming response bodies larger than the Worker's memory limit. For these cases, streaming is the only implementation strategy. :::note - By default, Cloudflare Workers is capable of streaming responses using the [Streams APIs](https://developer.mozilla.org/en-US/docs/Web/API/Streams_API). To maintain the streaming behavior, you should only modify the response body using the methods in the Streams APIs. If your Worker only forwards subrequest responses to the client verbatim without reading their body text, then its body handling is already optimal and you do not have to use these APIs. - ::: The worker can create a `Response` object using a `ReadableStream` as the body. Any data provided through the @@ -37,29 +34,29 @@ The worker can create a `Response` object using a `ReadableStream` as the body. ```js export default { - async fetch(request, env, ctx) { - // Fetch from origin server. - let response = await fetch(request); - - // ... and deliver our Response while that’s running. - return new Response(response.body, response); - } -} + async fetch(request, env, ctx) { + // Fetch from origin server. + const response = await fetch(request); + + // ... and deliver our Response while that’s running. + return new Response(response.body, response); + }, +}; ``` ```js -addEventListener('fetch', event => { - event.respondWith(fetchAndStream(event.request)); +addEventListener("fetch", (event) => { + event.respondWith(fetchAndStream(event.request)); }); async function fetchAndStream(request) { - // Fetch from origin server. - let response = await fetch(request); + // Fetch from origin server. + const response = await fetch(request); - // ... and deliver our Response while that’s running. - return new Response(readable.body, response); + // ... and deliver our Response while that’s running. + return new Response(readable.body, response); } ``` @@ -71,47 +68,47 @@ A [`TransformStream`](/workers/runtime-apis/streams/transformstream/) and the [` ```js export default { - async fetch(request, env, ctx) { - // Fetch from origin server. - let response = await fetch(request); - - let { readable, writable } = new TransformStream({ - transform(chunk, controller) { - controller.enqueue(modifyChunkSomehow(chunk)); - } - }); - - // Start pumping the body. NOTE: No await! - response.body.pipeTo(writable); - - // ... and deliver our Response while that’s running. - return new Response(readable, response); - } -} + async fetch(request, env, ctx) { + // Fetch from origin server. + const response = await fetch(request); + + const { readable, writable } = new TransformStream({ + transform(chunk, controller) { + controller.enqueue(modifyChunkSomehow(chunk)); + }, + }); + + // Start pumping the body. NOTE: No await! + response.body.pipeTo(writable); + + // ... and deliver our Response while that’s running. + return new Response(readable, response); + }, +}; ``` ```js -addEventListener('fetch', event => { - event.respondWith(fetchAndStream(event.request)); +addEventListener("fetch", (event) => { + event.respondWith(fetchAndStream(event.request)); }); async function fetchAndStream(request) { - // Fetch from origin server. - let response = await fetch(request); + // Fetch from origin server. + const response = await fetch(request); - let { readable, writable } = new TransformStream({ - transform(chunk, controller) { - controller.enqueue(modifyChunkSomehow(chunk)); - } - }); + const { readable, writable } = new TransformStream({ + transform(chunk, controller) { + controller.enqueue(modifyChunkSomehow(chunk)); + }, + }); - // Start pumping the body. NOTE: No await! - response.body.pipeTo(writable); + // Start pumping the body. NOTE: No await! + response.body.pipeTo(writable); - // ... and deliver our Response while that’s running. - return new Response(readable, response); + // ... and deliver our Response while that’s running. + return new Response(readable, response); } ``` @@ -121,22 +118,20 @@ This example calls `response.body.pipeTo(writable)` but does not `await` it. Thi The runtime can continue running a function (`response.body.pipeTo(writable)`) after a response is returned to the client. This example pumps the subrequest response body to the final response body. However, you can use more complicated logic, such as adding a prefix or a suffix to the body or to process it somehow. -*** +--- ## Common issues :::caution[Warning] - The Streams API is only available inside of the [Request context](/workers/runtime-apis/request/), inside the `fetch` event listener callback. - ::: -*** +--- ## Related resources -* [MDN’s Streams API documentation](https://developer.mozilla.org/en-US/docs/Web/API/Streams_API) -* [Streams API spec](https://streams.spec.whatwg.org/) -* Write your Worker code in [ES modules syntax](/workers/reference/migrate-to-module-workers/) for an optimized experience. +- [MDN's Streams API documentation](https://developer.mozilla.org/en-US/docs/Web/API/Streams_API) +- [Streams API spec](https://streams.spec.whatwg.org/) +- Write your Worker code in [ES modules syntax](/workers/reference/migrate-to-module-workers/) for an optimized experience. From 04f1fd20969b0d57af364960c01c843bb8a4f6e4 Mon Sep 17 00:00:00 2001 From: Kristian Freeman Date: Thu, 17 Oct 2024 05:26:34 -0500 Subject: [PATCH 046/110] [ai-gateway] Add Vercel AI SDK example page (#17468) * [ai-gateway] Add Vercel AI SDK example page * Moved vercel SDK to Integration * hid the index --------- Co-authored-by: daisyfaithauma --- package.json | 2 +- .../docs/ai-gateway/integration/index.mdx | 8 ++++ .../ai-gateway/integration/vercel-ai-sdk.mdx | 40 +++++++++++++++++++ .../ai-gateway/providers/google-ai-studio.mdx | 2 +- 4 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 src/content/docs/ai-gateway/integration/index.mdx create mode 100644 src/content/docs/ai-gateway/integration/vercel-ai-sdk.mdx diff --git a/package.json b/package.json index 2d4983b8a4ab2c0..37203a8bbeba042 100644 --- a/package.json +++ b/package.json @@ -89,6 +89,6 @@ "node": ">=22" }, "volta": { - "node": "22.8.0" + "node": "22.9.0" } } diff --git a/src/content/docs/ai-gateway/integration/index.mdx b/src/content/docs/ai-gateway/integration/index.mdx new file mode 100644 index 000000000000000..1574b2332fd9809 --- /dev/null +++ b/src/content/docs/ai-gateway/integration/index.mdx @@ -0,0 +1,8 @@ +--- +pcx_content_type: configuration +title: Integration +sidebar: + group: + hideIndex: true + order: 12 +--- diff --git a/src/content/docs/ai-gateway/integration/vercel-ai-sdk.mdx b/src/content/docs/ai-gateway/integration/vercel-ai-sdk.mdx new file mode 100644 index 000000000000000..bd18fa2fb39a548 --- /dev/null +++ b/src/content/docs/ai-gateway/integration/vercel-ai-sdk.mdx @@ -0,0 +1,40 @@ +--- +title: Vercel AI SDK +pcx_content_type: configuration +sidebar: + order: 3 +--- + +The [Vercel AI SDK](https://sdk.vercel.ai/) is a TypeScript library for building AI applications. The SDK supports many different AI providers, tools for streaming completions, and more. + +To use Cloudflare AI Gateway inside of the AI SDK, you can configure a custom "Gateway URL" for most supported providers. Below are a few examples of how it works. + +## Examples + +### OpenAI + +If you're using the `openai` provider in AI SDK, you can create a customized setup with `createOpenAI`, passing your OpenAI-compatible AI Gateway URL: + +```typescript +import { createOpenAI } from "@ai-sdk/openai"; + +const openai = createOpenAI({ + baseURL: `https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai`, +}); +``` + +### Anthropic + +If you're using the `anthropic` provider in AI SDK, you can create a customized setup with `createAnthropic`, passing your Anthropic-compatible AI Gateway URL: + +```typescript +import { createAnthropic } from "@ai-sdk/anthropic"; + +const anthropic = createAnthropic({ + baseURL: `https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/anthropic`, +}); +``` + +### Other providers + +For other providers that are not listed above, you can follow a similar pattern by creating a custom instance for any AI provider, and passing your AI Gateway URL. For help finding your provider-specific AI Gateway URL, refer to the [Supported providers page](/ai-gateway/providers). diff --git a/src/content/docs/ai-gateway/providers/google-ai-studio.mdx b/src/content/docs/ai-gateway/providers/google-ai-studio.mdx index adc96e95c4eb320..9cb880571068c05 100644 --- a/src/content/docs/ai-gateway/providers/google-ai-studio.mdx +++ b/src/content/docs/ai-gateway/providers/google-ai-studio.mdx @@ -69,4 +69,4 @@ const model = genAI.getGenerativeModel( ); await model.generateContent(["What is Cloudflare?"]); -``` +``` \ No newline at end of file From d1fac25600072c56eb1e9945b5c5ed0feaa49d71 Mon Sep 17 00:00:00 2001 From: Sean Eustace <101840198+seaneustace@users.noreply.github.com> Date: Thu, 17 Oct 2024 03:37:16 -0700 Subject: [PATCH 047/110] [Speed] Update Accept-Encoding header values (Cloudflare -> Origin server) (#17581) --------- Co-authored-by: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> --- .../reference/http-request-headers.mdx | 25 ++++++------------- .../content/brotli/content-compression.mdx | 18 ++++++------- 2 files changed, 17 insertions(+), 26 deletions(-) diff --git a/src/content/docs/fundamentals/reference/http-request-headers.mdx b/src/content/docs/fundamentals/reference/http-request-headers.mdx index 486b62cb218649f..3bb2535ee54cb76 100644 --- a/src/content/docs/fundamentals/reference/http-request-headers.mdx +++ b/src/content/docs/fundamentals/reference/http-request-headers.mdx @@ -1,16 +1,15 @@ --- pcx_content_type: reference title: Cloudflare HTTP request headers - --- -import { Render } from "~/components" +import { Render } from "~/components"; Cloudflare passes all HTTP request headers to your origin web server and adds additional headers as specified below. :::note -Cloudflare may remove HTTP request headers with names considered invalid [according to NGINX](https://nginx.org/en/docs/http/ngx_http_core_module.html#ignore_invalid_headers) — for example, header names containing a `.` (dot) character. +Cloudflare may remove HTTP request headers with names considered invalid [according to NGINX](https://nginx.org/en/docs/http/ngx_http_core_module.html#ignore_invalid_headers) — for example, header names containing a `.` (dot) character. ::: ## Accept-Encoding @@ -40,7 +39,7 @@ When no Worker subrequest is triggered, `cf-connecting-ip` reflects the client's Cloudflare provides [free IPv6 support](/network/ipv6-compatibility/) to all domains without requiring additional configuration or hardware. To support migrating to IPv6, Cloudflare's [Pseudo IPv4](/network/pseudo-ipv4/) provides an IPv6 to IPv4 translation service for all Cloudflare domains. -
+
## CF-EW-Via @@ -62,10 +61,8 @@ Alternatively, if you do not wish to receive the `True-Client-IP` header or any :::caution - If you are using Cloudflare in a stacked CDN and authenticating HTTP requests based on the IP address value in the `True-Client-IP` header, you must add a `True-Client-IP` header to your requests. If you do not add this header, its value can be spoofed to any value. - ::: ## X-Forwarded-For @@ -80,10 +77,8 @@ If you do not wish to receive the visitor's IP address in the `X-Forwarded-For` :::note - To restore the original visitor IP address at your origin web server, Cloudflare recommends that your logs or applications look at `CF-Connecting-IP` or `True-Client-IP` instead of `X-Forwarded-For`. `CF-Connecting-IP` and `True-Client-IP` both have a consistent format containing only one IP address. - ::: ## X-Forwarded-Proto @@ -104,19 +99,17 @@ Enterprise customers can also see all requests via [Cloudflare Logs](/logs/). The `CF-IPCountry` header contains a two-character country code of the originating visitor’s country. -Besides the [ISO-3166-1 alpha-2 codes](https://www.iso.org/iso-3166-country-codes.html), Cloudflare uses the following special country codes: +Besides the [ISO-3166-1 alpha-2 codes](https://www.iso.org/iso-3166-country-codes.html), Cloudflare uses the following special country codes: -* `XX` - Used for clients without country code data. -* `T1` - Used for clients using the Tor network. +- `XX` - Used for clients without country code data. +- `T1` - Used for clients using the Tor network. To add this header to requests, along with other HTTP headers with location information for the visitor's IP address, [enable the **Add visitor location headers** Managed Transform](/rules/transform/managed-transforms/configure/). :::note - The `CF-IPCountry` header is removed from requests made from a Worker to an origin that is not proxied behind Cloudflare. - ::: ## CF-Visitor @@ -141,10 +134,8 @@ The intended purpose of this header is to provide a means for recipients (for ex :::note - When configuring WAF custom rules, do not match on this header. These rules are applied before Cloudflare adds the `CF-Worker` header. Instead, use the [`cf.worker.upstream_zone`](/ruleset-engine/rules-language/fields/dynamic-fields/#cfworkerupstream_zone) dynamic field, which contains the same value and exists for the same purpose. - ::: ## Connection @@ -155,5 +146,5 @@ For incoming requests, the value of this header will always be set to `Keep-Aliv When using Spectrum with a TCP application, these headers are not visible at the origin as they are HTTP headers. If you wish to utilize these in your application, there are two options: -* Use an HTTP or HTTPS Spectrum app instead of TCP -* Use the [Proxy Protocol feature](/spectrum/how-to/enable-proxy-protocol/) +- Use an HTTP or HTTPS Spectrum app instead of TCP +- Use the [Proxy Protocol feature](/spectrum/how-to/enable-proxy-protocol/) diff --git a/src/content/docs/speed/optimization/content/brotli/content-compression.mdx b/src/content/docs/speed/optimization/content/brotli/content-compression.mdx index 5595fdf6a4619b2..cb5dc97920ea90c 100644 --- a/src/content/docs/speed/optimization/content/brotli/content-compression.mdx +++ b/src/content/docs/speed/optimization/content/brotli/content-compression.mdx @@ -116,19 +116,19 @@ Smaller responses will not be compressed, regardless of their content type. ## Content compression from origin servers to the Cloudflare network -When requesting content from your origin server, Cloudflare supports Gzip compression, Brotli compression, or no compression. +When requesting content from your origin server, Cloudflare supports Brotli compression, Gzip compression, or no compression. ```mermaid flowchart LR accTitle: Compressed responses sent from the origin server -accDescr: Cloudflare accepts responses from origin server using Gzip compression, Brotli compression, or no compression. +accDescr: Cloudflare accepts responses from origin server using Brotli compression, Gzip compression, or no compression. A[Visitor browser] B((Cloudflare)) C[(Origin server)] -A -.-> B == "Request
Accept-Encoding: gzip, br" ==> C -C == "Response
(Gzip / Brotli / No compression)" ==> B -.-> A +A -.-> B == "Request
Accept-Encoding: br, gzip" ==> C +C == "Response
(Brotli / Gzip / No compression)" ==> B -.-> A style A stroke-dasharray: 5 5 style B stroke: orange,fill: orange,color: black @@ -137,18 +137,18 @@ linkStyle 1,2 stroke-width: 2px linkStyle 0,3 stroke-width: 1px ``` -If your origin server responds to a Cloudflare request using Gzip/Brotli compression, we will keep the same compression in the response sent to the website visitor if: +If your origin server responds to a Cloudflare request using Brotli/Gzip compression, we will keep the same compression in the response sent to the website visitor if: -- You include a `content-encoding` header in your server response mentioning the compression being used (`gzip` or `br`). +- You include a `content-encoding` header in your server response mentioning the compression being used (`br` or `gzip`). - The visitor browser (or client) supports the compression algorithm. - You do not enable Cloudflare features that change the response content (refer to [Notes about end-to-end compression](#notes-about-end-to-end-compression) for details). -Cloudflare's reverse proxy can also convert between compressed formats and uncompressed formats. Cloudflare can receive content from your origin server with Gzip or Brotli compression and serve it to visitors uncompressed (or vice versa), independently of caching. +Cloudflare's reverse proxy can also convert between compressed formats and uncompressed formats. Cloudflare can receive content from your origin server with Brotli or Gzip compression and serve it to visitors uncompressed (or vice versa), independently of caching. -If you do not want a particular response from your origin to be encoded with Gzip/Brotli when delivered to website visitors, you can disable this by including a `cache-control: no-transform` HTTP header in the response from your origin web server. +If you do not want a particular response from your origin to be encoded with Brotli/Gzip when delivered to website visitors, you can disable this by including a `cache-control: no-transform` HTTP header in the response from your origin web server. :::caution -Cloudflare will take into consideration the `accept-encoding` header value in website visitors' requests when sending responses to those visitors. However, when requesting content from your origin server, Cloudflare will send a different `Accept-Encoding` header, supporting Gzip and Brotli compression. +Cloudflare will take into consideration the `accept-encoding` header value in website visitors' requests when sending responses to those visitors. However, when requesting content from your origin server, Cloudflare will send a different `Accept-Encoding` header, supporting Brotli and Gzip compression. ::: --- From 48e9976ec4b80b6d5ca84d3e8158a51f212d17a8 Mon Sep 17 00:00:00 2001 From: Olivier Date: Thu, 17 Oct 2024 13:11:50 +0200 Subject: [PATCH 048/110] [China Network] Remove number of data centers (#17592) Direct readers to the Cloudflare site. --- src/content/docs/china-network/reference/infrastructure.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/content/docs/china-network/reference/infrastructure.mdx b/src/content/docs/china-network/reference/infrastructure.mdx index 2ab9eb4f4064717..fce174466aa3a73 100644 --- a/src/content/docs/china-network/reference/infrastructure.mdx +++ b/src/content/docs/china-network/reference/infrastructure.mdx @@ -8,8 +8,6 @@ sidebar: ## China data centers -As of March 2022, there are more than 40 data centers operated by JD Cloud spanning over 35 cities across mainland China. - For up-to-date information, refer to the [Cloudflare China Network](https://www.cloudflare.com/china-network/) page. ### Network IP addresses From 393a99d64715dd1bb9b9bf8517e6ae3b8a35667f Mon Sep 17 00:00:00 2001 From: Matteo Manfredi Date: Thu, 17 Oct 2024 14:05:05 +0200 Subject: [PATCH 049/110] [Rules] Fix tooltip text (#17566) --- src/content/docs/rules/snippets/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/rules/snippets/index.mdx b/src/content/docs/rules/snippets/index.mdx index 98b89b0a6e1cc94..3e9fc743f12775e 100644 --- a/src/content/docs/rules/snippets/index.mdx +++ b/src/content/docs/rules/snippets/index.mdx @@ -13,7 +13,7 @@ head: import { FeatureTable, GlossaryTooltip, Render } from "~/components"; -Cloudflare Snippets (beta) provide a powerful and flexible way to customize the behavior of your website or application using short pieces of JavaScript code. With Snippets, you can modify HTTP response headers, implement JWT validation, perform complex redirects, and much more. +Cloudflare Snippets (beta) provide a powerful and flexible way to customize the behavior of your website or application using short pieces of JavaScript code. With Snippets, you can modify HTTP response headers, implement JWT validation, perform complex redirects, and much more. For code samples addressing common use cases, please refer to the [Examples](/rules/snippets/examples/) section. From aedcb54366faaa9cd92b13c958ccb9b3ace3e5e5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 13:40:21 +0100 Subject: [PATCH 050/110] [Docs Site] Bump typescript from 5.6.2 to 5.6.3 (#17582) Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.6.2 to 5.6.3. - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.6.2...v5.6.3) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 9 ++++----- package.json | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index cf1320569cc43e7..e3701ec3a2f28f7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -67,7 +67,7 @@ "tailwindcss": "^3.4.10", "tippy.js": "^6.3.7", "tsx": "^4.19.1", - "typescript": "^5.5.4", + "typescript": "^5.6.3", "unist-util-visit": "^5.0.0", "vitest": "2.0.5", "wrangler": "^3.78.10", @@ -16342,11 +16342,10 @@ "dev": true }, "node_modules/typescript": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", - "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "dev": true, - "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/package.json b/package.json index 37203a8bbeba042..060e257db1d7648 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "tailwindcss": "^3.4.10", "tippy.js": "^6.3.7", "tsx": "^4.19.1", - "typescript": "^5.5.4", + "typescript": "^5.6.3", "unist-util-visit": "^5.0.0", "vitest": "2.0.5", "wrangler": "^3.78.10", From 2533ce459c3f97cf994c17541a89684c2279671e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 14:02:03 +0100 Subject: [PATCH 051/110] [Docs Site] Bump vitest from 2.0.5 to 2.1.3 (#17585) --- package-lock.json | 299 +++++++++++----------------------------------- package.json | 2 +- 2 files changed, 73 insertions(+), 228 deletions(-) diff --git a/package-lock.json b/package-lock.json index e3701ec3a2f28f7..22d573311c96a18 100644 --- a/package-lock.json +++ b/package-lock.json @@ -69,7 +69,7 @@ "tsx": "^4.19.1", "typescript": "^5.6.3", "unist-util-visit": "^5.0.0", - "vitest": "2.0.5", + "vitest": "2.1.3", "wrangler": "^3.78.10", "yaml": "^2.5.1" }, @@ -4310,14 +4310,13 @@ } }, "node_modules/@vitest/expect": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.0.5.tgz", - "integrity": "sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.3.tgz", + "integrity": "sha512-SNBoPubeCJhZ48agjXruCI57DvxcsivVDdWz+SSsmjTT4QN/DfHk3zB/xKsJqMs26bLZ/pNRLnCf0j679i0uWQ==", "dev": true, - "license": "MIT", "dependencies": { - "@vitest/spy": "2.0.5", - "@vitest/utils": "2.0.5", + "@vitest/spy": "2.1.3", + "@vitest/utils": "2.1.3", "chai": "^5.1.1", "tinyrainbow": "^1.2.0" }, @@ -4325,67 +4324,77 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/pretty-format": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.2.tgz", - "integrity": "sha512-FIoglbHrSUlOJPDGIrh2bjX1sNars5HbxlcsFKCtKzu4+5lpsRhOCVcuzp0fEhAGHkPZRIXVNzPcpSlkoZ3LuA==", + "node_modules/@vitest/mocker": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.3.tgz", + "integrity": "sha512-eSpdY/eJDuOvuTA3ASzCjdithHa+GIF1L4PqtEELl6Qa3XafdMLBpBlZCIUCX2J+Q6sNmjmxtosAG62fK4BlqQ==", "dev": true, - "license": "MIT", "dependencies": { - "tinyrainbow": "^1.2.0" + "@vitest/spy": "2.1.3", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.11" }, "funding": { "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/spy": "2.1.3", + "msw": "^2.3.5", + "vite": "^5.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } } }, - "node_modules/@vitest/runner": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.0.5.tgz", - "integrity": "sha512-TfRfZa6Bkk9ky4tW0z20WKXFEwwvWhRY+84CnSEtq4+3ZvDlJyY32oNTJtM7AW9ihW90tX/1Q78cb6FjoAs+ig==", + "node_modules/@vitest/pretty-format": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.3.tgz", + "integrity": "sha512-XH1XdtoLZCpqV59KRbPrIhFCOO0hErxrQCMcvnQete3Vibb9UeIOX02uFPfVn3Z9ZXsq78etlfyhnkmIZSzIwQ==", "dev": true, - "license": "MIT", "dependencies": { - "@vitest/utils": "2.0.5", - "pathe": "^1.1.2" + "tinyrainbow": "^1.2.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/snapshot": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.0.5.tgz", - "integrity": "sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew==", + "node_modules/@vitest/runner": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.3.tgz", + "integrity": "sha512-JGzpWqmFJ4fq5ZKHtVO3Xuy1iF2rHGV4d/pdzgkYHm1+gOzNZtqjvyiaDGJytRyMU54qkxpNzCx+PErzJ1/JqQ==", "dev": true, - "license": "MIT", "dependencies": { - "@vitest/pretty-format": "2.0.5", - "magic-string": "^0.30.10", + "@vitest/utils": "2.1.3", "pathe": "^1.1.2" }, "funding": { "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/snapshot/node_modules/@vitest/pretty-format": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.0.5.tgz", - "integrity": "sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==", + "node_modules/@vitest/snapshot": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.3.tgz", + "integrity": "sha512-qWC2mWc7VAXmjAkEKxrScWHWFyCQx/cmiZtuGqMi+WwqQJ2iURsVY4ZfAK6dVo6K2smKRU6l3BPwqEBvhnpQGg==", "dev": true, - "license": "MIT", "dependencies": { - "tinyrainbow": "^1.2.0" + "@vitest/pretty-format": "2.1.3", + "magic-string": "^0.30.11", + "pathe": "^1.1.2" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/spy": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.0.5.tgz", - "integrity": "sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.3.tgz", + "integrity": "sha512-Nb2UzbcUswzeSP7JksMDaqsI43Sj5+Kry6ry6jQJT4b5gAK+NS9NED6mDb8FlMRCX8m5guaHCDZmqYMMWRy5nQ==", "dev": true, - "license": "MIT", "dependencies": { "tinyspy": "^3.0.0" }, @@ -4394,14 +4403,12 @@ } }, "node_modules/@vitest/utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.0.5.tgz", - "integrity": "sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.3.tgz", + "integrity": "sha512-xpiVfDSg1RrYT0tX6czgerkpcKFmFOF/gCr30+Mve5V2kewCy4Prn1/NDMSRwaSmT7PRaOF83wu+bEtsY1wrvA==", "dev": true, - "license": "MIT", "dependencies": { - "@vitest/pretty-format": "2.0.5", - "estree-walker": "^3.0.3", + "@vitest/pretty-format": "2.1.3", "loupe": "^3.1.1", "tinyrainbow": "^1.2.0" }, @@ -4409,19 +4416,6 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/utils/node_modules/@vitest/pretty-format": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.0.5.tgz", - "integrity": "sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyrainbow": "^1.2.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, "node_modules/@volar/kit": { "version": "2.4.6", "resolved": "https://registry.npmjs.org/@volar/kit/-/kit-2.4.6.tgz", @@ -4973,7 +4967,6 @@ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" } @@ -5620,7 +5613,6 @@ "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -5724,7 +5716,6 @@ "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.1.tgz", "integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==", "dev": true, - "license": "MIT", "dependencies": { "assertion-error": "^2.0.1", "check-error": "^2.1.1", @@ -5796,7 +5787,6 @@ "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 16" } @@ -7054,7 +7044,6 @@ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -7778,59 +7767,6 @@ "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "dev": true }, - "node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execa/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/execa/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/exit-hook": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", @@ -9151,16 +9087,6 @@ "node": ">= 14" } }, - "node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=16.17.0" - } - }, "node_modules/i18next": { "version": "23.15.1", "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.15.1.tgz", @@ -9713,19 +9639,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -10247,8 +10160,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/lru-cache": { "version": "5.1.1", @@ -10676,13 +10588,6 @@ "dev": true, "license": "CC0-1.0" }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, - "license": "MIT" - }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -12101,19 +12006,6 @@ "node": ">= 0.6" } }, - "node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/mimic-function": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", @@ -12482,35 +12374,6 @@ "integrity": "sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==", "dev": true }, - "node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -13194,7 +13057,6 @@ "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 14.16" } @@ -15346,19 +15208,6 @@ "node": ">=0.10.0" } }, - "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/strnum": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", @@ -15671,7 +15520,6 @@ "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=14.0.0" } @@ -16868,16 +16716,14 @@ } }, "node_modules/vite-node": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.0.5.tgz", - "integrity": "sha512-LdsW4pxj0Ot69FAoXZ1yTnA9bjGohr2yNBU7QKRxpz8ITSkhuDl6h3zS/tvgz4qrNjeRnvrWeXQ8ZF7Um4W00Q==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.3.tgz", + "integrity": "sha512-I1JadzO+xYX887S39Do+paRePCKoiDrWRRjp9kkG5he0t7RXNvPAJPCQSJqbGN4uCrFFeS3Kj3sLqY8NMYBEdA==", "dev": true, - "license": "MIT", "dependencies": { "cac": "^6.7.14", - "debug": "^4.3.5", + "debug": "^4.3.6", "pathe": "^1.1.2", - "tinyrainbow": "^1.2.0", "vite": "^5.0.0" }, "bin": { @@ -16910,30 +16756,29 @@ } }, "node_modules/vitest": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.0.5.tgz", - "integrity": "sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.3.tgz", + "integrity": "sha512-Zrxbg/WiIvUP2uEzelDNTXmEMJXuzJ1kCpbDvaKByFA9MNeO95V+7r/3ti0qzJzrxdyuUw5VduN7k+D3VmVOSA==", "dev": true, - "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.3.0", - "@vitest/expect": "2.0.5", - "@vitest/pretty-format": "^2.0.5", - "@vitest/runner": "2.0.5", - "@vitest/snapshot": "2.0.5", - "@vitest/spy": "2.0.5", - "@vitest/utils": "2.0.5", + "@vitest/expect": "2.1.3", + "@vitest/mocker": "2.1.3", + "@vitest/pretty-format": "^2.1.3", + "@vitest/runner": "2.1.3", + "@vitest/snapshot": "2.1.3", + "@vitest/spy": "2.1.3", + "@vitest/utils": "2.1.3", "chai": "^5.1.1", - "debug": "^4.3.5", - "execa": "^8.0.1", - "magic-string": "^0.30.10", + "debug": "^4.3.6", + "magic-string": "^0.30.11", "pathe": "^1.1.2", "std-env": "^3.7.0", - "tinybench": "^2.8.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.0", "tinypool": "^1.0.0", "tinyrainbow": "^1.2.0", "vite": "^5.0.0", - "vite-node": "2.0.5", + "vite-node": "2.1.3", "why-is-node-running": "^2.3.0" }, "bin": { @@ -16948,8 +16793,8 @@ "peerDependencies": { "@edge-runtime/vm": "*", "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "2.0.5", - "@vitest/ui": "2.0.5", + "@vitest/browser": "2.1.3", + "@vitest/ui": "2.1.3", "happy-dom": "*", "jsdom": "*" }, diff --git a/package.json b/package.json index 060e257db1d7648..bc5e2937ac5cfe8 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "tsx": "^4.19.1", "typescript": "^5.6.3", "unist-util-visit": "^5.0.0", - "vitest": "2.0.5", + "vitest": "2.1.3", "wrangler": "^3.78.10", "yaml": "^2.5.1" }, From f134c56f61ea16cf64088fe4da44ed4b41cdc1eb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 14:28:28 +0100 Subject: [PATCH 052/110] [Docs Site] Bump @cloudflare/vitest-pool-workers from 0.5.18 to 0.5.19 (#17584) Bumps [@cloudflare/vitest-pool-workers](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/vitest-pool-workers) from 0.5.18 to 0.5.19. - [Release notes](https://github.com/cloudflare/workers-sdk/releases) - [Changelog](https://github.com/cloudflare/workers-sdk/blob/main/packages/vitest-pool-workers/CHANGELOG.md) - [Commits](https://github.com/cloudflare/workers-sdk/commits/@cloudflare/vitest-pool-workers@0.5.19/packages/vitest-pool-workers) --- updated-dependencies: - dependency-name: "@cloudflare/vitest-pool-workers" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 89 +++++++++++++++++++++-------------------------- package.json | 2 +- 2 files changed, 40 insertions(+), 51 deletions(-) diff --git a/package-lock.json b/package-lock.json index 22d573311c96a18..119763ffe137dcd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,7 @@ "@astrojs/starlight-tailwind": "^2.0.3", "@astrojs/tailwind": "^5.1.2", "@cloudflare/puppeteer": "^0.0.14", - "@cloudflare/vitest-pool-workers": "^0.5.18", + "@cloudflare/vitest-pool-workers": "^0.5.19", "@cloudflare/workers-types": "^4.20240903.0", "@codingheads/sticky-header": "^1.0.2", "@stoplight/json-schema-tree": "^4.0.0", @@ -1573,19 +1573,18 @@ } }, "node_modules/@cloudflare/vitest-pool-workers": { - "version": "0.5.18", - "resolved": "https://registry.npmjs.org/@cloudflare/vitest-pool-workers/-/vitest-pool-workers-0.5.18.tgz", - "integrity": "sha512-V7KcsgS2CaTyNu16OuGki07u2j1ThhWCHM6EyqVkYm8ow6K+8jA8GQ0/ktBzjsqLYt7gimIHCOe8RaKfRcriRw==", + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/@cloudflare/vitest-pool-workers/-/vitest-pool-workers-0.5.19.tgz", + "integrity": "sha512-zlaeqna3FGX6b+Dw0iJ3tEB7mFvlWn81GPb8a0Xr81XNYEjnaFn2w0s9VUtsytOQjy1mUKsDg/XZjUZApoTs/g==", "dev": true, - "license": "MIT", "dependencies": { "birpc": "0.2.14", "cjs-module-lexer": "^1.2.3", "devalue": "^4.3.0", "esbuild": "0.17.19", - "miniflare": "3.20241004.0", + "miniflare": "3.20241011.0", "semver": "^7.5.1", - "wrangler": "3.80.4", + "wrangler": "3.80.5", "zod": "^3.22.3" }, "peerDependencies": { @@ -2014,14 +2013,13 @@ } }, "node_modules/@cloudflare/workerd-darwin-64": { - "version": "1.20241004.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20241004.0.tgz", - "integrity": "sha512-c2afR486NXDRcPm7RaTSRDnffFklPCXde/IeNVhEhBJ8O+pQhBOdDcGIy8zXPwMu0CYga0iHNZmpbsl+ZcHttA==", + "version": "1.20241011.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20241011.1.tgz", + "integrity": "sha512-gZ2PrMCQ4WdDCB+V6vsB2U2SyYcmgaGMEa3GGjcUfC79L/8so3Vp/bO0eCoLmvttRs39wascZ+JiWL0HpcZUgA==", "cpu": [ "x64" ], "dev": true, - "license": "Apache-2.0", "optional": true, "os": [ "darwin" @@ -2031,14 +2029,13 @@ } }, "node_modules/@cloudflare/workerd-darwin-arm64": { - "version": "1.20241004.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20241004.0.tgz", - "integrity": "sha512-siD9fexv5lr2IpBczWV7OPgJvHj8/fJUrRAYCMcBURkfiwssK91coQeZlN1NdQ85aYELVgxDFoG+p86OS+ZzLw==", + "version": "1.20241011.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20241011.1.tgz", + "integrity": "sha512-c26TYtS0e3WZ09nL/a8YaEqveCsTlgDm12ehPMNua9u68sh1KzETMl2G45O934m8UrI3Rhpv2TTecO0S5b9exA==", "cpu": [ "arm64" ], "dev": true, - "license": "Apache-2.0", "optional": true, "os": [ "darwin" @@ -2048,14 +2045,13 @@ } }, "node_modules/@cloudflare/workerd-linux-64": { - "version": "1.20241004.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20241004.0.tgz", - "integrity": "sha512-EtKGXO5fzRgX6UhDDLhjjEsB1QtliHb12zavZ/S0C8hKPz76II7MQ3Lls9kfB62fbdMP8L6vcqWPObEUcw6GSw==", + "version": "1.20241011.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20241011.1.tgz", + "integrity": "sha512-pl4xvHNXnm3cYh5GwHadOTQRWt4Ih/gzCOb6RW4n78oNQQydFvpwqYAjbYk32y485feLhdTKXut/MgZAyWnKyQ==", "cpu": [ "x64" ], "dev": true, - "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -2065,14 +2061,13 @@ } }, "node_modules/@cloudflare/workerd-linux-arm64": { - "version": "1.20241004.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20241004.0.tgz", - "integrity": "sha512-XO7VBE1YaFf/o9tKO1PqDqaxkU2eAR2DLX7R0+R8p+q92sUDXyoxo48T3yJDfxWndnKJ6hSJfvKanw3Mq9Tisw==", + "version": "1.20241011.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20241011.1.tgz", + "integrity": "sha512-I4HAF2Qe8xgIjAdE53viT2fDdHXkrb3Be0L3eWeeP5SEkOtQ4cHLqsOV7yhUWOJpHiI1XCDcf+wdfn0PB/EngQ==", "cpu": [ "arm64" ], "dev": true, - "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -2082,14 +2077,13 @@ } }, "node_modules/@cloudflare/workerd-windows-64": { - "version": "1.20241004.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20241004.0.tgz", - "integrity": "sha512-o+TmCYGq58jNUDbG73xOvd648XvJ2TicI++2BBoySklJXG6f4But5AwA8TxQgmeujR3vpBjPZKexEzcZSUOTtA==", + "version": "1.20241011.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20241011.1.tgz", + "integrity": "sha512-oVr1Cb7NkDpukd7v68FdxOH8vaHRSzHkX9uE/IttHd2yPK6mwOS220nIxK9UMcx5CwZmrgphRwtZwSYVk/lREQ==", "cpu": [ "x64" ], "dev": true, - "license": "Apache-2.0", "optional": true, "os": [ "win32" @@ -2825,7 +2819,6 @@ "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", "dev": true, - "license": "MIT", "engines": { "node": ">=14" } @@ -12029,11 +12022,10 @@ } }, "node_modules/miniflare": { - "version": "3.20241004.0", - "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-3.20241004.0.tgz", - "integrity": "sha512-QSSmCR2V1AJnnpYwlyLXobKLSGiY1FlAiZYULMdGgOUThV7HJeSysDxsmPmrH+D4GQbmUERnmDdB6M6Rrz7uPg==", + "version": "3.20241011.0", + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-3.20241011.0.tgz", + "integrity": "sha512-Mb3U9+QvKgIUl9LgHwBxEz8WajMRYqO5mMHRtO8yHjNCLGh24I6Ts9z13zRAYGPDd1xBQ1o983fHT9S+tn6r+A==", "dev": true, - "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "0.8.1", "acorn": "^8.8.0", @@ -12043,7 +12035,7 @@ "glob-to-regexp": "^0.4.1", "stoppable": "^1.1.0", "undici": "^5.28.4", - "workerd": "1.20241004.0", + "workerd": "1.20241011.1", "ws": "^8.17.1", "youch": "^3.2.2", "zod": "^3.22.3" @@ -12060,7 +12052,6 @@ "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", "dev": true, - "license": "MIT", "dependencies": { "@fastify/busboy": "^2.0.0" }, @@ -17234,12 +17225,11 @@ "license": "Unlicense" }, "node_modules/workerd": { - "version": "1.20241004.0", - "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20241004.0.tgz", - "integrity": "sha512-TCFJ7Zw7svR3adg1fnlPWj/yXhjBnQloLEIJqdu57hli/GsgwlbomwrbM3mdMgbS+K9zYeaYqknXiBN0EXk3QQ==", + "version": "1.20241011.1", + "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20241011.1.tgz", + "integrity": "sha512-ORobT1XDkE+p+36yk6Szyw68bWuGSmuwIlDnAeUOfnYunb/Txt0jg7ydzfwr4UIsof7AH5F1nqZms5PWLu05yw==", "dev": true, "hasInstallScript": true, - "license": "Apache-2.0", "bin": { "workerd": "bin/workerd" }, @@ -17247,19 +17237,18 @@ "node": ">=16" }, "optionalDependencies": { - "@cloudflare/workerd-darwin-64": "1.20241004.0", - "@cloudflare/workerd-darwin-arm64": "1.20241004.0", - "@cloudflare/workerd-linux-64": "1.20241004.0", - "@cloudflare/workerd-linux-arm64": "1.20241004.0", - "@cloudflare/workerd-windows-64": "1.20241004.0" + "@cloudflare/workerd-darwin-64": "1.20241011.1", + "@cloudflare/workerd-darwin-arm64": "1.20241011.1", + "@cloudflare/workerd-linux-64": "1.20241011.1", + "@cloudflare/workerd-linux-arm64": "1.20241011.1", + "@cloudflare/workerd-windows-64": "1.20241011.1" } }, "node_modules/wrangler": { - "version": "3.80.4", - "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-3.80.4.tgz", - "integrity": "sha512-DyNvShtVH3k7ZyBndlIiwyRDXqtHr3g01hxwn4FfwKlAaT6EL0wb3KL3UGbsdpeM/xbJiUQxFQ4WuFBWgZS18Q==", + "version": "3.80.5", + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-3.80.5.tgz", + "integrity": "sha512-BS8n54pwkk/NnkChgtuMUifP2I2SiJHgIUZqvmnVKm92pQE3ghellQx91FS5oCtWLXKlQiaToodERNfIDSti5g==", "dev": true, - "license": "MIT OR Apache-2.0", "dependencies": { "@cloudflare/kv-asset-handler": "0.3.4", "@cloudflare/workers-shared": "0.6.0", @@ -17268,7 +17257,7 @@ "blake3-wasm": "^2.1.5", "chokidar": "^3.5.3", "esbuild": "0.17.19", - "miniflare": "3.20241004.0", + "miniflare": "3.20241011.0", "nanoid": "^3.3.3", "path-to-regexp": "^6.3.0", "resolve": "^1.22.8", @@ -17276,7 +17265,7 @@ "selfsigned": "^2.0.1", "source-map": "^0.6.1", "unenv": "npm:unenv-nightly@2.0.0-20241009-125958-e8ea22f", - "workerd": "1.20241004.0", + "workerd": "1.20241011.1", "xxhash-wasm": "^1.0.1" }, "bin": { @@ -17290,7 +17279,7 @@ "fsevents": "~2.3.2" }, "peerDependencies": { - "@cloudflare/workers-types": "^4.20241004.0" + "@cloudflare/workers-types": "^4.20241011.0" }, "peerDependenciesMeta": { "@cloudflare/workers-types": { diff --git a/package.json b/package.json index bc5e2937ac5cfe8..6af1e5538849cae 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@astrojs/starlight-tailwind": "^2.0.3", "@astrojs/tailwind": "^5.1.2", "@cloudflare/puppeteer": "^0.0.14", - "@cloudflare/vitest-pool-workers": "^0.5.18", + "@cloudflare/vitest-pool-workers": "^0.5.19", "@cloudflare/workers-types": "^4.20240903.0", "@codingheads/sticky-header": "^1.0.2", "@stoplight/json-schema-tree": "^4.0.0", From 6a1aef7521e9b162a215441dfb8156b520b581ea Mon Sep 17 00:00:00 2001 From: Maddy <130055405+Maddy-Cloudflare@users.noreply.github.com> Date: Thu, 17 Oct 2024 15:10:26 +0100 Subject: [PATCH 053/110] [Security Center] Clarify user permissions (#17596) --- src/content/docs/security-center/brand-protection.mdx | 7 ++----- src/content/docs/security-center/infrastructure/index.mdx | 4 ++++ src/content/docs/security-center/investigate/index.mdx | 4 ++++ .../docs/security-center/security-insights/index.mdx | 4 ++++ 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/content/docs/security-center/brand-protection.mdx b/src/content/docs/security-center/brand-protection.mdx index 6f30e51286ffbf7..5d5c0204a9714cb 100644 --- a/src/content/docs/security-center/brand-protection.mdx +++ b/src/content/docs/security-center/brand-protection.mdx @@ -10,12 +10,9 @@ sidebar: import { AvailableNotifications, Render } from "~/components" -:::note - - +:::note[User permission] While the Brand Protection tool is in beta, you will need to request access by filling in the [sign-up form](http://cloudflare.com/lp/brandprotection). - - +Only Super Admin users can access Brand Protection. ::: diff --git a/src/content/docs/security-center/infrastructure/index.mdx b/src/content/docs/security-center/infrastructure/index.mdx index e4569bc6489aaa2..cf370a97ab25279 100644 --- a/src/content/docs/security-center/infrastructure/index.mdx +++ b/src/content/docs/security-center/infrastructure/index.mdx @@ -6,6 +6,10 @@ sidebar: --- +:::note[User permission] +Only Super Admin users with edit permissions can start scans, turn scans off, or manage issues. +::: + After [enabling Security Insights](/security-center/get-started/) and letting the first scan run, the **Infrastructure** tab displays an overview of the infrastructure associated with your Cloudflare account. To open the **Infrastructure** tab, go to Account Home > **Security Center** > **Infrastructure**. diff --git a/src/content/docs/security-center/investigate/index.mdx b/src/content/docs/security-center/investigate/index.mdx index 5d2625d0eadc7e0..475ed1d01b86a3f 100644 --- a/src/content/docs/security-center/investigate/index.mdx +++ b/src/content/docs/security-center/investigate/index.mdx @@ -6,6 +6,10 @@ sidebar: --- +:::note[User permission] +All users can access Investigate. This includes accessing URL scanning, and filter passive DNS range. +::: + Investigate allows you to view a domain’s category, the IP it belongs to, and whether the category has changed before. You can also see which records it points to, including the country of origin and passive DNS records. After searching with Investigate, you will get an API curl to retrieve the same search results. You can learn more about the IP addresses in your logs by searching via the IP address to view its category and threat data. Enter any IP address, domain name, and hostname to see how it has been categorized from a threat perspective. diff --git a/src/content/docs/security-center/security-insights/index.mdx b/src/content/docs/security-center/security-insights/index.mdx index 361ab24d14832a1..16205fc95ba9362 100644 --- a/src/content/docs/security-center/security-insights/index.mdx +++ b/src/content/docs/security-center/security-insights/index.mdx @@ -7,6 +7,10 @@ sidebar: import { Render } from "~/components"; +:::note[User permission] +Only Super Admin users with edit permissions can start scans, turn scans off, or manage issues. +::: + Listed below are the specific insights currently available: From 37c4fefdecdf7d1ca74cbf58b294029d0c3b0f19 Mon Sep 17 00:00:00 2001 From: Rebecca Tamachiro <62246989+RebeccaTamachiro@users.noreply.github.com> Date: Thu, 17 Oct 2024 15:31:08 +0100 Subject: [PATCH 054/110] [DNS] Add note about subdomain setup and Access apps (#17589) --- .../docs/dns/zone-setups/subdomain-setup/index.mdx | 6 +++++- .../dns/zone-setups/subdomain-setup/setup/index.mdx | 10 +++++++--- .../partials/dns/subdomain-setup-access-apps.mdx | 10 ++++++++++ 3 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 src/content/partials/dns/subdomain-setup-access-apps.mdx diff --git a/src/content/docs/dns/zone-setups/subdomain-setup/index.mdx b/src/content/docs/dns/zone-setups/subdomain-setup/index.mdx index 7920017740e2742..1b75cd0cb95c42d 100644 --- a/src/content/docs/dns/zone-setups/subdomain-setup/index.mdx +++ b/src/content/docs/dns/zone-setups/subdomain-setup/index.mdx @@ -6,7 +6,7 @@ sidebar: label: About --- -import { DirectoryListing, FeatureTable, GlossaryTooltip } from "~/components" +import { DirectoryListing, FeatureTable, GlossaryTooltip, Render } from "~/components" When you use a subdomain setup, you can manage the [Cloudflare configurations](/fundamentals/concepts/how-cloudflare-works/) for one or more subdomains separately from those associated with your apex domain. This means that, on your [account homepage](https://dash.cloudflare.com/?to=/:account/), you would find websites like `example.com` or `blog.example.com` listed as separate zones. @@ -22,6 +22,10 @@ Subdomain setups are also useful when different subdomains require entirely diff +### Access applications + + + ## Resources diff --git a/src/content/docs/dns/zone-setups/subdomain-setup/setup/index.mdx b/src/content/docs/dns/zone-setups/subdomain-setup/setup/index.mdx index 03345841f225673..e304cfb4aefdf42 100644 --- a/src/content/docs/dns/zone-setups/subdomain-setup/setup/index.mdx +++ b/src/content/docs/dns/zone-setups/subdomain-setup/setup/index.mdx @@ -9,11 +9,11 @@ head: --- -import { DirectoryListing, GlossaryTooltip } from "~/components" +import { DirectoryListing, GlossaryTooltip, Render } from "~/components" :::caution -Subdomain setup is only available for Enterprise accounts. If you only want to create a subdomain for your site in Cloudflare, refer to [Create a subdomain record](/dns/manage-dns-records/how-to/create-subdomain/). +Subdomain setup is only available for Enterprise accounts. If you only want to create a subdomain for your site in Cloudflare, refer to [Create a subdomain record](/dns/manage-dns-records/how-to/create-subdomain/). ::: [Subdomain setup](/dns/zone-setups/subdomain-setup/) relies on a process known as delegation. When, in a parent domain such as `example.com`, an [`NS` record](https://www.cloudflare.com/learning/dns/dns-records/dns-ns-record/) is created for a subdomain `blog.example.com`, this means that DNS management for the subdomain can be done separately, in its own DNS zone. @@ -50,7 +50,7 @@ The availability of different setups will depend on both the parent zone setup a :::caution[* Subdomain zones in partial setup are not delegated] -Subdomains using a partial setup represent an exception in the sense that [delegation](#subdomain-delegation) does not apply in this context. As explained in the dedicated [Partial (CNAME) setup section](/dns/zone-setups/partial-setup/), this setup is intended to simply proxy individual subdomains through Cloudflare. For completeness, however, this is listed as an option in this table and the [how-to guide](/dns/zone-setups/subdomain-setup/setup/parent-on-partial/) has detailed explanation on how to achieve a subdomain zone using partial setup. +Subdomains using a partial setup represent an exception in the sense that [delegation](#subdomain-delegation) does not apply in this context. As explained in the dedicated [Partial (CNAME) setup section](/dns/zone-setups/partial-setup/), this setup is intended to simply proxy individual subdomains through Cloudflare. For completeness, however, this is listed as an option in this table and the [how-to guide](/dns/zone-setups/subdomain-setup/setup/parent-on-partial/) has detailed explanation on how to achieve a subdomain zone using partial setup. ::: This table assumes zones that are in an [active status](/dns/zone-setups/reference/domain-status/). For example, if you need to add the parent zone to Cloudflare when its child zone already exists in a partial setup, you can [convert the parent zone to partial](/dns/zone-setups/partial-setup/setup/#add-your-domain-to-cloudflare) while it is still in pending status. @@ -72,3 +72,7 @@ Although the how-to guides in this documentation are focused on both parent doma If the parent domain's SSL/TLS certificate explicitly lists the delegated subdomain and is created after the subdomain's SSL/TLS own certificate, the parent domain's certificate will take precedence over the subdomain's certificate. For instance, if `example.com` [creates an advanced certificate](/ssl/edge-certificates/advanced-certificate-manager/manage-certificates/) that directly lists `docs.example.com`, visitors to `docs.example.com` might see the SSL/TLS certificate for `example.com`. + +## Access applications + + \ No newline at end of file diff --git a/src/content/partials/dns/subdomain-setup-access-apps.mdx b/src/content/partials/dns/subdomain-setup-access-apps.mdx new file mode 100644 index 000000000000000..4f1b5f413b85050 --- /dev/null +++ b/src/content/partials/dns/subdomain-setup-access-apps.mdx @@ -0,0 +1,10 @@ +--- +{} + +--- + +To use subdomain setups with [Cloudflare Access](/cloudflare-one/policies/access/), note that: + +- If the child zone is in a pending state when you create the Access application, your configuration will not automatically apply when you activate the zone. You must also re-save the Access application once your subdomain setup is active. + +- If you split out a subdomain which already has an Access application, you will also need to re-save the Access application to associate it with the new child zone. \ No newline at end of file From 65c1918f2c3e7ad50aa7b436dc0c3db00911abe5 Mon Sep 17 00:00:00 2001 From: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:11:05 +0100 Subject: [PATCH 055/110] [WAF] Update fields/functions for custom detection locations (#17597) --- src/content/docs/waf/detections/leaked-credentials/index.mdx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/content/docs/waf/detections/leaked-credentials/index.mdx b/src/content/docs/waf/detections/leaked-credentials/index.mdx index 13a43d56fffbf78..982644e1ec0c024 100644 --- a/src/content/docs/waf/detections/leaked-credentials/index.mdx +++ b/src/content/docs/waf/detections/leaked-credentials/index.mdx @@ -71,10 +71,11 @@ When specifying a custom detection location, only the location of the username f Expressions used to specify custom detection locations can include the following fields and functions: - Fields: + - [`http.request.body.form`](/ruleset-engine/rules-language/fields/http-request-body/#httprequestbodyform) - [`http.request.body.raw`](/ruleset-engine/rules-language/fields/http-request-body/#httprequestbodyraw) - Functions: - [`lookup_json_string()`](/ruleset-engine/rules-language/functions/#lookup_json_string) - - [`lower()`](/ruleset-engine/rules-language/functions/#lower) + - [`url_decode()`](/ruleset-engine/rules-language/functions/#url_decode) For instructions on configuring a custom detection location, refer to [Get started](/waf/detections/leaked-credentials/get-started/#4-optional-configure-a-custom-detection-location). From 0b7d51c7c3abc087c37f10993da156ddf7d26c4d Mon Sep 17 00:00:00 2001 From: Maddy <130055405+Maddy-Cloudflare@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:14:44 +0100 Subject: [PATCH 056/110] [Security Center] Hash search (#17598) * [Security Center] Hash search * Apply suggestions from code review Co-authored-by: angelampcosta <92738954+angelampcosta@users.noreply.github.com> --------- Co-authored-by: angelampcosta <92738954+angelampcosta@users.noreply.github.com> --- src/content/docs/radar/investigate/url-scanner.mdx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/content/docs/radar/investigate/url-scanner.mdx b/src/content/docs/radar/investigate/url-scanner.mdx index b1d572bc4e4b714..09e2204fb1f3090 100644 --- a/src/content/docs/radar/investigate/url-scanner.mdx +++ b/src/content/docs/radar/investigate/url-scanner.mdx @@ -18,7 +18,7 @@ Once you have the token, and you know your `account_id`, you are ready to make y ### Submit URL to scan -In order to submit a URL to scan, the only required information is the URL to be scanned in the `POST` request body: +To submit a URL to scan, the only required information is the URL to be scanned in the `POST` request body: ```bash curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/urlscanner/scan" \ @@ -112,11 +112,11 @@ Some examples of more specific properties include: The [Get URL Scan](/api/operations/urlscanner-get-scan) API endpoint documentation contains the full response schema. -In order to fetch the scan's [screenshots](/api/operations/urlscanner-get-scan-screenshot) or full [network log](/api/operations/urlscanner-get-scan-har), please visit the corresponding endpoints' documentation. +To fetch the scan's [screenshots](/api/operations/urlscanner-get-scan-screenshot) or full [network log](/api/operations/urlscanner-get-scan-har) refer to the corresponding endpoints' documentation. ### Search scans -`Public` scans can also be searched for. In order to search for scans to the hostname `google.com`, use the query parameter `page_hostname=google.com`: +`Public` scans can also be searched for. To search for scans to the hostname `google.com`, use the query parameter `page_hostname=google.com`: ```bash curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/urlscanner/scan?page_hostname=google.com" \ @@ -125,11 +125,15 @@ curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/urlscanner/scan Search results will also include your *own* `Unlisted` scans. -If, instead, you wanted to search for scans which made at least one request to the hostname `cdnjs.cloudflare.com` - e.g. sites that use a JavaScript library hosted at `cdnjs.cloudflare.com` - use the query parameter `hostname=cdnjs.cloudflare.com`: +If, instead, you wanted to search for scans that made at least one request to the hostname `cdnjs.cloudflare.com`, for example sites that use a JavaScript library hosted at `cdnjs.cloudflare.com`, use the query parameter `hostname=cdnjs.cloudflare.com`: ```bash curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/urlscanner/scan?hostname=cdnjs.cloudflare.com" \ --header "Authorization: Bearer " ``` -Check `https://developers.cloudflare.com/api/operations/urlscanner-search-scans` for the full list of available options. +You can also search for the hash in the URL Scanner API. + +Go to [Search URL scans](/api/operations/urlscanner-search-scans) in the API documentation for the full list of available options. + +Alternatively, you can search for the hash on the [Cloudflare dashboard](https://dash.cloudflare.com/) by selecting your account > **Security Center** > **Investigate** > Enter the hash > Select **Search**. \ No newline at end of file From fcd54462f3e5846d668495a10e5dd614aa851308 Mon Sep 17 00:00:00 2001 From: Pete Bacon Darwin Date: Thu, 17 Oct 2024 16:21:50 +0100 Subject: [PATCH 057/110] add Wrangler 'find_additional_modules' documentation (#17524) * add Wrangler 'find_additional_modules' documentation * Update src/content/docs/workers/wrangler/configuration.mdx Co-authored-by: hyperlint-ai[bot] <154288675+hyperlint-ai[bot]@users.noreply.github.com> * Update src/content/docs/workers/wrangler/bundling.mdx Co-authored-by: hyperlint-ai[bot] <154288675+hyperlint-ai[bot]@users.noreply.github.com> * style fixups * style fixups --------- Co-authored-by: hyperlint-ai[bot] <154288675+hyperlint-ai[bot]@users.noreply.github.com> --- .../docs/workers/wrangler/bundling.mdx | 43 +++++++++++++------ .../docs/workers/wrangler/configuration.mdx | 40 ++++++++++++++--- 2 files changed, 63 insertions(+), 20 deletions(-) diff --git a/src/content/docs/workers/wrangler/bundling.mdx b/src/content/docs/workers/wrangler/bundling.mdx index 11b9585e5630f93..0ff514d702a7034 100644 --- a/src/content/docs/workers/wrangler/bundling.mdx +++ b/src/content/docs/workers/wrangler/bundling.mdx @@ -3,24 +3,28 @@ pcx_content_type: configuration title: Bundling head: [] description: Review Wrangler's default bundling. - --- By default, Wrangler bundles your Worker code using [`esbuild`](https://esbuild.github.io/). This means that Wrangler has built-in support for importing modules from [npm](https://www.npmjs.com/) defined in your `package.json`. To review the exact code that Wrangler will upload to Cloudflare, run `npx wrangler deploy --dry-run --outdir dist`, which will show your Worker code after Wrangler's bundling. :::note -We recommend using Wrangler's inbuilt bundling, but we understand there are cases where you will need more flexibility. We have built an escape hatch in the form of [Custom Builds](/workers/wrangler/custom-builds/), which lets you run your own build before Wrangler's built-in one. +Wrangler's inbuilt bundling usually provides the best experience, but we understand there are cases where you will need more flexibility. +You can provide `rules` and set `find_additional_modules` in your configuration to control which files are included in the deployed Worker but not bundled into the entry-point file. +Furthermore, we have an escape hatch in the form of [Custom Builds](/workers/wrangler/custom-builds/), which lets you run your own build before Wrangler's built-in one. ::: -## Files which will not be bundled +## Including non-JavaScript modules -Bundling your Worker code takes multiple modules and bundles them into one. Sometimes, you might have modules that should not be inlined directly into the bundle. For example, instead of bundling a Wasm file into your JavaScript Worker, you would want to upload the Wasm file as a separate module that can be imported at runtime. Wrangler supports this for the following file types: +Bundling your Worker code takes multiple modules and bundles them into one file. +Sometimes, you might have modules that cannot be inlined directly into the bundle. +For example, instead of bundling a Wasm file into your JavaScript Worker, you would want to upload the Wasm file as a separate module that can be imported at runtime. +Wrangler supports this for the following file types: -* `.txt` -* `.html` -* `.bin` -* `.wasm` and `.wasm?module` +- `.txt` +- `.html` +- `.bin` +- `.wasm` and `.wasm?module` Refer to [Bundling configuration](/workers/wrangler/configuration/#bundling) to customize these file types. @@ -37,17 +41,30 @@ import wasm from "./example.wasm"; // Where `example.wasm` is a file in your loc const instance = await WebAssembly.instantiate(wasm); // Instantiate Wasm modules in global scope, not within the fetch() handler export default { - fetch(request) { - const result = instance.exports.exported_func(); - }, + fetch(request) { + const result = instance.exports.exported_func(); + }, }; ``` :::caution -Cloudflare Workers does not support `WebAssembly.instantiateStreaming()`. +Cloudflare Workers does not support `WebAssembly.instantiateStreaming()`. ::: +## Find additional modules + +By setting `find_additional_modules` to `true` in your configuration file, Wrangler will traverse the file tree below `base_dir`. +Any files that match the `rules` you define will also be included as unbundled, external modules in the deployed Worker. + +This approach is useful for supporting lazy loading of large or dynamically imported JavaScript files: + +- Normally, a large lazy-imported file (for example, `await import("./large-dep.mjs")`) would be bundled directly into your entrypoint, reducing the effectiveness of the lazy loading. + If matching rule is added to `rules`, then this file would only be loaded and executed at runtime when it is actually imported. +- Previously, variable based dynamic imports (for example, ``await import(`./lang/${language}.mjs`)``) would always fail at runtime because Wrangler had no way of knowing which modules to include in the upload. + Providing a rule that matches all these files, such as `{ type = "EsModule", globs = ["./land/**/*.mjs"], fallthrough = true }`, will ensure this module is available at runtime. +- "Partial bundling" is supported when `find_additional_modules` is `true`, and a source file matches one of the configured `rules`, since Wrangler will then treat it as "external" and not try to bundle it into the entry-point file. + ## Conditional exports Wrangler respects the [conditional `exports` field](https://nodejs.org/api/packages.html#conditional-exports) in `package.json`. This allows developers to implement isomorphic libraries that have different implementations depending on the JavaScript runtime they are running in. When bundling, Wrangler will try to load the [`workerd` key](https://runtime-keys.proposal.wintercg.org/#workerd). Refer to the Wrangler repository for [an example isomorphic package](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/isomorphic-random-example). @@ -56,7 +73,7 @@ Wrangler respects the [conditional `exports` field](https://nodejs.org/api/packa :::caution -Disabling bundling is not recommended in most scenarios. Use this option only when deploying code pre-processed by other tooling. +Disabling bundling is not recommended in most scenarios. Use this option only when deploying code pre-processed by other tooling. ::: If your build tooling already produces build artifacts suitable for direct deployment to Cloudflare, you can opt out of bundling by using the `--no-bundle` command line flag: `npx wrangler deploy --no-bundle`. If you opt out of bundling, Wrangler will not process your code and some features introduced by Wrangler bundling (for example minification, and polyfills injection) will not be available. diff --git a/src/content/docs/workers/wrangler/configuration.mdx b/src/content/docs/workers/wrangler/configuration.mdx index af261290c27b188..d5f9a6060e60da7 100644 --- a/src/content/docs/workers/wrangler/configuration.mdx +++ b/src/content/docs/workers/wrangler/configuration.mdx @@ -132,15 +132,16 @@ At a minimum, the `name`, `main` and `compatibility_date` keys are required to d - Skip internal build steps and directly deploy your Worker script. You must have a plain JavaScript Worker with no dependencies. -- `minify` +- `find_additional_modules` - - Minify the Worker script before uploading. + - If true then Wrangler will traverse the file tree below `base_dir`. + Any files that match `rules` will be included in the deployed Worker. + Defaults to true if `no_bundle` is true, otherwise false. + Can only be used with Module format Workers (not Service Worker format). -- `node_compat` +- `base_dir` - - Deprecated — Instead, [enable the `nodejs_compat_v2` compatibility flag](/workers/runtime-apis/nodejs/#enable-nodejs-with-workers), which enables both built-in Node.js APIs, and adds polyfills as necessary. - Setting `node_compat = true` will add polyfills for Node.js built-in modules and globals to your Worker's code, when bundled with Wrangler. - This is powered by `@esbuild-plugins/node-globals-polyfill` which in itself is powered by [rollup-plugin-node-polyfills](https://github.com/ionic-team/rollup-plugin-node-polyfills/). + - The directory in which module "rules" should be evaluated when including additional files (via `find_additional_modules`) into a Worker deployment. Defaults to the directory containing the `main` entry point of the Worker if not specified. - `preserve_file_names` @@ -148,6 +149,16 @@ At a minimum, the `name`, `main` and `compatibility_date` keys are required to d The default is to prepend filenames with a content hash. For example, `34de60b44167af5c5a709e62a4e20c4f18c9e3b6-favicon.ico`. +- `minify` + + - Minify the Worker script before uploading. + +- `node_compat` + + - Deprecated — Instead, [enable the `nodejs_compat_v2` compatibility flag](/workers/runtime-apis/nodejs/#enable-nodejs-with-workers), which enables both built-in Node.js APIs, and adds polyfills as necessary. + Setting `node_compat = true` will add polyfills for Node.js built-in modules and globals to your Worker's code, when bundled with Wrangler. + This is powered by `@esbuild-plugins/node-globals-polyfill` which in itself is powered by [rollup-plugin-node-polyfills](https://github.com/ionic-team/rollup-plugin-node-polyfills/). + - `logpush` - Enables Workers Trace Events Logpush for a Worker. Any scripts with this property will automatically get picked up by the Workers Logpush job configured for your account. Defaults to `false`. @@ -942,7 +953,13 @@ assets = { directory = "./public", binding = "ASSETS", html_handling = "force-tr ## Bundling -You can bundle modules into your Worker using the `rules` key, making these modules available to be imported when your Worker is invoked. The `rules` key will be an array of the below object. +Wrangler can operate in two modes: the default bundling mode and `--no-bundle` mode. +In bundling mode, Wrangler will traverse all the imports of your code and generate a single JavaScript "entry-point" file. +Imported source code is "inlined/bundled" into this entry-point file. + +It is also possible to include additional modules into your Worker, which are uploaded alongside the entry-point. +You specify which additional modules should be included into your Worker using the `rules` key, making these modules available to be imported when your Worker is invoked. +The `rules` key will be an array of the below object. - `type` @@ -978,6 +995,15 @@ export default { }; ``` +### Find additional modules + +Normally Wrangler will only include additional modules that are statically imported in your source code as in the example above. +By setting `find_additional_modules` to `true` in your configuration file, Wrangler will traverse the file tree below `base_dir`. +Any files that match `rules` will also be included as unbundled, external modules in the deployed Worker. +`base_dir` defaults to the directory containing your `main` entrypoint. + +See https://developers.cloudflare.com/workers/wrangler/bundling/ for more details and examples. + ## Local development settings You can configure various aspects of local development, such as the local protocol or port. From d5128a00c77f931e648f6dd768ae1a28ad5309c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:34:58 +0100 Subject: [PATCH 058/110] [Docs Site] Bump puppeteer from 23.5.3 to 23.6.0 (#17583) Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 23.5.3 to 23.6.0. - [Release notes](https://github.com/puppeteer/puppeteer/releases) - [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json) - [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v23.5.3...puppeteer-v23.6.0) --- updated-dependencies: - dependency-name: puppeteer dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 46 ++++++++++++++++------------------------------ package.json | 2 +- 2 files changed, 17 insertions(+), 31 deletions(-) diff --git a/package-lock.json b/package-lock.json index 119763ffe137dcd..865f9fb2e90b2d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -49,7 +49,7 @@ "patch-package": "^8.0.0", "prettier": "^3.3.3", "prettier-plugin-astro": "^0.14.1", - "puppeteer": "^23.5.3", + "puppeteer": "^23.6.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-textarea-autosize": "^8.5.4", @@ -3533,7 +3533,6 @@ "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.4.0.tgz", "integrity": "sha512-x8J1csfIygOwf6D6qUAZ0ASk3z63zPb7wkNeHRerCMh82qWKUrOgkuP005AJC8lDL6/evtXETGEJVcwykKT4/g==", "dev": true, - "license": "Apache-2.0", "dependencies": { "debug": "^4.3.6", "extract-zip": "^2.0.1", @@ -5310,7 +5309,6 @@ "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz", "integrity": "sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==", "dev": true, - "license": "Apache-2.0", "optional": true, "dependencies": { "bare-events": "^2.0.0", @@ -5323,7 +5321,6 @@ "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz", "integrity": "sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==", "dev": true, - "license": "Apache-2.0", "optional": true }, "node_modules/bare-path": { @@ -5331,7 +5328,6 @@ "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz", "integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==", "dev": true, - "license": "Apache-2.0", "optional": true, "dependencies": { "bare-os": "^2.1.0" @@ -5342,7 +5338,6 @@ "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.3.0.tgz", "integrity": "sha512-pVRWciewGUeCyKEuRxwv06M079r+fRjAQjBEK2P6OYGrO43O+Z0LrPZZEjlc4mB6C2RpZ9AxJ1s7NLEtOHO6eA==", "dev": true, - "license": "Apache-2.0", "optional": true, "dependencies": { "b4a": "^1.6.6", @@ -5895,7 +5890,6 @@ "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.8.0.tgz", "integrity": "sha512-uJydbGdTw0DEUjhoogGveneJVWX/9YuqkWePzMmkBYwtdAqo5d3J/ovNKFr+/2hWXYmYCr6it8mSSTIj6SS6Ug==", "dev": true, - "license": "Apache-2.0", "dependencies": { "mitt": "3.0.1", "urlpattern-polyfill": "10.0.0", @@ -7191,11 +7185,10 @@ } }, "node_modules/devtools-protocol": { - "version": "0.0.1342118", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1342118.tgz", - "integrity": "sha512-75fMas7PkYNDTmDyb6PRJCH7ILmHLp+BhrZGeMsa4bCh40DTxgCz2NRy5UDzII4C5KuD0oBMZ9vXKhEl6UD/3w==", - "dev": true, - "license": "BSD-3-Clause" + "version": "0.0.1354347", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1354347.tgz", + "integrity": "sha512-BlmkSqV0V84E2WnEnoPnwyix57rQxAM5SKJjf4TbYOCGLAWtz8CDH8RIaGOjPgPCXo2Mce3kxSY497OySidY3Q==", + "dev": true }, "node_modules/didyoumean": { "version": "1.2.2", @@ -13425,7 +13418,6 @@ "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", "dev": true, - "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "^4.3.4", @@ -13445,7 +13437,6 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, - "license": "ISC", "engines": { "node": ">=12" } @@ -13469,18 +13460,17 @@ } }, "node_modules/puppeteer": { - "version": "23.5.3", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-23.5.3.tgz", - "integrity": "sha512-FghmfBsr/UUpe48OiCg1gV3W4vVfQJKjQehbF07SjnQvEpWcvPTah1nykfGWdOQQ1ydJPIXcajzWN7fliCU3zw==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-23.6.0.tgz", + "integrity": "sha512-l+Fgo8SVFSd51STtq2crz8t1Y3VXowsuR4zfR64qDOn6oggz7YIZauWiNR4IJjczQ6nvFs3S4cgng55/nesxTQ==", "dev": true, "hasInstallScript": true, - "license": "Apache-2.0", "dependencies": { "@puppeteer/browsers": "2.4.0", "chromium-bidi": "0.8.0", "cosmiconfig": "^9.0.0", - "devtools-protocol": "0.0.1342118", - "puppeteer-core": "23.5.3", + "devtools-protocol": "0.0.1354347", + "puppeteer-core": "23.6.0", "typed-query-selector": "^2.12.0" }, "bin": { @@ -13491,16 +13481,15 @@ } }, "node_modules/puppeteer-core": { - "version": "23.5.3", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.5.3.tgz", - "integrity": "sha512-V58MZD/B3CwkYsqSEQlHKbavMJptF04fzhMdUpiCRCmUVhwZNwSGEPhaiZ1f8I3ABQUirg3VNhXVB6Z1ubHXtQ==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.6.0.tgz", + "integrity": "sha512-se1bhgUpR9C529SgHGr/eyT92mYyQPAhA2S9pGtGrVG2xob9qE6Pbp7TlqiSPlnnY1lINqhn6/67EwkdzOmKqQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@puppeteer/browsers": "2.4.0", "chromium-bidi": "0.8.0", "debug": "^4.3.7", - "devtools-protocol": "0.0.1342118", + "devtools-protocol": "0.0.1354347", "typed-query-selector": "^2.12.0", "ws": "^8.18.0" }, @@ -15395,7 +15384,6 @@ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz", "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==", "dev": true, - "license": "MIT", "dependencies": { "pump": "^3.0.0", "tar-stream": "^3.1.5" @@ -16171,8 +16159,7 @@ "version": "2.12.0", "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/typesafe-path": { "version": "0.2.2", @@ -16474,8 +16461,7 @@ "version": "10.0.0", "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/use-composed-ref": { "version": "1.3.0", diff --git a/package.json b/package.json index 6af1e5538849cae..4b2570c90f726d1 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "patch-package": "^8.0.0", "prettier": "^3.3.3", "prettier-plugin-astro": "^0.14.1", - "puppeteer": "^23.5.3", + "puppeteer": "^23.6.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-textarea-autosize": "^8.5.4", From fcfaf5ccce8a384f12858991e6e0b7a4d5bf97a5 Mon Sep 17 00:00:00 2001 From: Gabriel Massadas <5445926+G4brym@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:43:02 +0100 Subject: [PATCH 059/110] Fix AI Gateway logpush decryption tutorial (#17578) --- .../observability/logging/logpush.mdx | 115 +++++++++++++----- 1 file changed, 87 insertions(+), 28 deletions(-) diff --git a/src/content/docs/ai-gateway/observability/logging/logpush.mdx b/src/content/docs/ai-gateway/observability/logging/logpush.mdx index a25494c89e37d74..c4a89c2a5cb7886 100644 --- a/src/content/docs/ai-gateway/observability/logging/logpush.mdx +++ b/src/content/docs/ai-gateway/observability/logging/logpush.mdx @@ -13,7 +13,7 @@ You can toggle Logpush on and off in the [Cloudflare dashboard](https://dash.clo This guide explains how to set up Logpush for AI Gateway, generate an RSA key pair for encryption, and decrypt the logs once they are received. -You can store up to 10 million logs per gateway. If your limit is reached, new logs will stop being saved and will not be exported through Logpush. To continue saving and exporting logs, you must delete older logs to free up space for new logs. Logpush has a limit of 4 jobs. +You can store up to 10 million logs per gateway. If your limit is reached, new logs will stop being saved and will not be exported through Logpush. To continue saving and exporting logs, you must delete older logs to free up space for new logs. Logpush has a limit of 4 jobs. :::note[Note] @@ -21,6 +21,16 @@ To export logs using Logpush, you must have logs turned on for the gateway. ::: +## How logs are encrypted + +We employ a hybrid encryption model efficiency and security. Initially, an AES key is generated for each log. This AES key is what actually encrypts the bulk of your data, chosen for its speed and security in handling large datasets efficiently. + +Now, for securely sharing this AES key, we use RSA encryption. Here's what happens: the AES key, although lightweight, needs to be transmitted securely to the recipient. We encrypt this key with the recipient's RSA public key. This step leverages RSA's strength in secure key distribution, ensuring that only someone with the corresponding RSA private key can decrypt and use the AES key. + +Once encrypted, both the AES-encrypted data and the RSA-encrypted AES key are sent together. Upon arrival, the recipient's system uses the RSA private key to decrypt the AES key. With the AES key now accessible, it's straightforward to decrypt the main data payload. + +This method combines the best of both worlds: the efficiency of AES for data encryption with the secure key exchange capabilities of RSA, ensuring data integrity, confidentiality, and performance are all optimally maintained throughout the data lifecycle. + ## Setting up Logpush To configure Logpush for AI Gateway, follow these steps: @@ -57,7 +67,7 @@ node {file name} ## 2. Upload public key to gateway settings -Once you have generated the key pair, upload the public key to your AI Gateway settings. This key will be used to encrypt your logs. In order to enable Logpush, you will need logs enabled for that gateway. +Once you have generated the key pair, upload the public key to your AI Gateway settings. This key will be used to encrypt your logs. In order to enable Logpush, you will need logs enabled for that gateway. ## 3. Set up Logpush @@ -69,49 +79,98 @@ After configuring Logpush, logs will be sent encrypted using the public key you ## 5. Decrypt logs -To decrypt the encrypted log bodies and metadata from AI Gateway, you can use the following Node.js script: +To decrypt the encrypted log bodies and metadata from AI Gateway, download the logs to a folder, in this case its named `my_log.log.gz`. + +Then copy this javascript file into the same folder and place your private key in the top variable. ```js title="JavaScript" -const privateKey = `-----BEGIN RSA PRIVATE KEY----- +const privateKeyStr = `-----BEGIN RSA PRIVATE KEY----- .... -----END RSA PRIVATE KEY-----`; const crypto = require("crypto"); -const key = crypto.createPrivateKey(privateKey); +const privateKey = crypto.createPrivateKey(privateKeyStr); const fs = require("fs"); const zlib = require("zlib"); const readline = require("readline"); -function decryptBase64(key, string) { - const decryptedData = crypto.privateDecrypt( - { - key: key, - oaepHash: "SHA256", - }, - Buffer.from(string, "base64"), - ); +async function importAESGCMKey(keyBuffer) { + try { + // Ensure the key length is valid for AES + if ([128, 192, 256].includes(256)) { + return await crypto.webcrypto.subtle.importKey( + 'raw', + keyBuffer, + { + name: 'AES-GCM', + length: 256 + }, + true, // Whether the key is extractable (true in this case to allow for export later if needed) + ['encrypt', 'decrypt'] // Use for encryption and decryption + ); + } else { + throw new Error('Invalid AES key length. Must be 128, 12, or 256 bits.'); + } + } catch (error) { + console.error('Failed to import key:', error); + throw error; + } +} - return decryptedData.toString(); +async function decryptData(encryptedData, aesKey, iv) { + const decryptedData = await crypto.subtle.decrypt( + {name: "AES-GCM", iv: iv}, + aesKey, + encryptedData + ); + return new TextDecoder().decode(decryptedData); } -let lineReader = readline.createInterface({ - input: fs.createReadStream("my_log.log.gz").pipe(zlib.createGunzip()), -}); +async function decryptBase64(privateKey, data) { + if (data.key === undefined) { + return data + } + + const aesKeyBuf = crypto.privateDecrypt( + { + key: privateKey, + oaepHash: "SHA256", + }, + Buffer.from(data.key, "base64"), + ); + const aesKey = await importAESGCMKey(aesKeyBuf) + + const decryptedData = await decryptData( + Buffer.from(data.data, "base64"), + aesKey, + Buffer.from(data.iv, "base64") + ) + + return decryptedData.toString(); +} -lineReader.on("line", (line) => { - line = JSON.parse(line); +async function run() { + let lineReader = readline.createInterface({ + input: fs.createReadStream("my_log.log.gz").pipe(zlib.createGunzip()), + }); - const { Metadata, RequestBody, ResponseBody, ...remaining } = line; + lineReader.on("line", async (line) => { + line = JSON.parse(line); - console.log({ - ...remaining, - Metadata: decryptBase64(key, Metadata.data), - RequestBody: decryptBase64(key, RequestBody.data), - ResponseBody: decryptBase64(key, ResponseBody.data), - }); - console.log("--"); -}); + const {Metadata, RequestBody, ResponseBody, ...remaining} = line; + + console.log({ + ...remaining, + Metadata: await decryptBase64(privateKey, Metadata), + RequestBody: await decryptBase64(privateKey, RequestBody), + ResponseBody: await decryptBase64(privateKey, ResponseBody), + }); + console.log("--"); + }); +} + +run() ``` Run the script by executing the below code on your terminal. Replace `file name` with the name of your JavaScript file. From 7f27eeb98d308f18edbb25cf1a3d2aa94ee60c4b Mon Sep 17 00:00:00 2001 From: ranbel <101146722+ranbel@users.noreply.github.com> Date: Thu, 17 Oct 2024 12:20:48 -0400 Subject: [PATCH 060/110] [ZT] Fix DEX data retention period (#17600) * Update view-results.mdx * Update view-results.mdx --- .../docs/cloudflare-one/insights/dex/tests/view-results.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/content/docs/cloudflare-one/insights/dex/tests/view-results.mdx b/src/content/docs/cloudflare-one/insights/dex/tests/view-results.mdx index f1476c143abd45c..3803351db55cb9e 100644 --- a/src/content/docs/cloudflare-one/insights/dex/tests/view-results.mdx +++ b/src/content/docs/cloudflare-one/insights/dex/tests/view-results.mdx @@ -32,10 +32,10 @@ To view analytics on a per-device level: ## Data retention -Test results are stored for the following amount of time: +DEX stores test results for the following amount of time: | Zero Trust plan | Duration | | --------------- | -------- | | **Free** | 24 hours | -| **Standard** | 15 days | -| **Enterprise** | 15 days | +| **Standard** | 7 days | +| **Enterprise** | 7 days | From dfccbb37add576b7f2f280fe9fa4afeada880b7b Mon Sep 17 00:00:00 2001 From: Berck Nash Date: Thu, 17 Oct 2024 10:57:53 -0600 Subject: [PATCH 061/110] Remove R2 "Maximum object name length" limit because it's already listed more correctly as "object key length". (#17603) --- src/content/docs/r2/platform/limits.mdx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/content/docs/r2/platform/limits.mdx b/src/content/docs/r2/platform/limits.mdx index 8ff78faa48cb22b..803026114eff391 100644 --- a/src/content/docs/r2/platform/limits.mdx +++ b/src/content/docs/r2/platform/limits.mdx @@ -21,7 +21,6 @@ Managed public bucket access through an `r2.dev` subdomain is not intended for p | Object key length | 1,024 bytes | | Object metadata size | 8,192 bytes | | Object size | 5 TiB per object1 | -| Maximum object name length | 1024 bytes | | Maximum upload size3 | 5 GiB2 | | Maximum upload parts | 10,000 | | Maximum custom domains per bucket | 50 | From 0b2f46e024a6d3610d76a24b390da613b8020c43 Mon Sep 17 00:00:00 2001 From: angelampcosta <92738954+angelampcosta@users.noreply.github.com> Date: Thu, 17 Oct 2024 19:33:04 +0100 Subject: [PATCH 062/110] [Cache] Adds section for cache interaction with other products (#17590) * Adds section for cache interaction with other products * Update src/content/docs/cache/interaction-cloudflare-products/r2.mdx Co-authored-by: Jun Lee * Removes note --------- Co-authored-by: Jun Lee --- public/_redirects | 3 +- .../images/cache/workers-cache-flow.png | Bin 0 -> 826745 bytes .../cache/concepts/interact-with-workers.mdx | 17 ------- .../cache/concepts/retention-vs-freshness.mdx | 2 +- .../interaction-cloudflare-products/index.mdx | 15 ++++++ .../interaction-cloudflare-products/r2.mdx | 25 ++++++++++ .../waf-snippets.mdx | 35 ++++++++++++++ .../workers.mdx | 43 ++++++++++++++++++ 8 files changed, 121 insertions(+), 19 deletions(-) create mode 100644 src/assets/images/cache/workers-cache-flow.png delete mode 100644 src/content/docs/cache/concepts/interact-with-workers.mdx create mode 100644 src/content/docs/cache/interaction-cloudflare-products/index.mdx create mode 100644 src/content/docs/cache/interaction-cloudflare-products/r2.mdx create mode 100644 src/content/docs/cache/interaction-cloudflare-products/waf-snippets.mdx create mode 100644 src/content/docs/cache/interaction-cloudflare-products/workers.mdx diff --git a/public/_redirects b/public/_redirects index 0ae2f87e89930ea..9ba3e239b528a56 100644 --- a/public/_redirects +++ b/public/_redirects @@ -211,7 +211,8 @@ /cache/about/ /cache/concepts/ 301 /cache/concepts/enable-http2-to-origin/ /speed/optimization/protocol/http2-to-origin/ 301 /cache/how-to/enable-http2-to-origin/ /speed/optimization/protocol/http2-to-origin/ 301 -/cache/how-to/interact-with-workers/ /cache/concepts/interact-with-workers/ 301 +/cache/how-to/interact-with-workers/ /cache/interaction-cloudflare-products/workers/ 301 +/cache/concepts/interact-with-workers/ /cache/interaction-cloudflare-products/workers/ 301 /cache/best-practices/cache-behavior/ /cache/concepts/cache-behavior/ 301 /cache/best-practices/customize-cache/ /cache/concepts/customize-cache/ 301 /cache/best-practices/ /cache/concepts/ 301 diff --git a/src/assets/images/cache/workers-cache-flow.png b/src/assets/images/cache/workers-cache-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..b4484da612880648d1f98b1a4e52c2c7c8dfb3cb GIT binary patch literal 826745 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 N6qo(k$UkV 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 z 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 z%0D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 lKla!7GP1@?9Yg7s!#K!jHeUzSz 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 c8c#Y?@MEaXT5>w@)~_8#?x#gWsW9-T|#! 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∾^nKav=!zo1pR88YouRA(ea?Bxy7 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 literal 0 HcmV?d00001 diff --git a/src/content/docs/cache/concepts/interact-with-workers.mdx b/src/content/docs/cache/concepts/interact-with-workers.mdx deleted file mode 100644 index 1930abd233a184d..000000000000000 --- a/src/content/docs/cache/concepts/interact-with-workers.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Interact with Cache in Workers -pcx_content_type: concept - ---- - -You can use [Workers](/workers/) to customize cache behavior on Cloudflare's CDN. Because Cloudflare’s Workers can run before and after the cache, you can utilize Workers to modify assets after they are returned from the cache, to sign or personalize responses while reducing load on an origin, or reduce latency to the end user by serving assets from a nearby location. - -:::note -When using Workers and [Orange-to-Orange (O2O)](/cloudflare-for-platforms/cloudflare-for-saas/saas-customers/how-it-works/), some caveats and limitations may apply. -::: - -To determine how to cache a resource by setting TTLs, custom cache keys, and cache headers in a fetch request, refer to [Cache using fetch](/workers/examples/cache-using-fetch/). - -To use the Cache API to store responses in Cloudflare's cache, refer to [Using the Cache API](/workers/examples/cache-api/). - -To understand more about how Cache and Workers interact refer to [Cache in Workers](/workers/reference/how-the-cache-works/). diff --git a/src/content/docs/cache/concepts/retention-vs-freshness.mdx b/src/content/docs/cache/concepts/retention-vs-freshness.mdx index 3b23231c2288cef..6af03e3c22c3b4f 100644 --- a/src/content/docs/cache/concepts/retention-vs-freshness.mdx +++ b/src/content/docs/cache/concepts/retention-vs-freshness.mdx @@ -16,6 +16,6 @@ The time window that an object should be considered safe for a cache to use is d * Include [Origin Cache Control](/cache/concepts/cache-control/) or [CDN Cache Control](/cache/concepts/cache-control/) directives, like `max-age` or `s-maxage`, in the origin cache-control response header. -* Use [Cache Rules](/cache/how-to/cache-rules/) or [Workers](/cache/concepts/interact-with-workers/). +* Use [Cache Rules](/cache/how-to/cache-rules/) or [Workers](/cache/interaction-cloudflare-products/workers/). If an object in cache is no longer fresh and Cloudflare receives a request for it, we ask the origin to revalidate the object we have in cache. The Origin can then either send a new version of the object which will replace the old in cache, or tell us the object we have is valid and to refresh its TTL. This revalidation will happen any time an object’s retention period is greater than its freshness period. diff --git a/src/content/docs/cache/interaction-cloudflare-products/index.mdx b/src/content/docs/cache/interaction-cloudflare-products/index.mdx new file mode 100644 index 000000000000000..2f1435f7270fc5f --- /dev/null +++ b/src/content/docs/cache/interaction-cloudflare-products/index.mdx @@ -0,0 +1,15 @@ +--- +pcx_content_type: navigation +title: Interaction with Cloudflare products +sidebar: + order: 11 + group: + hideIndex: true + +--- + +import { DirectoryListing } from "~/components" + +Review the following topics to learn more about how Cache interacts with other Cloudflare products. + + \ No newline at end of file diff --git a/src/content/docs/cache/interaction-cloudflare-products/r2.mdx b/src/content/docs/cache/interaction-cloudflare-products/r2.mdx new file mode 100644 index 000000000000000..9b5f81c69611cb1 --- /dev/null +++ b/src/content/docs/cache/interaction-cloudflare-products/r2.mdx @@ -0,0 +1,25 @@ +--- +pcx_content_type: how-to +title: Enable cache in an R2 bucket +sidebar: + order: 2 +head: + - tag: title + content: Enable cache in an R2 bucket + +--- + +To enable edge caching for a [Cloudflare R2](/r2/) bucket, make sure your bucket is public and accessible by the Cache. This can be done by creating a [Custom Domain](/r2/buckets/public-buckets/#custom-domains). Follow these steps to set up a Custom Domain for your bucket: + +1. Go to **R2** and select your bucket. +2. On the bucket page, select **Settings**. +3. Under **Public access** > **Custom Domains**, select **Connect Domain**. +4. Enter the domain name you want to connect to and select **Continue**. +5. Review the new record that will be added to the DNS table and select **Connect Domain**. + +This will generate a publicly available CNAME in the format `[name].domain.com`. + +## Additional considerations + +- Apply access controls to your newly public bucket. Refer to [Control cache access with WAF and Snippets](/cache/interaction-cloudflare-products/waf-snippets/) for more information. +- Be aware of the [cacheable size limits](/cache/concepts/default-cache-behavior/#cacheable-size-limits) for files. diff --git a/src/content/docs/cache/interaction-cloudflare-products/waf-snippets.mdx b/src/content/docs/cache/interaction-cloudflare-products/waf-snippets.mdx new file mode 100644 index 000000000000000..b015804c624db1c --- /dev/null +++ b/src/content/docs/cache/interaction-cloudflare-products/waf-snippets.mdx @@ -0,0 +1,35 @@ +--- +pcx_content_type: how-to +title: Control cache access with WAF and Snippets +sidebar: + order: 3 +head: + - tag: title + content: Control cache access with WAF and Snippets + +--- + +To limit access to the public bucket created for caching content, you can use Cloudflare's [WAF](/waf/custom-rules/use-cases/configure-token-authentication/). The WAF provides an additional security layer to filter requests and ensure that only authorized traffic reaches your bucket. + +The following diagram illustrates the flow of a user's request through WAF, Cache, and R2. + +```mermaid +flowchart LR +accTitle: Connections with Cloudflare +A[User's request] --> B[WAF] --> C[Cache] --> D[R2] +``` + +
    + +The WAF product uses token authentication to either sign or authenticate a request. You can then use this in either Workers or Snippets to control access. + +## Presigned URLs + +You can presign URLs similar to [S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html), enabling you to share direct access to your content with a with an associated timeout. This approach can be implemented using a combination of Snippets, Rules, or Cloudflare Workers. + +For optimal performance, we recommend separating the creation and validation processes as follows: + +- [Snippets](/rules/snippets/examples/signing-requests/) for HMAC creation +- [Rules](/ruleset-engine/rules-language/functions/#hmac-validation) for HMAC validation + +In the Workers documentation, in the section [Signing requests](/workers/examples/signing-requests/), you can also find an example of how to verify a signed request using the HMAC. diff --git a/src/content/docs/cache/interaction-cloudflare-products/workers.mdx b/src/content/docs/cache/interaction-cloudflare-products/workers.mdx new file mode 100644 index 000000000000000..8dd8b678e58b961 --- /dev/null +++ b/src/content/docs/cache/interaction-cloudflare-products/workers.mdx @@ -0,0 +1,43 @@ +--- +pcx_content_type: how-to +title: Customize cache behavior with Workers +sidebar: + order: 1 +head: + - tag: title + content: Customize cache behavior with Workers + +--- + +You can use [Workers](/workers/) to customize cache behavior on Cloudflare's CDN. Cloudflare Workers provide flexibility in handling assets and responses by running both before and after the cache. A Worker can be configured to run before a request reaches the cache, allowing for modifications to the request, and it can also be used to modify assets once they are returned from the cache. + +The diagram below illustrates a common interaction flow between Workers and Cache. + +![Workers and cache flow example flow diagram.](~/assets/images/cache/workers-cache-flow.png) + +1. A User (a) Requests a URI, and this request is directed to a Worker. The Worker can then interact with the request, either requesting the content further upstream using (b) fetch() or sending a (f) Response back to the User. +2. If the content is cached, the Cache will send a (e) Response back to the Worker which can now interact with the response before sending a (f) Response back to the user. + +Here are a few examples of how Workers can be used to customize cache behavior: + +- **Modify Response**: Adjust or enhance content after it is retrieved from the cache, ensuring that responses are up-to-date or tailored to specific needs. + +- **Signed URLs**: Generate URLs that are valid for a specific duration (for example, minutes, hours, days) to control access and enhance security. + +- **Personalized Response**: Deliver personalized content based on user data while leveraging cached resources to reduce the load on the origin. + +- **Reduce Latency**: Serve content from a location close to the user, decreasing load times and improving the user experience. + +You can also use [Snippets](/rules/snippets/) as a low-cost alternative for simple modifications and logic, bypassing the need for full Worker scripts. These lightweight scripts enable quick adjustments and optimizations, offering an efficient way to enhance your Cloudflare setup without the complexity and overhead of more extensive code deployments. + +:::note +When using Workers and [Orange-to-Orange (O2O)](/cloudflare-for-platforms/cloudflare-for-saas/saas-customers/how-it-works/), some caveats and limitations may apply. +::: + +## Cache features in Workers + +- **fetch()**: Allows interaction with Cloudflare's Cache and Tiered Cache, providing control over how requests are handled. To optimize caching behavior, you can set TTLs, define custom cache keys, and configure cache headers directly within a fetch request. For more details on these configurations, refer to [Cache using fetch](/workers/examples/cache-using-fetch/). + +- **Cache API**: Enables storing and retrieving responses from Cloudflare's cache, limited to the cache in the local data center and excluding content stored in the Tiered Cache. To use the Cache API to store responses in Cloudflare's cache, refer to [Using the Cache API](/workers/examples/cache-api/). + +To understand more about how Cache and Workers interact refer to [Cache in Workers](/workers/reference/how-the-cache-works/). \ No newline at end of file From dbe510b546ce36fea895e5507004cb2eae0e7eee Mon Sep 17 00:00:00 2001 From: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> Date: Thu, 17 Oct 2024 19:37:04 +0100 Subject: [PATCH 063/110] [Rules] Add section on non-ASCII header values (#17605) --- .../docs/rules/transform/managed-transforms/reference.mdx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/content/docs/rules/transform/managed-transforms/reference.mdx b/src/content/docs/rules/transform/managed-transforms/reference.mdx index 4d09d1503920cde..5509d5b9e5f566f 100644 --- a/src/content/docs/rules/transform/managed-transforms/reference.mdx +++ b/src/content/docs/rules/transform/managed-transforms/reference.mdx @@ -76,6 +76,12 @@ Adds HTTP headers with location information for the visitor's IP address to the Turning on [IP geolocation](/network/ip-geolocation/) will send a `cf-ipcountry` HTTP header to your origin server even when **Add visitor location headers** is turned off. ::: +#### Encoding of non-ASCII header values + +Cloudflare always converts non-ASCII characters to UTF-8 (using hexadecimal character representation) in HTTP request and response header values. This applies to location headers added by the **Add visitor location headers** managed transform. + +For example, the header value `São Paulo` would be encoded as `S\u00c3\u00a3o Paulo`. + ### Add "True-Client-IP" header :::note From 3695f407e68557437e09ef7a6228f7d73f12b953 Mon Sep 17 00:00:00 2001 From: Matt Silverlock Date: Thu, 17 Oct 2024 19:51:44 +0100 Subject: [PATCH 064/110] fix: baselime URL 404 to /workers/observability/logs/workers-logs/ (#17609) * fix: baselime URL 404 to /workers/observability/logs/workers-logs/ cc @boristane * Update public/_redirects --- public/_redirects | 1 + 1 file changed, 1 insertion(+) diff --git a/public/_redirects b/public/_redirects index 9ba3e239b528a56..2c505e1c051473b 100644 --- a/public/_redirects +++ b/public/_redirects @@ -1499,6 +1499,7 @@ /workers-ai/platform/storage-options/ /workers/platform/storage-options/ 301 /workers-ai/configuration/workers-ai-sdk/ /workers-ai/configuration/bindings/ 301 /workers-ai/tutorials/creating-a-recommendation-api/ /developer-spotlight/tutorials/creating-a-recommendation-api/ 301 +/workers/observability/baselime-integration/ /workers/observability/integrations/baselime-integration/ 301 # workers KV /kv/platform/environments/ /kv/reference/environments/ 301 From 7afac1c5580c86c03a94a4bebe424271b39b1738 Mon Sep 17 00:00:00 2001 From: Olivier Date: Thu, 17 Oct 2024 23:13:57 +0200 Subject: [PATCH 065/110] Add Redirect Rule as a case for Not Scored (#17534) * Add Redirect Rule as a case for Not Scored Cloudflare employee here. The statement may not be in the proper documentation style. I wanted to mention it due to a recent customer troubleshooting. * Apply suggestions from code review Co-authored-by: hyperlint-ai[bot] <154288675+hyperlint-ai[bot]@users.noreply.github.com> * Update src/content/docs/bots/concepts/bot-score/index.mdx --------- Co-authored-by: Claire W <78226508+crwaters16@users.noreply.github.com> Co-authored-by: hyperlint-ai[bot] <154288675+hyperlint-ai[bot]@users.noreply.github.com> --- src/content/docs/bots/concepts/bot-score/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/bots/concepts/bot-score/index.mdx b/src/content/docs/bots/concepts/bot-score/index.mdx index 75a8483de1117c9..e2225c48ab98e95 100644 --- a/src/content/docs/bots/concepts/bot-score/index.mdx +++ b/src/content/docs/bots/concepts/bot-score/index.mdx @@ -25,7 +25,7 @@ Customers with a Pro plan or higher can automatically see bot traffic divided in :::note -Bot scores are not computed for requests to paths that are handled by Cloudflare and will never be blocked or forwarded to the origin. +Bot scores are not computed for requests to paths that are handled by Cloudflare and will never be blocked or forwarded to the origin. Note that some features that are enabled before Bot Management, such as Redirect Rules, may result in requests not being scored. ::: ## How Cloudflare generates bot scores From a5cec59a462624490d17e9977f3b1b51d2806256 Mon Sep 17 00:00:00 2001 From: Max Phillips Date: Thu, 17 Oct 2024 16:14:42 -0500 Subject: [PATCH 066/110] [Gateway] Per-account certs (#16467) Co-authored-by: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> Co-authored-by: hyperlint-ai[bot] <154288675+hyperlint-ai[bot]@users.noreply.github.com> --- public/_redirects | 1 + .../agentless/dns/dns-over-https.mdx | 159 +++++----- .../custom-certificate.mdx | 155 ++++++---- .../warp/user-side-certificates/index.mdx | 54 +++- .../install-cloudflare-cert.mdx | 40 ++- ...figuring-block-page.mdx => block-page.mdx} | 10 +- .../policies/gateway/dns-policies/index.mdx | 290 +++++++++--------- .../dns-policies/test-dns-filtering.mdx | 4 +- .../policies/gateway/http-policies/index.mdx | 2 +- .../policies/gateway/initial-setup/dns.mdx | 2 +- .../gateway/initial-setup/network.mdx | 2 +- .../build-dns-policies/test-policy.mdx | 6 +- .../security/securing-data-in-transit.mdx | 9 +- .../cloudflare-one/access/block-page.mdx | 17 +- .../gateway/customize-block-page.mdx | 13 +- .../cloudflare-one/upload-mtls-cert.mdx | 2 +- .../account-permissions-table.mdx | 4 +- .../zero-trust/device-profiles.mdx | 2 +- 18 files changed, 425 insertions(+), 347 deletions(-) rename src/content/docs/cloudflare-one/policies/gateway/{configuring-block-page.mdx => block-page.mdx} (95%) diff --git a/public/_redirects b/public/_redirects index 2c505e1c051473b..24cf8de17300c36 100644 --- a/public/_redirects +++ b/public/_redirects @@ -1657,6 +1657,7 @@ /cloudflare-one/identity/service-auth/service-tokens/ /cloudflare-one/identity/service-tokens/ 301 /cloudflare-one/identity/users/short-lived-certificates/ /cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/ 301 /cloudflare-one/identity/users/validating-json/ /cloudflare-one/identity/authorization-cookie/validating-json/ 301 +/cloudflare-one/policies/gateway/configuring-block-page/ /cloudflare-one/policies/gateway/block-page/ 301 /cloudflare-one/policies/lists/ /cloudflare-one/policies/gateway/lists 301 /cloudflare-one/policies/gateway/dns-policies/scheduled-dns-policies/ /cloudflare-one/policies/gateway/timed-policies/#scheduled-policies 301 /cloudflare-one/policies/zero-trust/ /cloudflare-one/policies/access/ 301 diff --git a/src/content/docs/cloudflare-one/connections/connect-devices/agentless/dns/dns-over-https.mdx b/src/content/docs/cloudflare-one/connections/connect-devices/agentless/dns/dns-over-https.mdx index b04daa118eb0ad1..3b1b82d07142ff4 100644 --- a/src/content/docs/cloudflare-one/connections/connect-devices/agentless/dns/dns-over-https.mdx +++ b/src/content/docs/cloudflare-one/connections/connect-devices/agentless/dns/dns-over-https.mdx @@ -3,10 +3,9 @@ pcx_content_type: how-to title: DNS over HTTPS (DoH) sidebar: order: 3 - --- -import { Details, GlossaryTooltip, Render } from "~/components" +import { Details, GlossaryTooltip, Render } from "~/components"; With Cloudflare Gateway, you can filter DNS over HTTPS (DoH) requests by [DNS location](/cloudflare-one/connections/connect-devices/agentless/dns/locations/) or by user without needing to install the WARP client on your devices. @@ -34,7 +33,6 @@ Your DNS queries will now be sent to Gateway for filtering. To filter these requ ### Configure operating system for DoH -

    1. Obtain the `A` and `AAAA` record values associated with your location's DoH endpoint. @@ -71,20 +69,18 @@ Your DNS queries will now be sent to Gateway for filtering. To filter these requ 4. Under **DNS server assignment**, select **Edit**. -5. In the drop-down menu, choose *Manual*. +5. In the drop-down menu, choose _Manual_. 6. Enable **IPv4**. -7. In **Preferred DNS** and **Alternate DNS**, enter the IPv4 addresses from your `A` record command. Set **DNS over HTTPS** to *On (automatic template)*. +7. In **Preferred DNS** and **Alternate DNS**, enter the IPv4 addresses from your `A` record command. Set **DNS over HTTPS** to _On (automatic template)_. 8. Enable **IPv6**. -9. In **Preferred DNS** and **Alternate DNS**, enter the IPv6 addresses from your `AAAA` record command. Set **DNS over HTTPS** to *On (automatic template)*. - +9. In **Preferred DNS** and **Alternate DNS**, enter the IPv6 addresses from your `AAAA` record command. Set **DNS over HTTPS** to _On (automatic template)_.
    -
    Obtain the `A` and `AAAA` record values associated with your location's DoH endpoint. @@ -107,7 +103,6 @@ nslookup -type=AAAA .cloudflare-gateway.com For more information, refer to [Microsoft's DoH guide](https://learn.microsoft.com/en-us/windows-server/networking/dns/doh-client-support) for Windows Server 2022 and newer. -
    ## Filter DoH requests by user @@ -128,27 +123,25 @@ curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/access/service_ Save the service token's `client_id`, `client_secret`, and `id`. -
    ```json null {3,4,7} { - "result": { - "client_id": "88bf3b6d86161464f6509f7219099e57.access", - "client_secret": "bdd31cbc4dec990953e39163fbbb194c93313ca9f0a6e420346af9d326b1d2a5", - "created_at": "2022-06-09T01:59:17Z", - "expires_at": "2023-06-09T01:59:17Z", - "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", - "name": "ACME Corporation service token", - "updated_at": "2022-06-09T01:59:17Z" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "client_id": "88bf3b6d86161464f6509f7219099e57.access", + "client_secret": "bdd31cbc4dec990953e39163fbbb194c93313ca9f0a6e420346af9d326b1d2a5", + "created_at": "2022-06-09T01:59:17Z", + "expires_at": "2023-06-09T01:59:17Z", + "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", + "name": "ACME Corporation service token", + "updated_at": "2022-06-09T01:59:17Z" + }, + "success": true, + "errors": [], + "messages": [] } ``` -
    ### 2. Enable DoH functionality for the service token @@ -162,27 +155,25 @@ curl --request PUT \ If you get an `access.api.error.service_token_not_found` error, check that `{service_token_id}` is the value of `id` and not `client_id`. -
    ```json { - "result": { - "client_id": "88bf3b6d86161464f6509f7219099e57.access", - "created_at": "2022-06-09T01:59:17Z", - "expires_at": "2023-06-09T01:59:17Z", - "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", - "name": "ACME Corporation service token", - "updated_at": "2022-06-09T01:59:17Z", - "duration": "8760h" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "client_id": "88bf3b6d86161464f6509f7219099e57.access", + "created_at": "2022-06-09T01:59:17Z", + "expires_at": "2023-06-09T01:59:17Z", + "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", + "name": "ACME Corporation service token", + "updated_at": "2022-06-09T01:59:17Z", + "duration": "8760h" + }, + "success": true, + "errors": [], + "messages": [] } ``` -
    ### 3. Create a user @@ -203,43 +194,39 @@ curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/access/users" \ Save the user's `id` returned in the response. -
    ```json null {3} { - "result": { - "id": "54d425de-7a78-4186-9975-d43c88ee7899", - "created_at": "2022-03-16T21:18:39.93598Z", - "updated_at": "2022-05-17T23:50:39.598345Z", - "uid": "54d425de-7a78-4186-9975-d43c88ee7899", - "name": "John Doe", - "email": "jdoe@acme.com", - "custom": { - "groups": [ - { - "email": "finance@acme.com", - "id": "02fk6b3p3majl10", - "name": "Finance" - } - ] - } - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "id": "54d425de-7a78-4186-9975-d43c88ee7899", + "created_at": "2022-03-16T21:18:39.93598Z", + "updated_at": "2022-05-17T23:50:39.598345Z", + "uid": "54d425de-7a78-4186-9975-d43c88ee7899", + "name": "John Doe", + "email": "jdoe@acme.com", + "custom": { + "groups": [ + { + "email": "finance@acme.com", + "id": "02fk6b3p3majl10", + "name": "Finance" + } + ] + } + }, + "success": true, + "errors": [], + "messages": [] } ``` -
    :::note - Steps 1-3 above only need to be completed once, while Steps 4-5 below would occur during normal operation. - ::: ### 4. Generate a DoH token for the user @@ -254,14 +241,14 @@ curl "https://.cloudflareaccess.com/cdn-cgi/access/doh-token?account- The response contains a unique DoH token associated with the user. This token expires in 24 hours. We recommend setting up a refresh flow for the DoH token instead of generating a new one for every DoH query. -
    ```json -{"token":"y2khbGciOiJSUzI1NiIsImtpZCI6ImJlZjVkYjg4ZTEwMjk3ZDEwNzhkMmEyYjE0MjMxZTljYTQwMjQ2NjAwOTQzNmJhOTQwOGJkODY3ZmI4OWFiOGQifQ.eyJ0eXBlIjoiZG9oIiwiYXVkIjoiY2xvdWRmbGFyZS1nYXRld2F5LmNvbSIsImlhdCI6MTY1NDc1MTg3NSwiZXhwIjoxNjU0ODM4Mjc1LCJhY2NvdW50LWlkIjoiMTA4MDM0OGIyZGYzYmQwN2QxZmI1MjM3Y2Q1ZDU5M2EiLCJ1c2VyLWlkIjoiNTRkNDI1ZGUtN2E3OC00MTg2LTk5NzUtZDQzYzg4ZWU3ODk5In0.I5p4WsH2dPhQ8vwy84zF05PsoBHCsUSXAaMpNhEH36oFZ3tXcs9ksLz7OzpZ_x3HxUfO3n57LlpAF1VehaBt2i94XCkvSgtHpYcwd_qZydLp-BGtcyfU1LbdXQC3m6zxKcIWu5VySi8I-J25UYlpyJhYgZ4DQUZIpqbSSt6WcVRKvA7OBa7xjkTux4OcqWAViO_ZS-GLwl-fqhvolmiwk37seBD3YuV1zG06VeWXfrMkZ5MbhooHD1DZDBHOZpTtmN8MbeKeI4tlY1mb_O3-jE-um6F9Hrl4NQm89MKFzsum-_Rywi5m4PTSlDza7fjdJs7RzFgJd3VWgzG-jgyQKw"} +{ + "token": "y2khbGciOiJSUzI1NiIsImtpZCI6ImJlZjVkYjg4ZTEwMjk3ZDEwNzhkMmEyYjE0MjMxZTljYTQwMjQ2NjAwOTQzNmJhOTQwOGJkODY3ZmI4OWFiOGQifQ.eyJ0eXBlIjoiZG9oIiwiYXVkIjoiY2xvdWRmbGFyZS1nYXRld2F5LmNvbSIsImlhdCI6MTY1NDc1MTg3NSwiZXhwIjoxNjU0ODM4Mjc1LCJhY2NvdW50LWlkIjoiMTA4MDM0OGIyZGYzYmQwN2QxZmI1MjM3Y2Q1ZDU5M2EiLCJ1c2VyLWlkIjoiNTRkNDI1ZGUtN2E3OC00MTg2LTk5NzUtZDQzYzg4ZWU3ODk5In0.I5p4WsH2dPhQ8vwy84zF05PsoBHCsUSXAaMpNhEH36oFZ3tXcs9ksLz7OzpZ_x3HxUfO3n57LlpAF1VehaBt2i94XCkvSgtHpYcwd_qZydLp-BGtcyfU1LbdXQC3m6zxKcIWu5VySi8I-J25UYlpyJhYgZ4DQUZIpqbSSt6WcVRKvA7OBa7xjkTux4OcqWAViO_ZS-GLwl-fqhvolmiwk37seBD3YuV1zG06VeWXfrMkZ5MbhooHD1DZDBHOZpTtmN8MbeKeI4tlY1mb_O3-jE-um6F9Hrl4NQm89MKFzsum-_Rywi5m4PTSlDza7fjdJs7RzFgJd3VWgzG-jgyQKw" +} ``` -
    ### 5. Send an authenticated DoH query @@ -274,37 +261,35 @@ curl --silent "https://.cloudflare-gateway.com/dns-query?name=exampl --header "CF-Authorization: " | jq ``` -If the site is blocked and you have enabled [**Display block page**](/cloudflare-one/policies/gateway/configuring-block-page/#turn-on-the-block-page) for the policy, the query will return `162.159.36.12` (the IP address of the Gateway block page). If the block page is disabled, the response will be `0.0.0.0`. - +If the site is blocked and you have enabled [**Display block page**](/cloudflare-one/policies/gateway/block-page/#turn-on-the-block-page) for the policy, the query will return `162.159.36.12` (the IP address of the Gateway block page). If the block page is disabled, the response will be `0.0.0.0`.
    ```json { - "Status": 0, - "TC": false, - "RD": true, - "RA": true, - "AD": false, - "CD": false, - "Question": [ - { - "name": "example.com", - "type": 1 - } - ], - "Answer": [ - { - "name": "example.com", - "type": 1, - "TTL": 60, - "data": "162.159.36.12" - } - ] + "Status": 0, + "TC": false, + "RD": true, + "RA": true, + "AD": false, + "CD": false, + "Question": [ + { + "name": "example.com", + "type": 1 + } + ], + "Answer": [ + { + "name": "example.com", + "type": 1, + "TTL": 60, + "data": "162.159.36.12" + } + ] } ``` -
    You can verify that the request was associated with the correct user email by checking your [Gateway DNS logs](/cloudflare-one/insights/logs/gateway-logs/). To filter these requests, build a DNS policy using any of the Gateway [identity-based selectors](/cloudflare-one/policies/gateway/identity-selectors/). diff --git a/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/custom-certificate.mdx b/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/custom-certificate.mdx index 5aeb5ff2374cd9d..c7787e58cc1c8ca 100644 --- a/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/custom-certificate.mdx +++ b/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/custom-certificate.mdx @@ -8,17 +8,15 @@ description: Configure WARP to use a custom root certificate instead of the Cloudflare certificate. --- -import { Render } from "~/components"; +import { Render, Tabs, TabItem } from "~/components"; :::note - Only available on Enterprise plans. ::: -Enterprise customers who do not wish to install the [Cloudflare certificate](/cloudflare-one/connections/connect-devices/warp/user-side-certificates/install-cloudflare-cert/) have the option to upload their own root certificate to Cloudflare. This feature is sometimes referred to as Bring Your Own Public Key Infrastructure (BYOPKI). Gateway will use your uploaded certificate to encrypt all sessions between the end user and Gateway, enabling all HTTPS inspection features that previously required the Cloudflare certificate. You can upload multiple certificates to your account, but only one can be active at any given time. You also need to upload a private key to intercept domains with JIT certificates and to enable the [block page](/cloudflare-one/policies/gateway/configuring-block-page/). +Enterprise customers who do not wish to install the [Cloudflare certificate](/cloudflare-one/connections/connect-devices/warp/user-side-certificates/install-cloudflare-cert/) have the option to upload their own root certificate to Cloudflare. This feature is sometimes referred to as Bring Your Own Public Key Infrastructure (BYOPKI). Gateway will use your uploaded certificate to encrypt all sessions between the end user and Gateway, enabling all HTTPS inspection features that previously required the Cloudflare certificate. You can upload multiple certificates to your account, but only one can be active at any given time. You also need to upload a private key to intercept domains with JIT certificates and to enable the [block page](/cloudflare-one/policies/gateway/block-page/). :::caution - Custom certificates are limited to use between your users and the Gateway proxy. Connections between Gateway and the origin server will use the Cloudflare certificate. ::: @@ -61,65 +59,106 @@ openssl x509 -in .pem -text ## Deploy a custom root certificate -1. Verify that the certificate is installed on your devices. - -2. - -3. Enable the certificate in Gateway with its UUID. - - ```bash null {10} - curl --request PATCH \ - "https://api.cloudflare.com/client/v4/accounts/{account_id}/gateway/configuration" \ - --header "X-Auth-Email: " \ - --header "X-Auth-Key: " \ - --header "Content-Type: application/json" \ - --data '{ - "settings": { - "custom_certificate": { - "enabled": true, - "id": "2458ce5a-0c35-4c7f-82c7-8e9487d3ff60" - } - } - }' - ``` - - The response will show the current status of the certificate: - - ```json null {13} - { - "success": true, - "errors": [], - "messages": [], - "result": { - "settings": { - "antivirus": {...}, - "block_page": {...}, - "custom_certificate": - { - "enabled": true, - "id": "2458ce5a-0c35-4c7f-82c7-8e9487d3ff60", - "binding_status": "pending_deployment", - "qs_pack_id": "50a78g31-a5b5-4k58d-a6ed-b0ac17da9k05" - }, - "tls_decrypt": {...}, - "activity_log": {...}, - "browser_isolation": {...}, - "fips": {...}, - }, - }, - "created_at": "2014-01-01T05:20:00.12345Z", - "updated_at": "2014-01-01T05:20:00.12345Z" - } - ``` - -Once `binding_status` changes to `active`, Gateway will sign your traffic using the custom root certificate and private key. If you disable the custom certificate, Gateway will revert to the default Cloudflare certificate. + + + + 1. In [Zero Trust](https://one.dash.cloudflare.com/), go to **Settings** > **Resources**. + 2. In **Certificates**, select **Manage**. + 3. Select **Upload certificate**. + 4. Enter the private key and SSL certificate you generated or select **Paste certificate from file** to upload them from a file. + 5. Select **Generate certificate**. + + You can now [use the generated custom root certificate](#use-a-custom-root-certificate) for inspection. + + + + + 1. Verify that the certificate is installed on your devices. + 2. + 3. Deploy the certificate in Gateway using the certificate's UUID with the [Patch Zero Trust account configuration endpoint](/api/operations/zero-trust-accounts-patch-zero-trust-account-configuration). + ```bash {10} + curl --request PATCH \ + "https://api.cloudflare.com/client/v4/accounts/{account_id}/gateway/configuration" \ + --header "X-Auth-Email: " \ + --header "X-Auth-Key: " \ + --header "Content-Type: application/json" \ + --data '{ + "settings": { + "custom_certificate": { + "enabled": true, + "id": "2458ce5a-0c35-4c7f-82c7-8e9487d3ff60" + } + } + }' + ``` + The response will return the pending status of the certificate. For example: + ```json {13} + { + "success": true, + "errors": [], + "messages": [], + "result": { + "settings": { + "antivirus": {}, + "block_page": {}, + "custom_certificate": + { + "enabled": true, + "id": "2458ce5a-0c35-4c7f-82c7-8e9487d3ff60", + "binding_status": "pending_deployment", + "qs_pack_id": "50a78g31-a5b5-4k58d-a6ed-b0ac17da9k05" + }, + "tls_decrypt": {}, + "activity_log": {}, + "browser_isolation": {}, + "fips": {}, + }, + }, + "created_at": "2014-01-01T05:20:00.12345Z", + "updated_at": "2014-01-01T05:20:00.12345Z" + } + ``` + 4. Activate the certificate for use in inspection with the [Activate a Zero Trust certificate endpoint](/api/operations/zero-trust-certificates-activate-zero-trust-certificate). + ```bash + curl --request POST \ + "https://api.cloudflare.com/client/v4/accounts/{account_id}/gateway/certificates/{certificate_id}/activate" \ + --header "X-Auth-Email: " \ + --header "X-Auth-Key: " + ``` + The response will return the certificate and its current deployment status. For example: + ```json {6,12} + { + "errors": [], + "messages": [], + "success": true, + "result": { + "binding_status": "active", + "certificate": "-----BEGIN CERTIFICATE-----\\nMIIDmDCCAoCgAwIBAgIUKTOAZNjcXVZRj4oQt0SHsl1c1vMwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVVMxFjAUBgNVBAgMDVNhbiBGcmFuY2lzY28xEzARBgNVBAcMCkNhbGlmb3JuaWExFTATBgNVBAoMDEV4YW1wbGUgSW5jLjAgFw0yMjExMjIxNjU5NDdaGA8yMTIyMTAyOTE2NTk0N1owUTELMAkGA1UEBhMCVVMxFjAUBgNVBAgMDVNhbiBGcmFuY2lzY28xEzARBgNVBAcMCkNhbGlmb3JuaWExFTATBgNVBAoMDEV4YW1wbGUgSW5jLjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMRcORwgJFTdcG/2GKI+cFYiOBNDKjCZUXEOvXWY42BkH9wxiMT869CO+enA1w5pIrXow6kCM1sQspHHaVmJUlotEMJxyoLFfA/8Kt1EKFyobOjuZs2SwyVyJ2sStvQuUQEosULZCNGZEqoH5g6zhMPxaxm7ZLrrsDZ9maNGVqo7EWLWHrZ57Q/5MtTrbxQL+eXjUmJ9K3kS+3uEwMdqR6Z3BluU1ivanpPc1CN2GNhdO0/hSY4YkGEnuLsqJyDd3cIiB1MxuCBJ4ZaqOd2viV1WcP3oU3dxVPm4MWyfYIldMWB14FahScxLhWdRnM9YZ/i9IFcLypXsuz7DjrJPtPUCAwEAAaNmMGQwHQYDVR0OBBYEFP5JzLUawNF+c3AXsYTEWHh7z2czMB8GA1UdIwQYMBaAFP5JzLUawNF+c3AXsYTEWHh7z2czMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEBMA0GCSqGSIb3DQEBCwUAA4IBAQBc+Be7NDhpE09y7hLPZGRPl1cSKBw4RI0XIv6rlbSTFs5EebpTGjhx/whNxwEZhB9HZ7111Oa1YlT8xkI9DshB78mjAHCKBAJ76moK8tkG0aqdYpJ4ZcJTVBB7l98Rvgc7zfTii7WemTy72deBbSeiEtXavm4EF0mWjHhQ5Nxpnp00Bqn5g1x8CyTDypgmugnep+xG+iFzNmTdsz7WI9T/7kDMXqB7M/FPWBORyS98OJqNDswCLF8bIZYwUBEe+bRHFomoShMzaC3tvim7WCb16noDkSTMlfKO4pnvKhpcVdSgwcruATV7y+W+Lvmz2OT/Gui4JhqeoTewsxndhDDE\\n-----END CERTIFICATE-----\\n", + "created_at": "2014-01-01T05:20:00.12345Z", + "expires_on": "2014-01-01T05:20:00.12345Z", + "fingerprint": "E9:19:49:AA:DD:D8:1E:C1:20:2A:D8:22:BF:A5:F8:FC:1A:F7:10:9F:C7:5B:69:AB:0:31:91:8B:61:B4:BF:1C", + "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", + "in_use": true, + "issuer_org": "Example Inc.", + "issuer_raw": "O=Example Inc.,L=California,ST=San Francisco,C=US", + "type": "gateway_managed", + "updated_at": "2014-01-01T05:20:00.12345Z", + "uploaded_on": "2014-01-01T05:20:00.12345Z" + } + } + ``` + Once `binding_status` changes to `active`, Gateway will sign your traffic using the custom root certificate and private key. If you disable the custom certificate, Gateway will revert to the default Cloudflare certificate generated for your Zero Trust account. + + :::caution[Private key visibility] - When you upload a private key to Zero Trust, Cloudflare encrypts the key and stores it at rest. Only your delegated apps have the necessary decryption keys to decrypt the private key. You will not be able to retrieve the private key after upload. - ::: +## Use a custom root certificate + +To use a custom root certificate you generated and uploaded to Cloudflare, refer to [Activate a root certificate](/cloudflare-one/connections/connect-devices/warp/user-side-certificates/#activate-a-root-certificate). + ## Troubleshoot HTTP errors If Gateway returns an **HTTP Response Code: 526** after deploying a custom certificate, you can [troubleshoot errors with our FAQ](/cloudflare-one/faq/troubleshooting/#i-see-error-526-when-browsing-to-a-website). diff --git a/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/index.mdx b/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/index.mdx index cdae4700c0316c7..1aa4c50546a1efc 100644 --- a/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/index.mdx +++ b/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/index.mdx @@ -3,11 +3,57 @@ pcx_content_type: navigation title: User-side certificates sidebar: order: 4 - --- -import { DirectoryListing } from "~/components" - Advanced security features such as [HTTPS traffic inspection](/cloudflare-one/policies/gateway/http-policies/tls-decryption/), [Data Loss Prevention](/cloudflare-one/policies/data-loss-prevention/), [anti-virus scanning](/cloudflare-one/policies/gateway/http-policies/antivirus-scanning/), [Access for Infrastructure](/cloudflare-one/applications/non-http/infrastructure-apps/), and [Browser Isolation](/cloudflare-one/policies/browser-isolation/) require users to install and trust a root certificate on their device. You can either install the certificate provided by Cloudflare (default option), or generate your own custom certificate and upload it to Cloudflare. - +Gateway [generates a unique root CA](#generate-a-cloudflare-root-certificate) for each Zero Trust account and deploys its across the Cloudflare global network. Alternatively, Enterprise users can upload and deploy their own [custom certificate](/cloudflare-one/connections/connect-devices/warp/user-side-certificates/custom-certificate/). + +Once you deploy your certificate across Cloudflare and turn it on, you can install it on your user's devices either [with WARP](/cloudflare-one/connections/connect-devices/warp/user-side-certificates/install-cert-with-warp/) or [manually](/cloudflare-one/connections/connect-devices/warp/user-side-certificates/install-cloudflare-cert/). + +| Deployment status | Description | +| ----------------- | ---------------------------------------------------------------------------------------------- | +| Inactive | The certificate has been uploaded to Cloudflare but is not deployed across the global network. | +| Pending | The certificate is being activated or deactivated for use. | +| Active | The certificate is deployed across the Cloudflare global network and ready to be turned on. | +| Active and In-Use | The certificate is turned on. Gateway will use the certificate for inspection. | + +## Generate a Cloudflare root certificate + +:::note[Certificate generation limitation] +Each Zero Trust account can generate a new root certificate a maximum of three times per day. +::: + +To generate a new Cloudflare root certificate for your Zero Trust organization: + +1. In [Zero Trust](https://one.dash.cloudflare.com/), go to **Settings** > **Resources**. +2. In **Certificates**, select **Manage**. +3. Select **Generate certificate**. +4. Choose a duration of time before the certificate expires. Cloudflare recommends expiration after five years. Alternatively, choose _Custom_ and enter a custom amount in days. +5. Select **Generate certificate**. + +The certificate will appear in your list of certificates as **Inactive**. To deploy your certificate and turn it on for inspection, you need to [activate the certificate](#activate-a-root-certificate). + +## Activate a root certificate + +:::note +Zero Trust accounts using the Cloudflare certificate prior to September 2024 will need to redeploy and activate the newly generated certificate. Zero Trust accounts created during or after September 2024 will use an active certificate by default. +::: + +Once a certificate is generated in or uploaded to Zero Trust, you need to activate it. Activating a certificate deploys it across the Cloudflare network. + +To activate your root certificate: + +1. In [Zero Trust](https://one.dash.cloudflare.com/), go to **Settings** > **Resources**. +2. In **Certificates**, select **Manage**. +3. Select the certificate you want to activate. +4. Select **Activate**. + +The status of the certificate will change to **Pending** while it deploys. Once the status of your certificate is **Active**, you can turn the certificate on for use in inspection: + +1. In [Zero Trust](https://one.dash.cloudflare.com/), go to **Settings** > **Resources**. +2. In **Certificates**, select **Manage**. +3. Select the certificate you want to turn on. +4. In **Basic information**, select **Confirm and turn on certificate**. + +Only one certificate can be turned on for inspection at a time. Setting a certificate as **In-Use** will set any other turned on certificates as **Active** and prevent them from being used for inspection until turned on again. diff --git a/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/install-cloudflare-cert.mdx b/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/install-cloudflare-cert.mdx index 4daa89b6127a5bf..18821d93c096327 100644 --- a/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/install-cloudflare-cert.mdx +++ b/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/install-cloudflare-cert.mdx @@ -22,36 +22,48 @@ If your device does not support [certificate installation via WARP](/cloudflare- First, download the Cloudflare certificate. The certificate is available both as a `.pem` and as a `.crt` file. Certain applications require the certificate to be in a specific file type, so ensure you download the most appropriate file for your use case. -- [Download certificate (.crt)](/cloudflare-one/static/Cloudflare_CA.crt) -- [Download certificate (.pem)](/cloudflare-one/static/Cloudflare_CA.pem) +1. In [Zero Trust](https://one.dash.cloudflare.com/), go to **Settings** > **Resources**. +2. In **Certificates**, select **Manage**. +3. Select the certificate you want to download. +4. Select either **Download .pem** or **Download .crt**. -### Verify the certificate fingerprint +### Verify the downloaded certificate -To verify your download, check that the certificate's thumbprint matches: +To verify your download, use a terminal to check that the downloaded certificate's hash matches the thumbprint listed under **Certificate thumbprint**. For example: #### SHA1 -```txt -BB:2D:B6:3D:6B:DE:DA:06:4E:CA:CB:40:F6:F2:61:40:B7:10:F0:6C +```sh title="SHA1 .crt example" +openssl x509 -noout -fingerprint -sha1 -inform der -in ``` -``` -➜ ~ openssl x509 -noout -fingerprint -sha1 -inform der -in +```sh output SHA1 Fingerprint=BB:2D:B6:3D:6B:DE:DA:06:4E:CA:CB:40:F6:F2:61:40:B7:10:F0:6C -➜ ~ openssl x509 -noout -fingerprint -sha1 -inform pem -in +``` + +```sh title="SHA1 .pem example" +openssl x509 -noout -fingerprint -sha1 -inform pem -in +``` + +```sh output SHA1 Fingerprint=BB:2D:B6:3D:6B:DE:DA:06:4E:CA:CB:40:F6:F2:61:40:B7:10:F0:6C ``` #### SHA256 -```txt -F5:E1:56:C4:89:78:77:AD:79:3A:1E:83:FA:77:83:F1:9C:B0:C6:1B:58:2C:2F:50:11:B3:37:72:7C:62:3D:EF +```sh title="SHA256 .crt example" +openssl x509 -noout -fingerprint -sha256 -inform der -in ``` -``` -➜ ~ openssl x509 -noout -fingerprint -sha256 -inform der -in +```sh output sha256 Fingerprint=F5:E1:56:C4:89:78:77:AD:79:3A:1E:83:FA:77:83:F1:9C:B0:C6:1B:58:2C:2F:50:11:B3:37:72:7C:62:3D:EF -➜ ~ openssl x509 -noout -fingerprint -sha256 -inform pem -in +``` + +```sh title="SHA256 .pem example" +openssl x509 -noout -fingerprint -sha256 -inform pem -in +``` + +```sh output sha256 Fingerprint=F5:E1:56:C4:89:78:77:AD:79:3A:1E:83:FA:77:83:F1:9C:B0:C6:1B:58:2C:2F:50:11:B3:37:72:7C:62:3D:EF ``` diff --git a/src/content/docs/cloudflare-one/policies/gateway/configuring-block-page.mdx b/src/content/docs/cloudflare-one/policies/gateway/block-page.mdx similarity index 95% rename from src/content/docs/cloudflare-one/policies/gateway/configuring-block-page.mdx rename to src/content/docs/cloudflare-one/policies/gateway/block-page.mdx index 66b41e0fc952012..c437fdaa93c1d9e 100644 --- a/src/content/docs/cloudflare-one/policies/gateway/configuring-block-page.mdx +++ b/src/content/docs/cloudflare-one/policies/gateway/block-page.mdx @@ -3,10 +3,9 @@ pcx_content_type: how-to title: Block page sidebar: order: 11 - --- -import { Render } from "~/components" +import { Render } from "~/components"; Gateway responds to any domain blocked at the DNS level with `0.0.0.0` for IPv4 queries or `::` for IPv6 queries, and does not return that blocked domain's IP address. As a result, the browser will show a browser default error page, and users will not be able to reach that website. This may cause confusion and lead some users to think that their Internet connection is not working. @@ -24,7 +23,12 @@ For all HTTP Block policies, Gateway automatically displays a generic Cloudflare To turn on the block page and specify a custom block message: - Firewall Policies > DNS or Gateway > Firewall Policies > HTTP" }} /> + Firewall Policies > DNS or Gateway > Firewall Policies > HTTP", + }} +/> ## Troubleshoot the block page diff --git a/src/content/docs/cloudflare-one/policies/gateway/dns-policies/index.mdx b/src/content/docs/cloudflare-one/policies/gateway/dns-policies/index.mdx index fab0ceae606fda6..154070686953d49 100644 --- a/src/content/docs/cloudflare-one/policies/gateway/dns-policies/index.mdx +++ b/src/content/docs/cloudflare-one/policies/gateway/dns-policies/index.mdx @@ -3,24 +3,26 @@ pcx_content_type: configuration title: DNS policies sidebar: order: 2 - --- -import { Details, InlineBadge, Render } from "~/components" +import { Details, InlineBadge, Render } from "~/components"; When a user makes a DNS request to Gateway, Gateway matches the request against the DNS policies you have set up for your organization. If the domain does not belong to any blocked categories, or if it matches an Override policy, the user's client receives the DNS resolution and initiates an HTTP connection. A DNS policy consists of an **Action** as well as a logical expression that determines the scope of the action. To build an expression, you need to choose a **Selector** and an **Operator**, and enter a value or range of values in the **Value** field. You can use **And** and **Or** logical operators to evaluate multiple conditions. -* [Actions](#actions) -* [Selectors](#selectors) -* [Comparison operators](#comparison-operators) -* [Value](#value) -* [Logical operators](#logical-operators) +- [Actions](#actions) +- [Selectors](#selectors) +- [Comparison operators](#comparison-operators) +- [Value](#value) +- [Logical operators](#logical-operators) -When creating a DNS policy, you can select as many security risk categories and content categories as needed to fully secure your network. Unless a more specific selector is configured in a policy (for example, *User Email* or *Source IP*), then the policy will be evaluated against all DNS queries that reach Gateway from your organization. +When creating a DNS policy, you can select as many security risk categories and content categories as needed to fully secure your network. Unless a more specific selector is configured in a policy (for example, _User Email_ or _Source IP_), then the policy will be evaluated against all DNS queries that reach Gateway from your organization. - + ## Actions @@ -28,52 +30,50 @@ Just like actions in HTTP policies, actions in DNS policies allow you to choose These are the action types you can choose from: -* [Allow](#allow) -* [Block](#block) -* [Override](#override) -* [Safe Search](#safe-search) -* [YouTube Restricted Mode](#youtube-restricted-mode) +- [Allow](#allow) +- [Block](#block) +- [Override](#override) +- [Safe Search](#safe-search) +- [YouTube Restricted Mode](#youtube-restricted-mode) ### Allow API value: `allow` -
    **Traffic** -* [Application](#application) -* [Authoritative Nameserver IP](#authoritative-nameserver-ip) -* [Content Categories](#content-categories) -* [DNS CNAME Response Value](#dns-cname-record) -* [DNS MX Response Value](#dns-mx-record) -* [DNS PTR Response Value](#dns-ptr-record) -* [DNS Resolver IP](#dns-resolver-ip) -* [DNS TXT Response Value](#dns-txt-record) -* [DOH Subdomain](#doh-subdomain) -* [Domain](#domain) -* [Host](#host) -* [Indicator Feeds](#indicator-feeds) -* [Location](#location) -* [Query Record Type](#query-record-type) -* [Resolved Continent IP Geolocation](#resolved-continent) -* [Resolved Country IP Geolocation](#resolved-country) -* [Resolved IP](#resolved-ip) -* [Security Categories](#security-categories) -* [Source Continent IP Geolocation](#source-continent) -* [Source Country IP Geolocation](#source-country) -* [Source IP](#source-ip) +- [Application](#application) +- [Authoritative Nameserver IP](#authoritative-nameserver-ip) +- [Content Categories](#content-categories) +- [DNS CNAME Response Value](#dns-cname-record) +- [DNS MX Response Value](#dns-mx-record) +- [DNS PTR Response Value](#dns-ptr-record) +- [DNS Resolver IP](#dns-resolver-ip) +- [DNS TXT Response Value](#dns-txt-record) +- [DOH Subdomain](#doh-subdomain) +- [Domain](#domain) +- [Host](#host) +- [Indicator Feeds](#indicator-feeds) +- [Location](#location) +- [Query Record Type](#query-record-type) +- [Resolved Continent IP Geolocation](#resolved-continent) +- [Resolved Country IP Geolocation](#resolved-country) +- [Resolved IP](#resolved-ip) +- [Security Categories](#security-categories) +- [Source Continent IP Geolocation](#source-continent) +- [Source Country IP Geolocation](#source-country) +- [Source IP](#source-ip) **Identity** -* [SAML Attributes](#users) -* [User Email](#users) -* [User Group Emails](#users) -* [User Group IDs](#users) -* [User Group Names](#users) -* [User Name](#users) - +- [SAML Attributes](#users) +- [User Email](#users) +- [User Group Emails](#users) +- [User Group IDs](#users) +- [User Group Names](#users) +- [User Name](#users)
    @@ -91,42 +91,40 @@ When you select **Disable DNSSEC validation**, Gateway will resolve DNS queries API value: `block` -
    **Traffic** -* [Application](#application) -* [Authoritative Nameserver IP](#authoritative-nameserver-ip) -* [Content Categories](#content-categories) -* [DNS CNAME Response Value](#dns-cname-record) -* [DNS MX Response Value](#dns-mx-record) -* [DNS PTR Response Value](#dns-ptr-record) -* [DNS Resolver IP](#dns-resolver-ip) -* [DNS TXT Response Value](#dns-txt-record) -* [DOH Subdomain](#doh-subdomain) -* [Domain](#domain) -* [Host](#host) -* [Indicator Feeds](#indicator-feeds) -* [Location](#location) -* [Query Record Type](#query-record-type) -* [Resolved Continent IP Geolocation](#resolved-continent) -* [Resolved Country IP Geolocation](#resolved-country) -* [Resolved IP](#resolved-ip) -* [Security Categories](#security-categories) -* [Source Continent IP Geolocation](#source-continent) -* [Source Country IP Geolocation](#source-country) -* [Source IP](#source-ip) +- [Application](#application) +- [Authoritative Nameserver IP](#authoritative-nameserver-ip) +- [Content Categories](#content-categories) +- [DNS CNAME Response Value](#dns-cname-record) +- [DNS MX Response Value](#dns-mx-record) +- [DNS PTR Response Value](#dns-ptr-record) +- [DNS Resolver IP](#dns-resolver-ip) +- [DNS TXT Response Value](#dns-txt-record) +- [DOH Subdomain](#doh-subdomain) +- [Domain](#domain) +- [Host](#host) +- [Indicator Feeds](#indicator-feeds) +- [Location](#location) +- [Query Record Type](#query-record-type) +- [Resolved Continent IP Geolocation](#resolved-continent) +- [Resolved Country IP Geolocation](#resolved-country) +- [Resolved IP](#resolved-ip) +- [Security Categories](#security-categories) +- [Source Continent IP Geolocation](#source-continent) +- [Source Country IP Geolocation](#source-country) +- [Source IP](#source-ip) **Identity** -* [SAML Attributes](#users) -* [User Email](#users) -* [User Group Emails](#users) -* [User Group IDs](#users) -* [User Group Names](#users) -* [User Name](#users) - +- [SAML Attributes](#users) +- [User Email](#users) +- [User Group Emails](#users) +- [User Group IDs](#users) +- [User Group Names](#users) +- [User Name](#users)
    @@ -138,7 +136,7 @@ Policies with Block actions block DNS queries to reach destinations you specify #### Custom block page -When choosing the Block action, turn on **Display custom block page** to respond to queries with a block page and to specify the message you want to display to users who go to blocked websites. If the block page is disabled, Gateway will respond to blocked queries with an `A` record of `0.0.0.0` for IPv4 destinations, or with an `AAAA` record of `::` for IPv6 destinations. For more information, refer to the dedicated documentation on [customizing the block page](/cloudflare-one/policies/gateway/configuring-block-page/). +When choosing the Block action, turn on **Display custom block page** to respond to queries with a block page and to specify the message you want to display to users who go to blocked websites. If the block page is disabled, Gateway will respond to blocked queries with an `A` record of `0.0.0.0` for IPv4 destinations, or with an `AAAA` record of `::` for IPv6 destinations. For more information, refer to the dedicated documentation on [customizing the block page](/cloudflare-one/policies/gateway/block-page/). #### WARP client block notifications @@ -148,37 +146,35 @@ When choosing the Block action, turn on **Display custom block page** to respond API value: `override` -
    The Override action cannot be used with selectors evaluated during or after DNS resolution. **Traffic** -* [Application](#application) -* [Content Categories](#content-categories) -* [DNS Resolver IP](#dns-resolver-ip) -* [DOH Subdomain](#doh-subdomain) -* [Domain](#domain) -* [Host](#host) -* [Location](#location) -* [Query Record Type](#query-record-type) -* [Resolved Continent IP Geolocation](#resolved-continent) -* [Resolved Country IP Geolocation](#resolved-country) -* [Security Categories](#security-categories) -* [Source Continent IP Geolocation](#source-continent) -* [Source Country IP Geolocation](#source-country) -* [Source IP](#source-ip) +- [Application](#application) +- [Content Categories](#content-categories) +- [DNS Resolver IP](#dns-resolver-ip) +- [DOH Subdomain](#doh-subdomain) +- [Domain](#domain) +- [Host](#host) +- [Location](#location) +- [Query Record Type](#query-record-type) +- [Resolved Continent IP Geolocation](#resolved-continent) +- [Resolved Country IP Geolocation](#resolved-country) +- [Security Categories](#security-categories) +- [Source Continent IP Geolocation](#source-continent) +- [Source Country IP Geolocation](#source-country) +- [Source IP](#source-ip) **Identity** -* [SAML Attributes](#users) -* [User Email](#users) -* [User Group Emails](#users) -* [User Group IDs](#users) -* [User Group Names](#users) -* [User Name](#users) - +- [SAML Attributes](#users) +- [User Email](#users) +- [User Group Emails](#users) +- [User Group IDs](#users) +- [User Group Names](#users) +- [User Name](#users)
    @@ -192,35 +188,33 @@ Policies with Override actions allow you to respond to all DNS queries for a giv API value: `safesearch` -
    **Traffic** -* [Application](#application) -* [Content Categories](#content-categories) -* [DNS Resolver IP](#dns-resolver-ip) -* [DOH Subdomain](#doh-subdomain) -* [Domain](#domain) -* [Host](#host) -* [Location](#location) -* [Query Record Type](#query-record-type) -* [Resolved Continent IP Geolocation](#resolved-continent) -* [Resolved Country IP Geolocation](#resolved-country) -* [Security Categories](#security-categories) -* [Source Continent IP Geolocation](#source-continent) -* [Source Country IP Geolocation](#source-country) -* [Source IP](#source-ip) +- [Application](#application) +- [Content Categories](#content-categories) +- [DNS Resolver IP](#dns-resolver-ip) +- [DOH Subdomain](#doh-subdomain) +- [Domain](#domain) +- [Host](#host) +- [Location](#location) +- [Query Record Type](#query-record-type) +- [Resolved Continent IP Geolocation](#resolved-continent) +- [Resolved Country IP Geolocation](#resolved-country) +- [Security Categories](#security-categories) +- [Source Continent IP Geolocation](#source-continent) +- [Source Country IP Geolocation](#source-country) +- [Source IP](#source-ip) **Identity** -* [SAML Attributes](#users) -* [User Email](#users) -* [User Group Emails](#users) -* [User Group IDs](#users) -* [User Group Names](#users) -* [User Name](#users) - +- [SAML Attributes](#users) +- [User Email](#users) +- [User Group Emails](#users) +- [User Group IDs](#users) +- [User Group Names](#users) +- [User Name](#users)
    @@ -236,39 +230,37 @@ You can use Cloudflare Gateway to enable SafeSearch on search engines like Googl API value: `ytrestricted` -
    **Traffic** -* [Application](#application) -* [Content Categories](#content-categories) -* [DNS Resolver IP](#dns-resolver-ip) -* [DOH Subdomain](#doh-subdomain) -* [Domain](#domain) -* [Host](#host) -* [Location](#location) -* [Query Record Type](#query-record-type) -* [Resolved Continent IP Geolocation](#resolved-continent) -* [Resolved Country IP Geolocation](#resolved-country) -* [Security Categories](#security-categories) -* [Source Continent IP Geolocation](#source-continent) -* [Source Country IP Geolocation](#source-country) -* [Source IP](#source-ip) +- [Application](#application) +- [Content Categories](#content-categories) +- [DNS Resolver IP](#dns-resolver-ip) +- [DOH Subdomain](#doh-subdomain) +- [Domain](#domain) +- [Host](#host) +- [Location](#location) +- [Query Record Type](#query-record-type) +- [Resolved Continent IP Geolocation](#resolved-continent) +- [Resolved Country IP Geolocation](#resolved-country) +- [Security Categories](#security-categories) +- [Source Continent IP Geolocation](#source-continent) +- [Source Country IP Geolocation](#source-country) +- [Source IP](#source-ip) **Identity** -* [SAML Attributes](#users) -* [User Email](#users) -* [User Group Emails](#users) -* [User Group IDs](#users) -* [User Group Names](#users) -* [User Name](#users) - +- [SAML Attributes](#users) +- [User Email](#users) +- [User Group Emails](#users) +- [User Group IDs](#users) +- [User Group Names](#users) +- [User Name](#users)
    -Similarly, you can enforce YouTube Restricted mode by choosing the *YouTube Restricted* action. YouTube Restricted Mode is an automated filter for adult and offensive content built into YouTube. To enable YouTube Restricted Mode, you could set up a policy like the following: +Similarly, you can enforce YouTube Restricted mode by choosing the _YouTube Restricted_ action. YouTube Restricted Mode is an automated filter for adult and offensive content built into YouTube. To enable YouTube Restricted Mode, you could set up a policy like the following: | Selector | Operator | Value | Action | | ---------- | -------- | ------------- | ------------------ | @@ -308,7 +300,7 @@ Use this selector to filter DNS responses by their `CNAME` records. :::note -If one CNAME record points to another CNAME record, each record in the chain will be evaluated. For example, if `abc.example.com` points to `xyz.example.com`, then your DNS policy will evaluate both `abc.example.com` and `xyz.example.com`. +If one CNAME record points to another CNAME record, each record in the chain will be evaluated. For example, if `abc.example.com` points to `xyz.example.com`, then your DNS policy will evaluate both `abc.example.com` and `xyz.example.com`. ::: ### DNS MX Record @@ -367,14 +359,14 @@ Use this selector to filter DNS responses by their `TXT` records. Use this selector to filter based on the continent that the query resolves to. Geolocation is determined from the IP address in the response. To specify a continent, enter its two-letter code into the **Value** field: -* AF – Africa -* AN – Antarctica -* AS – Asia -* EU – Europe -* NA – North America -* OC – Oceania -* SA – South America -* T1 – Tor network +- AF – Africa +- AN – Antarctica +- AS – Asia +- EU – Europe +- NA – North America +- OC – Oceania +- SA – South America +- T1 – Tor network | UI name | API example | Evaluation phase | | --------------------------------- | ------------------------------- | -------------------- | diff --git a/src/content/docs/cloudflare-one/policies/gateway/dns-policies/test-dns-filtering.mdx b/src/content/docs/cloudflare-one/policies/gateway/dns-policies/test-dns-filtering.mdx index e81936c45b87084..4bcad30dbe5a2d3 100644 --- a/src/content/docs/cloudflare-one/policies/gateway/dns-policies/test-dns-filtering.mdx +++ b/src/content/docs/cloudflare-one/policies/gateway/dns-policies/test-dns-filtering.mdx @@ -23,7 +23,7 @@ For example, if you created a policy to block `example.com`, you can do the foll 2. Type `dig example.com` (`nslookup example.com` if you are using Windows) and press **Enter**. -3. If the [block page](/cloudflare-one/policies/gateway/configuring-block-page/) is disabled for the policy, you should see `REFUSED` in the answer section: +3. If the [block page](/cloudflare-one/policies/gateway/block-page/) is disabled for the policy, you should see `REFUSED` in the answer section: ```sh dig example.com @@ -46,7 +46,7 @@ For example, if you created a policy to block `example.com`, you can do the foll ;; MSG SIZE rcvd: 29 ``` - If the [block page](/cloudflare-one/policies/gateway/configuring-block-page/) is enabled for the policy, you should see `NOERROR` in the answer section and `162.159.36.12` and `162.159.46.12` as the answers: + If the [block page](/cloudflare-one/policies/gateway/block-page/) is enabled for the policy, you should see `NOERROR` in the answer section with `162.159.36.12` and `162.159.46.12` as the answers: ```sh null dig example.com diff --git a/src/content/docs/cloudflare-one/policies/gateway/http-policies/index.mdx b/src/content/docs/cloudflare-one/policies/gateway/http-policies/index.mdx index cd6bc2ac89f394c..89fcf78292e8358 100644 --- a/src/content/docs/cloudflare-one/policies/gateway/http-policies/index.mdx +++ b/src/content/docs/cloudflare-one/policies/gateway/http-policies/index.mdx @@ -96,7 +96,7 @@ The **Untrusted certificate action** determines how to handle insecure requests. | Option | Action | | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Error | Display Gateway error page. Matches the default behavior when no action is configured. | -| Block | Display [block page](/cloudflare-one/policies/gateway/configuring-block-page/) as set in Zero Trust. | +| Block | Display [block page](/cloudflare-one/policies/gateway/block-page/) as set in Zero Trust. | | Pass through | Bypass insecure connection warnings and seamlessly connect to the upstream. To use this feature, deploy a [custom root certificate](/cloudflare-one/connections/connect-devices/warp/user-side-certificates/custom-certificate/). For more information on what statuses are bypassed, refer to the [troubleshooting FAQ](/cloudflare-one/faq/troubleshooting/#i-see-error-526-when-browsing-to-a-website). | ### Block diff --git a/src/content/docs/cloudflare-one/policies/gateway/initial-setup/dns.mdx b/src/content/docs/cloudflare-one/policies/gateway/initial-setup/dns.mdx index 6deaa38dd79d356..87485468a178232 100644 --- a/src/content/docs/cloudflare-one/policies/gateway/initial-setup/dns.mdx +++ b/src/content/docs/cloudflare-one/policies/gateway/initial-setup/dns.mdx @@ -25,7 +25,7 @@ To filter DNS requests from an individual device such as a laptop or phone: 1. [Install the WARP client](/cloudflare-one/connections/connect-devices/warp/deployment/) on your device. 2. In the WARP client Settings, log in to your organization's Zero Trust instance. -3. (Optional) If you want to display a [custom block page](/cloudflare-one/policies/gateway/configuring-block-page/), [install the Cloudflare root certificate](/cloudflare-one/connections/connect-devices/warp/user-side-certificates/) on your device. +3. (Optional) If you want to display a [custom block page](/cloudflare-one/policies/gateway/block-page/), [install the Cloudflare root certificate](/cloudflare-one/connections/connect-devices/warp/user-side-certificates/) on your device. ### Connect DNS locations diff --git a/src/content/docs/cloudflare-one/policies/gateway/initial-setup/network.mdx b/src/content/docs/cloudflare-one/policies/gateway/initial-setup/network.mdx index 22cbf7d684d72e0..191be9903336aaa 100644 --- a/src/content/docs/cloudflare-one/policies/gateway/initial-setup/network.mdx +++ b/src/content/docs/cloudflare-one/policies/gateway/initial-setup/network.mdx @@ -25,7 +25,7 @@ To filter network traffic from a device such as a laptop or phone: 1. [Install the WARP client](/cloudflare-one/connections/connect-devices/warp/deployment/) on your device. 2. In the WARP client Settings, log in to your organization's Zero Trust instance. -3. (Optional) If you want to display a [custom block page](/cloudflare-one/policies/gateway/configuring-block-page/), [install the Cloudflare root certificate](/cloudflare-one/connections/connect-devices/warp/user-side-certificates/) on your device . +3. (Optional) If you want to display a [custom block page](/cloudflare-one/policies/gateway/block-page/), [install the Cloudflare root certificate](/cloudflare-one/connections/connect-devices/warp/user-side-certificates/) on your device . 4. [Enable the Gateway proxy](/cloudflare-one/policies/gateway/proxy/#enable-the-gateway-proxy) for TCP. Optionally, you can enable the UDP proxy to inspect all port 443 UDP traffic. ### Connect private networks diff --git a/src/content/docs/learning-paths/secure-internet-traffic/build-dns-policies/test-policy.mdx b/src/content/docs/learning-paths/secure-internet-traffic/build-dns-policies/test-policy.mdx index 05bdf06bdc14e9d..ae125b90869fae6 100644 --- a/src/content/docs/learning-paths/secure-internet-traffic/build-dns-policies/test-policy.mdx +++ b/src/content/docs/learning-paths/secure-internet-traffic/build-dns-policies/test-policy.mdx @@ -16,12 +16,12 @@ It is common for a misconfigured Gateway policy to accidentally block traffic to 3. Turn on any existing security policies or create a policy to block all security categories: 4. Ensure that your browser is not configured to use an alternate DNS resolver. For example, Chrome has a **Use secure DNS** setting that will cause the browser to send requests to 1.1.1.1 and bypass your DNS policies. 5. In the browser, go to `malware.testcategory.com`. Your browser will display: - - The Gateway block page, if your device is connected via the WARP client in Gateway with WARP mode. - - A generic error page, if your device is connected via another method, such as Gateway with DoH mode. + - The Gateway block page, if your device is connected through the WARP client in Gateway with WARP mode. + - A generic error page, if your device is connected through another method, such as Gateway with DoH mode. :::note -[Custom block pages](/cloudflare-one/policies/gateway/configuring-block-page/) require you to install a root certificate on the device. +[Custom block pages](/cloudflare-one/policies/gateway/block-page/) require you to install a root certificate on the device. ::: diff --git a/src/content/docs/reference-architecture/diagrams/security/securing-data-in-transit.mdx b/src/content/docs/reference-architecture/diagrams/security/securing-data-in-transit.mdx index 1bc39e748bea2a3..83b0160f94deb39 100644 --- a/src/content/docs/reference-architecture/diagrams/security/securing-data-in-transit.mdx +++ b/src/content/docs/reference-architecture/diagrams/security/securing-data-in-transit.mdx @@ -4,6 +4,9 @@ pcx_content_type: reference-architecture-diagram sidebar: order: 1 label: Securing data in transit +head: + - tag: title + content: "Reference Architecture Diagram: Securing data in transit" updated: 2024-05-01 --- @@ -13,7 +16,7 @@ Data in transit typically means when it's traveling over the network. Because th - Browsing online and uploading/download data to/from cloud applications - Sending texts, pictures and emails -- Applications exposing and consuming data via APIs +- Applications exposing and consuming data through APIs Data in transit is often considered vulnerable to interception or tampering during transmission, so it is important to secure it through encryption techniques such as [QUIC](https://cloudflare-quic.com/), Transport Layer Security (TLS) or Secure Sockets Layer (SSL). This helps to ensure that the data remains confidential and protected from unauthorized access during its journey. There are other methods of inspecting data as it passes network boundaries to make decisions on if that data should continue to travel or not, Data Loss Prevention (DLP) technologies can be used to inspect the contents of network traffic and block sensitive data from going to a risky destination. This document outlines the methods Cloudflare has available to protect data in transit. @@ -54,9 +57,9 @@ The following diagram shows a common flow for how Cloudflare inspects a request ![Figure 4: Upload of file containing sensitive data blocked by Cloudflare DLP](~/assets/images/reference-architecture/securing-data-in-transit/securing-data-in-transit-fig4.svg "Figure 4: Upload of file containing sensitive data blocked by Cloudflare DLP") 1. User attempts to upload a file to a SaaS application (via a secure tunnel to Cloudflare created by our [device agent](/cloudflare-one/connections/connect-devices/warp/download-warp/)). [Clientless](/cloudflare-one/connections/connect-devices/agentless/) options are supported as well. -2. Cloudflare’s [Secure Web Gateway](/cloudflare-one/policies/gateway/) (SWG) will first verify that the user is permitted to use the requested SaaS application, and then scrutinize the file’s payload for [malicious code](/cloudflare-one/policies/gateway/http-policies/antivirus-scanning/) and [sensitive data](/cloudflare-one/policies/data-loss-prevention/). +2. Cloudflare's [Secure Web Gateway](/cloudflare-one/policies/gateway/) (SWG) will first verify that the user is permitted to use the requested SaaS application, and then scrutinize the file's payload for [malicious code](/cloudflare-one/policies/gateway/http-policies/antivirus-scanning/) and [sensitive data](/cloudflare-one/policies/data-loss-prevention/). 3. The DLP profile determines the file contains national identifiers like US Social Security Numbers (SSN). -4. The SWG policy is configured with a [‘block’ action](/cloudflare-one/policies/gateway/http-policies/#block), so the attempt is [logged](/cloudflare-one/policies/data-loss-prevention/dlp-policies/payload-logging/) and a [block page](/cloudflare-one/policies/gateway/configuring-block-page/) returned to the end user’s web browser. +4. The SWG policy is configured with a ['block' action](/cloudflare-one/policies/gateway/http-policies/#block), so the attempt is [logged](/cloudflare-one/policies/data-loss-prevention/dlp-policies/payload-logging/) and a [block page](/cloudflare-one/policies/gateway/block-page/) returned to the end user's web browser. ## Related resources diff --git a/src/content/partials/cloudflare-one/access/block-page.mdx b/src/content/partials/cloudflare-one/access/block-page.mdx index bb0b00d4e83eac0..3b54fb16a0df6d5 100644 --- a/src/content/partials/cloudflare-one/access/block-page.mdx +++ b/src/content/partials/cloudflare-one/access/block-page.mdx @@ -1,18 +1,17 @@ --- {} - --- :::note -Only available on Pay-as-you-go and Enterprise plans. +Only available on Pay-as-you-go and Enterprise plans. ::: You can display a custom block page when users fail to authenticate to an Access application. Each application can have a different block page. :::note -To customize the page that users see when they are blocked by a Gateway firewall policy, refer to [Gateway block page](/cloudflare-one/policies/gateway/configuring-block-page/). +To customize the page that users see when they are blocked by a Gateway firewall policy, refer to [Gateway block page](/cloudflare-one/policies/gateway/block-page/). ::: ## Create a custom block page @@ -34,15 +33,13 @@ To create a custom block page for Access: 7. In **Custom HTML**, enter the HTML code for your custom page. For example, ```html - + - - -

    Access denied.

    - -

    To obtain access, contact your IT administrator.

    + +

    Access denied.

    - +

    To obtain access, contact your IT administrator.

    + ``` diff --git a/src/content/partials/cloudflare-one/gateway/customize-block-page.mdx b/src/content/partials/cloudflare-one/gateway/customize-block-page.mdx index c0de73c31de4401..a9e74eec96a0bb4 100644 --- a/src/content/partials/cloudflare-one/gateway/customize-block-page.mdx +++ b/src/content/partials/cloudflare-one/gateway/customize-block-page.mdx @@ -1,6 +1,5 @@ --- {} - --- You can customize the block page by making global changes that will show up every time a user visits a block page, independently of the type of rule (DNS or HTTP) that is blocking the website. @@ -13,12 +12,12 @@ To apply customizations to your block page: 3. Select **Customize**. Available global customizations include: - * Adding your organization's name - * Adding a [logo](/cloudflare-one/policies/gateway/configuring-block-page/#add-a-logo-image) - * Adding a header text - * Adding a global block message, which will be displayed above the policy-specific block message - * Adding a [Mailto link](/cloudflare-one/policies/gateway/configuring-block-page/#allow-users-to-email-an-administrator) - * Choosing a background color + - Adding your organization's name + - Adding a [logo](/cloudflare-one/policies/gateway/block-page/#add-a-logo-image) + - Adding a header text + - Adding a global block message, which will be displayed above the policy-specific block message + - Adding a [Mailto link](/cloudflare-one/policies/gateway/block-page/#allow-users-to-email-an-administrator) + - Choosing a background color 4. Select **Save**. diff --git a/src/content/partials/cloudflare-one/upload-mtls-cert.mdx b/src/content/partials/cloudflare-one/upload-mtls-cert.mdx index 28edd4f475bad16..0517c47bbda6d82 100644 --- a/src/content/partials/cloudflare-one/upload-mtls-cert.mdx +++ b/src/content/partials/cloudflare-one/upload-mtls-cert.mdx @@ -20,7 +20,7 @@ curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/mtls_certificat }' ``` -The response will return a UUID for the certificate: +The response will return a UUID for the certificate. For example: ```json null {6} { diff --git a/src/content/partials/fundamentals/account-permissions-table.mdx b/src/content/partials/fundamentals/account-permissions-table.mdx index 55a9c37f71df417..ca5ca5450f76adf 100644 --- a/src/content/partials/fundamentals/account-permissions-table.mdx +++ b/src/content/partials/fundamentals/account-permissions-table.mdx @@ -10,8 +10,8 @@ import { Markdown } from "~/components"; | Access: Apps and Policies Revoke | Grants ability to revoke all tokens to [Cloudflare Access](/cloudflare-one/policies/access/) account resources. | | Access: Apps and Policies {props.one} | Grants write access to [Cloudflare Access](/cloudflare-one/policies/access/) account resources. | | Access: Audit Logs Read | Grants read access to [Cloudflare Access audit logs](/cloudflare-one/insights/logs/audit-logs/). | -| Access: Custom Pages Read | Grants read access to [Cloudflare Access Custom Pages](/cloudflare-one/policies/gateway/configuring-block-page/). | -| Access: Custom Pages {props.one} | Grants write access to [Cloudflare Access Custom Pages](/cloudflare-one/policies/gateway/configuring-block-page/). | +| Access: Custom Pages Read | Grants read access to [Cloudflare Access Custom Pages](/cloudflare-one/policies/gateway/block-page/). | +| Access: Custom Pages {props.one} | Grants write access to [Cloudflare Access Custom Pages](/cloudflare-one/policies/gateway/block-page/). | | Access: Device Posture Read | Grants read access to [Cloudflare Access Device Posture](/cloudflare-one/identity/devices/). | | Access: Device Posture {props.one} | Grants write access to [Cloudflare Access Device Posture](/cloudflare-one/identity/devices/). | | Access: Mutual TLS Certificates Read | Grants read access to [Cloudflare Access mTLS certificates](/cloudflare-one/identity/devices/access-integrations/mutual-tls-authentication/). | diff --git a/src/content/partials/learning-paths/zero-trust/device-profiles.mdx b/src/content/partials/learning-paths/zero-trust/device-profiles.mdx index 2aed4fe21334a30..411b106ccc846e2 100644 --- a/src/content/partials/learning-paths/zero-trust/device-profiles.mdx +++ b/src/content/partials/learning-paths/zero-trust/device-profiles.mdx @@ -38,7 +38,7 @@ To customize the default settings: 5. Under **Global settings**, 1. (Recommended) Enable **Admin override code** if you turned on **Lock WARP switch**. - 2. Enable **Install CA to system certificate store** if you want users to see a [custom block page](/cloudflare-one/policies/gateway/configuring-block-page/). + 2. Enable **Install CA to system certificate store** if you want users to see a [custom block page](/cloudflare-one/policies/gateway/block-page/). From cff09c57cf67cbe3b8979c36f0d715331f13b51b Mon Sep 17 00:00:00 2001 From: Claire W <78226508+crwaters16@users.noreply.github.com> Date: Thu, 17 Oct 2024 17:40:00 -0500 Subject: [PATCH 067/110] remove user (#17615) --- .github/CODEOWNERS | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6c97930bce09985..4f7638fc060d210 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -18,13 +18,13 @@ # AI -/src/content/docs/ai-gateway/ @kathayl @G4brym @mchenco @pdwittig @daisyfaithauma @cloudflare/pcx-technical-writing -/src/content/docs/workers-ai/ @rita3ko @pdwittig @craigsdennis @markdembo @mchenco @daisyfaithauma @cloudflare/pcx-technical-writing +/src/content/docs/ai-gateway/ @kathayl @G4brym @mchenco @daisyfaithauma @cloudflare/pcx-technical-writing +/src/content/docs/workers-ai/ @rita3ko @craigsdennis @markdembo @mchenco @daisyfaithauma @cloudflare/pcx-technical-writing /src/content/docs/workers-ai/static @mchenco @craigsdennis @cloudflare/pcx-technical-writing -/src/content/docs/vectorize/ @elithrar @vy-ton @pdwittig @sejoker @cloudflare/pcx-technical-writing -/src/content/changelogs/workers-ai.yaml @kathayl @G4brym @mchenco @pdwittig @daisyfaithauma @cloudflare/pcx-technical-writing -/src/content/changelogs/ai-gateway.yaml @kathayl @G4brym @mchenco @pdwittig @daisyfaithauma @cloudflare/pcx-technical-writing -/src/content/changelogs/vectorize.yaml @elithrar @pdwittig @sejoker @cloudflare/pcx-technical-writing +/src/content/docs/vectorize/ @elithrar @vy-ton @sejoker @cloudflare/pcx-technical-writing +/src/content/changelogs/workers-ai.yaml @kathayl @G4brym @mchenco @daisyfaithauma @cloudflare/pcx-technical-writing +/src/content/changelogs/ai-gateway.yaml @kathayl @G4brym @mchenco @daisyfaithauma @cloudflare/pcx-technical-writing +/src/content/changelogs/vectorize.yaml @elithrar @sejoker @cloudflare/pcx-technical-writing # Analytics & Logs From 00035457b42f620e4ab12b86be1447cd1db9d1ea Mon Sep 17 00:00:00 2001 From: angelampcosta <92738954+angelampcosta@users.noreply.github.com> Date: Fri, 18 Oct 2024 09:37:21 +0100 Subject: [PATCH 068/110] Small text correction. (#17620) --- .../docs/cache/interaction-cloudflare-products/workers.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/cache/interaction-cloudflare-products/workers.mdx b/src/content/docs/cache/interaction-cloudflare-products/workers.mdx index 8dd8b678e58b961..f6926b8cd2d4217 100644 --- a/src/content/docs/cache/interaction-cloudflare-products/workers.mdx +++ b/src/content/docs/cache/interaction-cloudflare-products/workers.mdx @@ -28,7 +28,7 @@ Here are a few examples of how Workers can be used to customize cache behavior: - **Reduce Latency**: Serve content from a location close to the user, decreasing load times and improving the user experience. -You can also use [Snippets](/rules/snippets/) as a low-cost alternative for simple modifications and logic, bypassing the need for full Worker scripts. These lightweight scripts enable quick adjustments and optimizations, offering an efficient way to enhance your Cloudflare setup without the complexity and overhead of more extensive code deployments. +You can also use [Snippets](/rules/snippets/) as a free alternative for simple modifications and logic, bypassing the need for full Worker scripts. These lightweight scripts enable quick adjustments and optimizations, offering an efficient way to enhance your Cloudflare setup without the complexity and overhead of more extensive code deployments. :::note When using Workers and [Orange-to-Orange (O2O)](/cloudflare-for-platforms/cloudflare-for-saas/saas-customers/how-it-works/), some caveats and limitations may apply. From 26462c3f9f648a72ad02f29b68051b32b5d4d999 Mon Sep 17 00:00:00 2001 From: netgusto Date: Fri, 18 Oct 2024 11:45:08 +0200 Subject: [PATCH 069/110] [Vectorize] Clarify metadata filtering note (#17610) --- .../reference/metadata-filtering.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/content/docs/vectorize/reference/metadata-filtering.mdx b/src/content/docs/vectorize/reference/metadata-filtering.mdx index 51e23ef4fff2e84..fe485b18b4d2424 100644 --- a/src/content/docs/vectorize/reference/metadata-filtering.mdx +++ b/src/content/docs/vectorize/reference/metadata-filtering.mdx @@ -7,27 +7,27 @@ sidebar: import { Render, PackageManagers } from "~/components"; -:::note[Enable metadata filtering] - -Vectorize requires metadata indexes to be specified before vectors are inserted to support metadata filtering. `string`, `number` and `boolean` metadata indexes are supported. Please refer to [Create metadata indexes](/vectorize/get-started/intro/#4-optional-create-metadata-indexes) for details. - -Vectorize supports [namespace](/vectorize/best-practices/insert-vectors/#namespaces) filtering by default. +In addition to providing an input vector to your query, you can also filter by [vector metadata](/vectorize/best-practices/insert-vectors/#metadata) associated with every vector. Query results will only include vectors that match the `filter` criteria, meaning that `filter` is applied first, and the `topK` results are taken from the filtered set. -::: +By using metadata filtering to limit the scope of a query, you can filter by specific customer IDs, tenant, product category or any other metadata you associate with your vectors. -In addition to providing an input vector to your query, you can also filter by [vector metadata](/vectorize/best-practices/insert-vectors/#metadata) associated with every vector. Query results only include vectors that match `filter` criteria, meaning that `filter` is applied first, and `topK` results are taken from the filtered set. +## Metadata indexes -By using metadata filtering to limit the scope of a query, you can filter by specific customer IDs, tenant, product category or any other metadata you associate with your vectors. +Vectorize supports [namespace](/vectorize/best-practices/insert-vectors/#namespaces) filtering by default, but to filter on another metadata property of your vectors, you'll need to create a metadata index. You can create up to 10 metadata indexes per Vectorize index. -## Limits +Metadata indexes for properties of type `string`, `number` and `boolean` are supported. Please refer to [Create metadata indexes](/vectorize/get-started/intro/#4-optional-create-metadata-indexes) for details. -You can store up to 10KiB of metadata per vector, and create up to 10 metadata indexes per Vectorize index. +You can store up to 10KiB of metadata per vector. See [Vectorize Limits](/vectorize/platform/limits/) for a complete list of limits. For metadata indexes of type `number`, the indexed number precision is that of float64. For metadata indexes of type `string`, each vector indexes the first 64B of the string data truncated on UTF-8 character boundaries to the longest well-formed UTF-8 substring within that limit, so vectors are filterable on the first 64B of their value for each indexed property. -See [Vectorize Limits](/vectorize/platform/limits/) for a complete list of limits. +:::note[Enable metadata filtering] + +Vectors upserted before a metadata index was created won't have their metadata contained in that index. Upserting/re-upserting vectors after it was created will have them indexed as expected. Please refer to [Create metadata indexes](/vectorize/get-started/intro/#4-optional-create-metadata-indexes) for details. + +::: ## Supported operations From d34719f1c6bc9c4d4ff173cbb4069b1c37ef5db4 Mon Sep 17 00:00:00 2001 From: Nic <123965403+ngayerie@users.noreply.github.com> Date: Fri, 18 Oct 2024 12:22:12 +0200 Subject: [PATCH 070/110] [Support][Rules] point the S3 and Azure support pages to Cloud Connector (#17604) * Delete src/content/docs/support/third-party-software/others/configuring-an-amazon-web-services-static-site-to-use-cloudflare.mdx SPM-2581 * Delete src/content/docs/support/third-party-software/others/enabling-cloudflare-ssl-on-azure-storage-static-web-hosting-applications.mdx SPM-2581 * Update providers.mdx SPM-2581 * Update _redirects SPM-2581 --- public/_redirects | 3 + .../docs/rules/cloud-connector/providers.mdx | 2 +- ...services-static-site-to-use-cloudflare.mdx | 144 ------------------ ...torage-static-web-hosting-applications.mdx | 89 ----------- 4 files changed, 4 insertions(+), 234 deletions(-) delete mode 100644 src/content/docs/support/third-party-software/others/configuring-an-amazon-web-services-static-site-to-use-cloudflare.mdx delete mode 100644 src/content/docs/support/third-party-software/others/enabling-cloudflare-ssl-on-azure-storage-static-web-hosting-applications.mdx diff --git a/public/_redirects b/public/_redirects index 24cf8de17300c36..f36e281acfa04e3 100644 --- a/public/_redirects +++ b/public/_redirects @@ -1125,6 +1125,9 @@ /support/account-management-billing/account-privacy-and-security/ /support/account-management-billing/ 301 /support/troubleshooting/general-troubleshooting/troubleshooting-surges-or-spikes-in-web-traffic/ /fundamentals/basic-tasks/preparing-for-surges-or-spikes-in-web-traffic/ 301 /support/troubleshooting/general-troubleshooting/preparing-for-surges-or-spikes-in-web-traffic/ /fundamentals/basic-tasks/preparing-for-surges-or-spikes-in-web-traffic/ 301 +/support/third-party-software/others/configuring-an-amazon-web-services-static-site-to-use-cloudflare/ /rules/cloud-connector/providers/ 301 +/support/third-party-software/others/enabling-cloudflare-ssl-on-azure-storage-static-web-hosting-applications/ /rules/cloud-connector/providers/ 301 + # r2 /r2/platform/s3-compatibility/api/ /r2/api/s3/api/ 301 diff --git a/src/content/docs/rules/cloud-connector/providers.mdx b/src/content/docs/rules/cloud-connector/providers.mdx index 83903d1d0242a13..8d22a6c822e3da4 100644 --- a/src/content/docs/rules/cloud-connector/providers.mdx +++ b/src/content/docs/rules/cloud-connector/providers.mdx @@ -36,7 +36,7 @@ Cloud Connector supports both subdomain and URI path-style URLs: 3. Go to the **Properties** tab. 4. Select the **Static Website Hosting** card. The **Endpoint** field shows your bucket URL. -For more information, refer to the [Configuring an Amazon Web Services static site to use Cloudflare](/support/third-party-software/others/configuring-an-amazon-web-services-static-site-to-use-cloudflare/#set-up-your-site-on-cloudflare) tutorial and [Amazon S3 documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/EnableWebsiteHosting.html). +For more information, refer to the [Amazon S3 documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/EnableWebsiteHosting.html). ## Google Cloud Platform - Cloud Storage diff --git a/src/content/docs/support/third-party-software/others/configuring-an-amazon-web-services-static-site-to-use-cloudflare.mdx b/src/content/docs/support/third-party-software/others/configuring-an-amazon-web-services-static-site-to-use-cloudflare.mdx deleted file mode 100644 index 4eeac2e707a343e..000000000000000 --- a/src/content/docs/support/third-party-software/others/configuring-an-amazon-web-services-static-site-to-use-cloudflare.mdx +++ /dev/null @@ -1,144 +0,0 @@ ---- -pcx_content_type: troubleshooting -source: https://support.cloudflare.com/hc/en-us/articles/360037983412-Configuring-an-Amazon-Web-Services-static-site-to-use-Cloudflare -title: Configuring an Amazon Web Services static site to use Cloudflare - ---- - -## Overview - -You can use Cloudflare to proxy sites that rely on Amazon Web Services (AWS) to store static content using Amazon's Simple Storage Service (S3). - -This article assumes that: - -* your site is associated with a registered domain, and -* you have static content, such as images or HTML pages, to add to your S3 bucket. - -To get started, follow the instructions below. - -*** - -## Configure your AWS S3 buckets - -An AWS S3 bucket is a public cloud storage resource. These buckets are similar to file folders, and store objects containing data and descriptive metadata. Learn more about [](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html)[Working with Amazon S3 Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html). - -In this guide, let's assume that you'd like your site to be available via both: - -* A subdomain URL, such as `https://www.example.com`, and -* the apex domain (also known as "root domain") URL, such as `https://example.com`. - -To accomplish this, you will need to configure two S3 buckets by completing the tasks below. - -### Task 1 - Set up an S3 bucket for a subdomain - -To create and configure your subdomain S3 bucket, follow these instructions from Amazon: - -1. Use the AWS management console to [Create an S3 Bucket](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html). For the **Bucket name**, use the subdomain URL without the `https://` part; for example, `www.example.com`. -2. Then, [Configure an S3 Bucket for Static Website Hosting](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/static-website-hosting.html). After you save the static website hosting configuration, you can skip disabling public access for your bucket. - -### Task 2 - Set up an S3 bucket for a apex domain - -After you've set up your subdomain bucket, you can create and configure your apex domain bucket. Follow these instructions from Amazon: - -1. Use the AWS management console to [Create an S3 Bucket](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html). For the **Bucket name**, use the domain URL without the `https://` part; for example, `example.com`. -2. Next, you need to redirect requests from this bucket's URL to the subdomain bucket URL you created. Follow the steps in [](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/static-website-hosting.html)[](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/redirect-website-requests.html)[Redirect Requests to an S3 Bucket Hosted Website to Another Host](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/redirect-website-requests.html). For **Target Bucket or Domain**, enter the same bucket name that you used for the subdomain bucket in Task 1; for example, `www.example.com`. - -*** - -## Configure bucket policies to allow Cloudflare IP addresses - -Now that you've created your buckets and enabled hosting for static content, you can set up permissions to allow Cloudflare to access your bucket. This ensures that your site only responds to requests coming from the Cloudflare proxy. This is the [current list of IP address ranges](https://www.cloudflare.com/ips/) used by the Cloudflare proxy. - -To set up your policy: - -1. Follow these instructions from Amazon to [Add an S3 Bucket Policy](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html). -2. For the step where you enter the policy in the **Bucket policy editor**, use this sample to fill out the needed JSON code, making sure to replace: - * `www.example.com` (appearing in `"Resource": "arn:aws:s3:www.example.com/*"`) with the S3 bucket name for your subdomain URL. - * The placeholder IP addresses with the current list of [Cloudflare IP addresses](https://www.cloudflare.com/ips) - -```json -{ - "Version": "2012-10-17", - "Statement": [ - { - "Sid": "PublicReadGetObject", - "Effect": "Deny", - "Principal": "*", - "Action": "s3:GetObject", - "Resource": "arn:aws:s3:::www.example.com/*", - "Condition": { - "NotIpAddress": { - "aws:SourceIp": [ - "192.2.0.1" (example IP address), - "192.2.0.2" (example IP address), - (add all IPs listed at https://www.cloudflare.com/ips) - ] - } - } - } - ] -} -``` - -*** - -## Upload static content to your S3 bucket - -To add static content to your S3 bucket, follow Amazon's instructions for [Uploading Files and Folders to an S3 Bucket](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/upload-objects.html). - -:::caution - -When uploading static content, you must select the correct properties -and permissions. Also for each uploaded resource, enter the most -appropriate value for the *Content-Type* header as this affects the way -your content displays. -::: - -*** - -## Set up your site on Cloudflare - -:::note - -Consider creating a [Cloud Connector](/rules/cloud-connector/) rule for this step to automatically set all the Cloudflare settings required to route traffic to your bucket. - -::: - -Before setting up your site on Cloudflare, ensure you have the URLs or endpoints for both your subdomain and root buckets. For each bucket, you can find the URL in the AWS S3 console under **Properties** > **Static website hosting** > **Endpoint**. - -To get started: - -1. Follow the instructions to [Create a Cloudflare account and add a website](https://support.cloudflare.com/hc/articles/201720164). If you already have an account, you can go directly to **Add a domain to Cloudflare**. -2. When you get to the step to verify your DNS records in the **DNS query results** screen, you will need to create two new CNAME records for the subdomain and apex domain URLs, respectively. -3. Click **Add Record** to create the subdomain DNS record (e.g., `www.example.com`). Follow instructions for adding a *CNAME* record in [Managing DNS records in Cloudflare](https://support.cloudflare.com/hc/articles/360019093151). - * In the **Name** field, enter the subdomain name; for example, *www*. - * In the **Value** field, enter the subdomain bucket endpoint. Do not include the `https://` part. - * Click **Save**. -4. Next for the apex domain (e.g. `example.com`), click **Add Record.** Follow instructions for adding a *CNAME* record in [Managing DNS records in Cloudflare](https://support.cloudflare.com/hc/articles/360019093151). - * In the **Name** field, enter the apex domain name; for example, *example.com*. - * In the **Value** field, the apex domain bucket endpoint. Do not include the `https://` part. - * Click **Save**. -5. Since S3 static sites do not support HTTPS by default, use a [Configuration Rule](/rules/configuration-rules/settings/#ssl) to set the **SSL Mode** to [Flexible](/ssl/origin-configuration/ssl-modes/). -6. To finish, [Change your domain nameservers to Cloudflare](https://support.cloudflare.com/hc/articles/205195708). - -Once your site is fully configured in Cloudflare, your visitors can access your AWS S3 hosted content using either the subdomain or apex domain endpoint you set up. - -*** - -## Troubleshooting - -*I keep getting “Invalid hostname: Use ‘@’ to represent the root domain.” when creating DNS records in Cloudflare.*  - -* Make sure you are creating CNAME records and not another record type. - -*** - -*Cloudflare is my domain name registrar and I don’t know how to change my nameservers.* - -* You don’t need to change the nameservers if you are already using Cloudflare as a domain name registrar. - -*** - -*My static HTML pages show up as HTML code without any formatting on my domain.* - -* Ensure that you have selected the correct metadata options in **Set Properties** > **Metadata** > **Header:** *Content-Type*, **Value:** *text/html*. diff --git a/src/content/docs/support/third-party-software/others/enabling-cloudflare-ssl-on-azure-storage-static-web-hosting-applications.mdx b/src/content/docs/support/third-party-software/others/enabling-cloudflare-ssl-on-azure-storage-static-web-hosting-applications.mdx deleted file mode 100644 index 81c9339dc036999..000000000000000 --- a/src/content/docs/support/third-party-software/others/enabling-cloudflare-ssl-on-azure-storage-static-web-hosting-applications.mdx +++ /dev/null @@ -1,89 +0,0 @@ ---- -pcx_content_type: troubleshooting -source: https://support.cloudflare.com/hc/en-us/articles/360021902391-Enabling-Cloudflare-SSL-on-Azure-Storage-Static-Web-Hosting-Applications -title: Enabling Cloudflare SSL on Azure Storage Static Web Hosting Applications - ---- - -## Overview - -Static Web Hosting allows an Azure storage container to directly serve static content.  However, the current [Azure Static Web Hosting](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-static-website) technology stack does not support SSL for certain URLs. For example, if *foo.com* were the domain using Static Web Hosting, traffic destined for *[https://www.foo.com](https://www.foo.com)* and *[https://foo.com](https://foo.com)* could not use SSL.  However, proxying Static Web Hosting Applications through Cloudflare allows SSL to be enabled for these URLs. - -Static Web Hosting enables https with the following URLs, for example, if *foo.com* is the domain: - -``` -https://<>.blob.core.windows.net/ -https://<>.<>.web.core.windows.net -``` - -A Static Web Hosting custom domain, *foo.com*, uses a *CNAME* to point to another *CNAME* which utilizes the **\*.blob, \*.web** URLs.  That *CNAME* then resolves to another *CNAME* which is the *A record* of the FE pool for the Azure storage account.  To clarify this configuration, refer to the following example: - -``` -storage.foo.com CNAME foo.blob.core.windows.net -foo.blob.core.windows.net CNAME blob.exampleprdstr01.store.core.windows.net -blob.exampleprdstr01.store.core.windows.net A 13.78.152.64 -``` - -:::note - -Currently, one IP address is returned for the *A record* except in the -case of ZRS (zone redundant storage) which will return the IP addresses -of all FE pools (one in each availability zone). -::: - -Route traffic from the Static Web Hosting application to Cloudflare in order to enable Cloudflare SSL: - -`Browser <—SSL—> Cloudflare Proxy <—SSL—> Static Web Hosting` - -[Setup a Cloudflare Account](https://support.cloudflare.com/hc/en-us/articles/360021902391#h_21187007881548695540718) to get started. - -*** - -## Create a Cloudflare Account - -To receive SSL on a custom domain: - -1\. Create a new Cloudflare account or use an existing account.  - -2\. Enter the name of your custom domain under **Add Your Site**. - -3\. Cloudflare queries authoritative DNS servers for the DNS records registered for the domain. - -*** - -## Choose a plan - -Select the Free, Pro, or Business plan for the domain. If you choose Free or Pro, Cloudflare will generate an SSL certificate for communications between browsers and the Cloudflare proxy. If you prefer to upload your own SSL certificate to Cloudflare, choose the Business plan. - -*** - -## Select a DNS Method - -If you want Cloudflare to provide authoritative DNS, use the Cloudflare nameservers provided for your domain and place them in the DNS manager of your domain registrar. - -If you want to [use the CNAME method](https://support.cloudflare.com/hc/articles/360020348832), you’ll need to follow additional steps. - -*** - -## Select an SSL Method - -When logged into your Cloudflare account, select the **Overview** tab **SSL/TLS** app.  The default **SSL** setting is Flexible SSL; however, there are [other SSL options](https://support.cloudflare.com/hc/articles/200170416).  - -:::note - -For domains activated on Free or Pro plans, it may take up to 24 hours -for new SSL certificates to issue. -::: - -Because DNS settings are cached in various locations throughout the Internet, including on a client's browser, changes to SSL settings may take time to propagate and start functioning as expected. - -If you want an HTTPS connection between CF and Azure, a valid SSL certificate must be installed on the blob itself. Since this is enabled in Azure by default, you may immediately change your SSL settings to *Full* or *Full (strict)* to ensure encryption between the client, Cloudflare, and Azure. - -*** - -## Related resources - -* [Create a Cloudflare account and add a domain](https://support.cloudflare.com/hc/articles/201720164) -* [Understanding a CNAME setup](https://support.cloudflare.com/hc/articles/360020348832) -* [What SSL certificates are available through Cloudflare?](https://support.cloudflare.com/hc/articles/203295200) -* [What are the SSL configuration options?](https://support.cloudflare.com/hc/articles/200170416) From e2281d328645e9b6fb46f48bfb693f5416228455 Mon Sep 17 00:00:00 2001 From: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> Date: Fri, 18 Oct 2024 11:22:27 +0100 Subject: [PATCH 071/110] [Rules] Use `output` blocks (#17599) --- .../docs/rules/cloud-connector/create-api.mdx | 2 +- .../docs/rules/origin-rules/create-api.mdx | 220 ++++++------- .../create-api.mdx | 237 +++++++------- .../create-api.mdx | 309 +++++++++--------- .../transform/url-rewrite/create-api.mdx | 160 +++++---- .../bulk-redirects/create-api.mdx | 248 +++++++------- .../single-redirects/create-api.mdx | 182 +++++------ 7 files changed, 657 insertions(+), 701 deletions(-) diff --git a/src/content/docs/rules/cloud-connector/create-api.mdx b/src/content/docs/rules/cloud-connector/create-api.mdx index 46bb8a974fb4c82..d1378c0f4a57a89 100644 --- a/src/content/docs/rules/cloud-connector/create-api.mdx +++ b/src/content/docs/rules/cloud-connector/create-api.mdx @@ -48,7 +48,7 @@ curl https://api.cloudflare.com/client/v4/zones/{zone_id}/cloud_connector/rules --header "Authorization: Bearer " ``` -```json title="Example response" +```json output { "result": [ { diff --git a/src/content/docs/rules/origin-rules/create-api.mdx b/src/content/docs/rules/origin-rules/create-api.mdx index 59626c97b8a7ad5..3386adf6478f12b 100644 --- a/src/content/docs/rules/origin-rules/create-api.mdx +++ b/src/content/docs/rules/origin-rules/create-api.mdx @@ -6,10 +6,9 @@ sidebar: head: - tag: title content: Create an origin rule via API - --- -import { Details, Render } from "~/components" +import { Details, Render } from "~/components"; Use the [Rulesets API](/ruleset-engine/rulesets-api/) to create origin rules via API. @@ -17,24 +16,26 @@ Use the [Rulesets API](/ruleset-engine/rulesets-api/) to create origin rules via When creating an origin rule via API, make sure you: -* Set the rule action to `route`. -* Define the [parameters](/rules/origin-rules/parameters/) in the `action_parameters` field according to the type of origin override. -* Deploy the rule to the `http_request_origin` phase at the zone level. +- Set the rule action to `route`. +- Define the [parameters](/rules/origin-rules/parameters/) in the `action_parameters` field according to the type of origin override. +- Deploy the rule to the `http_request_origin` phase at the zone level. ## Procedure - + Make sure your API token has the [required permissions](#required-api-token-permissions) to perform the API operations. ## Example requests -
    -The following example sets the rules of an existing phase ruleset (`{ruleset_id}`) to a single origin rule — overriding the HTTP `Host` header — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation: +The following example sets the rules of an existing phase ruleset (`{ruleset_id}`) to a single origin rule — overriding the HTTP `Host` header — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation. The response will contain the complete definition of the ruleset you updated. -```bash title="Request" +```bash curl --request PUT \ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ --header "Authorization: Bearer " \ @@ -53,48 +54,44 @@ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ }' ``` -The response contains the complete definition of the ruleset you updated. - -```json title="Response" +```json output { - "result": { - "id": "", - "name": "Origin Rules ruleset", - "description": "Zone-level ruleset that will execute origin rules.", - "kind": "zone", - "version": "2", - "rules": [ - { - "id": "", - "version": "1", - "action": "route", - "action_parameters": { - "host_header": "eu_server.example.net" - }, - "expression": "http.request.uri.query contains \"/eu/\"", - "description": "My first origin rule", - "last_updated": "2022-06-02T14:42:04.219025Z", - "ref": "" - } - ], - "last_updated": "2022-06-02T14:42:04.219025Z", - "phase": "http_request_origin" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "id": "", + "name": "Origin Rules ruleset", + "description": "Zone-level ruleset that will execute origin rules.", + "kind": "zone", + "version": "2", + "rules": [ + { + "id": "", + "version": "1", + "action": "route", + "action_parameters": { + "host_header": "eu_server.example.net" + }, + "expression": "http.request.uri.query contains \"/eu/\"", + "description": "My first origin rule", + "last_updated": "2022-06-02T14:42:04.219025Z", + "ref": "" + } + ], + "last_updated": "2022-06-02T14:42:04.219025Z", + "phase": "http_request_origin" + }, + "success": true, + "errors": [], + "messages": [] } ``` -
    -
    -The following example sets the rules of an existing phase ruleset (`{ruleset_id}`) to a single origin rule — overriding the SNI value of incoming requests addressed at `admin.example.com` — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation: +The following example sets the rules of an existing phase ruleset (`{ruleset_id}`) to a single origin rule — overriding the SNI value of incoming requests addressed at `admin.example.com` — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation. -```bash title="Request" +```bash curl --request PUT \ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ --header "Authorization: Bearer " \ @@ -115,15 +112,13 @@ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ }' ``` -
    -
    -The following example sets the rules of an existing phase ruleset (`{ruleset_id}`) to a single origin rule — overriding the resolved DNS record and the `Host` header of incoming requests — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation: +The following example sets the rules of an existing phase ruleset (`{ruleset_id}`) to a single origin rule — overriding the resolved DNS record and the `Host` header of incoming requests — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation. The response will contain the complete definition of the ruleset you updated. -```bash title="Request" +```bash curl --request PUT \ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ --header "Authorization: Bearer " \ @@ -145,51 +140,47 @@ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ }' ``` -The response contains the complete definition of the ruleset you updated. - -```json title="Response" +```json output { - "result": { - "id": "", - "name": "Origin Rules ruleset", - "description": "Zone-level ruleset that will execute origin rules.", - "kind": "zone", - "version": "2", - "rules": [ - { - "id": "", - "version": "1", - "action": "route", - "action_parameters": { - "host_header": "hr-server.example.com", - "origin": { - "host": "hr-server.example.com" - } - }, - "expression": "starts_with(http.request.uri.path, \"/hr-app/\")", - "description": "Origin rule for the company HR application", - "last_updated": "2022-06-03T14:42:04.219025Z", - "ref": "" - } - ], - "last_updated": "2022-06-03T14:42:04.219025Z", - "phase": "http_request_origin" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "id": "", + "name": "Origin Rules ruleset", + "description": "Zone-level ruleset that will execute origin rules.", + "kind": "zone", + "version": "2", + "rules": [ + { + "id": "", + "version": "1", + "action": "route", + "action_parameters": { + "host_header": "hr-server.example.com", + "origin": { + "host": "hr-server.example.com" + } + }, + "expression": "starts_with(http.request.uri.path, \"/hr-app/\")", + "description": "Origin rule for the company HR application", + "last_updated": "2022-06-03T14:42:04.219025Z", + "ref": "" + } + ], + "last_updated": "2022-06-03T14:42:04.219025Z", + "phase": "http_request_origin" + }, + "success": true, + "errors": [], + "messages": [] } ``` -
    -
    -The following example sets the rules of an existing phase ruleset (`{ruleset_id}`) to a single origin rule — overriding the port of incoming requests — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation: +The following example sets the rules of an existing phase ruleset (`{ruleset_id}`) to a single origin rule — overriding the port of incoming requests — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation. The response will contain the complete definition of the ruleset you updated. -```bash title="Request" +```bash curl --request PUT \ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ --header "Authorization: Bearer " \ @@ -210,48 +201,45 @@ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ }' ``` -The response contains the complete definition of the ruleset you updated. - -```json title="Response" +```json output { - "result": { - "id": "", - "name": "Origin Rules ruleset", - "description": "Zone-level ruleset that will execute origin rules.", - "kind": "zone", - "version": "2", - "rules": [ - { - "id": "", - "version": "1", - "action": "route", - "action_parameters": { - "origin": { - "port": 9000 - } - }, - "expression": "starts_with(http.request.uri.path, \"/team/calendar/\")", - "description": "Origin rule for the team calendar application", - "last_updated": "2022-06-03T14:42:04.219025Z", - "ref": "" - } - ], - "last_updated": "2022-06-03T14:42:04.219025Z", - "phase": "http_request_origin" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "id": "", + "name": "Origin Rules ruleset", + "description": "Zone-level ruleset that will execute origin rules.", + "kind": "zone", + "version": "2", + "rules": [ + { + "id": "", + "version": "1", + "action": "route", + "action_parameters": { + "origin": { + "port": 9000 + } + }, + "expression": "starts_with(http.request.uri.path, \"/team/calendar/\")", + "description": "Origin rule for the team calendar application", + "last_updated": "2022-06-03T14:42:04.219025Z", + "ref": "" + } + ], + "last_updated": "2022-06-03T14:42:04.219025Z", + "phase": "http_request_origin" + }, + "success": true, + "errors": [], + "messages": [] } ``` -
    -*** +--- ## Required API token permissions The API token used in API requests to manage origin rules must have at least the following permission: -* *Origin* > *Edit* +- _Origin_ > _Edit_ diff --git a/src/content/docs/rules/transform/request-header-modification/create-api.mdx b/src/content/docs/rules/transform/request-header-modification/create-api.mdx index 0193046035bfabe..a20cf9dc4c81a68 100644 --- a/src/content/docs/rules/transform/request-header-modification/create-api.mdx +++ b/src/content/docs/rules/transform/request-header-modification/create-api.mdx @@ -7,10 +7,9 @@ sidebar: head: - tag: title content: Create an HTTP request header modification rule via API - --- -import { Details, Render } from "~/components" +import { Details, Render } from "~/components"; Use the [Rulesets API](/ruleset-engine/rulesets-api/) to create HTTP request header modification rules via API. Refer to the [Rules examples gallery](/rules/transform/examples/?operation=Request+modification) for common use cases. @@ -18,24 +17,29 @@ Use the [Rulesets API](/ruleset-engine/rulesets-api/) to create HTTP request hea When creating an HTTP request header modification rule via API, make sure you: -* Set the rule action to `rewrite`. -* Define the [header modification parameters](/rules/transform/request-header-modification/reference/parameters/) in the `action_parameters` field according to the operation to perform (set or remove header). -* Deploy the rule to the `http_request_late_transform` phase at the zone level. +- Set the rule action to `rewrite`. +- Define the [header modification parameters](/rules/transform/request-header-modification/reference/parameters/) in the `action_parameters` field according to the operation to perform (set or remove header). +- Deploy the rule to the `http_request_late_transform` phase at the zone level. ## Procedure - + Make sure your API token has the [required permissions](#required-api-token-permissions) to perform the API operations. ## Example requests -
    -The following example sets the rules of an existing phase ruleset (`{ruleset_id}`) to a single HTTP request header modification rule — adding an HTTP request header with a static value — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation: +The following example sets the rules of an existing phase ruleset (`{ruleset_id}`) to a single HTTP request header modification rule — adding an HTTP request header with a static value — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation. The response will contain the complete definition of the ruleset you updated. -```bash title="Request" +```bash curl --request PUT \ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ --header "Authorization: Bearer " \ @@ -59,53 +63,49 @@ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ }' ``` -The response contains the complete definition of the ruleset you updated. - -```json title="Response" +```json output { - "result": { - "id": "", - "name": "Zone-level Late Transform Ruleset", - "description": "Zone-level ruleset that will execute Late Transform Rules.", - "kind": "zone", - "version": "2", - "rules": [ - { - "id": "", - "version": "1", - "action": "rewrite", - "action_parameters": { - "headers": { - "X-Source": { - "operation": "set", - "value": "Cloudflare" - } - } - }, - "expression": "(starts_with(http.request.uri.path, \"/en/\"))", - "description": "My first HTTP request header modification rule", - "last_updated": "2021-04-14T14:42:04.219025Z", - "ref": "" - } - ], - "last_updated": "2021-04-14T14:42:04.219025Z", - "phase": "http_request_late_transform" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "id": "", + "name": "Zone-level Late Transform Ruleset", + "description": "Zone-level ruleset that will execute Late Transform Rules.", + "kind": "zone", + "version": "2", + "rules": [ + { + "id": "", + "version": "1", + "action": "rewrite", + "action_parameters": { + "headers": { + "X-Source": { + "operation": "set", + "value": "Cloudflare" + } + } + }, + "expression": "(starts_with(http.request.uri.path, \"/en/\"))", + "description": "My first HTTP request header modification rule", + "last_updated": "2021-04-14T14:42:04.219025Z", + "ref": "" + } + ], + "last_updated": "2021-04-14T14:42:04.219025Z", + "phase": "http_request_late_transform" + }, + "success": true, + "errors": [], + "messages": [] } ``` -
    -
    -The following example sets the rules of an existing phase ruleset (`{ruleset_id}`) to a single HTTP request header modification rule — adding an HTTP request header with a dynamic value — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation: +The following example sets the rules of an existing phase ruleset (`{ruleset_id}`) to a single HTTP request header modification rule — adding an HTTP request header with a dynamic value — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation. The response will contain the complete definition of the ruleset you updated. -```bash title="Request" +```bash curl --request PUT \ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ --header "Authorization: Bearer " \ @@ -129,53 +129,49 @@ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ }' ``` -The response contains the complete definition of the ruleset you updated. - -```json title="Response" +```json output { - "result": { - "id": "", - "name": "Zone-level Late Transform Ruleset", - "description": "Zone-level ruleset that will execute Late Transform Rules.", - "kind": "zone", - "version": "2", - "rules": [ - { - "id": "", - "version": "1", - "action": "rewrite", - "action_parameters": { - "headers": { - "X-Bot-Score": { - "operation": "set", - "expression": "to_string(cf.bot_management.score)" - } - } - }, - "expression": "(starts_with(http.request.uri.path, \"/en/\"))", - "description": "My first HTTP request header modification rule", - "last_updated": "2021-04-14T14:42:04.219025Z", - "ref": "" - } - ], - "last_updated": "2021-04-14T14:42:04.219025Z", - "phase": "http_request_late_transform" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "id": "", + "name": "Zone-level Late Transform Ruleset", + "description": "Zone-level ruleset that will execute Late Transform Rules.", + "kind": "zone", + "version": "2", + "rules": [ + { + "id": "", + "version": "1", + "action": "rewrite", + "action_parameters": { + "headers": { + "X-Bot-Score": { + "operation": "set", + "expression": "to_string(cf.bot_management.score)" + } + } + }, + "expression": "(starts_with(http.request.uri.path, \"/en/\"))", + "description": "My first HTTP request header modification rule", + "last_updated": "2021-04-14T14:42:04.219025Z", + "ref": "" + } + ], + "last_updated": "2021-04-14T14:42:04.219025Z", + "phase": "http_request_late_transform" + }, + "success": true, + "errors": [], + "messages": [] } ``` -
    -
    -The following example sets the rules of an existing phase ruleset (`{ruleset_id}`) to a single HTTP request header modification rule — removing an HTTP request header — using the [Update a zone ruleset](/api/operations/updateZoneRuleset): +The following example sets the rules of an existing phase ruleset (`{ruleset_id}`) to a single HTTP request header modification rule — removing an HTTP request header — using the [Update a zone ruleset](/api/operations/updateZoneRuleset). The response will contain the complete definition of the ruleset you updated. -```bash title="Request" +```bash curl --request PUT \ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ --header "Authorization: Bearer " \ @@ -198,51 +194,48 @@ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ }' ``` -The response contains the complete definition of the ruleset you updated. - -```json title="Response" +```json output { - "result": { - "id": "", - "name": "Zone-level Late Transform Ruleset", - "description": "Zone-level ruleset that will execute Late Transform Rules.", - "kind": "zone", - "version": "2", - "rules": [ - { - "id": "", - "version": "1", - "action": "rewrite", - "action_parameters": { - "headers": { - "cf-connecting-ip": { - "operation": "remove" - } - } - }, - "expression": "(starts_with(http.request.uri.path, \"/en/\"))", - "description": "My first HTTP request header modification rule", - "last_updated": "2021-04-14T14:42:04.219025Z", - "ref": "" - } - ], - "last_updated": "2021-04-14T14:42:04.219025Z", - "phase": "http_request_late_transform" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "id": "", + "name": "Zone-level Late Transform Ruleset", + "description": "Zone-level ruleset that will execute Late Transform Rules.", + "kind": "zone", + "version": "2", + "rules": [ + { + "id": "", + "version": "1", + "action": "rewrite", + "action_parameters": { + "headers": { + "cf-connecting-ip": { + "operation": "remove" + } + } + }, + "expression": "(starts_with(http.request.uri.path, \"/en/\"))", + "description": "My first HTTP request header modification rule", + "last_updated": "2021-04-14T14:42:04.219025Z", + "ref": "" + } + ], + "last_updated": "2021-04-14T14:42:04.219025Z", + "phase": "http_request_late_transform" + }, + "success": true, + "errors": [], + "messages": [] } ``` -
    -*** +--- ## Required API token permissions The API token used in API requests to manage HTTP request header modification rules must have at least the following permissions: -* *Transform Rules* > *Edit* -* *Account Rulesets* > *Read* +- _Transform Rules_ > _Edit_ +- _Account Rulesets_ > _Read_ diff --git a/src/content/docs/rules/transform/response-header-modification/create-api.mdx b/src/content/docs/rules/transform/response-header-modification/create-api.mdx index fd845f7af6c5606..c56d3efee329f06 100644 --- a/src/content/docs/rules/transform/response-header-modification/create-api.mdx +++ b/src/content/docs/rules/transform/response-header-modification/create-api.mdx @@ -6,10 +6,9 @@ sidebar: head: - tag: title content: Create an HTTP response header modification rule via API - --- -import { Details, Render } from "~/components" +import { Details, Render } from "~/components"; Use the [Rulesets API](/ruleset-engine/rulesets-api/) to create HTTP response header modification rules via API. Refer to the [Rules examples gallery](/rules/transform/examples/?operation=Response+modification) for common use cases. @@ -17,24 +16,29 @@ Use the [Rulesets API](/ruleset-engine/rulesets-api/) to create HTTP response he When creating an HTTP response header modification rule via API, make sure you: -* Set the rule action to `rewrite`. -* Define the [header modification parameters](/rules/transform/request-header-modification/reference/parameters/) in the `action_parameters` field according to the operation to perform (set, add, or remove header). -* Deploy the rule to the `http_response_headers_transform` phase at the zone level. +- Set the rule action to `rewrite`. +- Define the [header modification parameters](/rules/transform/request-header-modification/reference/parameters/) in the `action_parameters` field according to the operation to perform (set, add, or remove header). +- Deploy the rule to the `http_response_headers_transform` phase at the zone level. ## Procedure - + Make sure your API token has the [required permissions](#required-api-token-permissions) to perform the API operations. ## Example requests -
    -The following example configures the rules of an existing phase ruleset (`{ruleset_id}`) to a single HTTP response header modification rule — setting an HTTP response header to a static value — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation: +The following example configures the rules of an existing phase ruleset (`{ruleset_id}`) to a single HTTP response header modification rule — setting an HTTP response header to a static value — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation. The response will contain the complete definition of the ruleset you updated. -```bash title="Request" +```bash curl --request PUT \ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ --header "Authorization: Bearer " \ @@ -58,53 +62,49 @@ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ }' ``` -The response contains the complete definition of the ruleset you updated. - -```json title="Response" +```json output { - "result": { - "id": "", - "name": "Zone-level Response Headers Transform Ruleset", - "description": "Zone-level ruleset that will execute Response Header Modification Rules.", - "kind": "zone", - "version": "2", - "rules": [ - { - "id": "", - "version": "1", - "action": "rewrite", - "action_parameters": { - "headers": { - "X-Source": { - "operation": "set", - "value": "Cloudflare" - } - } - }, - "expression": "(starts_with(http.request.uri.path, \"/en/\"))", - "description": "My first HTTP response header modification rule", - "last_updated": "2021-04-14T14:42:04.219025Z", - "ref": "" - } - ], - "last_updated": "2021-04-14T14:42:04.219025Z", - "phase": "http_response_headers_transform" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "id": "", + "name": "Zone-level Response Headers Transform Ruleset", + "description": "Zone-level ruleset that will execute Response Header Modification Rules.", + "kind": "zone", + "version": "2", + "rules": [ + { + "id": "", + "version": "1", + "action": "rewrite", + "action_parameters": { + "headers": { + "X-Source": { + "operation": "set", + "value": "Cloudflare" + } + } + }, + "expression": "(starts_with(http.request.uri.path, \"/en/\"))", + "description": "My first HTTP response header modification rule", + "last_updated": "2021-04-14T14:42:04.219025Z", + "ref": "" + } + ], + "last_updated": "2021-04-14T14:42:04.219025Z", + "phase": "http_response_headers_transform" + }, + "success": true, + "errors": [], + "messages": [] } ``` -
    -
    -The following example configures the rules of an existing phase ruleset (`{ruleset_id}`) to a single HTTP response header modification rule — setting an HTTP response header to a dynamic value — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation: +The following example configures the rules of an existing phase ruleset (`{ruleset_id}`) to a single HTTP response header modification rule — setting an HTTP response header to a dynamic value — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation. The response will contain the complete definition of the ruleset you updated. -```bash title="Request" +```bash curl --request PUT \ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ --header "Authorization: Bearer " \ @@ -128,53 +128,49 @@ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ }' ``` -The response contains the complete definition of the ruleset you updated. - -```json title="Response" +```json output { - "result": { - "id": "", - "name": "Zone-level Response Headers Transform Ruleset", - "description": "Zone-level ruleset that will execute Response Header Modification Rules.", - "kind": "zone", - "version": "2", - "rules": [ - { - "id": "", - "version": "1", - "action": "rewrite", - "action_parameters": { - "headers": { - "X-Bot-Score": { - "operation": "set", - "expression": "to_string(cf.bot_management.score)" - } - } - }, - "expression": "(starts_with(http.request.uri.path, \"/en/\"))", - "description": "My first HTTP response header modification rule", - "last_updated": "2021-04-14T14:42:04.219025Z", - "ref": "" - } - ], - "last_updated": "2021-04-14T14:42:04.219025Z", - "phase": "http_response_headers_transform" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "id": "", + "name": "Zone-level Response Headers Transform Ruleset", + "description": "Zone-level ruleset that will execute Response Header Modification Rules.", + "kind": "zone", + "version": "2", + "rules": [ + { + "id": "", + "version": "1", + "action": "rewrite", + "action_parameters": { + "headers": { + "X-Bot-Score": { + "operation": "set", + "expression": "to_string(cf.bot_management.score)" + } + } + }, + "expression": "(starts_with(http.request.uri.path, \"/en/\"))", + "description": "My first HTTP response header modification rule", + "last_updated": "2021-04-14T14:42:04.219025Z", + "ref": "" + } + ], + "last_updated": "2021-04-14T14:42:04.219025Z", + "phase": "http_response_headers_transform" + }, + "success": true, + "errors": [], + "messages": [] } ``` -
    -
    -The following example configures the rules of an existing phase ruleset (`{ruleset_id}`) to a single HTTP response header modification rule — adding a `set-cookie` HTTP response header with a static value — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation. By configuring the rule with the `add` operation you will keep any existing `set-cookie` headers that may already exist in the response. +The following example configures the rules of an existing phase ruleset (`{ruleset_id}`) to a single HTTP response header modification rule — adding a `set-cookie` HTTP response header with a static value — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation. By configuring the rule with the `add` operation you will keep any existing `set-cookie` headers that may already exist in the response. The response will contain the complete definition of the ruleset you updated. -```bash title="Request" +```bash curl --request PUT \ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ --header "Authorization: Bearer " \ @@ -198,53 +194,49 @@ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ }' ``` -The response contains the complete definition of the ruleset you updated. - -```json title="Response" +```json output { - "result": { - "id": "", - "name": "Zone-level Response Headers Transform Ruleset", - "description": "Zone-level ruleset that will execute Response Header Modification Rules.", - "kind": "zone", - "version": "2", - "rules": [ - { - "id": "", - "version": "1", - "action": "rewrite", - "action_parameters": { - "headers": { - "set-cookie": { - "operation": "add", - "value": "mycookie=custom_value" - } - } - }, - "expression": "(starts_with(http.request.uri.path, \"/en/\"))", - "description": "My first HTTP response header modification rule", - "last_updated": "2021-04-14T14:42:04.219025Z", - "ref": "" - } - ], - "last_updated": "2021-04-14T14:42:04.219025Z", - "phase": "http_response_headers_transform" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "id": "", + "name": "Zone-level Response Headers Transform Ruleset", + "description": "Zone-level ruleset that will execute Response Header Modification Rules.", + "kind": "zone", + "version": "2", + "rules": [ + { + "id": "", + "version": "1", + "action": "rewrite", + "action_parameters": { + "headers": { + "set-cookie": { + "operation": "add", + "value": "mycookie=custom_value" + } + } + }, + "expression": "(starts_with(http.request.uri.path, \"/en/\"))", + "description": "My first HTTP response header modification rule", + "last_updated": "2021-04-14T14:42:04.219025Z", + "ref": "" + } + ], + "last_updated": "2021-04-14T14:42:04.219025Z", + "phase": "http_response_headers_transform" + }, + "success": true, + "errors": [], + "messages": [] } ``` -
    -
    -The following example sets the rules of an existing phase ruleset (``) to a single HTTP response header modification rule — removing an HTTP response header — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation: +The following example sets the rules of an existing phase ruleset (``) to a single HTTP response header modification rule — removing an HTTP response header — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation. The response will contain the complete definition of the ruleset you updated. -```bash title="Request" +```bash curl --request PUT \ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ --header "Authorization: Bearer " \ @@ -267,51 +259,48 @@ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ }' ``` -The response contains the complete definition of the ruleset you updated. - -```json title="Response" +```json output { - "result": { - "id": "", - "name": "Zone-level Response Headers Transform Ruleset", - "description": "Zone-level ruleset that will execute Response Header Modification Rules.", - "kind": "zone", - "version": "2", - "rules": [ - { - "id": "", - "version": "1", - "action": "rewrite", - "action_parameters": { - "headers": { - "cf-connecting-ip": { - "operation": "remove" - } - } - }, - "expression": "(starts_with(http.request.uri.path, \"/en/\"))", - "description": "My first HTTP response header modification rule", - "last_updated": "2021-04-14T14:42:04.219025Z", - "ref": "" - } - ], - "last_updated": "2021-04-14T14:42:04.219025Z", - "phase": "http_response_headers_transform" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "id": "", + "name": "Zone-level Response Headers Transform Ruleset", + "description": "Zone-level ruleset that will execute Response Header Modification Rules.", + "kind": "zone", + "version": "2", + "rules": [ + { + "id": "", + "version": "1", + "action": "rewrite", + "action_parameters": { + "headers": { + "cf-connecting-ip": { + "operation": "remove" + } + } + }, + "expression": "(starts_with(http.request.uri.path, \"/en/\"))", + "description": "My first HTTP response header modification rule", + "last_updated": "2021-04-14T14:42:04.219025Z", + "ref": "" + } + ], + "last_updated": "2021-04-14T14:42:04.219025Z", + "phase": "http_response_headers_transform" + }, + "success": true, + "errors": [], + "messages": [] } ``` -
    -*** +--- ## Required API token permissions The API token used in API requests to manage HTTP response header modification rules must have at least the following permissions: -* *Transform Rules* > *Edit* -* *Account Rulesets* > *Read* +- _Transform Rules_ > _Edit_ +- _Account Rulesets_ > _Read_ diff --git a/src/content/docs/rules/transform/url-rewrite/create-api.mdx b/src/content/docs/rules/transform/url-rewrite/create-api.mdx index 18e76d7fe402643..d7faec50d961aed 100644 --- a/src/content/docs/rules/transform/url-rewrite/create-api.mdx +++ b/src/content/docs/rules/transform/url-rewrite/create-api.mdx @@ -6,10 +6,9 @@ sidebar: head: - tag: title content: Create a rewrite URL rule via API - --- -import { Details, Render } from "~/components" +import { Details, Render } from "~/components"; Use the [Rulesets API](/ruleset-engine/rulesets-api/) to create rewrite URL rules via API. Refer to the [Rules examples gallery](/rules/transform/examples/?operation=Rewrite+URL) for common use cases. @@ -17,24 +16,26 @@ Use the [Rulesets API](/ruleset-engine/rulesets-api/) to create rewrite URL rule When creating a rewrite URL rule via API, make sure you: -* Set the rule action to `rewrite`. -* Define the [URL rewrite parameters](/rules/transform/url-rewrite/reference/parameters/#api-information) in the `action_parameters` field according to the type of URL rewrite (static or dynamic). -* Deploy the rule to the `http_request_transform` phase at the zone level. +- Set the rule action to `rewrite`. +- Define the [URL rewrite parameters](/rules/transform/url-rewrite/reference/parameters/#api-information) in the `action_parameters` field according to the type of URL rewrite (static or dynamic). +- Deploy the rule to the `http_request_transform` phase at the zone level. ## Procedure - + Make sure your API token has the [required permissions](#required-api-token-permissions) to perform the API operations. ## Example requests -
    -The following example sets the rules of an existing phase ruleset (`{ruleset_id}`) to a single rewrite URL rule — performing a static rewrite of the URI path — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation: +The following example sets the rules of an existing phase ruleset (`{ruleset_id}`) to a single rewrite URL rule — performing a static rewrite of the URI path — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation. The response will contain the complete definition of the ruleset you updated. -```bash title="Request" +```bash curl --request PUT \ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ --header "Authorization: Bearer " \ @@ -57,52 +58,48 @@ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ }' ``` -The response contains the complete definition of the ruleset you updated. - -```json title="Response" +```json output { - "result": { - "id": "", - "name": "Zone-level Transform Ruleset", - "description": "Zone-level ruleset that will execute Transform Rules.", - "kind": "zone", - "version": "2", - "rules": [ - { - "id": "", - "version": "1", - "action": "rewrite", - "action_parameters": { - "uri": { - "path": { - "value": "/emea.html" - } - } - }, - "expression": "(http.request.uri.query contains \"eu\")", - "description": "My first static rewrite URL rule", - "last_updated": "2021-04-14T14:42:04.219025Z", - "ref": "" - } - ], - "last_updated": "2021-04-14T14:42:04.219025Z", - "phase": "http_request_transform" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "id": "", + "name": "Zone-level Transform Ruleset", + "description": "Zone-level ruleset that will execute Transform Rules.", + "kind": "zone", + "version": "2", + "rules": [ + { + "id": "", + "version": "1", + "action": "rewrite", + "action_parameters": { + "uri": { + "path": { + "value": "/emea.html" + } + } + }, + "expression": "(http.request.uri.query contains \"eu\")", + "description": "My first static rewrite URL rule", + "last_updated": "2021-04-14T14:42:04.219025Z", + "ref": "" + } + ], + "last_updated": "2021-04-14T14:42:04.219025Z", + "phase": "http_request_transform" + }, + "success": true, + "errors": [], + "messages": [] } ``` -
    -
    -The following example sets the rules of an existing phase ruleset (`{ruleset_id}`) to a single rewrite URL rule — performing a dynamic rewrite of the URI path — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation: +The following example sets the rules of an existing phase ruleset (`{ruleset_id}`) to a single rewrite URL rule — performing a dynamic rewrite of the URI path — using the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation. The response will contain the complete definition of the ruleset you updated. -```bash title="Request" +```bash curl --request PUT \ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ --header "Authorization: Bearer " \ @@ -125,51 +122,48 @@ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ }' ``` -The response contains the complete definition of the ruleset you updated. - -```json title="Response" +```json output { - "result": { - "id": "", - "name": "Zone-level Transform Ruleset", - "description": "Zone-level ruleset that will execute Transform Rules.", - "kind": "zone", - "version": "2", - "rules": [ - { - "id": "", - "version": "1", - "action": "rewrite", - "action_parameters": { - "uri": { - "path": { - "expression": "concat(\"/archive\", http.request.uri.path)" - } - } - }, - "expression": "starts_with(http.request.uri.path, \"/news/2012/\")", - "description": "My first dynamic rewrite URL rule", - "last_updated": "2021-04-14T14:42:04.219025Z", - "ref": "" - } - ], - "last_updated": "2021-04-14T14:42:04.219025Z", - "phase": "http_request_transform" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "id": "", + "name": "Zone-level Transform Ruleset", + "description": "Zone-level ruleset that will execute Transform Rules.", + "kind": "zone", + "version": "2", + "rules": [ + { + "id": "", + "version": "1", + "action": "rewrite", + "action_parameters": { + "uri": { + "path": { + "expression": "concat(\"/archive\", http.request.uri.path)" + } + } + }, + "expression": "starts_with(http.request.uri.path, \"/news/2012/\")", + "description": "My first dynamic rewrite URL rule", + "last_updated": "2021-04-14T14:42:04.219025Z", + "ref": "" + } + ], + "last_updated": "2021-04-14T14:42:04.219025Z", + "phase": "http_request_transform" + }, + "success": true, + "errors": [], + "messages": [] } ``` -
    -*** +--- ## Required API token permissions The API token used in API requests to manage rewrite URL rules must have at least the following permissions: -* *Account* > *Transform Rules* > *Edit* -* *Account* > *Account Rulesets* > *Read* +- _Account_ > _Transform Rules_ > _Edit_ +- _Account_ > _Account Rulesets_ > _Read_ diff --git a/src/content/docs/rules/url-forwarding/bulk-redirects/create-api.mdx b/src/content/docs/rules/url-forwarding/bulk-redirects/create-api.mdx index 67caf0ba440d95f..fd259ef0edbddf6 100644 --- a/src/content/docs/rules/url-forwarding/bulk-redirects/create-api.mdx +++ b/src/content/docs/rules/url-forwarding/bulk-redirects/create-api.mdx @@ -7,10 +7,9 @@ head: - tag: title content: Create Bulk Redirects via API description: Learn how to create Bulk Redirects using the Cloudflare API. - --- -import { Render } from "~/components" +import { Render } from "~/components"; To create Bulk Redirects via API, you must: @@ -18,13 +17,16 @@ To create Bulk Redirects via API, you must: 2. Add items (URL redirects) to the list created in step 1. 3. Create a Bulk Redirect Rule via API, which enables the list created in step 1. - + ## 1. Create a Bulk Redirect List via API Use the [Create a list](/api/operations/lists-create-a-list) operation to create a new Bulk Redirect List. The list `kind` must be `redirect`. -```bash title="Request" +```bash curl https://api.cloudflare.com/client/v4/accounts/{account_id}/rules/lists \ --header "Authorization: Bearer " \ --header "Content-Type: application/json" \ @@ -35,23 +37,21 @@ curl https://api.cloudflare.com/client/v4/accounts/{account_id}/rules/lists \ }' ``` -The response will be similar to the following: - -```json title="Response" {3} +```json output {3} { - "result": { - "id": "f848b6ccb07647749411f504d6f88794", - "name": "my_redirect_list", - "description": "My redirect list.", - "kind": "redirect", - "num_items": 0, - "num_referencing_filters": 0, - "created_on": "2021-10-28T09:11:42Z", - "modified_on": "2021-10-28T09:11:42Z" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "id": "f848b6ccb07647749411f504d6f88794", + "name": "my_redirect_list", + "description": "My redirect list.", + "kind": "redirect", + "num_items": 0, + "num_referencing_filters": 0, + "created_on": "2021-10-28T09:11:42Z", + "modified_on": "2021-10-28T09:11:42Z" + }, + "success": true, + "errors": [], + "messages": [] } ``` @@ -63,7 +63,7 @@ For more information on list operations, refer to the [Lists API](/waf/tools/lis Use the [Create list items](/api/operations/lists-create-list-items) operation to add URL redirect items to the list. Enter the list ID from the previous step in the endpoint URL: -```bash title="Request" +```bash curl https://api.cloudflare.com/client/v4/accounts/{account_id}/rules/lists/f848b6ccb07647749411f504d6f88794/items \ --header "Authorization: Bearer " \ --header "Content-Type: application/json" \ @@ -84,38 +84,36 @@ curl https://api.cloudflare.com/client/v4/accounts/{account_id}/rules/lists/f848 ]' ``` -The response will be similar to the following: - -```json title="Response" +```json output { - "result": { - "operation_id": "92558f8b296d4dbe9d0419e0e53f6622" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "operation_id": "92558f8b296d4dbe9d0419e0e53f6622" + }, + "success": true, + "errors": [], + "messages": [] } ``` This is an asynchronous operation. The response will contain an `operation_id` which you will use to check if the operation completed successfully using the [Get bulk operation status](/api/operations/lists-get-bulk-operation-status) operation: -```bash title="Request" +```bash curl https://api.cloudflare.com/client/v4/accounts/{account_id}/rules/lists/bulk_operations/92558f8b296d4dbe9d0419e0e53f6622 \ --header "Authorization: Bearer " ``` -If the operation already completed successfully, the response will be similar to the following: +Once the operation has completed successfully, the response will be similar to the following: ```json title="Response" { - "result": { - "id": "92558f8b296d4dbe9d0419e0e53f6622", - "status": "completed", - "completed": "2021-10-28T09:15:42Z" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "id": "92558f8b296d4dbe9d0419e0e53f6622", + "status": "completed", + "completed": "2021-10-28T09:15:42Z" + }, + "success": true, + "errors": [], + "messages": [] } ``` @@ -127,12 +125,12 @@ Add Bulk Redirect Rules to the [entry point ruleset](/ruleset-engine/about/rules A Bulk Redirect Rule must have: -* `action` set to `redirect` -* An `action_parameters` object with additional configuration settings — refer to [API JSON objects: Bulk Redirect Rule](/rules/url-forwarding/bulk-redirects/reference/json-objects/#bulk-redirect-rule) for details. +- `action` set to `redirect` +- An `action_parameters` object with additional configuration settings — refer to [API JSON objects: Bulk Redirect Rule](/rules/url-forwarding/bulk-redirects/reference/json-objects/#bulk-redirect-rule) for details. The following request of the [Create an account ruleset](/api/operations/createAccountRuleset) operation creates a phase entry point ruleset for the `http_request_redirect` phase at the account level, and defines a single redirect rule. Use this operation if you have not created a phase entry point ruleset for the `http_request_redirect` phase yet. -```bash title="Request" +```bash curl https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets \ --header "Authorization: Bearer " \ --header "Content-Type: application/json" \ @@ -156,45 +154,43 @@ curl https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets \ }' ``` -The response will be similar to the following: - -```json title="Response" +```json output { - "result": { - "id": "528f4f03bf0da53a29907199625867be", - "name": "My redirect ruleset", - "kind": "root", - "version": "1", - "rules": [ - { - "id": "8da312df846b4258a05bcd454ea943be", - "version": "1", - "expression": "http.request.full_uri in $my_redirect_list", - "description": "Bulk Redirect rule.", - "action": "redirect", - "action_parameters": { - "from_list": { - "name": "my_redirect_list", - "key": "http.request.full_uri" - } - }, - "last_updated": "2021-10-28T09:20:42Z", - } - ], - "last_updated": "2021-10-28T09:20:42Z", - "phase": "http_request_redirect" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "id": "528f4f03bf0da53a29907199625867be", + "name": "My redirect ruleset", + "kind": "root", + "version": "1", + "rules": [ + { + "id": "8da312df846b4258a05bcd454ea943be", + "version": "1", + "expression": "http.request.full_uri in $my_redirect_list", + "description": "Bulk Redirect rule.", + "action": "redirect", + "action_parameters": { + "from_list": { + "name": "my_redirect_list", + "key": "http.request.full_uri" + } + }, + "last_updated": "2021-10-28T09:20:42Z" + } + ], + "last_updated": "2021-10-28T09:20:42Z", + "phase": "http_request_redirect" + }, + "success": true, + "errors": [], + "messages": [] } ``` If there is already a phase entry point ruleset for the `http_request_redirect` phase, use the [Update an account ruleset](/api/operations/updateAccountRuleset) operation instead, like in the following example: -```bash title="Request" +```bash curl --request PUT \ -https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets/{ruleset_id} \ +"https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets/{ruleset_id}" \ --header "Authorization: Bearer " \ --header "Content-Type: application/json" \ --data '{ @@ -228,64 +224,62 @@ https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets/{ruleset_id} }' ``` -The response will be similar to the following: - -```json title="Response" +```json output { - "result": { - "id": "67013aa153df4e5fbda92f92bc979331", - "name": "default", - "description": "", - "kind": "root", - "version": "2", - "rules": [ - { - "id": "8be62ab2ef9a4a41af30c24ff8e73e41", - "version": "1", - "action": "redirect", - "action_parameters": { - "from_list": { - "name": "my_redirect_list_1", - "key": "http.request.full_uri" - } - }, - "expression": "http.request.full_uri in $my_redirect_list_1", - "description": "Bulk Redirect rule 1", - "last_updated": "2021-12-03T15:38:51.658387Z", - "ref": "8be62ab2ef9a4a41af30c24ff8e73e41", - "enabled": true - }, - { - "id": "97e38797fb2b4b22a4919800f1318a5c", - "version": "1", - "action": "redirect", - "action_parameters": { - "from_list": { - "name": "my_redirect_list_2", - "key": "http.request.full_uri" - } - }, - "expression": "http.request.full_uri in $my_redirect_list_2", - "description": "Bulk Redirect rule 2", - "last_updated": "2021-12-03T15:38:51.658387Z", - "ref": "97e38797fb2b4b22a4919800f1318a5c", - "enabled": true - } - ], - "last_updated": "2021-12-03T15:38:51.658387Z", - "phase": "http_request_redirect" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "id": "67013aa153df4e5fbda92f92bc979331", + "name": "default", + "description": "", + "kind": "root", + "version": "2", + "rules": [ + { + "id": "8be62ab2ef9a4a41af30c24ff8e73e41", + "version": "1", + "action": "redirect", + "action_parameters": { + "from_list": { + "name": "my_redirect_list_1", + "key": "http.request.full_uri" + } + }, + "expression": "http.request.full_uri in $my_redirect_list_1", + "description": "Bulk Redirect rule 1", + "last_updated": "2021-12-03T15:38:51.658387Z", + "ref": "8be62ab2ef9a4a41af30c24ff8e73e41", + "enabled": true + }, + { + "id": "97e38797fb2b4b22a4919800f1318a5c", + "version": "1", + "action": "redirect", + "action_parameters": { + "from_list": { + "name": "my_redirect_list_2", + "key": "http.request.full_uri" + } + }, + "expression": "http.request.full_uri in $my_redirect_list_2", + "description": "Bulk Redirect rule 2", + "last_updated": "2021-12-03T15:38:51.658387Z", + "ref": "97e38797fb2b4b22a4919800f1318a5c", + "enabled": true + } + ], + "last_updated": "2021-12-03T15:38:51.658387Z", + "phase": "http_request_redirect" + }, + "success": true, + "errors": [], + "messages": [] } ``` -*** +--- ## Required API token permissions The API token used in API requests to manage Bulk Redirects objects (lists, list items, and rules) must have at least the following permissions: -* *Account* > *Account Rulesets* > *Edit* -* *Account* > *Account Filter Lists* > *Edit* +- _Account_ > _Account Rulesets_ > _Edit_ +- _Account_ > _Account Filter Lists_ > _Edit_ diff --git a/src/content/docs/rules/url-forwarding/single-redirects/create-api.mdx b/src/content/docs/rules/url-forwarding/single-redirects/create-api.mdx index d9928f7cc2fbdef..14fe18604572f16 100644 --- a/src/content/docs/rules/url-forwarding/single-redirects/create-api.mdx +++ b/src/content/docs/rules/url-forwarding/single-redirects/create-api.mdx @@ -6,23 +6,25 @@ sidebar: head: - tag: title content: Create a redirect rule via API - --- -import { Details, Render } from "~/components" +import { Details, Render } from "~/components"; Use the [Rulesets API](/ruleset-engine/rulesets-api/) to create a redirect rule via API. Add redirect rules to the entry point ruleset of the `http_request_dynamic_redirect` phase at the zone level. Refer to the [Rulesets API](/ruleset-engine/rulesets-api/) documentation for more information on [creating a ruleset](/ruleset-engine/rulesets-api/create/) and supplying a list of rules for the ruleset. - + ## Basic rule settings A redirect rule must have: -* `action` set to `redirect` -* An `action_parameters` object with additional configuration settings — refer to [Available settings](/rules/url-forwarding/single-redirects/settings/) for details. +- `action` set to `redirect` +- An `action_parameters` object with additional configuration settings — refer to [Available settings](/rules/url-forwarding/single-redirects/settings/) for details. ## Example requests @@ -55,45 +57,43 @@ curl https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets \ }' ``` -
    ```json { - "result": { - "id": "528f4f03bf0da53a29907199625867be", - "name": "Redirect rules ruleset", - "kind": "zone", - "version": "1", - "rules": [ - { - "id": "235e557b92fd4e5e8753ee665a9ddd75", - "version": "1", - "expression": "(ip.geoip.country eq \"GB\" or ip.geoip.country eq \"FR\") and http.request.uri.path eq \"/\"", - "description": "Redirect GB and FR users in home page to localized site.", - "action": "redirect", - "action_parameters": { - "from_value": { - "target_url": { - "expression": "lower(concat(\"https://\", ip.geoip.country, \".example.com\"))" - }, - "status_code": 307, - "preserve_query_string": true - } - }, - "last_updated": "2022-09-28T09:20:42Z", - } - ], - "last_updated": "2022-09-28T09:20:42Z", - "phase": "http_request_dynamic_redirect" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "id": "528f4f03bf0da53a29907199625867be", + "name": "Redirect rules ruleset", + "kind": "zone", + "version": "1", + "rules": [ + { + "id": "235e557b92fd4e5e8753ee665a9ddd75", + "version": "1", + "expression": "(ip.geoip.country eq \"GB\" or ip.geoip.country eq \"FR\") and http.request.uri.path eq \"/\"", + "description": "Redirect GB and FR users in home page to localized site.", + "action": "redirect", + "action_parameters": { + "from_value": { + "target_url": { + "expression": "lower(concat(\"https://\", ip.geoip.country, \".example.com\"))" + }, + "status_code": 307, + "preserve_query_string": true + } + }, + "last_updated": "2022-09-28T09:20:42Z" + } + ], + "last_updated": "2022-09-28T09:20:42Z", + "phase": "http_request_dynamic_redirect" + }, + "success": true, + "errors": [], + "messages": [] } ``` -
    If there is already a phase entry point ruleset for the `http_request_dynamic_redirect` phase, use the [Update a zone ruleset](/api/operations/updateZoneRuleset) operation instead, like in the following example: @@ -139,72 +139,70 @@ https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \ }' ``` -
    ```json { - "result": { - "id": "528f4f03bf0da53a29907199625867be", - "name": "Redirect rules ruleset", - "description": "", - "kind": "zone", - "version": "2", - "rules": [ - { - "id": "235e557b92fd4e5e8753ee665a9ddd75", - "version": "1", - "action": "redirect", - "action_parameters": { - "from_value": { - "target_url": { - "expression": "lower(concat(\"https://\", ip.geoip.country, \".example.com\"))" - }, - "status_code": 307, - "preserve_query_string": true - } - }, - "expression": "(ip.geoip.country eq \"GB\" or ip.geoip.country eq \"FR\") and http.request.uri.path eq \"/\"", - "description": "Redirect GB and FR users in home page to localized site.", - "last_updated": "2022-10-03T15:38:51.658387Z", - "ref": "235e557b92fd4e5e8753ee665a9ddd75", - "enabled": true - }, - { - "id": "cfad5efbfcd1440fb5b30cf30f95ece3", - "version": "1", - "action": "redirect", - "action_parameters": { - "from_value": { - "target_url": { - "value": "https://example.com/contact-us/" - }, - "status_code": 308 - } - }, - "expression": "http.request.uri.path eq \"/contacts.html\"", - "description": "Redirect to new contacts page.", - "last_updated": "2022-10-03T15:38:51.658387Z", - "ref": "cfad5efbfcd1440fb5b30cf30f95ece3", - "enabled": true - } - ], - "last_updated": "2022-10-03T15:38:51.658387Z", - "phase": "http_request_dynamic_redirect" - }, - "success": true, - "errors": [], - "messages": [] + "result": { + "id": "528f4f03bf0da53a29907199625867be", + "name": "Redirect rules ruleset", + "description": "", + "kind": "zone", + "version": "2", + "rules": [ + { + "id": "235e557b92fd4e5e8753ee665a9ddd75", + "version": "1", + "action": "redirect", + "action_parameters": { + "from_value": { + "target_url": { + "expression": "lower(concat(\"https://\", ip.geoip.country, \".example.com\"))" + }, + "status_code": 307, + "preserve_query_string": true + } + }, + "expression": "(ip.geoip.country eq \"GB\" or ip.geoip.country eq \"FR\") and http.request.uri.path eq \"/\"", + "description": "Redirect GB and FR users in home page to localized site.", + "last_updated": "2022-10-03T15:38:51.658387Z", + "ref": "235e557b92fd4e5e8753ee665a9ddd75", + "enabled": true + }, + { + "id": "cfad5efbfcd1440fb5b30cf30f95ece3", + "version": "1", + "action": "redirect", + "action_parameters": { + "from_value": { + "target_url": { + "value": "https://example.com/contact-us/" + }, + "status_code": 308 + } + }, + "expression": "http.request.uri.path eq \"/contacts.html\"", + "description": "Redirect to new contacts page.", + "last_updated": "2022-10-03T15:38:51.658387Z", + "ref": "cfad5efbfcd1440fb5b30cf30f95ece3", + "enabled": true + } + ], + "last_updated": "2022-10-03T15:38:51.658387Z", + "phase": "http_request_dynamic_redirect" + }, + "success": true, + "errors": [], + "messages": [] } ``` -
    -*** +--- ## Required API token permissions The API token used in API requests to manage redirect rules must have at least the following permission: -* *Zone* > *Single Redirect* > *Edit* +- _Zone_ > _Single Redirect_ > _Edit_ From 9e7b99edb328df295dbf59073a1bea3d1b2d5283 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2024 13:08:17 +0100 Subject: [PATCH 072/110] [Docs Site] Bump tailwindcss from 3.4.13 to 3.4.14 (#17614) Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.4.13 to 3.4.14. - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.14/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.13...v3.4.14) --- updated-dependencies: - dependency-name: tailwindcss dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 9 ++++----- package.json | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 865f9fb2e90b2d4..a5808a03543a9bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -64,7 +64,7 @@ "starlight-links-validator": "^0.12.0", "starlight-package-managers": "^0.7.0", "svgo": "^3.3.2", - "tailwindcss": "^3.4.10", + "tailwindcss": "^3.4.14", "tippy.js": "^6.3.7", "tsx": "^4.19.1", "typescript": "^5.6.3", @@ -15303,11 +15303,10 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.13", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.13.tgz", - "integrity": "sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==", + "version": "3.4.14", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz", + "integrity": "sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==", "dev": true, - "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", diff --git a/package.json b/package.json index 4b2570c90f726d1..84ef76f54c60e86 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "starlight-links-validator": "^0.12.0", "starlight-package-managers": "^0.7.0", "svgo": "^3.3.2", - "tailwindcss": "^3.4.10", + "tailwindcss": "^3.4.14", "tippy.js": "^6.3.7", "tsx": "^4.19.1", "typescript": "^5.6.3", From f495276970f600e4cf326517e3e7317a18244140 Mon Sep 17 00:00:00 2001 From: angelampcosta <92738954+angelampcosta@users.noreply.github.com> Date: Fri, 18 Oct 2024 14:20:04 +0100 Subject: [PATCH 073/110] [Spectrum] Adds a new ref page to the Spectrum docs (#17621) * Adds a new ref page to the Spectrum docs * Apply suggestions from code review Co-authored-by: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> * Adds glossary tool tip --------- Co-authored-by: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> --- .../spectrum/reference/layer-7-analytics.mdx | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/content/docs/spectrum/reference/layer-7-analytics.mdx diff --git a/src/content/docs/spectrum/reference/layer-7-analytics.mdx b/src/content/docs/spectrum/reference/layer-7-analytics.mdx new file mode 100644 index 000000000000000..3236c5ae881eb9f --- /dev/null +++ b/src/content/docs/spectrum/reference/layer-7-analytics.mdx @@ -0,0 +1,42 @@ +--- +pcx_content_type: reference +title: Why Spectrum-enabled hostnames might appear in Layer 7 Analytics +--- + +import { GlossaryTooltip } from "~/components" + +Even when you have Spectrum enabled to handle Layer 4 traffic (for example, TCP/UDP connections), you may still notice traffic in your Layer 7 (L7) analytics dashboard. This is due to the way Cloudflare's Layer 7 CDN + and Spectrum handle customer identity differently. + +## How Spectrum identifies a user (Layer 4) + +In Spectrum, the identity of the customer hostname is based on the Cloudflare IP address that the client uses to connect to the edge. Here is the typical process: + +1. Spectrum sets up a DNS hostname in the customer's zone that points to its Spectrum edge IP, and links this edge IP and port to the customer's configuration. +2. The client performs a DNS lookup on the Spectrum hostname, retrieves the Spectrum edge IP, and connects to that IP and port. +3. Spectrum uses this edge IP and port to match the connection to the customer's configuration, identifying the customer. + +This process focuses on Layer 4 associating a hostname and customer configuration around IP addresses and ports. + +## How the CDN identifies a user (Layer 7) + +1. The customer sets up a DNS hostname in their zone that directs traffic to their origin server. +2. The client performs a DNS lookup on the CDN hostname, and the DNS server responds with a CDN edge IP. In contrast to Spectrum, the CDN edge IP is primarily used for traffic management rather than customer identity, as multiple customers can share the same CDN edge IP. + +For the CDN, identifying the customer relies heavily on resolving hostnames during the TLS handshake (SNI) and the HTTP request (`Host` header). Notably, the CDN is designed to accept any hostname that matches the customer's zone (for example, `*.example.com`), even if there is no specific Layer 7 DNS match. This means that even Spectrum or Load Balancer hostnames will be accepted as valid under `*.example.com`. + +## The overlap: Layer 7 traffic being proxied through Spectrum + +Because the CDN is designed to accept any hostname under your zone (for example, `spectrum.example.com`), HTTP traffic that should first be proxied by Spectrum, or even HTTP traffic meant for a Layer-4-only Spectrum app, may sometimes be processed directly by the Layer 7 CDN system. The process is the following: + +1. The client connects to a Layer 7 CDN edge IP while using the hostname of a Spectrum application (for example, `spectrum.example.com`) during both the TLS handshake and the HTTP request. Essentially, this means the client is attempting to access `spectrum.example.com` on an incorrect IP. +2. The CDN accepts this hostname as part of the customer zone during both the TLS and HTTP phases because it is designed to recognize any hostname under `*.example.com`. As a result, the request passes through the CDN under the zone's identity. +3. However, when the CDN attempts to connect to the origin server, it performs an internal DNS lookup of the HTTP hostname, which resolves to the Spectrum IP (from `spectrum.example.com` to the Spectrum edge IP). Consequently, the CDN establishes an origin connection to Spectrum, loading its configuration and forwarding the request to the Spectrum origin. + +This means traffic for this hostname undergoes the standard Layer 7 CDN products, including Analytics and logs. + +## Blocking unwanted L7 traffic + +If you want to prevent traffic for Layer-4-only Spectrum hostnames from being proxied through Layer 7 to your origin (including unwanted scans or requests), we recommend implementing a Layer 7 WAF (Web Application Firewall) rule. This rule can block traffic directed at specific hostnames or ports, ensuring that only legitimate traffic reaches your Spectrum service. + +For example, you can create a WAF rule to block requests to `spectrum.example.com` unless they originate from a Spectrum IP or a customer's Spectrum BYOIP. The traffic will still be logged in Layer 7 Analytics, including WAF Security Events, but this prevents it from arriving at the wrong address and looping through the CDN a second time. \ No newline at end of file From 8e1f9b2f806b8b7bc2df62854d8f7af8d854d656 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2024 14:24:31 +0100 Subject: [PATCH 074/110] [Docs Site] Bump date-fns from 3.6.0 to 4.1.0 (#17611) Bumps [date-fns](https://github.com/date-fns/date-fns) from 3.6.0 to 4.1.0. - [Release notes](https://github.com/date-fns/date-fns/releases) - [Changelog](https://github.com/date-fns/date-fns/blob/main/CHANGELOG.md) - [Commits](https://github.com/date-fns/date-fns/compare/v3.6.0...v4.1.0) --- updated-dependencies: - dependency-name: date-fns dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index a5808a03543a9bc..b4a42ebf1b06103 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,7 +32,7 @@ "astro-breadcrumbs": "^3.2.0", "astro-icon": "^1.1.1", "astro-live-code": "^0.0.3", - "date-fns": "^3.6.0", + "date-fns": "^4.1.0", "detype": "1.0.12", "dompurify": "3.1.6", "dot-prop": "^9.0.0", @@ -6980,9 +6980,9 @@ } }, "node_modules/date-fns": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", - "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", "dev": true, "funding": { "type": "github", diff --git a/package.json b/package.json index 84ef76f54c60e86..35b2ab2f104e930 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "astro-breadcrumbs": "^3.2.0", "astro-icon": "^1.1.1", "astro-live-code": "^0.0.3", - "date-fns": "^3.6.0", + "date-fns": "^4.1.0", "detype": "1.0.12", "dompurify": "3.1.6", "dot-prop": "^9.0.0", From 2fef82e539a6963a9a2aecacc902451a065b8a35 Mon Sep 17 00:00:00 2001 From: Rebecca Tamachiro <62246989+RebeccaTamachiro@users.noreply.github.com> Date: Fri, 18 Oct 2024 14:25:38 +0100 Subject: [PATCH 075/110] [SSL] Keyless SSL style and new guide (#17518) * Create fortanix HSM guide and fill in Requirements section * Add instructions to generate Keyless certs * Fix broken link * Fix weird line breaks in keyless-delegation.mdx * Fix apostrophes * We police, improve hyperlinks text, and other text refinements * Adjust frontmatter so that hsm tutorials order alphabetically * List Fortanix in index.mdx and reorder alphabetically * Suggestion not to duplicate content * Apply suggestion from code review Co-authored-by: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> * Rename file to more specifically reflect Fortanix product name --------- Co-authored-by: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> --- .../keyless-ssl/configuration/public-dns.mdx | 4 +-- src/content/docs/ssl/keyless-ssl/glossary.mdx | 4 +-- .../aws-cloud-hsm.mdx | 2 -- .../azure-dedicated-hsm.mdx | 2 -- .../azure-managed-hsm.mdx | 2 -- .../entrust-nshield-connect.mdx | 2 -- .../fortanix-dsm.mdx | 14 ++++++++++ .../google-cloud-hsm.mdx | 2 -- .../ibm-cloud-hsm.mdx | 2 -- .../hardware-security-modules/index.mdx | 23 ++++++++-------- .../hardware-security-modules/softhsmv2.mdx | 2 -- .../reference/high-availability.mdx | 4 +-- .../reference/keyless-delegation.mdx | 27 +++---------------- .../reference/scaling-and-benchmarking.mdx | 4 +-- .../docs/ssl/keyless-ssl/troubleshooting.mdx | 4 +-- .../keyless-ssl/upgrading-your-key-server.mdx | 2 +- .../partials/ssl/keyless-key-server-setup.mdx | 2 +- 17 files changed, 42 insertions(+), 60 deletions(-) create mode 100644 src/content/docs/ssl/keyless-ssl/hardware-security-modules/fortanix-dsm.mdx diff --git a/src/content/docs/ssl/keyless-ssl/configuration/public-dns.mdx b/src/content/docs/ssl/keyless-ssl/configuration/public-dns.mdx index ab3845e505f9d4c..44caedc5c5a95eb 100644 --- a/src/content/docs/ssl/keyless-ssl/configuration/public-dns.mdx +++ b/src/content/docs/ssl/keyless-ssl/configuration/public-dns.mdx @@ -72,6 +72,6 @@ To create a Keyless certificate with the API, send a [`POST`](/api/operations/ke ### Allow incoming connections from Cloudflare -During TLS handshakes, Cloudflare’s keyless client will initiate connections to the key server hostname or IP address you specify during certificate upload. By default, the keyless client will use a destination TCP port of 2407, but this can be changed during certificate upload or by editing the certificate details after upload. +During TLS handshakes, Cloudflare's keyless client will initiate connections to the key server hostname or IP address you specify during certificate upload. By default, the keyless client will use a destination TCP port of 2407, but this can be changed during certificate upload or by editing the certificate details after upload. -Create WAF custom rules that allow your key server to accept connections from only Cloudflare. We publish our IPv4 and IPv6 addresses [via our API](/api/operations/cloudflare-i-ps-cloudflare-ip-details). +Create WAF custom rules that allow your key server to accept connections from only Cloudflare. You can get Cloudflare's IPv4 and IPv6 addresses via the [IP details API endpoint](/api/operations/cloudflare-i-ps-cloudflare-ip-details). diff --git a/src/content/docs/ssl/keyless-ssl/glossary.mdx b/src/content/docs/ssl/keyless-ssl/glossary.mdx index ab2fc7ecab50013..51ce44716269b07 100644 --- a/src/content/docs/ssl/keyless-ssl/glossary.mdx +++ b/src/content/docs/ssl/keyless-ssl/glossary.mdx @@ -12,10 +12,10 @@ description: Learn more about the common terms related to Keyless SSL. ## Cloudflare Keyless SSL key server (“key server”) -The key server is a daemon that you run on your own infrastructure. The key server receives inbound requests from Cloudflare’s keyless client on TCP port `2407` (by default) so you must make sure that your firewall and other access control lists permit these requests from [Cloudflare’s IP ranges](https://www.cloudflare.com/ips/). +The key server is a daemon that you run on your own infrastructure. The key server receives inbound requests from Cloudflare's keyless client on TCP port `2407` (by default) so you must make sure that your firewall and other access control lists permit these requests from [Cloudflare's IP ranges](https://www.cloudflare.com/ips/). Your key servers are contacted by Cloudflare during the TLS handshake process and must be online to terminate new TLS connections. Existing sessions can be resumed using unexpired TLS session tickets without needing to contact the key server. ## Cloudflare Keyless SSL client (“keyless client”) -The keyless client is a process that runs on Cloudflare’s infrastructure. The keyless client makes outbound requests to your key server on TCP port `2407` for assistance in establishing new TLS sessions. +The keyless client is a process that runs on Cloudflare's infrastructure. The keyless client makes outbound requests to your key server on TCP port `2407` for assistance in establishing new TLS sessions. diff --git a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/aws-cloud-hsm.mdx b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/aws-cloud-hsm.mdx index ecd124f7e2d1029..16a39972fb6bb26 100644 --- a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/aws-cloud-hsm.mdx +++ b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/aws-cloud-hsm.mdx @@ -1,8 +1,6 @@ --- pcx_content_type: tutorial title: AWS cloud HSM -sidebar: - order: 2 --- :::note[Note] diff --git a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/azure-dedicated-hsm.mdx b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/azure-dedicated-hsm.mdx index 21c18bbe261b877..1c5ff1d3acc1f06 100644 --- a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/azure-dedicated-hsm.mdx +++ b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/azure-dedicated-hsm.mdx @@ -1,8 +1,6 @@ --- pcx_content_type: tutorial title: Azure Dedicated HSM -sidebar: - order: 3 --- This tutorial uses [Azure Dedicated HSM](https://azure.microsoft.com/en-us/services/azure-dedicated-hsm/) — a FIPS 140-2 Level 3 certified implementation based on the Gemalto SafeNet Luna a790. diff --git a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/azure-managed-hsm.mdx b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/azure-managed-hsm.mdx index 08ffc3f3e1e0fc7..1fa52b98d40d22f 100644 --- a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/azure-managed-hsm.mdx +++ b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/azure-managed-hsm.mdx @@ -1,8 +1,6 @@ --- pcx_content_type: tutorial title: Azure Managed HSM -sidebar: - order: 4 --- This tutorial uses [Microsoft Azure’s Managed HSM](https://azure.microsoft.com/en-us/updates/akv-managed-hsm-public-preview/) — a FIPS 140-2 Level 3 certified implementation — to deploy a VM with the Keyless SSL daemon. diff --git a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/entrust-nshield-connect.mdx b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/entrust-nshield-connect.mdx index 777322035e1c382..71ead2449895ad2 100644 --- a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/entrust-nshield-connect.mdx +++ b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/entrust-nshield-connect.mdx @@ -1,8 +1,6 @@ --- pcx_content_type: tutorial title: Entrust nShield Connect -sidebar: - order: 6 --- :::note[Note] diff --git a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/fortanix-dsm.mdx b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/fortanix-dsm.mdx new file mode 100644 index 000000000000000..1b5b0b18ac46755 --- /dev/null +++ b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/fortanix-dsm.mdx @@ -0,0 +1,14 @@ +--- +pcx_content_type: reference +title: Fortanix Data Security Manager +sidebar: + label: Fortanix DSM +--- + +import { Example } from "~/components"; + +You can use Cloudfare Keyless SSL with [Fortanix Data Security Manager (DSM)](https://www.fortanix.com/platform/data-security-manager), a FIPS 140-2 Level 3 certified implementation. + +You must have a [Data Security Manager Enterprise Tier](https://www.fortanix.com/start-your-free-trial) and set up a group and an application assigned to the group. + +For detailed guidance, follow the tutorial in the [Fortanix documentation](https://support.fortanix.com/docs/fortanix-data-security-manager-with-cloudflare-integration#50-configure-fortanix-dsm). This guide is based on the Keyless SSL [public DNS](/ssl/keyless-ssl/configuration/public-dns/) option and has been tested using a virtual machine (VM) deployed to Azure running Ubuntu 22.04.3 LTS. \ No newline at end of file diff --git a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/google-cloud-hsm.mdx b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/google-cloud-hsm.mdx index 23b97d10e887f8c..f5281a615904081 100644 --- a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/google-cloud-hsm.mdx +++ b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/google-cloud-hsm.mdx @@ -1,8 +1,6 @@ --- pcx_content_type: tutorial title: Google Cloud HSM -sidebar: - order: 8 --- This tutorial uses [Google Cloud HSM](https://cloud.google.com/kms/docs/hsm) — a FIPS 140-2 Level 3 certified implementation. diff --git a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/ibm-cloud-hsm.mdx b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/ibm-cloud-hsm.mdx index 16e721d5b0bfc14..8bdf9ef3e89ba62 100644 --- a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/ibm-cloud-hsm.mdx +++ b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/ibm-cloud-hsm.mdx @@ -1,8 +1,6 @@ --- pcx_content_type: tutorial title: IBM cloud HSM -sidebar: - order: 7 --- The example below was tested using [IBM Cloud HSM 7.0](https://console.bluemix.net/docs/infrastructure/hardware-security-modules/about.html#about-ibm-cloud-hsm), a FIPS 140-2 Level 3 certified implementation based on the Gemalto SafeNet Luna a750. diff --git a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/index.mdx b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/index.mdx index 99a51dc9eff1946..e1decd9d2b33a12 100644 --- a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/index.mdx +++ b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/index.mdx @@ -28,19 +28,20 @@ For more details on initializing your PKCS#11 token, refer to [Configuration](/s ### Compatibility -We have verified interoperability with the following modules: +Keyless SSL has interoperability with the following modules: -* [Gemalto SafeNet Luna](https://cpl.thalesgroup.com/compliance/fips-common-criteria-validations) -* [SoftHSMv2](https://github.com/opendnssec/SoftHSMv2) -* [Entrust nShield Connect](https://www.entrust.com/digital-security/hsm) -* [YubiKey Neo](https://www.yubico.com/product/yubikey-neo/) +- [Entrust nShield Connect](https://www.entrust.com/digital-security/hsm) +- [Gemalto SafeNet Luna](https://cpl.thalesgroup.com/compliance/fips-common-criteria-validations) +- [SoftHSMv2](https://github.com/opendnssec/SoftHSMv2) +- [YubiKey Neo](https://www.yubico.com/product/yubikey-neo/) -We’ve also tested with the following Cloud HSM offerings: +Also, the following cloud HSM offerings have been tested with Keyless SSL: -* [AWS CloudHSM](/ssl/keyless-ssl/hardware-security-modules/aws-cloud-hsm/) -* [IBM Cloud HSM](/ssl/keyless-ssl/hardware-security-modules/ibm-cloud-hsm/) -* [Azure Dedicated HSM](/ssl/keyless-ssl/hardware-security-modules/azure-dedicated-hsm/) -* [Azure Managed HSM](/ssl/keyless-ssl/hardware-security-modules/azure-managed-hsm/) -* [Google Cloud HSM](/ssl/keyless-ssl/hardware-security-modules/google-cloud-hsm/) +- [AWS CloudHSM](/ssl/keyless-ssl/hardware-security-modules/aws-cloud-hsm/) +- [Azure Dedicated HSM](/ssl/keyless-ssl/hardware-security-modules/azure-dedicated-hsm/) +- [Azure Managed HSM](/ssl/keyless-ssl/hardware-security-modules/azure-managed-hsm/) +- [Fortanix DSM](/ssl/keyless-ssl/hardware-security-modules/fortanix-dsm/) +- [IBM Cloud HSM](/ssl/keyless-ssl/hardware-security-modules/ibm-cloud-hsm/) +- [Google Cloud HSM](/ssl/keyless-ssl/hardware-security-modules/google-cloud-hsm/) If you have deployed Keyless SSL with an HSM model not listed above, please email [keyless@cloudflare.com](mailto:keyless@cloudflare.com) with details. diff --git a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/softhsmv2.mdx b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/softhsmv2.mdx index 11b544567944868..75419daedc2cb2c 100644 --- a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/softhsmv2.mdx +++ b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/softhsmv2.mdx @@ -1,8 +1,6 @@ --- pcx_content_type: tutorial title: SoftHSMv2 -sidebar: - order: 5 --- :::caution[Important] diff --git a/src/content/docs/ssl/keyless-ssl/reference/high-availability.mdx b/src/content/docs/ssl/keyless-ssl/reference/high-availability.mdx index 5f1c95ddf5d4b5e..f2b9c5e3048cd3e 100644 --- a/src/content/docs/ssl/keyless-ssl/reference/high-availability.mdx +++ b/src/content/docs/ssl/keyless-ssl/reference/high-availability.mdx @@ -6,8 +6,8 @@ sidebar: --- -The Cloudflare Keyless SSL server runs as a single binary with minimal dependencies and is designed to be robust and reliable. The network between your key server and Cloudflare may not be however, which could prevent new TLS connections. +The Cloudflare Keyless SSL server runs as a single binary with minimal dependencies and is designed to be robust and reliable. However, the network between your key server and Cloudflare may not be, which could prevent new TLS connections. For this reason, we strongly recommend that you run at least two key servers in a high availability configuration behind a load balancer. Set up health checks for each key server on the configured TCP port—2407 by default and failover as necessary or round-robin between active (healthy) key servers. -From a network availability and performance perspective, advertise the IP address of your key server from multiple data centers (an anycast setup) so the Cloudflare edge can route to the closest key server via BGP. When you use anycast routing, you can also safely take a data center offline to perform maintenance. +From a network availability and performance perspective, advertise the IP address of your key server from multiple data centers (an anycast setup) so the Cloudflare global network can route to the closest key server via BGP. When you use anycast routing, you can also safely take a data center offline to perform maintenance. diff --git a/src/content/docs/ssl/keyless-ssl/reference/keyless-delegation.mdx b/src/content/docs/ssl/keyless-ssl/reference/keyless-delegation.mdx index 54ca53d759c6c0e..da28350794427d0 100644 --- a/src/content/docs/ssl/keyless-ssl/reference/keyless-delegation.mdx +++ b/src/content/docs/ssl/keyless-ssl/reference/keyless-delegation.mdx @@ -6,29 +6,10 @@ sidebar: --- -Keyless Delegation is [our implementation of the emerging delegated credentials standard](https://datatracker.ietf.org/doc/draft-ietf-tls-subcerts/). When you upload a certificate for use with Keyless that has -the special extension permitting the use of delegated credentials, -Cloudflare will automatically produce a delegated credential and use -it at the edge with clients that support this feature. The handshakes -will complete without the extra latency induced by reaching back to -the Keyless Server, and there are [additional advantages to flexibility in algorithm choice](https://blog.cloudflare.com/keyless-delegation/). +Keyless Delegation is Cloudflare's implementation of the emerging delegated credentials standard ([RFC 9345](https://www.rfc-editor.org/rfc/rfc9345.html)). When you upload a certificate for use with Keyless that has the special extension permitting the use of delegated credentials, Cloudflare will automatically produce a delegated credential and use it at the edge with clients that support this feature. The handshakes will complete without the extra latency induced by reaching back to the Keyless Server, and there are [additional advantages to flexibility in algorithm choice](https://blog.cloudflare.com/keyless-delegation/). -Behind the scenes we periodically create delegated credentials and -sign them via Keyless, through the same mechanism used to sign the -Certificate Verify messages our servers send when using Keyless. These -credentials have a short lifetime, ensuring that if you disable -Keyless the credentials created will become invalid within 24 -hours. Supporting clients validate the credential, and the server can -use the key it generated to sign the response to the TLS handshake -without the round trip. +Behind the scenes we periodically create delegated credentials and sign them via Keyless, through the same mechanism used to sign the Certificate Verify messages our servers send when using Keyless. These credentials have a short lifetime, ensuring that if you disable Keyless the credentials created will become invalid within 24 hours. Supporting clients validate the credential, and the server can use the key it generated to sign the response to the TLS handshake without the round trip. -For security reasons certificates must contain a special identifier -for use with delegated credentials. This takes the form of an optional -X509 extension with NULL contents and the OID 1.3.6.1.4.1.44363.44 -. Your CA may need to make code changes to support delegated -credentials. +For security reasons certificates must contain a special identifier for use with delegated credentials. This takes the form of an optional X509 extension with NULL contents and the OID 1.3.6.1.4.1.44363.44. Your CA may need to make code changes to support delegated credentials. -Currently very few clients support delegated credentials, and only a -handful of certificate authorities will issue certificates with the -extension. We have had success with DigiCert. Firefox 77 and later -support delegated credentials. +Currently very few clients support delegated credentials, and only a handful of certificate authorities will issue certificates with the extension. We have had success with DigiCert. Firefox 77 and later support delegated credentials. diff --git a/src/content/docs/ssl/keyless-ssl/reference/scaling-and-benchmarking.mdx b/src/content/docs/ssl/keyless-ssl/reference/scaling-and-benchmarking.mdx index 21dec883387b166..48c23e7d71c4ae2 100644 --- a/src/content/docs/ssl/keyless-ssl/reference/scaling-and-benchmarking.mdx +++ b/src/content/docs/ssl/keyless-ssl/reference/scaling-and-benchmarking.mdx @@ -6,7 +6,7 @@ sidebar: --- -Cloudflare’s Keyless SSL technology was designed to scale to accommodate any sized workload using vertical and horizontal scaling, and pre-computation techniques wherever possible, such as ECDSA. The goals of the architectural design of the key server are to minimize latency while maximizing signing operations per second. +Cloudflare's Keyless SSL technology was designed to scale to accommodate any sized workload using vertical and horizontal scaling, and pre-computation techniques wherever possible, such as ECDSA. The goals of the architectural design of the key server are to minimize latency while maximizing signing operations per second. Each key server uses a worker pool model, with incoming client connections handled by its own pair of reader/writer goroutines and cryptographic work done in separate worker goroutines pulled from a global pool. @@ -26,7 +26,7 @@ Additional details can be found in the [gokeyless server readme file](https://gi ## Benchmarks -We conducted benchmarks using [Cloudflare’s gokeyless bench tool](https://github.com/cloudflare/gokeyless/tree/master/cmd/bench) on a then current-generation, compute-optimized EC2 instance ([c5.xlarge](https://aws.amazon.com/ec2/instance-types/c5/)). This particular instance has 4 vCPUs powered by 3.0 GHz Intel Xeon processors: +We conducted benchmarks using [Cloudflare's gokeyless bench tool](https://github.com/cloudflare/gokeyless/tree/master/cmd/bench) on a then current-generation, compute-optimized EC2 instance ([c5.xlarge](https://aws.amazon.com/ec2/instance-types/c5/)). This particular instance has 4 vCPUs powered by 3.0 GHz Intel Xeon processors: ```txt c5$ cat /proc/cpuinfo|grep "model name" diff --git a/src/content/docs/ssl/keyless-ssl/troubleshooting.mdx b/src/content/docs/ssl/keyless-ssl/troubleshooting.mdx index 91281f1e8d11df2..eabb01143762bee 100644 --- a/src/content/docs/ssl/keyless-ssl/troubleshooting.mdx +++ b/src/content/docs/ssl/keyless-ssl/troubleshooting.mdx @@ -82,9 +82,9 @@ You will need to either provide a certificate for only those hosts or change the ## Key servers on Windows -We currently only provide packages for the supported GNU/Linux distributions as per [https://pkg.cloudflare.com/](https://pkg.cloudflare.com/). +Cloudflare currently only provide packages for the supported GNU/Linux distributions as per the [Cloudflare package repository](https://pkg.cloudflare.com/). -However, the key server is open source so you may attempt to build and deploy a binary, but running on Windows is not a supported configuration so you may experience problems that we will not be able to help with. +However, the key server is open source so you may attempt to build and deploy a binary, but running on Windows is not a supported configuration so you may experience problems that Cloudflare will not be able to help with. ## Key server multi-domain support diff --git a/src/content/docs/ssl/keyless-ssl/upgrading-your-key-server.mdx b/src/content/docs/ssl/keyless-ssl/upgrading-your-key-server.mdx index c8036d5c381a43a..1836e9abf543b08 100644 --- a/src/content/docs/ssl/keyless-ssl/upgrading-your-key-server.mdx +++ b/src/content/docs/ssl/keyless-ssl/upgrading-your-key-server.mdx @@ -23,7 +23,7 @@ To upgrade your key server: :::caution -If you are running a [high availability configuration](/ssl/keyless-ssl/reference/high-availability/), upgrade one server at a time as new TLS connections will fail to terminate at Cloudflare’s edge without a functioning key server. +If you are running a [high availability configuration](/ssl/keyless-ssl/reference/high-availability/), upgrade one server at a time as new TLS connections will fail to terminate at Cloudflare's global network without a functioning key server. ::: diff --git a/src/content/partials/ssl/keyless-key-server-setup.mdx b/src/content/partials/ssl/keyless-key-server-setup.mdx index 1f350ca30ff6179..c123830fc773245 100644 --- a/src/content/partials/ssl/keyless-key-server-setup.mdx +++ b/src/content/partials/ssl/keyless-key-server-setup.mdx @@ -14,7 +14,7 @@ If you plan to run Keyless SSL in a [high availability setup](/ssl/keyless-ssl/r ### Install -These steps are also at [pkg.cloudflare.com](https://pkg.cloudflare.com/index.html). +These steps are also at the [Cloudflare package repository](https://pkg.cloudflare.com/). #### Debian/Ubuntu packages From 3c1a39b92277bb306617d5a76f623b269c8d27d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2024 14:37:22 +0100 Subject: [PATCH 076/110] [Docs Site] Bump astro from 4.16.4 to 4.16.6 (#17613) Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 4.16.4 to 4.16.6. - [Release notes](https://github.com/withastro/astro/releases) - [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md) - [Commits](https://github.com/withastro/astro/commits/astro@4.16.6/packages/astro) --- updated-dependencies: - dependency-name: astro dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 9 ++++----- package.json | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index b4a42ebf1b06103..5c19e0f8e86f8d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "@types/react": "^18.3.11", "@types/react-dom": "^18.3.0", "algoliasearch": "^5.8.1", - "astro": "^4.16.4", + "astro": "^4.16.6", "astro-breadcrumbs": "^3.2.0", "astro-icon": "^1.1.1", "astro-live-code": "^0.0.3", @@ -4986,11 +4986,10 @@ } }, "node_modules/astro": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/astro/-/astro-4.16.4.tgz", - "integrity": "sha512-W/ETxHRkt9iEAj1RVSqV3bjSGaGXEFJHqeNpPhvJIj720hC3V/ZBDAd6FpMW291eiZPtxhGh+c/VDtkD6avPXQ==", + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/astro/-/astro-4.16.6.tgz", + "integrity": "sha512-LMMbjr+4aN26MOyJzTdjM+Y+srpAIkx7IX9IcdF3eHQLGr8PgkioZp+VQExRfioDIyA2HY6ottVg3QccTzJqYA==", "dev": true, - "license": "MIT", "dependencies": { "@astrojs/compiler": "^2.10.3", "@astrojs/internal-helpers": "0.4.1", diff --git a/package.json b/package.json index 35b2ab2f104e930..4be72e21072a8d2 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "@types/react": "^18.3.11", "@types/react-dom": "^18.3.0", "algoliasearch": "^5.8.1", - "astro": "^4.16.4", + "astro": "^4.16.6", "astro-breadcrumbs": "^3.2.0", "astro-icon": "^1.1.1", "astro-live-code": "^0.0.3", From 11d1e3c2d12a1f2b1fd9b64158215a4d0a1d2063 Mon Sep 17 00:00:00 2001 From: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> Date: Fri, 18 Oct 2024 09:45:27 -0400 Subject: [PATCH 077/110] Add D1 vs Hyperdrive (#17465) * Add D1 vs Hyperdrive * thomasgauvin: nit * Update src/content/docs/workers/platform/storage-options.mdx Co-authored-by: Vy Ton * Actioning feedback. * Update src/content/docs/workers/platform/storage-options.mdx Co-authored-by: Vy Ton * Update src/content/docs/workers/platform/storage-options.mdx Co-authored-by: Vy Ton * Apply suggestions from code review Co-authored-by: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> * Update src/content/docs/workers/platform/storage-options.mdx Co-authored-by: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> --------- Co-authored-by: Jun Lee Co-authored-by: Vy Ton --- .../docs/workers/platform/storage-options.mdx | 15 +++++++++++++++ .../partials/workers/storage-products-table.mdx | 3 +-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/content/docs/workers/platform/storage-options.mdx b/src/content/docs/workers/platform/storage-options.mdx index b1463cbad024c37..d08b1654a34b1a5 100644 --- a/src/content/docs/workers/platform/storage-options.mdx +++ b/src/content/docs/workers/platform/storage-options.mdx @@ -209,4 +209,19 @@ The new beta version of Durable Objects is available where each Durable Object h ::: +## D1 vs Hyperdrive +D1 is a standalone, serverless database that provides a SQL API, using SQLite's SQL semantics, to store and access your relational data. + +Hyperdrive is a service that lets you connect to your existing, regional PostgreSQL databases and improves database performance by optimizing them for global, scalable data access from Workers. + +- If you are building a new project on Workers or are considering migrating your data, use D1. +- If you are building a Workers project with an existing PostgreSQL database, use Hyperdrive. + +:::note + +You cannot use D1 with Hyperdrive. + +However, D1 does not need to be used with Hyperdrive because it does not have slow connection setups which would benefit from Hyperdrive's connection pooling. D1 data can also be cached within Workers using the [Cache API](/workers/runtime-apis/cache/). + +::: diff --git a/src/content/partials/workers/storage-products-table.mdx b/src/content/partials/workers/storage-products-table.mdx index 2ac14eef2869381..7fee3d5652b9019 100644 --- a/src/content/partials/workers/storage-products-table.mdx +++ b/src/content/partials/workers/storage-products-table.mdx @@ -1,6 +1,5 @@ --- {} - --- | Use-case | Product | Ideal for | @@ -12,4 +11,4 @@ | Global co-ordination | [Durable Objects](/durable-objects/) | Building collaborative applications; global co-ordination across clients; strongly consistent, transactional storage. | | Vector search (database) | [Vectorize](/vectorize/) | Storing [embeddings](/workers-ai/models/#text-embeddings) from AI models for semantic search and classification tasks. | | Task processing & batching | [Queues](/queues/) | Background job processing (emails, notifications, APIs) and log processing/batching. | -| Connect to an existing database | [Hyperdrive](/hyperdrive/) | Connecting to an existing database in a cloud or on-prem. | +| Connect to an existing database | [Hyperdrive](/hyperdrive/) | Connecting to an existing database in a cloud or on-premise. | From 06c6b286440fc94a2b684d70cbb8f78cda91bcd4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2024 14:51:46 +0100 Subject: [PATCH 078/110] [Docs Site] Bump rehype-mermaid from 2.1.0 to 3.0.0 (#17540) * [Docs Site] Bump rehype-mermaid from 2.1.0 to 3.0.0 Bumps [rehype-mermaid](https://github.com/remcohaszing/rehype-mermaid) from 2.1.0 to 3.0.0. - [Release notes](https://github.com/remcohaszing/rehype-mermaid/releases) - [Commits](https://github.com/remcohaszing/rehype-mermaid/compare/v2.1.0...v3.0.0) --- updated-dependencies: - dependency-name: rehype-mermaid dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * fix playwright dep --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Kian Newman-Hazel --- package-lock.json | 734 ++++------------------------------------------ package.json | 3 +- 2 files changed, 66 insertions(+), 671 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5c19e0f8e86f8d8..917db88e51bcf1f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -47,6 +47,7 @@ "mermaid": "^11.3.0", "node-html-parser": "^6.1.13", "patch-package": "^8.0.0", + "playwright": "^1.48.1", "prettier": "^3.3.3", "prettier-plugin-astro": "^0.14.1", "puppeteer": "^23.6.0", @@ -56,7 +57,7 @@ "redirects-in-workers": "^0.0.5", "rehype-autolink-headings": "^7.1.0", "rehype-external-links": "^3.0.0", - "rehype-mermaid": "^2.1.0", + "rehype-mermaid": "^3.0.0", "rehype-title-figure": "^0.1.2", "sharp": "^0.33.5", "solarflare-theme": "^0.0.2", @@ -2824,11 +2825,10 @@ } }, "node_modules/@fortawesome/fontawesome-free": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.2.tgz", - "integrity": "sha512-hRILoInAx8GNT5IMkrtIt9blOdrqHOnPBH+k70aWUAqPZPgopb9G5EQJFpaBx/S8zp2fC+mPW349Bziuk1o28Q==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.6.0.tgz", + "integrity": "sha512-60G28ke/sXdtS9KZCpZSHHkCbdsOGEhIUGlwq6yhY74UpTiToIh8np7A8yphhM4BWsvNFtIvLpi4co+h9Mr9Ow==", "dev": true, - "hasInstallScript": true, "engines": { "node": ">=6" } @@ -4035,30 +4035,6 @@ "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", "dev": true }, - "node_modules/@types/d3-scale": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", - "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/d3-time": "*" - } - }, - "node_modules/@types/d3-scale-chromatic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz", - "integrity": "sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-time": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz", - "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", @@ -7323,13 +7299,6 @@ "dev": true, "license": "ISC" }, - "node_modules/elkjs": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/elkjs/-/elkjs-0.9.3.tgz", - "integrity": "sha512-f/ZeWvW/BCXbhGEf1Ujp29EASo/lk1FDnETgNKwJrsVvGZhUWCZyg3xLJjAsxfOmt8KjswHmI5EwCQcPMpOYhQ==", - "dev": true, - "license": "EPL-2.0" - }, "node_modules/emmet": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.4.11.tgz", @@ -10611,586 +10580,24 @@ } }, "node_modules/mermaid-isomorphic": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/mermaid-isomorphic/-/mermaid-isomorphic-2.2.1.tgz", - "integrity": "sha512-OPxQsUL2TIlAfC3ExhI/mORzigTbUOqYtqUGUECSKevGCSf/+QEwq78MRZWG1PpmTkl2ORoK8Yy5WkqqTqywMg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mermaid-isomorphic/-/mermaid-isomorphic-3.0.0.tgz", + "integrity": "sha512-6RBUQD0ZWzBHO4KZ8JMK3a/lNL7383N6K4nXzOdA2Ylnhz34qC8Nls2ZgOJVjGuB9Iq1bP61XKE0K/fNOD2n6g==", "dev": true, "dependencies": { "@fortawesome/fontawesome-free": "^6.0.0", - "mermaid": "^10.0.0", - "playwright-core": "^1.0.0" + "mermaid": "^11.0.0" }, "funding": { "url": "https://github.com/sponsors/remcohaszing" - } - }, - "node_modules/mermaid-isomorphic/node_modules/@braintree/sanitize-url": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz", - "integrity": "sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==", - "dev": true, - "license": "MIT" - }, - "node_modules/mermaid-isomorphic/node_modules/@types/mdast": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", - "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2" - } - }, - "node_modules/mermaid-isomorphic/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "dev": true, - "license": "MIT" - }, - "node_modules/mermaid-isomorphic/node_modules/mdast-util-from-markdown": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", - "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mermaid-isomorphic/node_modules/mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0" + "peerDependencies": { + "playwright": "1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mermaid-isomorphic/node_modules/mermaid": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.9.1.tgz", - "integrity": "sha512-Mx45Obds5W1UkW1nv/7dHRsbfMM1aOKA2+Pxs/IGHNonygDHwmng8xTHyS9z4KWVi0rbko8gjiBmuwwXQ7tiNA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@braintree/sanitize-url": "^6.0.1", - "@types/d3-scale": "^4.0.3", - "@types/d3-scale-chromatic": "^3.0.0", - "cytoscape": "^3.28.1", - "cytoscape-cose-bilkent": "^4.1.0", - "d3": "^7.4.0", - "d3-sankey": "^0.12.3", - "dagre-d3-es": "7.0.10", - "dayjs": "^1.11.7", - "dompurify": "^3.0.5", - "elkjs": "^0.9.0", - "katex": "^0.16.9", - "khroma": "^2.0.0", - "lodash-es": "^4.17.21", - "mdast-util-from-markdown": "^1.3.0", - "non-layered-tidy-tree-layout": "^2.0.2", - "stylis": "^4.1.3", - "ts-dedent": "^2.2.0", - "uuid": "^9.0.0", - "web-worker": "^1.2.0" - } - }, - "node_modules/mermaid-isomorphic/node_modules/micromark": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", - "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-core-commonmark": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", - "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-factory-destination": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", - "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-factory-label": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", - "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-factory-space": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", - "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-factory-title": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", - "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-factory-whitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", - "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-util-character": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", - "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-util-chunked": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", - "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-util-classify-character": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", - "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-util-combine-extensions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", - "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", - "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-util-decode-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", - "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-util-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", - "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-util-html-tag-name": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", - "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-util-normalize-identifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", - "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-util-resolve-all": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", - "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-util-sanitize-uri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", - "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-util-subtokenize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", - "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-util-symbol": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", - "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/mermaid-isomorphic/node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" + "peerDependenciesMeta": { + "playwright": { + "optional": true } - ], - "license": "MIT" - }, - "node_modules/mermaid-isomorphic/node_modules/unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" } }, "node_modules/mermaid/node_modules/marked": { @@ -12158,16 +11565,6 @@ "ufo": "^1.5.3" } }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/mrmime": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", @@ -12310,13 +11707,6 @@ "dev": true, "license": "MIT" }, - "node_modules/non-layered-tidy-tree-layout": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz", - "integrity": "sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==", - "dev": true, - "license": "MIT" - }, "node_modules/nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", @@ -13123,11 +12513,31 @@ "pathe": "^1.1.2" } }, + "node_modules/playwright": { + "version": "1.48.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.48.1.tgz", + "integrity": "sha512-j8CiHW/V6HxmbntOfyB4+T/uk08tBy6ph0MpBXwuoofkSnLmlfdYNNkFTYD6ofzzlSqLA1fwH4vwvVFvJgLN0w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.48.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, "node_modules/playwright-core": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.46.0.tgz", - "integrity": "sha512-9Y/d5UIwuJk8t3+lhmMSAJyNP1BUC/DqP3cQJDQQL/oWqAiuPTLgy7Q5dzglmTLwcBRdetzgNM/gni7ckfTr6A==", + "version": "1.48.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.48.1.tgz", + "integrity": "sha512-Yw/t4VAFX/bBr1OzwCuOMZkY1Cnb4z/doAFSwf4huqAGWmf9eMNjmK7NiOljCdLmxeRYcGPPmcDgU0zOlzP0YA==", "dev": true, + "license": "Apache-2.0", "bin": { "playwright-core": "cli.js" }, @@ -13135,6 +12545,21 @@ "node": ">=18" } }, + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/points-on-curve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz", @@ -13731,15 +13156,15 @@ } }, "node_modules/rehype-mermaid": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/rehype-mermaid/-/rehype-mermaid-2.1.0.tgz", - "integrity": "sha512-YgzHXaUTzp+loffUvAoX+vtNNl36WL12GWYv4farPeW9GRFfYdgNg15O/3nADAW/Yh5/997Vv+0WaWOJ24/YSg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rehype-mermaid/-/rehype-mermaid-3.0.0.tgz", + "integrity": "sha512-fxrD5E4Fa1WXUjmjNDvLOMT4XB1WaxcfycFIWiYU0yEMQhcTDElc9aDFnbDFRLxG1Cfo1I3mfD5kg4sjlWaB+Q==", "dev": true, "dependencies": { "@types/hast": "^3.0.0", "hast-util-from-html-isomorphic": "^2.0.0", "hast-util-to-text": "^4.0.0", - "mermaid-isomorphic": "^2.0.0", + "mermaid-isomorphic": "^3.0.0", "mini-svg-data-uri": "^1.0.0", "space-separated-tokens": "^2.0.0", "unified": "^11.0.0", @@ -13748,6 +13173,14 @@ }, "funding": { "url": "https://github.com/sponsors/remcohaszing" + }, + "peerDependencies": { + "playwright": "1" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": true + } } }, "node_modules/rehype-minify-whitespace": { @@ -14419,19 +13852,6 @@ "integrity": "sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==", "dev": true }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/safe-array-concat": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", @@ -16530,25 +15950,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "bin": { - "uvu": "bin.js" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/validate.io-array": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", @@ -17047,13 +16448,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/web-worker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.3.0.tgz", - "integrity": "sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA==", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", diff --git a/package.json b/package.json index 4be72e21072a8d2..c9310842bceaa19 100644 --- a/package.json +++ b/package.json @@ -59,6 +59,7 @@ "mermaid": "^11.3.0", "node-html-parser": "^6.1.13", "patch-package": "^8.0.0", + "playwright": "^1.48.1", "prettier": "^3.3.3", "prettier-plugin-astro": "^0.14.1", "puppeteer": "^23.6.0", @@ -68,7 +69,7 @@ "redirects-in-workers": "^0.0.5", "rehype-autolink-headings": "^7.1.0", "rehype-external-links": "^3.0.0", - "rehype-mermaid": "^2.1.0", + "rehype-mermaid": "^3.0.0", "rehype-title-figure": "^0.1.2", "sharp": "^0.33.5", "solarflare-theme": "^0.0.2", From 87ade2ca2a1a2c8618c97ab3da6f7948be8b1019 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2024 14:55:08 +0100 Subject: [PATCH 079/110] [Docs Site] Bump algoliasearch from 5.8.1 to 5.9.1 (#17626) Bumps [algoliasearch](https://github.com/algolia/algoliasearch-client-javascript) from 5.8.1 to 5.9.1. - [Release notes](https://github.com/algolia/algoliasearch-client-javascript/releases) - [Changelog](https://github.com/algolia/algoliasearch-client-javascript/blob/main/CHANGELOG.md) - [Commits](https://github.com/algolia/algoliasearch-client-javascript/compare/5.8.1...5.9.1) --- updated-dependencies: - dependency-name: algoliasearch dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 272 +++++++++++++++++++++++++++++++--------------- package.json | 2 +- 2 files changed, 187 insertions(+), 87 deletions(-) diff --git a/package-lock.json b/package-lock.json index 917db88e51bcf1f..e04926952a9bb7a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,7 @@ "@types/node": "^20.16.1", "@types/react": "^18.3.11", "@types/react-dom": "^18.3.0", - "algoliasearch": "^5.8.1", + "algoliasearch": "^5.9.1", "astro": "^4.16.6", "astro-breadcrumbs": "^3.2.0", "astro-icon": "^1.1.1", @@ -148,24 +148,24 @@ } }, "node_modules/@algolia/client-abtesting": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.8.1.tgz", - "integrity": "sha512-a2umbOcAPHS8mWRMssNqqkSCJdX7ssGZmj7rjhqCrUXoOwTihU9aUyiHihy8JHV1upJXch3T70ni7/bWrMpR6g==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.9.1.tgz", + "integrity": "sha512-g3A60g5CL8a3nnioa1A+6EDNBV6WXoN8jReMxhOfrTolfthBZ/S+QpB4AiawiEh74q/6BqLh/rmHBnK55K6EUA==", "dev": true, "dependencies": { - "@algolia/client-common": "5.8.1", - "@algolia/requester-browser-xhr": "5.8.1", - "@algolia/requester-fetch": "5.8.1", - "@algolia/requester-node-http": "5.8.1" + "@algolia/client-common": "5.9.1", + "@algolia/requester-browser-xhr": "5.9.1", + "@algolia/requester-fetch": "5.9.1", + "@algolia/requester-node-http": "5.9.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-abtesting/node_modules/@algolia/client-common": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.8.1.tgz", - "integrity": "sha512-MLX/gipPFEhJPCExsxXf9tnt+kLfWCe9JWRp1adcoVySkhzPxpIeSiWaQaOqyy0TYIgIpdeVx/emlBT9Ni8GFw==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.9.1.tgz", + "integrity": "sha512-YWPGDyISFNbPFVswI16c4rgt2CeTgFk82e543FSyw/3H5eNKa0YPb876GguEb50NualXCF7DCuVhcp6XMTpaSg==", "dev": true, "engines": { "node": ">= 14.0.0" @@ -183,24 +183,24 @@ } }, "node_modules/@algolia/client-analytics": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.8.1.tgz", - "integrity": "sha512-vE+cU1agk79nmBghxe9C7Hr/euj9cIDbk9SiBsnhWA2rsS4yOSSnxdY+GJGOoiJjvS2yQm7cjyxMd5M6q2aAKQ==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.9.1.tgz", + "integrity": "sha512-dPZQRlCdYfMly8Bjuq6ahDmtW1gAc6RLuY9w2JOJ9EZ+F2la89mJEGTcbDpKPfUAdkwmOo6h4rZWLGLIhuOhoA==", "dev": true, "dependencies": { - "@algolia/client-common": "5.8.1", - "@algolia/requester-browser-xhr": "5.8.1", - "@algolia/requester-fetch": "5.8.1", - "@algolia/requester-node-http": "5.8.1" + "@algolia/client-common": "5.9.1", + "@algolia/requester-browser-xhr": "5.9.1", + "@algolia/requester-fetch": "5.9.1", + "@algolia/requester-node-http": "5.9.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-analytics/node_modules/@algolia/client-common": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.8.1.tgz", - "integrity": "sha512-MLX/gipPFEhJPCExsxXf9tnt+kLfWCe9JWRp1adcoVySkhzPxpIeSiWaQaOqyy0TYIgIpdeVx/emlBT9Ni8GFw==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.9.1.tgz", + "integrity": "sha512-YWPGDyISFNbPFVswI16c4rgt2CeTgFk82e543FSyw/3H5eNKa0YPb876GguEb50NualXCF7DCuVhcp6XMTpaSg==", "dev": true, "engines": { "node": ">= 14.0.0" @@ -216,25 +216,73 @@ "@algolia/transporter": "4.24.0" } }, + "node_modules/@algolia/client-insights": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.9.1.tgz", + "integrity": "sha512-vLkzcv/lVd6HW+moNFdEZ/rnurDPO6slE80CR/sD98MCswlZ1YjY9LbutrJAPVZmFLntriT8L2/ed3VofIMadg==", + "dev": true, + "dependencies": { + "@algolia/client-common": "5.9.1", + "@algolia/requester-browser-xhr": "5.9.1", + "@algolia/requester-fetch": "5.9.1", + "@algolia/requester-node-http": "5.9.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-insights/node_modules/@algolia/client-common": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.9.1.tgz", + "integrity": "sha512-YWPGDyISFNbPFVswI16c4rgt2CeTgFk82e543FSyw/3H5eNKa0YPb876GguEb50NualXCF7DCuVhcp6XMTpaSg==", + "dev": true, + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/@algolia/client-personalization": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.8.1.tgz", - "integrity": "sha512-QXlX5zKa420vMABJ6V119ig5kqrzF+8jfaXSmzmXoXZXAiOnbOrGyuEHNYsVbOlkupSs6+sz4ECkKdCoVGew+A==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.9.1.tgz", + "integrity": "sha512-oFC3Bk932v6c18K0gLQI68SgHP9+Ah4Vk6tUkK6bJzA86RmQmUlUnWFpqsSDdc3EiBZY2UeMndgCD/zaf+xKrA==", "dev": true, "dependencies": { - "@algolia/client-common": "5.8.1", - "@algolia/requester-browser-xhr": "5.8.1", - "@algolia/requester-fetch": "5.8.1", - "@algolia/requester-node-http": "5.8.1" + "@algolia/client-common": "5.9.1", + "@algolia/requester-browser-xhr": "5.9.1", + "@algolia/requester-fetch": "5.9.1", + "@algolia/requester-node-http": "5.9.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-personalization/node_modules/@algolia/client-common": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.8.1.tgz", - "integrity": "sha512-MLX/gipPFEhJPCExsxXf9tnt+kLfWCe9JWRp1adcoVySkhzPxpIeSiWaQaOqyy0TYIgIpdeVx/emlBT9Ni8GFw==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.9.1.tgz", + "integrity": "sha512-YWPGDyISFNbPFVswI16c4rgt2CeTgFk82e543FSyw/3H5eNKa0YPb876GguEb50NualXCF7DCuVhcp6XMTpaSg==", + "dev": true, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-query-suggestions": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.9.1.tgz", + "integrity": "sha512-zOR7OAcxbZCdKsRfHllujKXWZWbNdGzFU3sHLO/BGrczJrC2OhDO+4mE90mTccY6seiS6dz1nDmhPiYGBC4h/Q==", + "dev": true, + "dependencies": { + "@algolia/client-common": "5.9.1", + "@algolia/requester-browser-xhr": "5.9.1", + "@algolia/requester-fetch": "5.9.1", + "@algolia/requester-node-http": "5.9.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-query-suggestions/node_modules/@algolia/client-common": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.9.1.tgz", + "integrity": "sha512-YWPGDyISFNbPFVswI16c4rgt2CeTgFk82e543FSyw/3H5eNKa0YPb876GguEb50NualXCF7DCuVhcp6XMTpaSg==", "dev": true, "engines": { "node": ">= 14.0.0" @@ -258,6 +306,30 @@ "dev": true, "license": "MIT" }, + "node_modules/@algolia/ingestion": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.9.1.tgz", + "integrity": "sha512-X2gVZM9dnFRoz7j3h8UdqlgzK3FbtxfDfVW0QMzQKOfHHQuxAY1vywGIWRKiAEoNQozGO7uqBF60/X+iWLfX1g==", + "dev": true, + "dependencies": { + "@algolia/client-common": "5.9.1", + "@algolia/requester-browser-xhr": "5.9.1", + "@algolia/requester-fetch": "5.9.1", + "@algolia/requester-node-http": "5.9.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/ingestion/node_modules/@algolia/client-common": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.9.1.tgz", + "integrity": "sha512-YWPGDyISFNbPFVswI16c4rgt2CeTgFk82e543FSyw/3H5eNKa0YPb876GguEb50NualXCF7DCuVhcp6XMTpaSg==", + "dev": true, + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/@algolia/logger-common": { "version": "4.24.0", "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.24.0.tgz", @@ -273,46 +345,70 @@ "@algolia/logger-common": "4.24.0" } }, + "node_modules/@algolia/monitoring": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.9.1.tgz", + "integrity": "sha512-hrbJ6xGBKbP4MvOiE2BA3+cZXrCAGdkr3vNoFTrnoGuow4O5GCugRGv+KWsF33472PKQTzDvZgMQLfozD3/MJg==", + "dev": true, + "dependencies": { + "@algolia/client-common": "5.9.1", + "@algolia/requester-browser-xhr": "5.9.1", + "@algolia/requester-fetch": "5.9.1", + "@algolia/requester-node-http": "5.9.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/monitoring/node_modules/@algolia/client-common": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.9.1.tgz", + "integrity": "sha512-YWPGDyISFNbPFVswI16c4rgt2CeTgFk82e543FSyw/3H5eNKa0YPb876GguEb50NualXCF7DCuVhcp6XMTpaSg==", + "dev": true, + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/@algolia/recommend": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.8.1.tgz", - "integrity": "sha512-g+x39Uc673ysZ0OjAW7wDtn6qii2XttctSpSuz0GFNKhUUVE/GgjZPbbBG/DgTkWnYmDBYEscsoGZ43yjvcykQ==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.9.1.tgz", + "integrity": "sha512-P4ADFKuUIpqX5/j7QtYG192/9xS8dAT4+fcpQ3QJ26+zUZUJOv47n0ZZanG5758KB+LN8b/8KE2Uji4XXh41WQ==", "dev": true, "dependencies": { - "@algolia/client-common": "5.8.1", - "@algolia/requester-browser-xhr": "5.8.1", - "@algolia/requester-fetch": "5.8.1", - "@algolia/requester-node-http": "5.8.1" + "@algolia/client-common": "5.9.1", + "@algolia/requester-browser-xhr": "5.9.1", + "@algolia/requester-fetch": "5.9.1", + "@algolia/requester-node-http": "5.9.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/recommend/node_modules/@algolia/client-common": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.8.1.tgz", - "integrity": "sha512-MLX/gipPFEhJPCExsxXf9tnt+kLfWCe9JWRp1adcoVySkhzPxpIeSiWaQaOqyy0TYIgIpdeVx/emlBT9Ni8GFw==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.9.1.tgz", + "integrity": "sha512-YWPGDyISFNbPFVswI16c4rgt2CeTgFk82e543FSyw/3H5eNKa0YPb876GguEb50NualXCF7DCuVhcp6XMTpaSg==", "dev": true, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.8.1.tgz", - "integrity": "sha512-x0iULVrx5PocaYBqH+G6jyEsEHf7m5FDiZW7CP8AaJdzdCzoUyx7YH6e6TSCNlkFEjwmn8uj05coN8uljCHXTg==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.9.1.tgz", + "integrity": "sha512-EevzJJ2AXu+U2w14XgK9GnJn9Y4q5GNnoAUWS0aErCCb7XhYiM7xa1eJnVq+FoOwRuZj8RmS4GEV7t3CQI3TqA==", "dev": true, "dependencies": { - "@algolia/client-common": "5.8.1" + "@algolia/client-common": "5.9.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-browser-xhr/node_modules/@algolia/client-common": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.8.1.tgz", - "integrity": "sha512-MLX/gipPFEhJPCExsxXf9tnt+kLfWCe9JWRp1adcoVySkhzPxpIeSiWaQaOqyy0TYIgIpdeVx/emlBT9Ni8GFw==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.9.1.tgz", + "integrity": "sha512-YWPGDyISFNbPFVswI16c4rgt2CeTgFk82e543FSyw/3H5eNKa0YPb876GguEb50NualXCF7DCuVhcp6XMTpaSg==", "dev": true, "engines": { "node": ">= 14.0.0" @@ -325,42 +421,42 @@ "dev": true }, "node_modules/@algolia/requester-fetch": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.8.1.tgz", - "integrity": "sha512-SRWGrNsKSLNYIDNlVKVkf4wxsm6h57xI+0b8JPm0wUe0ly0jymAgQU2yW2GDzNuXyiPiS7U1oWwaVGs71IT5Pw==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.9.1.tgz", + "integrity": "sha512-gBSi8QotBfOu3BbF25PB2uVbCNfrjVDGyvfeIQ6DukUldjEE8ruusNJnVMHoR00rO1C8G86/USHkbmXx73vf7Q==", "dev": true, "dependencies": { - "@algolia/client-common": "5.8.1" + "@algolia/client-common": "5.9.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-fetch/node_modules/@algolia/client-common": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.8.1.tgz", - "integrity": "sha512-MLX/gipPFEhJPCExsxXf9tnt+kLfWCe9JWRp1adcoVySkhzPxpIeSiWaQaOqyy0TYIgIpdeVx/emlBT9Ni8GFw==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.9.1.tgz", + "integrity": "sha512-YWPGDyISFNbPFVswI16c4rgt2CeTgFk82e543FSyw/3H5eNKa0YPb876GguEb50NualXCF7DCuVhcp6XMTpaSg==", "dev": true, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-node-http": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.8.1.tgz", - "integrity": "sha512-pYylr2gBsV68E88bltaVoJHIc3YNIllVmA12d+jefAcutR9ytQM7iP6dXbCYuRqF4CHF32YvZuwvqNI3J4kowA==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.9.1.tgz", + "integrity": "sha512-ImECpAR0A0q+9UfTprA099JJ6VZ+GjUoOC+m5rbyJieA4rUbt/A6QHkqeUq/2fObeezOzLn4DZDAXW93YHM+oQ==", "dev": true, "dependencies": { - "@algolia/client-common": "5.8.1" + "@algolia/client-common": "5.9.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-node-http/node_modules/@algolia/client-common": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.8.1.tgz", - "integrity": "sha512-MLX/gipPFEhJPCExsxXf9tnt+kLfWCe9JWRp1adcoVySkhzPxpIeSiWaQaOqyy0TYIgIpdeVx/emlBT9Ni8GFw==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.9.1.tgz", + "integrity": "sha512-YWPGDyISFNbPFVswI16c4rgt2CeTgFk82e543FSyw/3H5eNKa0YPb876GguEb50NualXCF7DCuVhcp6XMTpaSg==", "dev": true, "engines": { "node": ">= 14.0.0" @@ -4693,20 +4789,24 @@ } }, "node_modules/algoliasearch": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.8.1.tgz", - "integrity": "sha512-9qYA9fVEhf3d3sGA71hIr0tBJp8+byqirjzvvVvwokc3uTN7J+rnsNcbgxFXlJQrBpfssDG08olVBqCbtZl4Mw==", - "dev": true, - "dependencies": { - "@algolia/client-abtesting": "5.8.1", - "@algolia/client-analytics": "5.8.1", - "@algolia/client-common": "5.8.1", - "@algolia/client-personalization": "5.8.1", - "@algolia/client-search": "5.8.1", - "@algolia/recommend": "5.8.1", - "@algolia/requester-browser-xhr": "5.8.1", - "@algolia/requester-fetch": "5.8.1", - "@algolia/requester-node-http": "5.8.1" + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.9.1.tgz", + "integrity": "sha512-AGIoqrJbGfBmlhGXGVKwsdqDo34q69f4scgAWdRQdkFnm0EmgMq6w4zoC7VRtt5ASzs8G0IirTVeJJzh0egJIQ==", + "dev": true, + "dependencies": { + "@algolia/client-abtesting": "5.9.1", + "@algolia/client-analytics": "5.9.1", + "@algolia/client-common": "5.9.1", + "@algolia/client-insights": "5.9.1", + "@algolia/client-personalization": "5.9.1", + "@algolia/client-query-suggestions": "5.9.1", + "@algolia/client-search": "5.9.1", + "@algolia/ingestion": "1.9.1", + "@algolia/monitoring": "1.9.1", + "@algolia/recommend": "5.9.1", + "@algolia/requester-browser-xhr": "5.9.1", + "@algolia/requester-fetch": "5.9.1", + "@algolia/requester-node-http": "5.9.1" }, "engines": { "node": ">= 14.0.0" @@ -4726,24 +4826,24 @@ } }, "node_modules/algoliasearch/node_modules/@algolia/client-common": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.8.1.tgz", - "integrity": "sha512-MLX/gipPFEhJPCExsxXf9tnt+kLfWCe9JWRp1adcoVySkhzPxpIeSiWaQaOqyy0TYIgIpdeVx/emlBT9Ni8GFw==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.9.1.tgz", + "integrity": "sha512-YWPGDyISFNbPFVswI16c4rgt2CeTgFk82e543FSyw/3H5eNKa0YPb876GguEb50NualXCF7DCuVhcp6XMTpaSg==", "dev": true, "engines": { "node": ">= 14.0.0" } }, "node_modules/algoliasearch/node_modules/@algolia/client-search": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.8.1.tgz", - "integrity": "sha512-zy3P4fI28GfzKihUw5+L76pEedQxyLDiMsdDYEWghIz8yAnELDatPNEThyWuUk8fD0PeVoCi1M4tr1iz00fOtQ==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.9.1.tgz", + "integrity": "sha512-JDK8kv1ZR2uwEbUVOZ6GA2AQyHI1+T5noupyTsu7SY2M6W3wPwQO3oUou6Xq+fWJmXGUB8TUj4Yv3ioYoTjQVg==", "dev": true, "dependencies": { - "@algolia/client-common": "5.8.1", - "@algolia/requester-browser-xhr": "5.8.1", - "@algolia/requester-fetch": "5.8.1", - "@algolia/requester-node-http": "5.8.1" + "@algolia/client-common": "5.9.1", + "@algolia/requester-browser-xhr": "5.9.1", + "@algolia/requester-fetch": "5.9.1", + "@algolia/requester-node-http": "5.9.1" }, "engines": { "node": ">= 14.0.0" diff --git a/package.json b/package.json index c9310842bceaa19..ef5978104d54ea0 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "@types/node": "^20.16.1", "@types/react": "^18.3.11", "@types/react-dom": "^18.3.0", - "algoliasearch": "^5.8.1", + "algoliasearch": "^5.9.1", "astro": "^4.16.6", "astro-breadcrumbs": "^3.2.0", "astro-icon": "^1.1.1", From 5344d3932bb155e486c701e21a3c19b78dc0b9db Mon Sep 17 00:00:00 2001 From: Rob Sutter Date: Fri, 18 Oct 2024 15:57:36 +0200 Subject: [PATCH 080/110] Update the Workers Routes configuration page to define what an "orange-clouded" domain is before the term is used. (#17619) Resolves issue 17618 Signed-off-by: Rob Sutter --- src/content/docs/workers/configuration/routing/routes.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/workers/configuration/routing/routes.mdx b/src/content/docs/workers/configuration/routing/routes.mdx index a876f8f72f8a365..f07c921b610ef0d 100644 --- a/src/content/docs/workers/configuration/routing/routes.mdx +++ b/src/content/docs/workers/configuration/routing/routes.mdx @@ -21,7 +21,7 @@ To add a route, you must have: 1. An [active Cloudflare zone](/dns/zone-setups/). 2. A Worker to invoke. -3. An orange-clouded DNS record set up for the [domain](/dns/manage-dns-records/how-to/create-zone-apex/) or [subdomain](/dns/manage-dns-records/how-to/create-subdomain/) you would like to route to. +3. A DNS record set up for the [domain](/dns/manage-dns-records/how-to/create-zone-apex/) or [subdomain](/dns/manage-dns-records/how-to/create-subdomain/) proxied by Cloudflare (also known as orange-clouded) you would like to route to. :::caution From 6ad999537866bd94eed3cd322637446005605a5f Mon Sep 17 00:00:00 2001 From: Greg Brimble Date: Fri, 18 Oct 2024 09:58:43 -0400 Subject: [PATCH 081/110] [Docs Site] Add sitemap redirect (#17558) --- public/_redirects | 1 + 1 file changed, 1 insertion(+) diff --git a/public/_redirects b/public/_redirects index f36e281acfa04e3..b49653c91e2fa1f 100644 --- a/public/_redirects +++ b/public/_redirects @@ -1720,6 +1720,7 @@ /cloudflare-one/tutorials/zsh-env-var/ /cloudflare-one/tutorials/cli/ 301 ### DYNAMIC REDIRECTS ### +/*/sitemap.xml /sitemap-index.xml 301 /access/configuring-identity-providers/* /cloudflare-one/identity/idp-integration/:splat 301 /api-security/* /api-shield/:splat 301 /api-shield/products/* /api-shield/security/:splat 301 From 04fc3ece5a09273a55ba8177cd83b074e25e44fc Mon Sep 17 00:00:00 2001 From: Jun Lee Date: Fri, 18 Oct 2024 15:45:52 +0100 Subject: [PATCH 082/110] [Worker/D1] Adding note on the limit of D1 when choosing storage product. (#17628) * Adding note on the limit of D1 when choosing storage product. * Update src/content/docs/workers/platform/storage-options.mdx Co-authored-by: db-cloudflare <125887610+db-cloudflare@users.noreply.github.com> --------- Co-authored-by: db-cloudflare <125887610+db-cloudflare@users.noreply.github.com> --- src/content/docs/workers/platform/storage-options.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/content/docs/workers/platform/storage-options.mdx b/src/content/docs/workers/platform/storage-options.mdx index d08b1654a34b1a5..ed1c046de1c260a 100644 --- a/src/content/docs/workers/platform/storage-options.mdx +++ b/src/content/docs/workers/platform/storage-options.mdx @@ -136,6 +136,10 @@ To get started with D1: - Follow the [Get started guide](/d1/get-started/) to provision your first D1 database. - Review the [D1 client API](/d1/build-with-d1/d1-client-api/). +:::note +If your working data size exceeds 10 GB (the maximum size for a D1 database), consider splitting the database into multiple, smaller D1 databases. +::: + ## Queues Cloudflare Queues allows developers to send and receive messages with guaranteed delivery. It integrates with [Cloudflare Workers](/workers) and offers at-least once delivery, message batching, and does not charge for egress bandwidth. From c08469fd664ed9dc89cda88633978a14217a1275 Mon Sep 17 00:00:00 2001 From: Nic <123965403+ngayerie@users.noreply.github.com> Date: Fri, 18 Oct 2024 17:37:11 +0200 Subject: [PATCH 083/110] [SSL] Add callout regarding SaaS in AOP docs (#17225) * [SSL] Update zone-level.mdx PCX-13840 / CUSTESC-42471 * Update zone-level.mdx * Introduce AOP acronym and link out to custom hostnames docs --------- Co-authored-by: Rebecca Tamachiro --- .../authenticated-origin-pull/index.mdx | 2 +- .../authenticated-origin-pull/set-up/zone-level.mdx | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/content/docs/ssl/origin-configuration/authenticated-origin-pull/index.mdx b/src/content/docs/ssl/origin-configuration/authenticated-origin-pull/index.mdx index e08968f5edba457..de6cae9d4f8c142 100644 --- a/src/content/docs/ssl/origin-configuration/authenticated-origin-pull/index.mdx +++ b/src/content/docs/ssl/origin-configuration/authenticated-origin-pull/index.mdx @@ -11,7 +11,7 @@ description: Authenticated Origin Pulls helps ensure requests to your origin import { FeatureTable } from "~/components" -Authenticated Origin Pulls helps ensure requests to your origin server come from the Cloudflare network, which provides an additional layer of security on top of [Full](/ssl/origin-configuration/ssl-modes/full/) or [Full (strict)](/ssl/origin-configuration/ssl-modes/full-strict/) encryption modes. +Authenticated Origin Pulls (AOP) helps ensure requests to your origin server come from the Cloudflare network, which provides an additional layer of security on top of [Full](/ssl/origin-configuration/ssl-modes/full/) or [Full (strict)](/ssl/origin-configuration/ssl-modes/full-strict/) encryption modes. This authentication becomes particularly important with the [Cloudflare Web Application Firewall (WAF)](/waf/). Together with the WAF, you can make sure that **all traffic** is evaluated before receiving a response from your origin server. diff --git a/src/content/docs/ssl/origin-configuration/authenticated-origin-pull/set-up/zone-level.mdx b/src/content/docs/ssl/origin-configuration/authenticated-origin-pull/set-up/zone-level.mdx index bbc2d95e082a4cb..b6f293472638d1e 100644 --- a/src/content/docs/ssl/origin-configuration/authenticated-origin-pull/set-up/zone-level.mdx +++ b/src/content/docs/ssl/origin-configuration/authenticated-origin-pull/set-up/zone-level.mdx @@ -11,12 +11,19 @@ head: import { AvailableNotifications, Render } from "~/components" -When you enable Authenticated Origin Pulls for a zone, all proxied traffic to your zone is authenticated at the origin web server. +When you enable Authenticated Origin Pulls (AOP) for a zone, all proxied traffic to your zone is authenticated at the origin web server. ## Before you begin Make sure your zone is using an [SSL/TLS encryption mode](/ssl/origin-configuration/ssl-modes/) of **Full** or higher. +:::caution + +Zone-level AOP certificates are also applied to [custom hostnames](/cloudflare-for-platforms/cloudflare-for-saas/domain-support/) configured on a Cloudflare for SaaS zone. +If you need a different AOP certificate to apply to different custom hostnames, use [Per-hostname AOP](/ssl/origin-configuration/authenticated-origin-pull/set-up/per-hostname/). + +::: + ## 1. Upload certificate to origin First, upload a certificate to your origin. From 8c2e3ede37d6a73b184bfc4500e5f2d488542a81 Mon Sep 17 00:00:00 2001 From: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> Date: Fri, 18 Oct 2024 16:45:53 +0100 Subject: [PATCH 084/110] [WAF] Use JWT claims in custom rules (and rate limiting rules) (#17629) --- .../check-jwt-claim-to-protect-admin-user.mdx | 20 +++++++++++++ .../waf/rate-limiting-rules/parameters.mdx | 30 +++++++++++-------- 2 files changed, 37 insertions(+), 13 deletions(-) create mode 100644 src/content/docs/waf/custom-rules/use-cases/check-jwt-claim-to-protect-admin-user.mdx diff --git a/src/content/docs/waf/custom-rules/use-cases/check-jwt-claim-to-protect-admin-user.mdx b/src/content/docs/waf/custom-rules/use-cases/check-jwt-claim-to-protect-admin-user.mdx new file mode 100644 index 000000000000000..41d620bf42b5a45 --- /dev/null +++ b/src/content/docs/waf/custom-rules/use-cases/check-jwt-claim-to-protect-admin-user.mdx @@ -0,0 +1,20 @@ +--- +pcx_content_type: configuration +title: Issue challenge for admin user in JWT claim based on attack score +head: + - tag: title + content: Issue challenge for admin user in JWT claim based on attack score +--- + +:::note +To use claims inside a JSON Web Token (JWT), you must first set up a [token validation configuration](/api-shield/security/jwt-validation/configure/) in API Shield. +::: + +This example configures additional protection for requests with a JSON Web Token (JWT) with a user claim of `admin`, based on the request's [attack score](/waf/detections/attack-score/). + +Create a custom rule that issues a Managed Challenge if the user claim in a JWT is `admin` and the attack score is below 40. + +- **Expression**: `(lookup_json_string(http.request.jwt.claims[""][0], "user") eq "admin" and cf.waf.score < 40)` +- **Action**: _Managed Challenge_ + +In this example, `` is your [token configuration ID](/api-shield/security/jwt-validation/configure/) found in JWT Validation and `user` is the JWT claim. diff --git a/src/content/docs/waf/rate-limiting-rules/parameters.mdx b/src/content/docs/waf/rate-limiting-rules/parameters.mdx index 2ca1771cbced1bd..9a4f63029f46bfb 100644 --- a/src/content/docs/waf/rate-limiting-rules/parameters.mdx +++ b/src/content/docs/waf/rate-limiting-rules/parameters.mdx @@ -36,27 +36,27 @@ Set of parameters defining how Cloudflare tracks the request rate for the rule. Use one or more of the following characteristics: -| Dashboard value | API value | Notes | -| ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| N/A(implicitly included) | `cf.colo.id`(mandatory) | [Do not use in expressions](#do-not-use-cfcoloid-as-a-field-in-expressions) | -| IP | `ip.src` | [Incompatible with **IP with NAT support**](#incompatible-characteristics) | -| IP with NAT support | `cf.unique_visitor_id` | [Incompatible with **IP**](#incompatible-characteristics) | -| **Header value of** (enter header name) | `http.request.headers[""]` | [Use lowercased header name in API](#use-a-lowercased-header-name-for-api-users) and [Missing field versus empty value](#missing-field-versus-empty-value) | -| **Cookie value of** (enter cookie name) | `http.request.cookies[""]` | [Recommended configurations](#recommended-configurations-when-using-cookie-value-of) and [Missing field versus empty value](#missing-field-versus-empty-value) | -| **Query value of** (enter parameter name) | `http.request.uri.args[""]` | [Missing field versus empty value](#missing-field-versus-empty-value) | +| Dashboard value | API value | Notes | +| ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| N/A(implicitly included) | `cf.colo.id`(mandatory) | [Do not use in expressions](#do-not-use-cfcoloid-as-a-field-in-expressions) | +| IP | `ip.src` | [Incompatible with **IP with NAT support**](#incompatible-characteristics) | +| IP with NAT support | `cf.unique_visitor_id` | [Incompatible with **IP**](#incompatible-characteristics) | +| **Header value of** (enter header name) | `http.request.headers[""]` | [Use lowercased header name in API](#use-a-lowercased-header-name-for-api-users) and [Missing field versus empty value](#missing-field-versus-empty-value) | +| **Cookie value of** (enter cookie name) | `http.request.cookies[""]` | [Recommended configurations](#recommended-configurations-when-using-cookie-value-of) and [Missing field versus empty value](#missing-field-versus-empty-value) | +| **Query value of** (enter parameter name) | `http.request.uri.args[""]` | [Missing field versus empty value](#missing-field-versus-empty-value) | | **Host** | `http.host` | | **Path** | `http.request.uri.path` | | **AS Num** | `ip.geoip.asnum` | | **Country** | `ip.geoip.country` | | **JA3 Fingerprint** | `cf.bot_management.ja3_hash` | | **JA4** | `cf.bot_management.ja4` | -| **JSON string value of** (enter key) | `lookup_json_string(http.request.body.raw, "")` | [Missing field versus empty value](#missing-field-versus-empty-value) and [`lookup_json_string()` function reference](/ruleset-engine/rules-language/functions/#lookup_json_string) | -| **JSON integer value of** (enter key) | `lookup_json_integer(http.request.body.raw, "")` | [Missing field versus empty value](#missing-field-versus-empty-value) and [`lookup_json_integer()` function reference](/ruleset-engine/rules-language/functions/#lookup_json_integer) | -| **Form input value of** (enter field name) | `http.request.body.form[""]` | [Missing field versus empty value](#missing-field-versus-empty-value) | -| **JWT claim of** (enter token configuration ID, claim name) | `lookup_json_string(http.request.jwt.claims[""][0], "")` | [Missing field versus empty value](#missing-field-versus-empty-value) and [JWT Validation reference](/api-shield/security/jwt-validation/transform-rules/) | +| **JSON string value of** (enter key) | `lookup_json_string(http.request.body.raw, "")` | [Missing field versus empty value](#missing-field-versus-empty-value) and [`lookup_json_string()` function reference](/ruleset-engine/rules-language/functions/#lookup_json_string) | +| **JSON integer value of** (enter key) | `lookup_json_integer(http.request.body.raw, "")` | [Missing field versus empty value](#missing-field-versus-empty-value) and [`lookup_json_integer()` function reference](/ruleset-engine/rules-language/functions/#lookup_json_integer) | +| **Form input value of** (enter field name) | `http.request.body.form[""]` | [Missing field versus empty value](#missing-field-versus-empty-value) | +| **JWT claim of** (enter token configuration ID, claim name) | `lookup_json_string(http.request.jwt.claims[""][0], "")` | [Requirements for claims in JWT](#requirements-for-using-claims-inside-a-json-web-token-jwt), [missing field versus empty value](#missing-field-versus-empty-value) and [JWT Validation reference](/api-shield/security/jwt-validation/transform-rules/) | | **Body** | `http.request.body.raw` | | **Body size** (select operator, enter size) | `http.request.body.size` | -| **Custom** (enter expression) | Enter a custom expression. You can use a function such as `substring()` or `lower()`, or enter a more complex expression. | [Functions](/ruleset-engine/rules-language/functions/) | +| **Custom** (enter expression) | Enter a custom expression. You can use a function such as `substring()` or `lower()`, or enter a more complex expression. | [Functions](/ruleset-engine/rules-language/functions/) | The available characteristics depend on your Cloudflare plan. Refer to [Availability](/waf/rate-limiting-rules/#availability) for more information. @@ -223,6 +223,10 @@ If you use **Cookie value of** as a rate limiting rule characteristic, follow th - Create a [custom rule](/waf/custom-rules/) that blocks requests with more than one value for the cookie. - Validate the cookie value at the origin before performing any demanding server operations. +### Requirements for using claims inside a JSON Web Token (JWT) + +To use claims inside a JSON Web Token (JWT), you must first set up a [token validation configuration](/api-shield/security/jwt-validation/configure/) in API Shield. + ## Configuration restrictions - If the rule expression [includes IP lists](/waf/tools/lists/use-in-expressions/), you must enable the **Also apply rate limiting to cached assets** parameter. From 91e869fedad810f8553d5804cff9c013e75e97fa Mon Sep 17 00:00:00 2001 From: Brendan Irvine-Broque Date: Fri, 18 Oct 2024 09:17:40 -0700 Subject: [PATCH 085/110] Make Compat Matrix more comprehensive (#17303) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Make Compat Matrix more comprehensive Attempts to cover all the differences between Workers and Pages * Apply suggestions from code review Co-authored-by: Tanushree <87711021+tanushree-sharma@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> Co-authored-by: Denise Peña <75506267+dcpena@users.noreply.github.com> * Update src/content/docs/workers/static-assets/compatibility-matrix.mdx Co-authored-by: Denise Peña <75506267+dcpena@users.noreply.github.com> --------- Co-authored-by: Tanushree <87711021+tanushree-sharma@users.noreply.github.com> Co-authored-by: Thomas Gauvin <35609369+thomasgauvin@users.noreply.github.com> Co-authored-by: Denise Peña <75506267+dcpena@users.noreply.github.com> --- .../static-assets/compatibility-matrix.mdx | 77 ++++++++++++++----- 1 file changed, 57 insertions(+), 20 deletions(-) diff --git a/src/content/docs/workers/static-assets/compatibility-matrix.mdx b/src/content/docs/workers/static-assets/compatibility-matrix.mdx index f494123cd8874f6..8124ab9aa392034 100644 --- a/src/content/docs/workers/static-assets/compatibility-matrix.mdx +++ b/src/content/docs/workers/static-assets/compatibility-matrix.mdx @@ -17,29 +17,42 @@ import { Tabs, } from "~/components"; -Cloudflare [Workers with static assets](/workers/static-assets/) and [Pages](/pages/) both have the ability to host front-end and full-stack applications. The following compatibility matrix shows the features are available for each product to help you when choosing which product to start with. +You can deploy full-stack applications, including front-end static assets and back-end APIs and server-side rendered pages (SSR), to both Cloudflare [Workers](/workers/static-assets/) and [Pages](/pages/). The compatibility matrix below shows which features are available for each, to help you choose whether to build with Workers or Pages. Unless otherwise stated below, what works in Pages works in Workers, and what works in Workers works in Pages. Think something is missing from this list? [Open a pull request](https://github.com/cloudflare/cloudflare-docs/edit/production/src/content/docs/workers/static-assets/compatibility-matrix.mdx) or [create a GitHub issue](https://github.com/cloudflare/cloudflare-docs/issues/new). We plan to bridge the gaps between Workers and Pages and provide ways to migrate your Pages projects to Workers. -| | Asset hosting on Workers | Pages | + +| | Workers | Pages | | ----------------------------------------------------------------------------------- | ------------------------ | ----- | -| **Features** | | | -| Middleware | ❌ 1 | ✅ | -| [Redirects](/pages/configuration/redirects/) | ❌ 2 | ✅ | -| [Smart Placement](/workers/configuration/smart-placement/) | ⏳ 3 | ✅ | +| **Writing, Testing, and Deploying Code** | | | +| [Rollbacks](/workers/configuration/versions-and-deployments/rollbacks/) | ✅ | ✅ | | [Gradual Deployments](/workers/configuration/versions-and-deployments/) | ✅ | ❌ | +| [Preview URLs](/workers/configuration/previews) | ✅ | ✅ | +| [Testing tools](/workers/testing) | ✅ | ✅ | +| [Local Development](/workers/testing/local-development/) | ✅ | ✅ | +| [Remote Development (`--remote`)](/workers/wrangler/commands/) | ✅ 1 | ❌ | +| [Quick Editor in Dashboard](https://blog.cloudflare.com/improved-quick-edit) | ✅ | ❌ | +| **Static Assets** | | | +| [Early Hints](/pages/configuration/early-hints/) | ❌ | ✅ | +| [Custom HTTP headers for static assets](/pages/configuration/headers/) | 🟡 2 | ✅ | +| [Middleware](/pages/functions/middleware/) | 🟡 3 | ✅ | +| [Redirects](/pages/configuration/redirects/) | 🟡 4 | ✅ | +| [Smart Placement](/workers/configuration/smart-placement/) | ⏳ 5 | ✅ | | **Observability** | | | | [Workers Logs](/workers/observability/) | ✅ | ❌ | -| [Logpush](/workers/observability/logs/logpush/) | ✅ | ❌ | -| [Tail Workers](/workers/observability/logs/tail-workers/) | ⏳ 4 | ❌ | -| [Real-time logs](/workers/observability/logs/real-time-logs/) | ✅ | ✅ | -| **Bindings** | | | +| [Logpush](/workers/observability/logs/logpush/) | ✅ | ❌ | +| [Tail Workers](/workers/observability/logs/tail-workers/) | ⏳ 6 | ❌ | +| [Real-time logs](/workers/observability/logs/real-time-logs/) | ✅ | ✅ | +| **Runtime APIs & Compute Models** | | | +| [Node.js Compatibility Mode](/workers/runtime-apis/nodejs/) | ✅ | ✅ | +| [Durable Objects](/durable-objects/api/) | ✅ | 🟡 7 | +| [Cron Triggers](/workers/configuration/cron-triggers/) | ✅ | ❌ | +| **Bindings** | | | | [AI](/workers-ai/get-started/workers-wrangler/#2-connect-your-worker-to-workers-ai) | ✅ | ✅ | | [Analytics Engine](/analytics/analytics-engine) | ✅ | ✅ | | [Assets](/workers/static-assets/binding/) | ✅ | ❌ | | [Browser Rendering](/browser-rendering) | ✅ | ✅ | | [D1](/d1/build-with-d1/d1-client-api/) | ✅ | ✅ | -| [Durable Objects](/durable-objects/api/) | ✅ | ❌ | | [Environment Variables](/workers/configuration/environment-variables/) | ✅ | ✅ | | [Hyperdrive](/hyperdrive/) | ✅ | ❌ | | [KV](/kv/) | ✅ | ✅ | @@ -51,22 +64,46 @@ We plan to bridge the gaps between Workers and Pages and provide ways to migrate | [Secrets](/workers/configuration/secrets/) | ✅ | ✅ | | [Service bindings](/workers/runtime-apis/bindings/service-bindings/) | ✅ | ✅ | | [Vectorize](/vectorize/get-started/intro/#3-bind-your-worker-to-your-index) | ✅ | ✅ | +| **Builds (CI/CD)** | | | +| [Monorepos](/workers/ci-cd/builds/advanced-setups/) | ✅ | ✅ | +| [Build Watch Paths](/pages/configuration/build-watch-paths/) | ❌ | ✅ | +| [Deploy Hooks](/pages/configuration/deploy-hooks/) | ❌ | ✅ | +| [Build Caching](/pages/configuration/build-caching/) | ❌ | ✅ | +| [Custom Preview Branches](/pages/configuration/branch-build-controls/) | ❌ | ✅ | +| [Custom Branch Aliases](/pages/how-to/custom-branch-aliases/) | ❌ | ✅ | +| **Pages Functions** | | | +| [File-based Routing](/pages/functions/routing/) | ❌ 8 | ✅ | +| [Pages Plugins](/pages/functions/plugins/) | ❌ 9 | ✅ | + -1 If you need to run a Worker script ahead of serving static assets, -we currently recommend using [Service +1 For more details on which bindings are supported in remote development, [refer to the docs](/workers/testing/local-development/#supported-resource-bindings-in-different-environments). + +2 Similar to 1, to customize the HTTP headers that +are returned by static assets, you can use [Service bindings](/workers/runtime-apis/bindings/service-bindings/) to connect a Worker -in front of the Worker with assets. We plan to explore additional configuration +in front of the Worker with assets. + +3 If you need to run a Worker before serving static assets, +you can create a separate Worker that acts as middleware, and then use [Service +bindings](/workers/runtime-apis/bindings/service-bindings/) to forward the request +to the Worker with assets. We plan to explore additional configuration to support more complex routing in the future. -2 You can handle redirects by adding code to your Worker (a +4 You can handle redirects by adding code to your Worker (a [community package](https://npmjs.com/package/redirects-in-workers) is available for `_redirects` support), or you can use [Bulk Redirects](/rules/url-forwarding/bulk-redirects/). -3 You cannot yet enable [Smart -Placement](/workers/configuration/smart-placement/) projects with static assets. -This is a temporary limitation, we are working to remove it. +5 You cannot yet enable [Smart +Placement](/workers/configuration/smart-placement/) for Workers with static assets. +This is a temporary limitation we are working to remove. -4 You cannot yet add a [Tail +6 You cannot yet add a [Tail Worker](/workers/observability/logs/tail-workers/) to a project with assets. -This is a temporary limitation, we are working to remove it. +This is a temporary limitation we are working to remove. + +7 To [use Durable Objects with your Cloudflare Pages project](/pages/functions/bindings/#durable-objects), you must create a separate Worker with a Durable Object and then declare a binding to it in both your Production and Preview environments. Using Durable Objects with Workers is simpler and recommended. + +8 Workers [supports popular frameworks](/workers/frameworks/), many of which implement file-based routing. + +9 Everything that is possible with Pages Functions can also be achieved by adding code to your Worker or by using framework-specific plugins for relevant third party tools. From 6b4e2b9208981ccc987d98e8d9914e165bf46979 Mon Sep 17 00:00:00 2001 From: Greg Brimble Date: Fri, 18 Oct 2024 12:22:08 -0400 Subject: [PATCH 086/110] Add Puppeteer example (#17527) * Add Puppeteer example * Update src/content/docs/workers/testing/vitest-integration/recipes.mdx Co-authored-by: hyperlint-ai[bot] <154288675+hyperlint-ai[bot]@users.noreply.github.com> * Move to my personal account --------- Co-authored-by: hyperlint-ai[bot] <154288675+hyperlint-ai[bot]@users.noreply.github.com> --- .../testing/vitest-integration/recipes.mdx | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/content/docs/workers/testing/vitest-integration/recipes.mdx b/src/content/docs/workers/testing/vitest-integration/recipes.mdx index 77e16dfa29261dd..b35d095c17c8085 100644 --- a/src/content/docs/workers/testing/vitest-integration/recipes.mdx +++ b/src/content/docs/workers/testing/vitest-integration/recipes.mdx @@ -6,20 +6,20 @@ sidebar: head: [] description: Examples that demonstrate how to write unit tests and integration tests for Workers projects with the Workers Vitest integration. - --- Recipes are examples that help demonstrate how to write unit tests and integration tests for Workers projects using the [`@cloudflare/vitest-pool-workers`](https://www.npmjs.com/package/@cloudflare/vitest-pool-workers) package. -* [Basic unit and integration tests using `SELF`](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/basics-unit-integration-self) -* [Basic integration tests using an auxiliary Worker](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/basics-integration-auxiliary) -* [Isolated tests using KV, R2 and the Cache API](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/kv-r2-caches) -* [Isolated tests using D1 with migrations](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/d1) -* [Isolated tests using Durable Objects with direct access](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/durable-objects) -* [Tests using Queue producers and consumers](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/queues) -* [Tests using Hyperdrive with a Vitest managed TCP server](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/hyperdrive) -* [Tests using declarative/imperative outbound request mocks](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/request-mocking) -* [Tests using multiple auxiliary workers and request mocks](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/multiple-workers) -* [Tests importing WebAssembly modules](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/web-assembly) -* [Tests using JSRPC with entrypoints and Durable Objects](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/rpc) -* [Basic integration test for a Worker with static assets](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/workers-assets) +- [Basic unit and integration tests using `SELF`](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/basics-unit-integration-self) +- [Basic integration tests using an auxiliary Worker](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/basics-integration-auxiliary) +- [Isolated tests using KV, R2 and the Cache API](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/kv-r2-caches) +- [Isolated tests using D1 with migrations](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/d1) +- [Isolated tests using Durable Objects with direct access](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/durable-objects) +- [Tests using Queue producers and consumers](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/queues) +- [Tests using Hyperdrive with a Vitest managed TCP server](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/hyperdrive) +- [Tests using declarative/imperative outbound request mocks](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/request-mocking) +- [Tests using multiple auxiliary Workers and request mocks](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/multiple-workers) +- [Tests importing WebAssembly modules](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/web-assembly) +- [Tests using JSRPC with entrypoints and Durable Objects](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/rpc) +- [Basic integration test for a Worker with static assets](https://github.com/cloudflare/workers-sdk/tree/main/fixtures/vitest-pool-workers-examples/workers-assets) +- [Integration test with static assets and Puppeteer](https://github.com/GregBrimble/puppeteer-vitest-workers-assets) From c579dad1ef883c99184b2f9af05b1336da38c782 Mon Sep 17 00:00:00 2001 From: Nic <123965403+ngayerie@users.noreply.github.com> Date: Fri, 18 Oct 2024 18:32:06 +0200 Subject: [PATCH 087/110] [DNS] Update vendor-specific-records.mdx (#17304) * [DNS] Update vendor-specific-records.mdx * Fix: domain pointing should be under Wix --------- Co-authored-by: Rebecca Tamachiro --- .../reference/vendor-specific-records.mdx | 90 ++++++++++--------- 1 file changed, 47 insertions(+), 43 deletions(-) diff --git a/src/content/docs/dns/manage-dns-records/reference/vendor-specific-records.mdx b/src/content/docs/dns/manage-dns-records/reference/vendor-specific-records.mdx index a34845218c56f4c..82920bd8c2bd5d2 100644 --- a/src/content/docs/dns/manage-dns-records/reference/vendor-specific-records.mdx +++ b/src/content/docs/dns/manage-dns-records/reference/vendor-specific-records.mdx @@ -26,8 +26,8 @@ If you want to customize the service addresses URLs associated with Google Works :::caution -Google enforces HTTPS on its services. If you see errors about redirect -loops when browsing to your site through Cloudflare, use Cloudflare's [Full encryption mode](/ssl/origin-configuration/ssl-modes/full/). +Google enforces HTTPS on its services. If you find errors about redirect +loops when browsing to your site through Cloudflare, use Cloudflare's [Full encryption mode](/ssl/origin-configuration/ssl-modes/full/). ::: ### Google site verification @@ -84,6 +84,13 @@ Then, add Azure’s required records to [Cloudflare DNS](/dns/manage-dns-records ## Miscellaneous vendors +### ClickFunnels + +You can configure Cloudflare to work with ClickFunnels. The process requires updating your Cloudflare DNS settings. + +* [Adding a Cloudflare subdomain](https://help.clickfunnels.com/hc/en-us/articles/360005906774-Adding-A-Cloudflare-Subdomain-) +* [Adding a Cloudflare domain](https://help.clickfunnels.com/hc/en-us/articles/360005906094-Cloudflare-CNAME-Record) + ### Discourse To use Discourse with Cloudflare, refer to [Using Discourse with Cloudflare: Best Practices](https://community.cloudflare.com/t/using-discourse-with-cloudflare-best-practices/602890). @@ -92,24 +99,28 @@ To use Discourse with Cloudflare, refer to [Using Discourse with Cloudflare: Bes To use Cloudflare with Forward Email, refer to [Forward Email configuration with Cloudflare](https://forwardemail.net/guides/cloudflare). -### ClickFunnels +### Mailchimp -You can configure Cloudflare to work with ClickFunnels. The process requires updating your Cloudflare DNS settings. +For help with Mailchimp, refer to [Use a custom domain with Mailchimp](https://mailchimp.com/help/connect-domain/). -* [Adding a Cloudflare subdomain](https://help.clickfunnels.com/hc/en-us/articles/360005906774-Adding-A-Cloudflare-Subdomain-) -* [Adding a Cloudflare domain](https://help.clickfunnels.com/hc/en-us/articles/360005906094-Cloudflare-CNAME-Record) + -### Zoho +### Ning custom domain -To use Cloudflare with Zoho, refer to [Zoho configuration with Cloudflare](https://www.zoho.com/mail/help/adminconsole/cloudflare.html). +For help with Ning, refer to [Use a custom domain with Ning](https://www.ning.com/help/use-your-own-domain-e-g-example-com-for-your-ning-network/). -### Unbounce + -Refer to Unbounce's documentation to [get a `CNAME` value](https://documentation.unbounce.com/hc/en-us/articles/204011950), then [add that record within Cloudflare](/dns/manage-dns-records/how-to/create-dns-records/). +### Rackspace CloudFiles + +Configure Rackspace CloudFiles via *CNAME record*. Consult the [Rackspace documentation](https://docs.rackspace.com/support/how-to/using-cnames-with-cloud-files-containers/). + +Refer to Rackspace CloudFiles's documentation to [get a `CNAME` value](https://docs.rackspace.com/support/how-to/using-cnames-with-cloud-files-containers/), then [add that record within Cloudflare](/dns/manage-dns-records/how-to/create-dns-records/). :::caution -If Cloudflare is activated via one of our hosting partners, your `CNAME` record should be [DNS-only (unproxied)](/dns/manage-dns-records/reference/proxied-dns-records/#dns-only-records). +The `CNAME` record needs to be [DNS-only (unproxied)](/dns/manage-dns-records/reference/proxied-dns-records/#dns-only-records) since rackcdn.com is +not compatible with Cloudflare. ::: ### SendGrid @@ -121,46 +132,14 @@ Refer to SendGrid's documentation for how to [make SendGrid compatible with Clou You may need to refer to Cloudflare's documentation for updated navigation instructions regarding [adding DNS records](/dns/manage-dns-records/how-to/create-dns-records/) and creating [Configuration rules](/rules/configuration-rules/create-dashboard/). - ::: -### WPEngine - -For help configuring WPEngine sites, refer to: - -* [Configuring DNS with WPEngine](https://wpengine.com/support/wordpress-best-practice-configuring-dns-for-wp-engine/) -* [Cloudflare best practices](https://wpengine.com/support/cloudflare-best-practices/) - -### Ning custom domain - -For help with Ning, refer to [Use a custom domain with Ning](https://www.ning.com/help/use-your-own-domain-e-g-example-com-for-your-ning-network/). - - - ### SmugMug For help with SmugMug, refer to [Use a custom domain with SmugMug](https://www.smugmughelp.com/en/articles/363-use-a-custom-domain). -### Mailchimp - -For help with Mailchimp, refer to [Use a custom domain with Mailchimp](https://mailchimp.com/help/connect-domain/). - - - -### Rackspace CloudFiles - -Configure Rackspace CloudFiles via *CNAME record*. Consult the [Rackspace documentation](https://docs.rackspace.com/support/how-to/using-cnames-with-cloud-files-containers/). - -Refer to Rackspace CloudFiles's documentation to [get a `CNAME` value](https://docs.rackspace.com/support/how-to/using-cnames-with-cloud-files-containers/), then [add that record within Cloudflare](/dns/manage-dns-records/how-to/create-dns-records/). - -:::caution - -The `CNAME` record needs to be [DNS-only (unproxied)](/dns/manage-dns-records/reference/proxied-dns-records/#dns-only-records) since rackcdn.com is -not compatible with Cloudflare. -::: - ### Squarespace First, make sure you [update your nameservers](/dns/zone-setups/full-setup/) and your domain is [active](/dns/zone-setups/reference/domain-status/). @@ -188,6 +167,20 @@ Refer to Tumblr's documentation to [get DNS record values](https://help.tumblr.c +### Unbounce + +Refer to Unbounce's documentation to [get a `CNAME` value](https://documentation.unbounce.com/hc/en-us/articles/204011950), then [add that record within Cloudflare](/dns/manage-dns-records/how-to/create-dns-records/). + +:::caution + +If Cloudflare is activated via one of our hosting partners, your `CNAME` record should be [DNS-only (unproxied)](/dns/manage-dns-records/reference/proxied-dns-records/#dns-only-records). +::: + +### Vercel + +For help using Cloudflare with Vercel, refer to [Vercel and Cloudflare Integration](https://vercel.com/docs/integrations/external-platforms/cloudflare#using-cloudflare-as-a-reverse-proxy) + + ### Wix You can use Cloudflare with [Wix websites](https://www.wix.com/), though your setup needs to be different than with most website builders. @@ -199,3 +192,14 @@ This is because Wix [does not support](https://support.wix.com/en/article/reques If you want to manage your DNS through Cloudflare or you bought a domain through [Cloudflare Registrar](/registrar/), you can connect that domain to Wix through [domain pointing](https://support.wix.com/en/article/connecting-a-domain-to-wix-using-the-pointing-method). This method means your website is using Cloudflare for DNS only, so all your DNS records should be [DNS-only (unproxied)](/dns/manage-dns-records/reference/proxied-dns-records/#dns-only-records). + +### WPEngine + +For help configuring WPEngine sites, refer to: + +* [Configuring DNS with WPEngine](https://wpengine.com/support/wordpress-best-practice-configuring-dns-for-wp-engine/) +* [Cloudflare best practices](https://wpengine.com/support/cloudflare-best-practices/) + +### Zoho + +To use Cloudflare with Zoho, refer to [Zoho configuration with Cloudflare](https://www.zoho.com/mail/help/adminconsole/cloudflare.html). From 41ab20f5e8ad8bbc3f74a4acd80862747310e574 Mon Sep 17 00:00:00 2001 From: daisyfaithauma Date: Fri, 18 Oct 2024 17:45:21 +0100 Subject: [PATCH 088/110] [AIG] Adding AI Gateway to Workers AI Binding (#17595) * AI Gateway binding * Update src/content/docs/ai-gateway/integration/aig-workers-ai-binding.mdx Co-authored-by: hyperlint-ai[bot] <154288675+hyperlint-ai[bot]@users.noreply.github.com> * Update src/content/docs/ai-gateway/integration/aig-workers-ai-binding.mdx Co-authored-by: Jun Lee * Update src/content/docs/ai-gateway/integration/aig-workers-ai-binding.mdx Co-authored-by: Jun Lee * Update src/content/docs/ai-gateway/integration/aig-workers-ai-binding.mdx Co-authored-by: Jun Lee * minor edits --------- Co-authored-by: hyperlint-ai[bot] <154288675+hyperlint-ai[bot]@users.noreply.github.com> Co-authored-by: Jun Lee --- .../integration/aig-workers-ai-binding.mdx | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 src/content/docs/ai-gateway/integration/aig-workers-ai-binding.mdx diff --git a/src/content/docs/ai-gateway/integration/aig-workers-ai-binding.mdx b/src/content/docs/ai-gateway/integration/aig-workers-ai-binding.mdx new file mode 100644 index 000000000000000..6296f1e600af0cc --- /dev/null +++ b/src/content/docs/ai-gateway/integration/aig-workers-ai-binding.mdx @@ -0,0 +1,142 @@ +--- +title: Workers AI +pcx_content_type: tutorial +updated: 2024-10-17 +--- + +import { Render, PackageManagers } from "~/components"; + +This guide will walk you through setting up and deploying a Workers AI project. You will use [Workers](/workers/), an AI Gateway binding, and a large language model (LLM), to deploy your first AI-powered application on the Cloudflare global network. + +## Prerequisites + + + +## 1. Create a Worker Project + +You will create a new Worker project using the create-Cloudflare CLI (C3). C3 is a command-line tool designed to help you set up and deploy new applications to Cloudflare. + +Create a new project named `hello-ai` by running: + + + +Running `npm create cloudflare@latest` will prompt you to install the create-cloudflare package and lead you through setup. C3 will also install [Wrangler](/workers/wrangler/), the Cloudflare Developer Platform CLI. + + + +This will create a new `hello-ai` directory. Your new `hello-ai` directory will include: + +- A "Hello World" Worker at `src/index.ts`. +- A `wrangler.toml` configuration file. + +Go to your application directory: + +```bash +cd hello-ai +``` + +## 2. Connect your Worker to Workers AI + +You must create an AI binding for your Worker to connect to Workers AI. Bindings allow your Workers to interact with resources, like Workers AI, on the Cloudflare Developer Platform. + +To bind Workers AI to your Worker, add the following to the end of your `wrangler.toml` file: + +```toml title="wrangler.toml" +[ai] +binding = "AI" +``` + +Your binding is [available in your Worker code](/workers/reference/migrate-to-module-workers/#bindings-in-es-modules-format) on [`env.AI`](/workers/runtime-apis/handlers/fetch/). + +You will need to have your `gateway id` for the next step. You can learn [how to create an AI Gateway in this tutorial](/ai-gateway/get-started/). + +## 3. Run an inference task containing AI Gateway in your Worker + +You are now ready to run an inference task in your Worker. In this case, you will use an LLM, [`llama-3.1-8b-instruct-fast`](/workers-ai/models/llama-3.1-8b-instruct-fast/), to answer a question. Your gateway ID is found on the dashboard. + +Update the `index.ts` file in your `hello-ai` application directory with the following code: + +```typescript title="src/index.ts" {78-81} +export interface Env { + // If you set another name in wrangler.toml as the value for 'binding', + // replace "AI" with the variable name you defined. + AI: Ai; +} + +export default { + async fetch(request, env): Promise { + // Specify the gateway label and other options here + const response = await env.AI.run("@cf/meta/llama-3.1-8b-instruct-fast", { + prompt: "What is the origin of the phrase Hello, World", + gateway: { + id: "GATEWAYID", // Use your gateway label here + skipCache: true, // Optional: Skip cache if needed + }, + }); + + // Return the AI response as a JSON object + return new Response(JSON.stringify(response), { + headers: { "Content-Type": "application/json" }, + }); + }, +} satisfies ExportedHandler; +``` + +Up to this point, you have created an AI binding for your Worker and configured your Worker to be able to execute the Llama 3.1 model. You can now test your project locally before you deploy globally. + +## 4. Develop locally with Wrangler + +While in your project directory, test Workers AI locally by running [`wrangler dev`](/workers/wrangler/commands/#dev): + +```bash +npx wrangler dev +``` + + + +You will be prompted to log in after you run `wrangler dev`. When you run `npx wrangler dev`, Wrangler will give you a URL (most likely `localhost:8787`) to review your Worker. After you go to the URL Wrangler provides, you will see a message that resembles the following example: + +````json +{ + "response": "A fascinating question!\n\nThe phrase \"Hello, World!\" originates from a simple computer program written in the early days of programming. It is often attributed to Brian Kernighan, a Canadian computer scientist and a pioneer in the field of computer programming.\n\nIn the early 1970s, Kernighan, along with his colleague Dennis Ritchie, were working on the C programming language. They wanted to create a simple program that would output a message to the screen to demonstrate the basic structure of a program. They chose the phrase \"Hello, World!\" because it was a simple and recognizable message that would illustrate how a program could print text to the screen.\n\nThe exact code was written in the 5th edition of Kernighan and Ritchie's book \"The C Programming Language,\" published in 1988. The code, literally known as \"Hello, World!\" is as follows:\n\n``` +main() +{ + printf(\"Hello, World!\"); +} +```\n\nThis code is still often used as a starting point for learning programming languages, as it demonstrates how to output a simple message to the console.\n\nThe phrase \"Hello, World!\" has since become a catch-all phrase to indicate the start of a new program or a small test program, and is widely used in computer science and programming education.\n\nSincerely, I'm glad I could help clarify the origin of this iconic phrase for you!" +} +```` + +## 5. Deploy your AI Worker + +Before deploying your AI Worker globally, log in with your Cloudflare account by running: + +```bash +npx wrangler login +``` + +You will be directed to a web page asking you to log in to the Cloudflare dashboard. After you have logged in, you will be asked if Wrangler can make changes to your Cloudflare account. Scroll down and select **Allow** to continue. + +Finally, deploy your Worker to make your project accessible on the Internet. To deploy your Worker, run: + +```bash +npx wrangler deploy +``` + +Once deployed, your Worker will be available at a URL like: + +```bash +https://hello-ai..workers.dev +``` + +Your Worker will be deployed to your custom [`workers.dev`](/workers/configuration/routing/workers-dev/) subdomain. You can now visit the URL to run your AI Worker. + +By completing this tutorial, you have created a Worker, connected it to Workers AI through an AI Gateway binding, and successfully ran an inference task using the Llama 3.1 model. From d6eb07b4d9a6243b9e3cb85c377e30cdfc32fd55 Mon Sep 17 00:00:00 2001 From: Nic <123965403+ngayerie@users.noreply.github.com> Date: Fri, 18 Oct 2024 18:51:07 +0200 Subject: [PATCH 089/110] [SSL] Update delegated-dcv.mdx (#17451) * [SSL] Update delegated-dcv.mdx * Apply suggestion from code review --------- Co-authored-by: Rebecca Tamachiro <62246989+RebeccaTamachiro@users.noreply.github.com> --- .../changing-dcv-method/methods/delegated-dcv.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/ssl/edge-certificates/changing-dcv-method/methods/delegated-dcv.mdx b/src/content/docs/ssl/edge-certificates/changing-dcv-method/methods/delegated-dcv.mdx index faec6470596765f..7c03596d8092c43 100644 --- a/src/content/docs/ssl/edge-certificates/changing-dcv-method/methods/delegated-dcv.mdx +++ b/src/content/docs/ssl/edge-certificates/changing-dcv-method/methods/delegated-dcv.mdx @@ -31,7 +31,7 @@ You should use Delegated DCV when all of the following conditions are true: - Cloudflare is not already [performing DCV automatically](/ssl/edge-certificates/changing-dcv-method/). - Your zone is using an [Advanced certificate](/ssl/edge-certificates/advanced-certificate-manager/). - Your zone is not using multiple CDN providers. -- The Certificate Authority is either Google or Let's Encrypt +- The Certificate Authority is either Google Trust Services, SSL.com, or Let's Encrypt :::note[Delegated DCV and origin certificates] From f0cbd06542a9a3aeb4c6b335818a71fb669ef9c5 Mon Sep 17 00:00:00 2001 From: Greg Brimble Date: Fri, 18 Oct 2024 13:07:02 -0400 Subject: [PATCH 090/110] Adds details about Workers Assets remote dev (#17632) --- src/content/docs/workers/testing/local-development.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/content/docs/workers/testing/local-development.mdx b/src/content/docs/workers/testing/local-development.mdx index e5056db0ebc1d93..672a6758716cefd 100644 --- a/src/content/docs/workers/testing/local-development.mdx +++ b/src/content/docs/workers/testing/local-development.mdx @@ -34,6 +34,7 @@ npx wrangler dev | Product | Local Dev Supported | Remote Dev Supported | | ----------------------------------- | ------------------- | -------------------- | | AI | ✅[^1] | ✅ | +| Assets | ✅ | ❌ | | Analytics Engine | ❌ | ✅ | | Browser Rendering | ❌ | ✅ | | D1 | ✅ | ✅ | From bb0abadc41de14941be808d764f2e738ef245edd Mon Sep 17 00:00:00 2001 From: Nic <123965403+ngayerie@users.noreply.github.com> Date: Fri, 18 Oct 2024 19:11:24 +0200 Subject: [PATCH 091/110] [Rules] Rec: Only accept requests in cloud storage providers from Cloudflare IPs (#17622) SPM-2581 --------- Co-authored-by: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> --- src/content/docs/rules/cloud-connector/providers.mdx | 8 ++++++++ .../cloud-connector-limit-bucket-to-cloudflare-ips.mdx | 5 +++++ 2 files changed, 13 insertions(+) create mode 100644 src/content/partials/rules/cloud-connector-limit-bucket-to-cloudflare-ips.mdx diff --git a/src/content/docs/rules/cloud-connector/providers.mdx b/src/content/docs/rules/cloud-connector/providers.mdx index 8d22a6c822e3da4..f33b31b199d79d9 100644 --- a/src/content/docs/rules/cloud-connector/providers.mdx +++ b/src/content/docs/rules/cloud-connector/providers.mdx @@ -5,6 +5,8 @@ sidebar: order: 4 --- +import { Render } from "~/components"; + Cloud Connector currently supports the following cloud providers and services: - Amazon Web Services - S3 @@ -38,6 +40,8 @@ Cloud Connector supports both subdomain and URI path-style URLs: For more information, refer to the [Amazon S3 documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/EnableWebsiteHosting.html). + + ## Google Cloud Platform - Cloud Storage The hostname of your Cloud Storage bucket URL must be the following (where `*` is a wildcard character): @@ -63,6 +67,8 @@ Cloud Connector supports both subdomain and URI path-style URLs: If the files in your bucket are not publicly accessible, you must change the bucket permissions. For details, refer to the [Google Cloud Storage documentation](https://cloud.google.com/storage/docs/access-control/making-data-public#buckets). + + ## Microsoft Azure - Blob Storage The hostname of your Blob Storage bucket URL must have one of the following formats: @@ -79,3 +85,5 @@ For Azure Blog Storage, Cloud Connector supports only subdomain URLs like ` diff --git a/src/content/partials/rules/cloud-connector-limit-bucket-to-cloudflare-ips.mdx b/src/content/partials/rules/cloud-connector-limit-bucket-to-cloudflare-ips.mdx new file mode 100644 index 000000000000000..4ddbc195912bdc9 --- /dev/null +++ b/src/content/partials/rules/cloud-connector-limit-bucket-to-cloudflare-ips.mdx @@ -0,0 +1,5 @@ +--- +{} +--- + +Once you configure Cloud Connector with your storage provider's public bucket, you may wish that only Cloudflare can access the objects in that bucket. To achieve this, check your provider's documentation on how to create a policy that only allows incoming requests from [Cloudflare IP addresses](https://www.cloudflare.com/ips/). From 8210b1b6f88411b9d802f23959474be5cbc50b0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denise=20Pe=C3=B1a?= <75506267+dcpena@users.noreply.github.com> Date: Fri, 18 Oct 2024 12:25:29 -0500 Subject: [PATCH 092/110] [Workers] Added footnotes component & legend (#17634) * Added footnotes component & legend * Tiny tweaks to compat matrix details --------- Co-authored-by: Greg Brimble --- .../static-assets/compatibility-matrix.mdx | 145 ++++++++---------- 1 file changed, 68 insertions(+), 77 deletions(-) diff --git a/src/content/docs/workers/static-assets/compatibility-matrix.mdx b/src/content/docs/workers/static-assets/compatibility-matrix.mdx index 8124ab9aa392034..7d5e1336dacc229 100644 --- a/src/content/docs/workers/static-assets/compatibility-matrix.mdx +++ b/src/content/docs/workers/static-assets/compatibility-matrix.mdx @@ -11,99 +11,90 @@ import { Badge, Description, FileTree, + Footnotes, InlineBadge, Render, TabItem, Tabs, } from "~/components"; -You can deploy full-stack applications, including front-end static assets and back-end APIs and server-side rendered pages (SSR), to both Cloudflare [Workers](/workers/static-assets/) and [Pages](/pages/). The compatibility matrix below shows which features are available for each, to help you choose whether to build with Workers or Pages. Unless otherwise stated below, what works in Pages works in Workers, and what works in Workers works in Pages. Think something is missing from this list? [Open a pull request](https://github.com/cloudflare/cloudflare-docs/edit/production/src/content/docs/workers/static-assets/compatibility-matrix.mdx) or [create a GitHub issue](https://github.com/cloudflare/cloudflare-docs/issues/new). +You can deploy full-stack applications, including front-end static assets and back-end APIs, as well as server-side rendered pages (SSR), to both Cloudflare [Workers](/workers/static-assets/) and [Pages](/pages/). The compatibility matrix below shows which features are available for each, to help you choose whether to build with Workers or Pages. Unless otherwise stated below, what works in Pages works in Workers, and what works in Workers works in Pages. Think something is missing from this list? [Open a pull request](https://github.com/cloudflare/cloudflare-docs/edit/production/src/content/docs/workers/static-assets/compatibility-matrix.mdx) or [create a GitHub issue](https://github.com/cloudflare/cloudflare-docs/issues/new). We plan to bridge the gaps between Workers and Pages and provide ways to migrate your Pages projects to Workers. +**Legend** +✅: Supported
    +⏳: Coming soon
    +🟡: Unsupported, workaround available
    +❌: Unsupported -| | Workers | Pages | -| ----------------------------------------------------------------------------------- | ------------------------ | ----- | -| **Writing, Testing, and Deploying Code** | | | -| [Rollbacks](/workers/configuration/versions-and-deployments/rollbacks/) | ✅ | ✅ | -| [Gradual Deployments](/workers/configuration/versions-and-deployments/) | ✅ | ❌ | -| [Preview URLs](/workers/configuration/previews) | ✅ | ✅ | -| [Testing tools](/workers/testing) | ✅ | ✅ | -| [Local Development](/workers/testing/local-development/) | ✅ | ✅ | -| [Remote Development (`--remote`)](/workers/wrangler/commands/) | ✅ 1 | ❌ | -| [Quick Editor in Dashboard](https://blog.cloudflare.com/improved-quick-edit) | ✅ | ❌ | -| **Static Assets** | | | -| [Early Hints](/pages/configuration/early-hints/) | ❌ | ✅ | -| [Custom HTTP headers for static assets](/pages/configuration/headers/) | 🟡 2 | ✅ | -| [Middleware](/pages/functions/middleware/) | 🟡 3 | ✅ | -| [Redirects](/pages/configuration/redirects/) | 🟡 4 | ✅ | -| [Smart Placement](/workers/configuration/smart-placement/) | ⏳ 5 | ✅ | -| **Observability** | | | -| [Workers Logs](/workers/observability/) | ✅ | ❌ | -| [Logpush](/workers/observability/logs/logpush/) | ✅ | ❌ | -| [Tail Workers](/workers/observability/logs/tail-workers/) | ⏳ 6 | ❌ | -| [Real-time logs](/workers/observability/logs/real-time-logs/) | ✅ | ✅ | -| **Runtime APIs & Compute Models** | | | -| [Node.js Compatibility Mode](/workers/runtime-apis/nodejs/) | ✅ | ✅ | -| [Durable Objects](/durable-objects/api/) | ✅ | 🟡 7 | -| [Cron Triggers](/workers/configuration/cron-triggers/) | ✅ | ❌ | -| **Bindings** | | | -| [AI](/workers-ai/get-started/workers-wrangler/#2-connect-your-worker-to-workers-ai) | ✅ | ✅ | -| [Analytics Engine](/analytics/analytics-engine) | ✅ | ✅ | -| [Assets](/workers/static-assets/binding/) | ✅ | ❌ | -| [Browser Rendering](/browser-rendering) | ✅ | ✅ | -| [D1](/d1/build-with-d1/d1-client-api/) | ✅ | ✅ | -| [Environment Variables](/workers/configuration/environment-variables/) | ✅ | ✅ | -| [Hyperdrive](/hyperdrive/) | ✅ | ❌ | -| [KV](/kv/) | ✅ | ✅ | -| [mTLS](/workers/runtime-apis/bindings/mtls/) | ✅ | ✅ | -| [Queue Producers](/queues/configuration/configure-queues/#producer) | ✅ | ✅ | -| [Queue Consumers](/queues/configuration/configure-queues/#consumer) | ✅ | ❌ | -| [R2](/r2/) | ✅ | ✅ | -| [Rate Limiting](/workers/runtime-apis/bindings/rate-limit/) | ✅ | ✅ | -| [Secrets](/workers/configuration/secrets/) | ✅ | ✅ | -| [Service bindings](/workers/runtime-apis/bindings/service-bindings/) | ✅ | ✅ | -| [Vectorize](/vectorize/get-started/intro/#3-bind-your-worker-to-your-index) | ✅ | ✅ | -| **Builds (CI/CD)** | | | -| [Monorepos](/workers/ci-cd/builds/advanced-setups/) | ✅ | ✅ | -| [Build Watch Paths](/pages/configuration/build-watch-paths/) | ❌ | ✅ | -| [Deploy Hooks](/pages/configuration/deploy-hooks/) | ❌ | ✅ | -| [Build Caching](/pages/configuration/build-caching/) | ❌ | ✅ | -| [Custom Preview Branches](/pages/configuration/branch-build-controls/) | ❌ | ✅ | -| [Custom Branch Aliases](/pages/how-to/custom-branch-aliases/) | ❌ | ✅ | -| **Pages Functions** | | | -| [File-based Routing](/pages/functions/routing/) | ❌ 8 | ✅ | -| [Pages Plugins](/pages/functions/plugins/) | ❌ 9 | ✅ | +| | Workers | Pages | +| ----------------------------------------------------------------------------------- | ------- | ------- | +| **Writing, Testing, and Deploying Code** | | | +| [Rollbacks](/workers/configuration/versions-and-deployments/rollbacks/) | ✅ | ✅ | +| [Gradual Deployments](/workers/configuration/versions-and-deployments/) | ✅ | ❌ | +| [Preview URLs](/workers/configuration/previews) | ✅ | ✅ | +| [Testing tools](/workers/testing) | ✅ | ✅ | +| [Local Development](/workers/testing/local-development/) | ✅ | ✅ | +| [Remote Development (`--remote`)](/workers/wrangler/commands/) | ✅ [^1] | ❌ | +| [Quick Editor in Dashboard](https://blog.cloudflare.com/improved-quick-edit) | ✅ | ❌ | +| **Static Assets** | | | +| [Early Hints](/pages/configuration/early-hints/) | ❌ | ✅ | +| [Custom HTTP headers for static assets](/pages/configuration/headers/) | 🟡 [^2] | ✅ | +| [Middleware](/pages/functions/middleware/) | 🟡 [^3] | ✅ | +| [Redirects](/pages/configuration/redirects/) | 🟡 [^4] | ✅ | +| [Smart Placement](/workers/configuration/smart-placement/) | ⏳ [^5] | ✅ | +| **Observability** | | | +| [Workers Logs](/workers/observability/) | ✅ | ❌ | +| [Logpush](/workers/observability/logs/logpush/) | ✅ | ❌ | +| [Tail Workers](/workers/observability/logs/tail-workers/) | ⏳ [^6] | ❌ | +| [Real-time logs](/workers/observability/logs/real-time-logs/) | ✅ | ✅ | +| **Runtime APIs & Compute Models** | | | +| [Node.js Compatibility Mode](/workers/runtime-apis/nodejs/) | ✅ | ✅ | +| [Durable Objects](/durable-objects/api/) | ✅ | 🟡 [^7] | +| [Cron Triggers](/workers/configuration/cron-triggers/) | ✅ | ❌ | +| **Bindings** | | | +| [AI](/workers-ai/get-started/workers-wrangler/#2-connect-your-worker-to-workers-ai) | ✅ | ✅ | +| [Analytics Engine](/analytics/analytics-engine) | ✅ | ✅ | +| [Assets](/workers/static-assets/binding/) | ✅ | ✅ | +| [Browser Rendering](/browser-rendering) | ✅ | ✅ | +| [D1](/d1/build-with-d1/d1-client-api/) | ✅ | ✅ | +| [Environment Variables](/workers/configuration/environment-variables/) | ✅ | ✅ | +| [Hyperdrive](/hyperdrive/) | ✅ | ❌ | +| [KV](/kv/) | ✅ | ✅ | +| [mTLS](/workers/runtime-apis/bindings/mtls/) | ✅ | ✅ | +| [Queue Producers](/queues/configuration/configure-queues/#producer) | ✅ | ✅ | +| [Queue Consumers](/queues/configuration/configure-queues/#consumer) | ✅ | ❌ | +| [R2](/r2/) | ✅ | ✅ | +| [Rate Limiting](/workers/runtime-apis/bindings/rate-limit/) | ✅ | ✅ | +| [Secrets](/workers/configuration/secrets/) | ✅ | ✅ | +| [Service bindings](/workers/runtime-apis/bindings/service-bindings/) | ✅ | ✅ | +| [Vectorize](/vectorize/get-started/intro/#3-bind-your-worker-to-your-index) | ✅ | ✅ | +| **Builds (CI/CD)** | | | +| [Monorepos](/workers/ci-cd/builds/advanced-setups/) | ✅ | ✅ | +| [Build Watch Paths](/pages/configuration/build-watch-paths/) | ✅ | ✅ | +| [Deploy Hooks](/pages/configuration/deploy-hooks/) | ❌ | ✅ | +| [Build Caching](/pages/configuration/build-caching/) | ❌ | ✅ | +| [Custom Preview Branches](/pages/configuration/branch-build-controls/) | ❌ | ✅ | +| [Custom Branch Aliases](/pages/how-to/custom-branch-aliases/) | ❌ | ✅ | +| **Pages Functions** | | | +| [File-based Routing](/pages/functions/routing/) | ❌ [^8] | ✅ | +| [Pages Plugins](/pages/functions/plugins/) | ❌ [^9] | ✅ | +[^1]: Does not currently support Workers with static assets. For more details on which bindings are supported in remote development, [refer to the docs](/workers/testing/local-development/#supported-resource-bindings-in-different-environments). -1 For more details on which bindings are supported in remote development, [refer to the docs](/workers/testing/local-development/#supported-resource-bindings-in-different-environments). +[^2]: Similar to 3, to customize the HTTP headers that are returned by static assets, you can use [Service bindings](/workers/runtime-apis/bindings/service-bindings/) to connect a Worker in front of the Worker with assets. -2 Similar to 1, to customize the HTTP headers that -are returned by static assets, you can use [Service -bindings](/workers/runtime-apis/bindings/service-bindings/) to connect a Worker -in front of the Worker with assets. +[^3]: If you need to run a Worker before serving static assets, you can create a separate Worker that acts as middleware, and then use [Service bindings](/workers/runtime-apis/bindings/service-bindings/) to forward the request to the Worker with assets. We plan to explore additional configuration to support more complex routing in the future. -3 If you need to run a Worker before serving static assets, -you can create a separate Worker that acts as middleware, and then use [Service -bindings](/workers/runtime-apis/bindings/service-bindings/) to forward the request -to the Worker with assets. We plan to explore additional configuration -to support more complex routing in the future. +[^4]: You can handle redirects by adding code to your Worker (a [community package](https://npmjs.com/package/redirects-in-workers) is available for `_redirects` support), or you can use [Bulk Redirects](/rules/url-forwarding/bulk-redirects/). -4 You can handle redirects by adding code to your Worker (a -[community package](https://npmjs.com/package/redirects-in-workers) is available -for `_redirects` support), or you can use [Bulk -Redirects](/rules/url-forwarding/bulk-redirects/). +[^5]: You cannot yet enable [Smart Placement](/workers/configuration/smart-placement/) for Workers with static assets. This is a temporary limitation we are working to remove. -5 You cannot yet enable [Smart -Placement](/workers/configuration/smart-placement/) for Workers with static assets. -This is a temporary limitation we are working to remove. +[^6]: You cannot yet add a [Tail Worker](/workers/observability/logs/tail-workers/) to a project with assets. This is a temporary limitation we are working to remove. -6 You cannot yet add a [Tail -Worker](/workers/observability/logs/tail-workers/) to a project with assets. -This is a temporary limitation we are working to remove. +[^7]: To [use Durable Objects with your Cloudflare Pages project](/pages/functions/bindings/#durable-objects), you must create a separate Worker with a Durable Object and then declare a binding to it in both your Production and Preview environments. Using Durable Objects with Workers is simpler and recommended. -7 To [use Durable Objects with your Cloudflare Pages project](/pages/functions/bindings/#durable-objects), you must create a separate Worker with a Durable Object and then declare a binding to it in both your Production and Preview environments. Using Durable Objects with Workers is simpler and recommended. +[^8]: Workers [supports popular frameworks](/workers/frameworks/), many of which implement file-based routing. -8 Workers [supports popular frameworks](/workers/frameworks/), many of which implement file-based routing. - -9 Everything that is possible with Pages Functions can also be achieved by adding code to your Worker or by using framework-specific plugins for relevant third party tools. +[^9]: Everything that is possible with Pages Functions can also be achieved by adding code to your Worker or by using framework-specific plugins for relevant third party tools. From 1d99a70b87c2e5ca9d2973841483560f045c298a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denise=20Pe=C3=B1a?= <75506267+dcpena@users.noreply.github.com> Date: Fri, 18 Oct 2024 13:38:51 -0500 Subject: [PATCH 093/110] Tiny edits (#17637) --- .../docs/workers/static-assets/compatibility-matrix.mdx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/content/docs/workers/static-assets/compatibility-matrix.mdx b/src/content/docs/workers/static-assets/compatibility-matrix.mdx index 7d5e1336dacc229..a4c52a3a05ad478 100644 --- a/src/content/docs/workers/static-assets/compatibility-matrix.mdx +++ b/src/content/docs/workers/static-assets/compatibility-matrix.mdx @@ -11,7 +11,6 @@ import { Badge, Description, FileTree, - Footnotes, InlineBadge, Render, TabItem, @@ -22,7 +21,7 @@ You can deploy full-stack applications, including front-end static assets and ba We plan to bridge the gaps between Workers and Pages and provide ways to migrate your Pages projects to Workers. -**Legend** +**Legend**
    ✅: Supported
    ⏳: Coming soon
    🟡: Unsupported, workaround available
    From 4ca2b80108aa2ff842a9afce1ce54fa5fb599fec Mon Sep 17 00:00:00 2001 From: Max Phillips Date: Fri, 18 Oct 2024 15:04:05 -0500 Subject: [PATCH 094/110] [ZT] New cert procedure for applications (#17636) --- .../install-cloudflare-cert.mdx | 143 +++++++----------- 1 file changed, 56 insertions(+), 87 deletions(-) diff --git a/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/install-cloudflare-cert.mdx b/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/install-cloudflare-cert.mdx index 18821d93c096327..432164f8b58b217 100644 --- a/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/install-cloudflare-cert.mdx +++ b/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/install-cloudflare-cert.mdx @@ -20,7 +20,7 @@ If your device does not support [certificate installation via WARP](/cloudflare- ## Download the Cloudflare root certificate -First, download the Cloudflare certificate. The certificate is available both as a `.pem` and as a `.crt` file. Certain applications require the certificate to be in a specific file type, so ensure you download the most appropriate file for your use case. +First, [generate](/cloudflare-one/connections/connect-devices/warp/user-side-certificates/#generate-a-cloudflare-root-certificate) and download the Cloudflare certificate. The certificate is available in both `.pem` and `.crt` file format. Certain applications require the certificate to be in a specific file type, so ensure you download the most appropriate file for your use case. 1. In [Zero Trust](https://one.dash.cloudflare.com/), go to **Settings** > **Resources**. 2. In **Certificates**, select **Manage**. @@ -81,7 +81,9 @@ In macOS, you can choose the keychain in which you want to install the certifica To install the Cloudflare certificate in macOS, you can use either the Keychain Access application or a terminal. Both methods require you to [download the Cloudflare certificate](#download-the-cloudflare-root-certificate) in `.crt` format. - + + + 1. Download the Cloudflare certificate. @@ -95,7 +97,9 @@ To install the Cloudflare certificate in macOS, you can use either the Keychain The root certificate is now installed and ready to be used. - + + + 1. Download the Cloudflare certificate. 2. Open Terminal. @@ -115,7 +119,9 @@ echo | sudo tee -a /etc/ssl/cert.pem < Cloudflare_CA.pem The root certificate is now installed and ready to be used. - + + + :::note[Change certificate access scope] If you want to change user access to the Cloudflare certificate, you can open Keychain Access and move the certificate to a different keychain on the left sidebar. @@ -156,47 +162,47 @@ The location where the root certificate should be installed is different dependi The following procedure applies to Debian-based systems, such as Debian, Ubuntu, and Kali Linux. -1. Download the [`.pem` certificate](/cloudflare-one/static/Cloudflare_CA.pem). +1. [Download the Cloudflare certificate](#download-the-cloudflare-root-certificate) in `.pem` format. 2. Install the `ca-certificates` package. -```sh -sudo apt-get install ca-certificates -``` + ```sh + sudo apt-get install ca-certificates + ``` 3. Copy the certificate to the system, changing the file extension to `.crt`. -```sh -sudo cp Cloudflare_CA.pem /usr/share/ca-certificates/Cloudflare_CA.crt -``` + ```sh + sudo cp Cloudflare_CA.pem /usr/share/ca-certificates/Cloudflare_CA.crt + ``` 4. Import the certificate. -```sh -sudo dpkg-reconfigure ca-certificates -``` + ```sh + sudo dpkg-reconfigure ca-certificates + ``` #### Red Hat-based distributions The following procedure applies to Red Hat-based systems, such as CentOS and Red Hat Enterprise Linux (RHEL). -1. Download both the [`.crt` certificate](/cloudflare-one/static/Cloudflare_CA.crt) and the [`.pem` certificate](/cloudflare-one/static/Cloudflare_CA.pem). +1. [Download the Cloudflare certificate](#download-the-cloudflare-root-certificate) in both `.crt` and `.pem` format. 2. Install the `ca-certificates` package. -```sh -sudo dnf install ca-certificates -``` + ```sh + sudo dnf install ca-certificates + ``` 3. Copy both certificates to the trust store. -```sh -sudo cp Cloudflare_CA.crt Cloudflare_CA.pem /etc/pki/ca-trust/source/anchors -``` + ```sh + sudo cp Cloudflare_CA.crt Cloudflare_CA.pem /etc/pki/ca-trust/source/anchors + ``` 4. Import the certificate. -```sh -sudo update-ca-trust -``` + ```sh + sudo update-ca-trust + ``` #### NixOS @@ -206,28 +212,14 @@ NixOS does not use the system certificate store for self updating and instead re iOS only allows the Safari browser to open and install certificates. -1. Open Safari and [download the Cloudflare certificate](#download-the-cloudflare-root-certificate). The device will show a message: _This website is trying to download a configuration profile. Do you want to allow this?_ - +1. Open Safari and [download the Cloudflare certificate](#download-the-cloudflare-root-certificate). The device will display a confirmation dialog. 2. Select **Allow**. - -3. Go to **Settings**, where a new **Profile Downloaded** section will appear directly beneath your iCloud user account info. - -:::note - -Alternatively, you can go to **Settings** > **General** > **VPN & Device Management** and select the **Cloudflare for Teams ECC Certificate Authority** profile. - -::: - +3. Go to **Settings**, where a new **Profile Downloaded** section will appear directly beneath your iCloud user account info. Alternatively, you can go to **Settings** > **General** > **VPN & Device Management** and select the **Cloudflare for Teams ECC Certificate Authority** profile. 4. Select **Install**. If the iOS device is passcode-protected, you will be prompted to enter the passcode. - -5. Next, a certificate warning will appear. Select **Install**. If a second prompt appears, select **Install** again. - -6. Next, the Profile Installed screen will appear. Select **Done**. The certificate is now installed. However, before it can be used, it must be trusted by the device. - -7. Go to **Settings** > **General** > **About** > **Certificate Trust Settings**. The installed root certificates will be displayed under Enable full trust for root certificates. - -8. Enable the Cloudflare certificate. - +5. A certificate warning will appear. Select **Install**. If a second prompt appears, select **Install** again. +6. The Profile Installed screen will appear. Select **Done**. The certificate is now installed. However, before it can be used, it must be trusted by the device. +7. In **Settings**, go to **General** > **About** > **Certificate Trust Settings**. The installed root certificates will be displayed under Enable full trust for root certificates. +8. Turn on the Cloudflare certificate. 9. A security warning message will appear. Choose **Continue**. The root certificate is now installed and ready to be used. @@ -235,15 +227,10 @@ The root certificate is now installed and ready to be used. ### Android 1. [Download the Cloudflare certificate](#download-the-cloudflare-root-certificate). - -2. Go to **Settings** > **Security** > **Advanced** > **Encryption & credentials** > **Install a certificate**. - +2. In **Settings**, go to **Security** > **Advanced** > **Encryption & credentials** > **Install a certificate**. 3. Select **CA certificate**. - 4. Select **Install anyway**. - 5. Verify your identity. - 6. Choose the certificate file you want to install. The root certificate is now installed and ready to be used. @@ -252,20 +239,20 @@ The root certificate is now installed and ready to be used. ChromeOS devices use different methods to store and deploy root certificates. Certificates may fall under the **VPN and apps** or **CA certificate** settings. Follow the procedure that corresponds with your device. - + -5. In the file open dialog, choose the `Cloudflare_CA.crt` file you downloaded and select **Open**. - -6. Enter a name to identify the certificate. Ensure **Credential use** is set to _VPN and apps_. Select **OK**. +5. In the file open dialog, choose the `Cloudflare_CA.crt` file you downloaded. Select **Open**. +6. Enter a name to identify the certificate. Ensure **Credential use** is set to _VPN and apps_. +7. Select **OK**. - + 5. When prompted with a privacy warning, select **Install anyway**. - -6. In the file open dialog, choose the `Cloudflare_CA.crt` file you downloaded and select **Open**. - +6. In the file open dialog, choose the `Cloudflare_CA.crt` file you downloaded. Select **Open**. 7. To verify the certificate is installed and trusted, go to **Settings** > **Apps** > **Google Play Store** > **Manage Android Preferences** > **Security** > **Credentials** > **Trusted credentials** > **User**. @@ -286,10 +271,9 @@ After adding the Cloudflare certificate to ChromeOS, you may also have to [insta Some packages, development tools, and other applications provide options to trust root certificates that will allow for the traffic inspection features of Gateway to work without breaking the application. -All of the applications below first require downloading the Cloudflare certificate with the instructions above. On Mac, the default path is `/Library/Keychains/System.keychain Cloudflare_CA.crt`. On Windows, the default path is `\Cert:\CurrentUser\Root`. +All of the applications below first require downloading the Cloudflare certificate with the instructions above. On macOS, the default path to the system keychain database file is `/Library/Keychains/System.keychain`. On Windows, the default path is `\Cert:\CurrentUser\Root`. :::note - Some applications require the use of a publicly trusted certificate — they do not trust the system certificate, nor do they have a configurable private store. For these applications to function, you must add a [Do Not Inspect policy](/cloudflare-one/policies/gateway/http-policies/#do-not-inspect) for the domains or IPs that the application relies on. ::: @@ -301,7 +285,7 @@ Versions of Chrome before Chrome 113 use the [operating system root store](https To install the Cloudflare certificate to Chrome manually: -1. Download the [Cloudflare certificate](/cloudflare-one/static/Cloudflare_CA.pem) in `.pem` format. +1. [Download the Cloudflare certificate](#download-the-cloudflare-root-certificate) in `.pem` format. 2. In Chrome, go to **Settings** > **Privacy and security** > **Security**. 3. Select **Manage certificates**. 4. Go to **Authorities**. Select **Import**. @@ -315,7 +299,7 @@ For information on installing the Cloudflare certificate for organizations, refe To install the Cloudflare certificate to Firefox manually: -1. Download the [Cloudflare certificate](/cloudflare-one/static/Cloudflare_CA.pem) in `.pem` format. +1. [Download the Cloudflare certificate](#download-the-cloudflare-root-certificate) in `.pem` format. 2. In Firefox, go to **Settings** > **Privacy & Security**. 3. In **Security**, select **Certificates** > **View Certificates**. 4. In **Authorities**, select **Import**. @@ -331,16 +315,10 @@ For information on installing the Cloudflare certificate for organizations, refe The command to install the certificate with Python on Windows automatically includes `pip` and `certifi` (the default certificate bundle for certificate validation). -1. In a PowerShell terminal, download the Cloudflare root certificate: - - ```powershell - curl.exe -o Cloudflare_CA.crt https://developers.cloudflare.com/cloudflare-one/static/Cloudflare_CA.crt - ``` - +1. [Download the Cloudflare certificate](#download-the-cloudflare-root-certificate) in `.crt` format. 2. Update the bundle to include the Cloudflare certificate: - ```powershell - gc .\Cloudflare_CA.crt | ac C:\Python37\Lib\site-packages\pip\_vendor\certifi\cacert.pem + gc "$env:USERPROFILE\Downloads\Cloudflare_CA.crt" | ac C:\Python37\Lib\site-packages\pip\_vendor\certifi\cacert.pem ``` #### Python on Mac and Linux @@ -361,11 +339,7 @@ The command to install the certificate with Python on Windows automatically incl ~/Library/Python/3.7/lib/python/site-packages/certifi/cert.pem ``` -3. Download the Cloudflare root certificate: - - ```sh - wget https://developers.cloudflare.com/cloudflare-one/static/Cloudflare_CA.pem - ``` +3. [Download the Cloudflare certificate](#download-the-cloudflare-root-certificate) in `.pem` format. 4. Append the Cloudflare certificate to this CA store by running: @@ -433,11 +407,11 @@ git config --global http.sslcainfo [PATH_TO_CLOUDFLARE_CERT] ### npm -The command below will set the `cafile` configuration to use the Cloudflare certificate. Make sure to use the certificate in the [`.pem`](/cloudflare-one/static/Cloudflare_CA.pem) file type. - -```sh -npm config set cafile [PATH_TO_CLOUDFLARE_CERT.pem] -``` +1. [Download the Cloudflare certificate](#download-the-cloudflare-root-certificate) in `.pem` format. +2. Set the `cafile` configuration to use the Cloudflare certificate: + ```sh + npm config set cafile [PATH_TO_CLOUDFLARE_CERT.pem] + ``` On some systems you may need to set the following in your path/export list: @@ -457,12 +431,7 @@ The commands below will set the Google Cloud SDK to use the Cloudflare certifica curl --remote-name https://curl.se/ca/cacert.pem ``` -2. Get the Cloudflare CA. - - ```sh - curl --remote-name https://developers.cloudflare.com/cloudflare-one/static/Cloudflare_CA.pem - ``` - +2. [Download the Cloudflare certificate](#download-the-cloudflare-root-certificate) in `.pem` format. 3. Combine the certs into a single `.pem` file. ```sh @@ -594,7 +563,7 @@ To install the Cloudflare root certificate on Eclipse IDE for Java Developers, y 4. Copy the full path after `java.home=`. -3. Add the Cloudflare certificate to Eclipse's JVM. +3. Add the Cloudflare certificate to Eclipse's JVM:
    From 235e0c76eb1b184148023b3882dcf87f8f8b2c84 Mon Sep 17 00:00:00 2001 From: ranbel <101146722+ranbel@users.noreply.github.com> Date: Fri, 18 Oct 2024 16:06:27 -0400 Subject: [PATCH 095/110] add Terraform examples (#17640) --- .../non-http/infrastructure-apps.mdx | 32 ++-- .../ssh/ssh-infrastructure-access.mdx | 8 +- .../access/add-infrastructure-app.mdx | 138 +++++++++++++----- .../access/add-infrastructure-policy.mdx | 19 --- .../cloudflare-one/access/add-target.mdx | 61 ++++++-- 5 files changed, 159 insertions(+), 99 deletions(-) delete mode 100644 src/content/partials/cloudflare-one/access/add-infrastructure-policy.mdx diff --git a/src/content/docs/cloudflare-one/applications/non-http/infrastructure-apps.mdx b/src/content/docs/cloudflare-one/applications/non-http/infrastructure-apps.mdx index c9a67a7c65367fd..89468a834912b71 100644 --- a/src/content/docs/cloudflare-one/applications/non-http/infrastructure-apps.mdx +++ b/src/content/docs/cloudflare-one/applications/non-http/infrastructure-apps.mdx @@ -47,29 +47,13 @@ Access for Infrastructure currently only supports [SSH](/cloudflare-one/connecti -## 3. Add a policy - - - -### Selectors - -The following [Access policy selectors](/cloudflare-one/policies/access/#selectors) are available for securing infrastructure applications: - -- Email -- Emails ending in -- SAML group -- Country -- Authentication method -- Device posture -- Entra group, GitHub organization, Google Workspace group, Okta group - -## 4. Configure the server +## 3. Configure the server Certain protocols require configuring the server to trust connections through Access for Infrastructure. For more information, refer to the protocol-specific tutorial: - [SSH](/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access/#7-configure-ssh-server) -## Connect as a user +## 4. Connect as a user Users connect to the target's IP address as if they were on your private network, using their preferred client software. The user must be logged into WARP on their device, but no other system configuration is required. You can optionally configure a [private DNS resolver](/cloudflare-one/policies/gateway/resolver-policies/) to allow connections to the target's private hostname. @@ -116,3 +100,15 @@ warp-cli target list ## Revoke a user's session To revoke a user's access to all infrastructure targets, you can either [revoke the user from Zero Trust](/cloudflare-one/identity/users/session-management/#per-user) or revoke their device. Cloudflare does not currently support revoking a user's session for a specific target. + +## Infrastructure policy selectors + +The following [Access policy selectors](/cloudflare-one/policies/access/#selectors) are available for securing infrastructure applications: + +- Email +- Emails ending in +- SAML group +- Country +- Authentication method +- Device posture +- Entra group, GitHub organization, Google Workspace group, Okta group \ No newline at end of file diff --git a/src/content/docs/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access.mdx b/src/content/docs/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access.mdx index 2e2791101db7324..7ac7f1e032a7808 100644 --- a/src/content/docs/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access.mdx +++ b/src/content/docs/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-infrastructure-access.mdx @@ -40,11 +40,7 @@ To connect your devices to Cloudflare: -## 6. Add a policy - - - -## 7. Configure SSH server +## 6. Configure SSH server Next, configure your SSH server to trust the Cloudflare SSH CA. This allows Access to authenticate using short-lived certificates instead of traditional SSH keys. @@ -65,7 +61,7 @@ To generate a Cloudflare SSH CA and get its public key: ### Restart your SSH server -## 8. Connect as a user +## 7. Connect as a user Users can use any SSH client to connect to the target, as long as they are logged into the WARP client on their device. If the target is located within a particular virtual network, ensure that the WARP client is [connected to that virtual network](/cloudflare-one/connections/connect-networks/private-net/cloudflared/tunnel-virtual-networks/#connect-to-a-virtual-network) before initiating the connection. Users do not need to modify any SSH configs on their device. For example, to SSH from a terminal: diff --git a/src/content/partials/cloudflare-one/access/add-infrastructure-app.mdx b/src/content/partials/cloudflare-one/access/add-infrastructure-app.mdx index cf3f4c58d365ccb..ecfb1ab39d24033 100644 --- a/src/content/partials/cloudflare-one/access/add-infrastructure-app.mdx +++ b/src/content/partials/cloudflare-one/access/add-infrastructure-app.mdx @@ -15,57 +15,115 @@ import { Tabs, TabItem, Render } from "~/components" 5. In **Target criteria**, select the target hostname(s) that will represent the application. The application definition will apply to all targets that share the selected hostname, including any targets added in the future. 6. Enter the **Protocol** and **Port** that will be used to connect to the server. 7. (Optional) If a protocol runs on more than one port, select **Add new target criteria** and reconfigure the same target hostname and protocol with a different port number. + :::note + Access for Infrastructure only supports assigning one protocol per port. You can reuse a port/protocol pairing across infrastructure applications, but the port cannot be reassigned to another protocol. + ::: 8. Select **Next**. +9. To secure your targets, configure a policy that defines who can connect and how they can connect: + 1. Enter any name for your policy. + 2. Create a rule that matches the users who are allowed to reach the targets. For more information, refer to [Access policies](/cloudflare-one/policies/access/) and review the list of [infrastructure policy selectors](/cloudflare-one/applications/non-http/infrastructure-apps/#infrastructure-policy-selectors). + 3. In **Connection context**, enter the UNIX usernames that users can log in as (for example, `root` or `ec2-user`). +4. Select **Add application**. -To add an infrastructure application using the [API](/api/operations/access-applications-add-an-application): - -```sh -curl https://api.cloudflare.com/client/v4/accounts/{account_id}/access/apps \ ---header "Authorization: Bearer " \ ---header "Content-Type: application/json" \ ---data '{ - "name": "example app", - "type": "infrastructure", - "target_criteria": [ - { - "target_attributes": { - "hostname": [ - "infra-access-target" - ] - }, - "port": 22, - "protocol": "SSH" - } - ], - "policies": [ - { - "name": "Allow a specific email", - "decision": "allow", - "include": [ - { - "email": { - "email": "jdoe@company.com" - } - } - ], - "connection_rules": { - "ssh": { - "usernames": [ - "root", - "ec2-user" +1. [Create an API token](/fundamentals/api/get-started/create-token/) with the following permissions: + | Type | Item | Permission | + | ------- | ---------------- | ---------- | + | Account | Access: Apps & Policies | Edit | + +2. Make a `POST` request to the [Access applications](/api/operations/access-applications-add-an-application) endpoint: + + ```sh + curl https://api.cloudflare.com/client/v4/accounts/{account_id}/access/apps \ + --header "Authorization: Bearer " \ + --header "Content-Type: application/json" \ + --data '{ + "name": "Example infrastructure app", + "type": "infrastructure", + "target_criteria": [ + { + "target_attributes": { + "hostname": [ + "infra-access-target" ] + }, + "port": 22, + "protocol": "SSH" + } + ], + "policies": [ + { + "name": "Allow a specific email", + "decision": "allow", + "include": [ + { + "email": { + "email": "jdoe@company.com" + } + } + ], + "connection_rules": { + "ssh": { + "usernames": [ + "root", + "ec2-user" + ] + } } } + ] + }' + ``` + + + + +1. Use the [`cloudflare_zero_trust_access_application`](https://registry.terraform.io/providers/cloudflare/cloudflare/4.44.0/docs/resources/zero_trust_access_application) resource to create an infrastructure application: + + ```tf + resource "cloudflare_zero_trust_access_application" "infra-app" { + account_id = "f037e56e89293a057740de681ac9abbe" + name = "Example infrastructure app" + type = "infrastructure" + + target_criteria { + port = 22 + protocol = "SSH" + target_attributes { + name = "hostname" + values = ["infra-access-target"] + } + } + } + ``` + +2. Use the [`cloudflare_zero_trust_access_policy`](https://registry.terraform.io/providers/cloudflare/cloudflare/4.44.0/docs/resources/zero_trust_access_policy) resource to add an infrastructure policy to the application: + + ```tf + resource "cloudflare_zero_trust_access_policy" "infra-app-policy" { + application_id = cloudflare_zero_trust_access_application.infra-app.id + account_id = "f037e56e89293a057740de681ac9abbe" + name = "Allow a specific email" + decision = "allow" + precedence = 1 + + include { + email = ["jdoe@company.com"] } - ] -}' -``` + connection_rules { + ssh { + usernames = ["root", "ec2-user"] + } + } + } + ``` +The targets in this application are now secured by your infrastructure policies. + :::note -Access for Infrastructure only supports assigning one protocol per port. You can reuse a port/protocol pairing across infrastructure applications, but the port cannot be reassigned to another protocol. +Gateway [network policies](/cloudflare-one/policies/gateway/network-policies/) take precedence over infrastructure policies. For example, if you block port `22` for all users in Gateway, then no one can SSH over port `22` to your targets. ::: \ No newline at end of file diff --git a/src/content/partials/cloudflare-one/access/add-infrastructure-policy.mdx b/src/content/partials/cloudflare-one/access/add-infrastructure-policy.mdx deleted file mode 100644 index 7cf23b612f4163e..000000000000000 --- a/src/content/partials/cloudflare-one/access/add-infrastructure-policy.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -{} - ---- - -import { Tabs, TabItem, Render } from "~/components" - -To secure your targets, configure a policy that defines who can connect and how they can connect: - -1. Enter any name for your policy. -2. Create a rule that matches the users who are allowed to reach the targets. For more information, refer to [Access policies](/cloudflare-one/policies/access/). -3. In **Connection context**, enter the UNIX usernames that users can log in as (for example, `root` or `ec2-user`). -4. Select **Add application**. - -The targets in this application are now secured by your infrastructure policies. - -:::note -Gateway [network policies](/cloudflare-one/policies/gateway/network-policies/) take precedence over infrastructure policies. For example, if you block port `22` for all users in Gateway, then no one can SSH over port `22` to your targets. -::: \ No newline at end of file diff --git a/src/content/partials/cloudflare-one/access/add-target.mdx b/src/content/partials/cloudflare-one/access/add-target.mdx index b61a3131c9b34d0..be10872c9c84afe 100644 --- a/src/content/partials/cloudflare-one/access/add-target.mdx +++ b/src/content/partials/cloudflare-one/access/add-target.mdx @@ -9,7 +9,7 @@ A target represents a single resource in your infrastructure (such as a server, To create a new target: - + 1. In [Zero Trust](https://one.dash.cloudflare.com/), go to **Network** > **Targets**. 2. Select **Add a target**. @@ -30,22 +30,51 @@ To create a new target: -```sh -curl https://api.cloudflare.com/client/v4/accounts/{account_id}/infrastructure/targets \ ---header "Authorization: Bearer " \ ---data '{ - "hostname": "infra-access-target", - "ip": { - "ipv4": { - "ip_addr": "187.26.29.249", - "virtual_network_id": "c77b744e-acc8-428f-9257-6878c046ed55" - }, - "ipv6": { - "ip_addr": "64c0:64e8:f0b4:8dbf:7104:72b0:ec8f:f5e0", - "virtual_network_id": "c77b744e-acc8-428f-9257-6878c046ed55" +1. [Create an API token](/fundamentals/api/get-started/create-token/) with the following permissions: + | Type | Item | Permission | + | ------- | ---------------- | ---------- | + | Account | Zero Trust | Edit | + +2. Make a `POST` request to the [Infrastructure Access Targets](/api/operations/infra-targets-post) endpoint: + + ```sh + curl https://api.cloudflare.com/client/v4/accounts/{account_id}/infrastructure/targets \ + --header "Authorization: Bearer " \ + --data '{ + "hostname": "infra-access-target", + "ip": { + "ipv4": { + "ip_addr": "187.26.29.249", + "virtual_network_id": "c77b744e-acc8-428f-9257-6878c046ed55" + }, + "ipv6": { + "ip_addr": "64c0:64e8:f0b4:8dbf:7104:72b0:ec8f:f5e0", + "virtual_network_id": "c77b744e-acc8-428f-9257-6878c046ed55" + } + } + }' + ``` + + + + +Configure the [`cloudflare_infrastructure_access_target`](https://registry.terraform.io/providers/cloudflare/cloudflare/4.44.0/docs/resources/infrastructure_access_target) resource: + +```tf +resource "cloudflare_infrastructure_access_target" "infra-ssh-target" { + account_id = "f037e56e89293a057740de681ac9abbe" + hostname = "infra-access-target" + ip = { + ipv4 = { + ip_addr = "187.26.29.249" + virtual_network_id = "c77b744e-acc8-428f-9257-6878c046ed55" + } + ipv6 = { + ip_addr = "64c0:64e8:f0b4:8dbf:7104:72b0:ec8f:f5e0" + virtual_network_id = "c77b744e-acc8-428f-9257-6878c046ed55" + } } - } -}' +} ``` From d18ba42fc4c409470a0747814a6e343d6d8edd9d Mon Sep 17 00:00:00 2001 From: Rebecca Tamachiro <62246989+RebeccaTamachiro@users.noreply.github.com> Date: Mon, 21 Oct 2024 09:59:06 +0100 Subject: [PATCH 096/110] [DNS, SSL] Update overall org and SSL options in partial-setup/setup (#17568) * First pass: formatting and remove link to full setup guides * Further remove empty lines * Further remove empty lines * Move SSL/TLS section higher and separate new zone vs conversion * Fix broken link * Move SSL recommendations into prep and revamp other steps * Search for and replace broken anchors --- .../conversions/convert-partial-to-full.mdx | 2 +- .../dns/zone-setups/partial-setup/index.mdx | 2 +- .../dns/zone-setups/partial-setup/setup.mdx | 87 +++++++------------ .../zone-setups/reference/domain-status.mdx | 6 +- .../subdomain-setup/setup/index.mdx | 2 +- .../changing-dcv-method/methods/http.mdx | 2 +- .../universal-ssl/enable-universal-ssl.mdx | 2 +- 7 files changed, 40 insertions(+), 63 deletions(-) diff --git a/src/content/docs/dns/zone-setups/conversions/convert-partial-to-full.mdx b/src/content/docs/dns/zone-setups/conversions/convert-partial-to-full.mdx index e709c0e7831ef69..d851991f9877184 100644 --- a/src/content/docs/dns/zone-setups/conversions/convert-partial-to-full.mdx +++ b/src/content/docs/dns/zone-setups/conversions/convert-partial-to-full.mdx @@ -38,7 +38,7 @@ At least 24 hours prior to converting your zone, disable DNSSEC at your authorit :::note -As a best practice, you should also delete the previous [zone activation TXT record](/dns/zone-setups/partial-setup/setup/#add-your-domain-to-cloudflare) at your authoritative DNS provider. To locate this value in the Cloudflare dashboard, go to **DNS** > **Records** and find the **Verification TXT Record**. +As a best practice, you should also delete the previous [zone activation TXT record](/dns/zone-setups/partial-setup/setup/#1-convert-your-zone-and-review-dns-records) at your authoritative DNS provider. To locate this value in the Cloudflare dashboard, go to **DNS** > **Records** and find the **Verification TXT Record**. ::: diff --git a/src/content/docs/dns/zone-setups/partial-setup/index.mdx b/src/content/docs/dns/zone-setups/partial-setup/index.mdx index aed3068315db030..18c61cd846f0ca7 100644 --- a/src/content/docs/dns/zone-setups/partial-setup/index.mdx +++ b/src/content/docs/dns/zone-setups/partial-setup/index.mdx @@ -10,7 +10,7 @@ import { FeatureTable, Render } from "~/components" -Once you are on a partial setup, the actual resolution of your records to Cloudflare depends on `CNAME` records [added at your authoritative DNS provider](/dns/zone-setups/partial-setup/setup/#add-dns-records). Check your authoritative DNS provider to know which records are pointing to `{your-hostname}.cdn.cloudflare.net`. +Once you are on a partial setup, the actual resolution of your records to Cloudflare depends on `CNAME` records [added at your authoritative DNS provider](/dns/zone-setups/partial-setup/setup/#3-add-dns-records). Check your authoritative DNS provider to know which records are pointing to `{your-hostname}.cdn.cloudflare.net`. ## How to diff --git a/src/content/docs/dns/zone-setups/partial-setup/setup.mdx b/src/content/docs/dns/zone-setups/partial-setup/setup.mdx index 5d87920684bcfb5..8851160ec376fca 100644 --- a/src/content/docs/dns/zone-setups/partial-setup/setup.mdx +++ b/src/content/docs/dns/zone-setups/partial-setup/setup.mdx @@ -9,97 +9,74 @@ head: --- -import { Details, Render } from "~/components" +import { Details, Render, GlossaryTooltip, Steps } from "~/components"; :::note - - A partial setup is only available to customers on a Business or Enterprise plan. - - ::: *** -## Add your domain to Cloudflare - - -1. Create a Cloudflare account and [add your domain](/fundamentals/setup/manage-domains/add-site/). - -2. For your **Plan**, choose **Business** or **Enterprise**. +## Before you begin -3. Continue through the onboarding steps, ignoring the instructions to change your nameservers. + +1. Create a Cloudflare account and add your domain. +2. Choose **Business** or **Enterprise** as your plan. +3. If you are onboarding a new domain to Cloudflare, ignore the instructions to change your nameservers. +4. (Recommended) Plan for SSL/TLS certificates: -4. On the **Overview** page, select **Convert to CNAME DNS Setup**. + If you are only using [Universal SSL](/ssl/edge-certificates/universal-ssl/) prior to converting your zone, a certificate will be provisioned for your subdomains only after each of the respective DNS records ([step 3](#3-add-dns-records) below) are [proxied](/dns/manage-dns-records/reference/proxied-dns-records/). Refer to [Enable Universal SSL](/ssl/edge-certificates/universal-ssl/enable-universal-ssl/#partial-dns-setup) for details. -5. Select **Convert** to confirm. + If your domain is sensitive to downtime, instead of using Universal SSL, consider using an [advanced certificate](/ssl/edge-certificates/advanced-certificate-manager/) with [delegated DCV](/ssl/edge-certificates/changing-dcv-method/methods/delegated-dcv/#setup). + -6. Save the information from the **Verification TXT Record**. If you lose the information, you can also access it by going to **DNS** > **Records** > **Verification TXT Record**. +## 1. Convert your zone and review DNS records + +1. On the **Overview** page, select **Convert to CNAME DNS Setup**. +2. Select **Convert** to confirm. +3. Save the information from the **Verification TXT Record**. If you lose the information, you can also access it by going to **DNS** > **Records** > **Verification TXT Record**. +4. Make sure that you have all the DNS records for subdomains that you want to proxy through Cloudflare. + -## Verify ownership for your domain - - -Once you [add your domain to Cloudflare](#add-your-domain-to-cloudflare), add the **Verification TXT Record** at your authoritative DNS provider. Cloudflare will verify the TXT record and send a confirmation email. This can take up to a few hours. +## 2. Verify ownership for your domain +Add the **Verification TXT Record** at your authoritative DNS provider. Cloudflare will verify the TXT record and send a confirmation email. This can take up to a few hours.
    - A verification record for `example.com` might be: | Type | Name | Content | | ---- | ------------------------------- | ------------------- | | TXT | `cloudflare-verify.example.com` | 966215192-518620144 | - -
    :::note - - If your authoritative DNS provider automatically appends DNS record `name` fields with your domain, make sure to only insert `cloudflare-verify` as the record name. Otherwise, it may result in an incorrect record name, such as `cloudflare-verify.example.com.example.com`. After creating the record, you can use this [Dig Web Interface link](https://digwebinterface.com/?type=TXT\&ns=auth\&nameservers=) to search (`dig`) for `cloudflare-verify.` and validate if it is working. - - ::: That record must remain in place for as long as your domain is active on the partial setup on Cloudflare. +## 3. Add DNS records -## Optional - Provision an SSL certificate - - -To provision a Universal SSL certificate through Cloudflare, follow [these instructions](/ssl/edge-certificates/universal-ssl/enable-universal-ssl/#partial-dns-setup). - -If your domain is already live with a partial (CNAME) setup — with Cloudflare or another DNS provider — you cannot use a TXT record for [Domain Control Validation](/ssl/edge-certificates/changing-dcv-method/methods/txt/). That domain's TXT record needs to be reserved for forwarding traffic to Cloudflare. - - -## Add DNS records - - -1. In Cloudflare, [add an `A`, `AAAA`, or `CNAME` record](/dns/manage-dns-records/how-to/create-dns-records/). -2. At your authoritative DNS provider: - - 1. Remove any existing `A`, `AAAA`, or `CNAME` records on the hostname you want to proxy to Cloudflare. - - 2. Add a `CNAME` record for `{your-hostname}.cdn.cloudflare.net`. - -
    - - Example CNAME record at authoritative DNS provider - - - The `CNAME` record for `www.example.com` would be: + +1. At your authoritative DNS provider: + 1. Create `CNAME` records pointing to `{your-hostname}.cdn.cloudflare.net` for every hostname you wish to proxy through Cloudflare. - ```txt - www.example.com CNAME www.example.com.cdn.cloudflare.net - ``` +
    -
    + The `CNAME` record for `www.example.com` would be: - 3. Repeat this process for each subdomain proxied to Cloudflare. + ```txt + www.example.com CNAME www.example.com.cdn.cloudflare.net + ``` +
    + 2. Remove any previously existing `A`, `AAAA`, or `CNAME` records referencing the hostnames you want to proxy through Cloudflare. For these hostnames, leave only the records pointing to `{your-hostname}.cdn.cloudflare.net`. +2. Repeat this process for each subdomain that should be proxied to Cloudflare. + \ No newline at end of file diff --git a/src/content/docs/dns/zone-setups/reference/domain-status.mdx b/src/content/docs/dns/zone-setups/reference/domain-status.mdx index d6a75db6fbe2d45..e70299b86f29ca0 100644 --- a/src/content/docs/dns/zone-setups/reference/domain-status.mdx +++ b/src/content/docs/dns/zone-setups/reference/domain-status.mdx @@ -36,7 +36,7 @@ F[Purged] :::note -If you use the API to add your website or application to Cloudflare, your zone will be created directly in a **Pending** status. **Initializing** only applies to domains added via the dashboard. +If you use the API to add your website or application to Cloudflare, your zone will be created directly in a **Pending** status. **Initializing** only applies to domains added via the dashboard. ::: ## Initializing (Setup) @@ -68,7 +68,7 @@ If you have mistakenly added a zone to your account it will appear as pending. I ## Active -Cloudflare has authenticated your [nameserver changes](/dns/nameservers/update-nameservers/) or [verification TXT record](/dns/zone-setups/partial-setup/setup/#verify-ownership-for-your-domain) and you can proxy domain traffic through Cloudflare. For more details refer to [How Cloudflare works](/fundamentals/concepts/how-cloudflare-works/) and [Domain configurations](/fundamentals/setup/manage-domains/connect-your-domain/#domain-configurations). +Cloudflare has authenticated your [nameserver changes](/dns/nameservers/update-nameservers/) or [verification TXT record](/dns/zone-setups/partial-setup/setup/#2-verify-ownership-for-your-domain) and you can proxy domain traffic through Cloudflare. For more details refer to [How Cloudflare works](/fundamentals/concepts/how-cloudflare-works/) and [Domain configurations](/fundamentals/setup/manage-domains/connect-your-domain/#domain-configurations). ## Moved @@ -78,7 +78,7 @@ Zones that do not have any active paid subscriptions and have been moved will be :::caution -If you have an active paid subscription and no longer wish to use Cloudflare, make sure to also [manually remove your domain](/fundamentals/setup/manage-domains/remove-domain/). +If you have an active paid subscription and no longer wish to use Cloudflare, make sure to also [manually remove your domain](/fundamentals/setup/manage-domains/remove-domain/). ::: ## Deleted diff --git a/src/content/docs/dns/zone-setups/subdomain-setup/setup/index.mdx b/src/content/docs/dns/zone-setups/subdomain-setup/setup/index.mdx index e304cfb4aefdf42..33b220f4f39cfa7 100644 --- a/src/content/docs/dns/zone-setups/subdomain-setup/setup/index.mdx +++ b/src/content/docs/dns/zone-setups/subdomain-setup/setup/index.mdx @@ -53,7 +53,7 @@ The availability of different setups will depend on both the parent zone setup a Subdomains using a partial setup represent an exception in the sense that [delegation](#subdomain-delegation) does not apply in this context. As explained in the dedicated [Partial (CNAME) setup section](/dns/zone-setups/partial-setup/), this setup is intended to simply proxy individual subdomains through Cloudflare. For completeness, however, this is listed as an option in this table and the [how-to guide](/dns/zone-setups/subdomain-setup/setup/parent-on-partial/) has detailed explanation on how to achieve a subdomain zone using partial setup. ::: -This table assumes zones that are in an [active status](/dns/zone-setups/reference/domain-status/). For example, if you need to add the parent zone to Cloudflare when its child zone already exists in a partial setup, you can [convert the parent zone to partial](/dns/zone-setups/partial-setup/setup/#add-your-domain-to-cloudflare) while it is still in pending status. +This table assumes zones that are in an [active status](/dns/zone-setups/reference/domain-status/). For example, if you need to add the parent zone to Cloudflare when its child zone already exists in a partial setup, you can [convert the parent zone to partial](/dns/zone-setups/partial-setup/setup/#1-convert-your-zone-and-review-dns-records) while it is still in pending status. *** diff --git a/src/content/docs/ssl/edge-certificates/changing-dcv-method/methods/http.mdx b/src/content/docs/ssl/edge-certificates/changing-dcv-method/methods/http.mdx index f0821194834c6c9..977034790303829 100644 --- a/src/content/docs/ssl/edge-certificates/changing-dcv-method/methods/http.mdx +++ b/src/content/docs/ssl/edge-certificates/changing-dcv-method/methods/http.mdx @@ -47,7 +47,7 @@ To make sure your domain does not accidentally block HTTP DCV, review your Cloud ### Complete DCV -Your HTTP token will be available for the Certificate Authority as soon as you finish your [partial domain setup](/dns/zone-setups/partial-setup/setup/#add-dns-records). +Your HTTP token will be available for the Certificate Authority as soon as you finish your [partial domain setup](/dns/zone-setups/partial-setup/setup/#3-add-dns-records). This means that you need to add a CNAME record to Cloudflare in your authoritative DNS and create [proxied DNS records](/dns/manage-dns-records/reference/proxied-dns-records/) for your hostname within Cloudflare. diff --git a/src/content/docs/ssl/edge-certificates/universal-ssl/enable-universal-ssl.mdx b/src/content/docs/ssl/edge-certificates/universal-ssl/enable-universal-ssl.mdx index 44f4ce408826331..f6ede60898ba207 100644 --- a/src/content/docs/ssl/edge-certificates/universal-ssl/enable-universal-ssl.mdx +++ b/src/content/docs/ssl/edge-certificates/universal-ssl/enable-universal-ssl.mdx @@ -32,7 +32,7 @@ If your domain is using a **partial setup**, you will need to add [Domain Contro For non-authoritative or [partial domains](/dns/zone-setups/partial-setup/), Universal SSL will be: -* Provisioned once the DNS record is [proxied through Cloudflare](/dns/zone-setups/partial-setup/setup/#add-dns-records). +* Provisioned once the DNS record is [proxied through Cloudflare](/dns/zone-setups/partial-setup/setup/#3-add-dns-records). * Validated: * Immediately if you add [Domain Control Validation (DCV)](/ssl/edge-certificates/changing-dcv-method/) records to your authoritative DNS. From e69d73ce168311edb3853b7b1aed72265ce6dd44 Mon Sep 17 00:00:00 2001 From: db-cloudflare <125887610+db-cloudflare@users.noreply.github.com> Date: Mon, 21 Oct 2024 10:34:37 +0100 Subject: [PATCH 097/110] [Workers] Add documentation for cf-tutor tool (#17627) * Add documentation for cf-tutor tool * Add beta tag * Add beta tag. * Fix links to cf-tutor docs * Fix links * Update download from browser steps * Add full stop * Fix beta tag * Update src/content/docs/workers/get-started/cf-tutor.mdx Co-authored-by: Jun Lee * Update src/content/docs/workers/get-started/cf-tutor.mdx Co-authored-by: Jun Lee * Update src/content/partials/workers/cf-tutor.mdx Co-authored-by: Jun Lee * Update src/content/partials/workers/cf-tutor.mdx Co-authored-by: Jun Lee --------- Co-authored-by: Jun Lee --- src/content/docs/d1/get-started.mdx | 1 + src/content/docs/r2/get-started.mdx | 22 +++++++--- .../get-started/workers-wrangler.mdx | 1 + .../docs/workers/get-started/cf-tutor.mdx | 33 +++++++++++++++ .../docs/workers/get-started/guide.mdx | 13 +++--- src/content/partials/workers/cf-tutor.mdx | 41 +++++++++++++++++++ 6 files changed, 99 insertions(+), 12 deletions(-) create mode 100644 src/content/docs/workers/get-started/cf-tutor.mdx create mode 100644 src/content/partials/workers/cf-tutor.mdx diff --git a/src/content/docs/d1/get-started.mdx b/src/content/docs/d1/get-started.mdx index 2f95990dc57e1d0..3ff582f08e195a4 100644 --- a/src/content/docs/d1/get-started.mdx +++ b/src/content/docs/d1/get-started.mdx @@ -533,4 +533,5 @@ If you have any feature requests or notice any bugs, share your feedback directl - See supported [Wrangler commands for D1](/workers/wrangler/commands/#d1). - Learn how to use the [D1 client API](/d1/build-with-d1/d1-client-api/) within your Worker. +- Learn the basics of using Workers with D1 and CLI development in a guided learning experience with [Cloudflare CLI tutor](/workers/get-started/cf-tutor/). - Explore [community projects built on D1](/d1/reference/community-projects/). diff --git a/src/content/docs/r2/get-started.mdx b/src/content/docs/r2/get-started.mdx index 62dee80f00777a3..0ea1f461a7a151f 100644 --- a/src/content/docs/r2/get-started.mdx +++ b/src/content/docs/r2/get-started.mdx @@ -6,14 +6,20 @@ sidebar: head: - tag: title content: Get started guide - --- -import { Render } from "~/components" +import { Render } from "~/components"; Cloudflare R2 Storage allows developers to store large amounts of unstructured data without the costly egress bandwidth fees associated with typical cloud storage services. -
    +
    + +
    ## 1. Install and authenticate Wrangler @@ -51,6 +57,10 @@ You will receive a confirmation message after a successful upload. Cloudflare provides multiple ways for developers to access their R2 buckets: -* [Workers Runtime API](/r2/api/workers/workers-api-usage/) -* [S3 API compatibility](/r2/api/s3/api/) -* [Public buckets](/r2/buckets/public-buckets/) +- [Workers Runtime API](/r2/api/workers/workers-api-usage/) +- [S3 API compatibility](/r2/api/s3/api/) +- [Public buckets](/r2/buckets/public-buckets/) + +## Related resources + +- [Cloudflare CLI tutor](/workers/get-started/cf-tutor/) - Learn the basics of using Workers with R2 and CLI development in a guided learning experience. diff --git a/src/content/docs/workers-ai/get-started/workers-wrangler.mdx b/src/content/docs/workers-ai/get-started/workers-wrangler.mdx index 4017a55403c5879..5f4c56b1a2176c3 100644 --- a/src/content/docs/workers-ai/get-started/workers-wrangler.mdx +++ b/src/content/docs/workers-ai/get-started/workers-wrangler.mdx @@ -135,3 +135,4 @@ By finishing this tutorial, you have created a Worker, connected it to Workers A - [Cloudflare Developers community on Discord](https://discord.cloudflare.com) - Submit feature requests, report bugs, and share your feedback directly with the Cloudflare team by joining the Cloudflare Discord server. - [Models](/workers-ai/models/) - Browse the Workers AI models catalog. +- [Cloudflare CLI tutor](/workers/get-started/cf-tutor/) - Learn the basics of Workers AI and CLI development in a guided learning experience. diff --git a/src/content/docs/workers/get-started/cf-tutor.mdx b/src/content/docs/workers/get-started/cf-tutor.mdx new file mode 100644 index 000000000000000..31b27edaf774523 --- /dev/null +++ b/src/content/docs/workers/get-started/cf-tutor.mdx @@ -0,0 +1,33 @@ +--- +title: CLI guided learning +pcx_content_type: get-started +sidebar: + order: 2 + badge: + text: Beta +head: + - tag: title + content: Get started - CLI guided learning +--- + +import { Badge, Render } from "~/components"; + +Cloudflare CLI tutor, or `cf-tutor`, is a guided learning experience within your terminal. If you are unfamiliar with Workers, or are new to command line interface (CLI) based development, cf-tutor offers an introduction on how to use Workers with other Cloudflare products through your terminal. + +`cf-tutor` is currently a beta application in pre-release. To download the application, you can use the `git clone` in your terminal, or download the application from the releases page on the project repo. + +## Prerequisites + + + +## How to run + + + +## Next steps + +To do more: + +- Visit the [Cloudflare dashboard](https://dash.cloudflare.com/) for simpler editing. +- Learn how to [test and debug](/workers/testing/) your Workers. +- Read about [Workers limits and pricing](/workers/platform/). diff --git a/src/content/docs/workers/get-started/guide.mdx b/src/content/docs/workers/get-started/guide.mdx index 762c52e31a0ee6b..364f812a24fcd40 100644 --- a/src/content/docs/workers/get-started/guide.mdx +++ b/src/content/docs/workers/get-started/guide.mdx @@ -48,11 +48,11 @@ cd my-first-worker In your project directory, C3 will have generated the following: -* `wrangler.toml`: Your [Wrangler](/workers/wrangler/configuration/#sample-wranglertoml-configuration) configuration file. -* `index.js` (in `/src`): A minimal `'Hello World!'` Worker written in [ES module](/workers/reference/migrate-to-module-workers/) syntax. -* `package.json`: A minimal Node dependencies configuration file. -* `package-lock.json`: Refer to [`npm` documentation on `package-lock.json`](https://docs.npmjs.com/cli/v9/configuring-npm/package-lock-json). -* `node_modules`: Refer to [`npm` documentation `node_modules`](https://docs.npmjs.com/cli/v7/configuring-npm/folders#node-modules). +- `wrangler.toml`: Your [Wrangler](/workers/wrangler/configuration/#sample-wranglertoml-configuration) configuration file. +- `index.js` (in `/src`): A minimal `'Hello World!'` Worker written in [ES module](/workers/reference/migrate-to-module-workers/) syntax. +- `package.json`: A minimal Node dependencies configuration file. +- `package-lock.json`: Refer to [`npm` documentation on `package-lock.json`](https://docs.npmjs.com/cli/v9/configuring-npm/package-lock-json). +- `node_modules`: Refer to [`npm` documentation `node_modules`](https://docs.npmjs.com/cli/v7/configuring-npm/folders#node-modules).
    @@ -191,7 +191,7 @@ Preview your Worker at `..workers.dev`.
    -If you see [`523` errors](/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-5xx-errors/#error-523-origin-is-unreachable) when pushing your `*.workers.dev` subdomain for the first time, wait a minute or so and the errors will resolve themselves. +If you see [`523` errors](/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-5xx-errors/#error-523-origin-is-unreachable) when pushing your `*.workers.dev` subdomain for the first time, wait a minute or so and the errors will resolve themselves.
    @@ -201,6 +201,7 @@ To do more: - Visit the [Cloudflare dashboard](https://dash.cloudflare.com/) for simpler editing. - Review our [Examples](/workers/examples/) and [Tutorials](/workers/tutorials/) for inspiration. +- Learn the basics of developing Cloudflare applications through a CLI with our [Cloudflare CLI tutor tool](/workers/get-started/cf-tutor/). - Set up [bindings](/workers/runtime-apis/bindings/) to allow your Worker to interact with other resources and unlock new functionality. - Learn how to [test and debug](/workers/testing/) your Workers. - Read about [Workers limits and pricing](/workers/platform/). diff --git a/src/content/partials/workers/cf-tutor.mdx b/src/content/partials/workers/cf-tutor.mdx new file mode 100644 index 000000000000000..a105a264a226d9c --- /dev/null +++ b/src/content/partials/workers/cf-tutor.mdx @@ -0,0 +1,41 @@ +--- +{} +--- + +import { TabItem, Tabs } from "~/components"; + + + + + +1. Open a terminal window. +2. In your terminal, navigate to the folder you wish to install cf-tutor. You can change directory by using the `cd` command followed by the folder path. You can either enter the full path such as `cd Documents/Projects/ ` or you can use `cd` multiple times to go folder by folder. To see the files and folders in the directory you are currently in, run `ls`. +3. Run the command `git clone https://github.com/db-cloudflare/cf-tutor.git` to download cf-tutor. +4. Run the command `cd cf-tutor` to enter the application folder. +5. Run the command `npm i` to install all dependendant packages. +6. Once the dependencies have installed, run `npm start ` to run the application + + + + + +The following steps require an SSH key. Vist [GitHub documentation on Connecting with SSH to learn more](https://docs.github.com/en/authentication/connecting-to-github-with-ssh) + +1. Open a terminal window. +2. In your terminal, navigate to the folder you wish to install cf-tutor. You can change directory by using the `cd` command followed by the folder path. You can either enter the full path such as `cd Documents/Projects/ ` or you can use `cd` multiple times to go folder by folder. To see the files and folders in the directory you are currently in, run `ls`. +3. Run the command `git clone git@github.com:db-cloudflare/cf-tutor.git` and enter your SSH key to download cf-tutor. +4. Run the command `cd cf-tutor` to enter the application folder. +5. Run the command `npm i` to install all dependendant packages. +6. Once the dependencies have installed, run `npm start ` to run the application + + + + + +1. Open [cf-tutor releases](https://github.com/db-cloudflare/cf-tutor/releases). +2. Download the cf-tutor.zip file and extract the folder inside it into your desired location. +3. In your terminal, navigate to the cf-tutor folder. You can change directory by using the `cd` command followed by the folder path. You can either enter the full path such as `cd Documents/Projects/cf-tutor` or you can use `cd` multiple times to go folder by folder. To see the files and folders in the directory you are currently in, run `ls`. +4. Run the command `npm i` to install all dependendant packages. +5. Once the dependencies have installed, run `npm start ` to run the application. + + From 2f035114d6458b7ed56b3eeac69f70c505cd0577 Mon Sep 17 00:00:00 2001 From: Maddy <130055405+Maddy-Cloudflare@users.noreply.github.com> Date: Mon, 21 Oct 2024 10:50:20 +0100 Subject: [PATCH 098/110] [Security Center] Archive insight(s) (#17633) * [Security Center] Archive insight(s) * Addressing comment --- .../security-insights/review-insights.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/content/docs/security-center/security-insights/review-insights.mdx b/src/content/docs/security-center/security-insights/review-insights.mdx index 15987aa31229c11..f70c95248907329 100644 --- a/src/content/docs/security-center/security-insights/review-insights.mdx +++ b/src/content/docs/security-center/security-insights/review-insights.mdx @@ -36,3 +36,12 @@ Exporting security insights allow you to perform a deeper analysis of your insig The exported CSV file includes information such as the severity of your data, insight type scan date, issue class and additional optional fields, such as insight details, risk assessment, detection method, and recommended actions. +## Archive insights + +You can archive one or more insights from the dashboard. + +To archive insights: + +1. Log in to the [Cloudflare dashboard](https://dash.cloudflare.com) and select your account. +2. Go to Account Home > **Security Center** > **Security Insights**. +3. Select the insight(s) you want to archive > Select **Archive selected**. \ No newline at end of file From 5a57076b301071f75abb420ccb6f96ba411503ea Mon Sep 17 00:00:00 2001 From: Michael Hart Date: Mon, 21 Oct 2024 21:04:10 +1100 Subject: [PATCH 099/110] [Learning Paths] Fix footnotes (#17657) --------- Co-authored-by: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> --- .../fundamentals/setup/manage-members/manage.mdx | 12 +++++------- .../account-security/add-other-members.mdx | 9 ++++----- .../get-started/account-setup/add-other-members.mdx | 9 ++++----- .../fundamentals/resend-member-invitation.mdx | 8 ++++++-- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/content/docs/fundamentals/setup/manage-members/manage.mdx b/src/content/docs/fundamentals/setup/manage-members/manage.mdx index 03845bc63837839..1d3325379b6b066 100644 --- a/src/content/docs/fundamentals/setup/manage-members/manage.mdx +++ b/src/content/docs/fundamentals/setup/manage-members/manage.mdx @@ -6,10 +6,9 @@ sidebar: head: - tag: title content: Manage account members - --- -import { Render } from "~/components" +import { Render } from "~/components"; Granting access to others on your account is done with several sets of data principles: @@ -22,7 +21,9 @@ When assigning a new user, you can assign a policy to them directly. If multiple Learn how to add new account members, edit or revoke their access, and resend verification emails. :::note - + + + ::: ## View account members @@ -53,11 +54,8 @@ Learn how to add new account members, edit or revoke their access, and resend ve -[^1]: - :::note - -If you have been invited to an account and want to remove yourself from the account, go to **Manage Account** > **Members**. Under your email address, select **Leave**. +If you have been invited to an account and want to remove yourself from the account, go to **Manage Account** > **Members**. Under your email address, select **Leave**. ::: ## Super Administrator access diff --git a/src/content/docs/learning-paths/application-security/account-security/add-other-members.mdx b/src/content/docs/learning-paths/application-security/account-security/add-other-members.mdx index c90f8787d533bd1..24dac43d3bcab1d 100644 --- a/src/content/docs/learning-paths/application-security/account-security/add-other-members.mdx +++ b/src/content/docs/learning-paths/application-security/account-security/add-other-members.mdx @@ -3,15 +3,16 @@ title: Add and manage other members pcx_content_type: overview sidebar: order: 2 - --- -import { Render } from "~/components" +import { Render } from "~/components"; Learn how to add new account members, edit or revoke their permissions and access, and resend verifications emails. :::note - + + + ::: ## View account members @@ -41,5 +42,3 @@ Learn how to add new account members, edit or revoke their permissions and acces - -[^1]: diff --git a/src/content/docs/learning-paths/get-started/account-setup/add-other-members.mdx b/src/content/docs/learning-paths/get-started/account-setup/add-other-members.mdx index 0316bde31851fb6..0a8d3940b0f2f74 100644 --- a/src/content/docs/learning-paths/get-started/account-setup/add-other-members.mdx +++ b/src/content/docs/learning-paths/get-started/account-setup/add-other-members.mdx @@ -3,15 +3,16 @@ title: Add and manage other members pcx_content_type: overview sidebar: order: 5 - --- -import { Render } from "~/components" +import { Render } from "~/components"; Learn how to add new account members, edit or revoke their permissions and access, and resend verifications emails. :::note - + + + ::: ## View account members @@ -41,5 +42,3 @@ Learn how to add new account members, edit or revoke their permissions and acces - -[^1]: diff --git a/src/content/partials/fundamentals/resend-member-invitation.mdx b/src/content/partials/fundamentals/resend-member-invitation.mdx index a3be22623879e30..75be7130020f568 100644 --- a/src/content/partials/fundamentals/resend-member-invitation.mdx +++ b/src/content/partials/fundamentals/resend-member-invitation.mdx @@ -1,11 +1,15 @@ --- {} - --- +import { Render } from "~/components"; + If you invited a member to your account but they cannot find the invitation or the invitation expires, you can resend the invitation through the Cloudflare dashboard: -1. Log in to the [Cloudflare dashboard](https://dash.cloudflare.com/login) and select your account\[^1]. +1. Log in to the [Cloudflare dashboard](https://dash.cloudflare.com/login) and select your account[^1]. 2. Go to **Manage Account** > **Members**. 3. Select a member record where their **Status** is **Invite Pending**. 4. Select **Resend invite**. + +{/* prettier-ignore */} +[^1]: From 206a644231910326db839dfb9edc46be89139cbc Mon Sep 17 00:00:00 2001 From: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> Date: Mon, 21 Oct 2024 11:34:09 +0100 Subject: [PATCH 100/110] [Workers] Fix video URL (#17666) --- src/content/videos/index.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/content/videos/index.yaml b/src/content/videos/index.yaml index 46d1422b8120dc5..37e955104874721 100644 --- a/src/content/videos/index.yaml +++ b/src/content/videos/index.yaml @@ -202,13 +202,13 @@ entries: languages: [TypeScript] products: [Workers, Workers AI] cloudflare: true - # stream_id: + # stream_id: author: confidence updated: 2024-10-07 difficulty: Beginner content_type: 🎥 Video - pcx_content_type: tutorial - - link: http://localhost:1111/pages/framework-guides/deploy-a-hono-site/#creator-interview + pcx_content_type: tutorial + - link: https://developers.cloudflare.com/pages/framework-guides/deploy-a-hono-site/#creator-interview title: DevTalk | Episode 01 - Yusuke Wada, creator of Hono Framework description: In this interview, Yusuke Wada reflects on his journey in developing Hono. tags: [Pages, Workers] @@ -219,4 +219,4 @@ entries: updated: 2024-10-08 difficulty: Beginner content_type: 🎥 Video - pcx_content_type: interview + pcx_content_type: interview From 819d2a9b222736e93c398c8e9916d72e3bb2a19b Mon Sep 17 00:00:00 2001 From: Nyaundi Brian Date: Mon, 21 Oct 2024 13:40:11 +0300 Subject: [PATCH 101/110] [Workers] Fix typo (#17651) --- src/content/docs/workers/observability/source-maps.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/workers/observability/source-maps.mdx b/src/content/docs/workers/observability/source-maps.mdx index 22c61080b77b17c..287f48d58612ab2 100644 --- a/src/content/docs/workers/observability/source-maps.mdx +++ b/src/content/docs/workers/observability/source-maps.mdx @@ -45,7 +45,7 @@ Miniflare can also [output source maps](https://miniflare.dev/developing/source- ​​ When your Worker throws an uncaught exception, we fetch the source map and use it to map the stack trace of the exception back to lines of your Worker’s original source code. -You can then view the stack trace in when streaming [real-time logs](/workers/observability/logs/real-time-logs/) or in [Tail Workers](/workers/observability/logs/tail-workers/). +You can then view the stack trace when streaming [real-time logs](/workers/observability/logs/real-time-logs/) or in [Tail Workers](/workers/observability/logs/tail-workers/). :::note From 284f52e03aecbf105ef13d81406bac6f552ccc20 Mon Sep 17 00:00:00 2001 From: Maddy <130055405+Maddy-Cloudflare@users.noreply.github.com> Date: Mon, 21 Oct 2024 11:42:46 +0100 Subject: [PATCH 102/110] [Security Center] Downloads (#17665) --- .../investigate/investigate-threats.mdx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/content/docs/security-center/investigate/investigate-threats.mdx b/src/content/docs/security-center/investigate/investigate-threats.mdx index 58a28df05b2ddd3..d77fb695b4df306 100644 --- a/src/content/docs/security-center/investigate/investigate-threats.mdx +++ b/src/content/docs/security-center/investigate/investigate-threats.mdx @@ -64,3 +64,13 @@ We recommend choosing `Unlisted` if you are scanning infrastructure that is not ### Filters While viewing the most recent scans, you can use the filtering options. Selecting `All account scans` will display both `Unlisted` or `Public` scans initiated from your Cloudflare account. However, by selecting `All global scans`, only `Public` scans are displayed. + +### Downloads + +You can download a report of your scan in HAM or JSON format. + +To download a report: + +1. Log in to your [Cloudflare dashboard](https://dash.cloudflare.com/) and select your account. +2. Select **Investigate** > Enter your domain > Select **Search**. +3. Once the report has been generated, select **Download** > Choose between **Download HAM** or **Download JSON**. \ No newline at end of file From a0a8b17c0df588766669b8bc2b0170bf50ffc58b Mon Sep 17 00:00:00 2001 From: sh0n0 <44708388+sh0n0@users.noreply.github.com> Date: Mon, 21 Oct 2024 19:47:13 +0900 Subject: [PATCH 103/110] [Workers] Fix broken links in CI/CD sections (#17652) --------- Co-authored-by: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> --- .../docs/workers/ci-cd/external-cicd/github-actions.mdx | 4 ++-- .../docs/workers/ci-cd/external-cicd/gitlab-pipelines.mdx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/content/docs/workers/ci-cd/external-cicd/github-actions.mdx b/src/content/docs/workers/ci-cd/external-cicd/github-actions.mdx index 23cf7cbf268a59e..b34c26e3451566f 100644 --- a/src/content/docs/workers/ci-cd/external-cicd/github-actions.mdx +++ b/src/content/docs/workers/ci-cd/external-cicd/github-actions.mdx @@ -34,8 +34,8 @@ To set up your CI/CD: 1. Go to your CI/CD platform and add the following as secrets: -- `CLOUDFLARE_ACCOUNT_ID`: Set to the [Cloudflare account ID](/workers/ci-cd/external-cicd/#cloudflare-account-id) for the account on which you want to deploy your Worker. -- `CLOUDFLARE_API_TOKEN`: Set to the [Cloudflare API token you generated](/workers/ci-cd/external-cicd/#api-token). +- `CLOUDFLARE_ACCOUNT_ID`: Set to the [Cloudflare account ID](#cloudflare-account-id) for the account on which you want to deploy your Worker. +- `CLOUDFLARE_API_TOKEN`: Set to the [Cloudflare API token you generated](#api-token). :::caution diff --git a/src/content/docs/workers/ci-cd/external-cicd/gitlab-pipelines.mdx b/src/content/docs/workers/ci-cd/external-cicd/gitlab-pipelines.mdx index 45c3bedc0fd9b09..87e8f0f69000c7b 100644 --- a/src/content/docs/workers/ci-cd/external-cicd/gitlab-pipelines.mdx +++ b/src/content/docs/workers/ci-cd/external-cicd/gitlab-pipelines.mdx @@ -34,8 +34,8 @@ To set up your CI: 1. Go to your CI platform and add the following as secrets: -- `CLOUDFLARE_ACCOUNT_ID`: Set to the [Cloudflare account ID](/workers/ci-cd/external-cicd/#cloudflare-account-id) for the account on which you want to deploy your Worker. -- `CLOUDFLARE_API_TOKEN`: Set to the [Cloudflare API token you generated](/workers/ci-cd/external-cicd/#api-token). +- `CLOUDFLARE_ACCOUNT_ID`: Set to the [Cloudflare account ID](#cloudflare-account-id) for the account on which you want to deploy your Worker. +- `CLOUDFLARE_API_TOKEN`: Set to the [Cloudflare API token you generated](#api-token). :::caution From bc2a07f49536c443b18e876b050c532db706a0a4 Mon Sep 17 00:00:00 2001 From: Vic Perov Date: Mon, 21 Oct 2024 11:52:47 +0100 Subject: [PATCH 104/110] Improve documentation of destination_conf parameter (#17631) * Improve documentation of destination_conf parameter This commit sheds more light on destination_conf attribute of logpush job configuration by adding details on the format it has and stresses more details on accepted schemes such as r2, sumo, etc. * Improve description of {DATE} placeholder This commit provides a bit more details on `{DATE}` and restructures examples. --- .../logs/get-started/api-configuration.mdx | 51 +++++++++++++++---- 1 file changed, 41 insertions(+), 10 deletions(-) diff --git a/src/content/docs/logs/get-started/api-configuration.mdx b/src/content/docs/logs/get-started/api-configuration.mdx index 5bbfcb6626f3494..17ff63fec49828b 100644 --- a/src/content/docs/logs/get-started/api-configuration.mdx +++ b/src/content/docs/logs/get-started/api-configuration.mdx @@ -93,16 +93,47 @@ You can specify your cloud service provider destination via the required **desti As of May 2022, defining a unique destination for a Logpush job will no longer be required. As this constraint has been removed, you can now have more than one job writing to the same destination. ::: -* **Cloudflare R2**: bucket path + account ID + R2 access key ID + R2 secret access key; for example: `r2://?account-id=&access-key-id=&secret-access-key=` -* **AWS S3**: bucket + optional directory + region + optional encryption parameter (if required by your policy); for example: `s3://bucket/[dir]?region=[&sse=AES256]` -* **Datadog**: Datadog endpoint URL + Datadog API key + optional parameters; for example: `datadog://?header_DD-API-KEY=&ddsource=cloudflare&service=&host=&ddtags=` -* **Google Cloud Storage**: bucket + optional directory; for example: `gs://bucket/[dir]` -* **Microsoft Azure**: service-level SAS URL with `https` replaced by `azure` + optional directory added before query string; for example: `azure:///[dir]?` -* **New Relic** New Relic endpoint URL which is `https://log-api.newrelic.com/log/v1` for US or `https://log-api.eu.newrelic.com/log/v1` for EU + a license key + a format; for example: for US `"https://log-api.newrelic.com/log/v1?Api-Key=&format=cloudflare"` and for EU `"https://log-api.eu.newrelic.com/log/v1?Api-Key=&format=cloudflare"` -* **Splunk**: Splunk endpoint URL + Splunk channel ID + insecure-skip-verify flag + Splunk sourcetype + Splunk authorization token; for example: `splunk://?channel=&insecure-skip-verify=&sourcetype=&header_Authorization=` -* **Sumo Logic**: HTTP source address URL with `https` replaced by `sumo`; for example: `sumo:///receiver/v1/http/` - -For R2, S3, Google Cloud Storage, and Azure, logs can be separated into daily subdirectories by using the special string `{DATE}` in the URL path; for example: `s3://mybucket/logs/{DATE}?region=us-east-1&sse=AES256` or `azure://myblobcontainer/logs/{DATE}?[QueryString]`. It will be substituted with the date in `YYYYMMDD` format, like `20180523`. +The `destination_conf` parameter must follow this format: + +``` +:// +``` + +Supported schemes are listed below, each tailored to specific providers such as +R2, S3, etc. Additionally, generic use cases like `https` are also covered: + +* `r2`, +* `gs`, +* `s3`, +* `cos`, +* `sumo`, +* `https`, +* `azure`, +* `splunk`, +* `datadog`. + +The `destination-address` should generally be provided by the destination +provider. However, for certain providers, we require the `destination-address` +to follow a specific format: + +* **Cloudflare R2** (scheme `r2`): bucket path + account ID + R2 access key ID + R2 secret access key; for example: `r2://?account-id=&access-key-id=&secret-access-key=` +* **AWS S3** (scheme `s3`): bucket + optional directory + region + optional encryption parameter (if required by your policy); for example: `s3://bucket/[dir]?region=[&sse=AES256]` +* **Datadog** (scheme `datadog`): Datadog endpoint URL + Datadog API key + optional parameters; for example: `datadog://?header_DD-API-KEY=&ddsource=cloudflare&service=&host=&ddtags=` +* **Google Cloud Storage** (scheme `gs`): bucket + optional directory; for example: `gs://bucket/[dir]` +* **Microsoft Azure** (scheme `azure`): service-level SAS URL with `https` replaced by `azure` + optional directory added before query string; for example: `azure:///[dir]?` +* **New Relic** (use scheme `https`): New Relic endpoint URL which is `https://log-api.newrelic.com/log/v1` for US or `https://log-api.eu.newrelic.com/log/v1` for EU + a license key + a format; for example: for US `"https://log-api.newrelic.com/log/v1?Api-Key=&format=cloudflare"` and for EU `"https://log-api.eu.newrelic.com/log/v1?Api-Key=&format=cloudflare"` +* **Splunk** (scheme `splunk`): Splunk endpoint URL + Splunk channel ID + insecure-skip-verify flag + Splunk sourcetype + Splunk authorization token; for example: `splunk://?channel=&insecure-skip-verify=&sourcetype=&header_Authorization=` +* **Sumo Logic** (scheme `sumo`): HTTP source address URL with `https` replaced by `sumo`; for example: `sumo:///receiver/v1/http/` + +For **R2**, **S3**, **Google Cloud Storage**, and **Azure**, you can organize logs into daily subdirectories by including the special placeholder `{DATE}` in the URL path. This placeholder will automatically be replaced with the date in the `YYYYMMDD` format (for example, `20180523`). + +For example: + +* `s3://mybucket/logs/{DATE}?region=us-east-1&sse=AES256` +* `azure://myblobcontainer/logs/{DATE}?[QueryString]` + +This approach is useful when you want your logs grouped by day. + For more information on the value for your cloud storage provider, consult the following conventions: From 33a5230d5786294160e9f8f7a626741ec6c27925 Mon Sep 17 00:00:00 2001 From: Harshil Agrawal <18901032+harshil1712@users.noreply.github.com> Date: Mon, 21 Oct 2024 13:25:54 +0200 Subject: [PATCH 105/110] [R2] Add new tutorial for R2 event notification (#17485) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add new r2 event notification tutorial * update frontmatter * update the html code * Update src/content/docs/r2/tutorials/summarize-pdf.mdx Co-authored-by: Denise Peña <75506267+dcpena@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Denise Peña <75506267+dcpena@users.noreply.github.com> --------- Co-authored-by: Denise Peña <75506267+dcpena@users.noreply.github.com> --- .../docs/r2/tutorials/summarize-pdf.mdx | 480 ++++++++++++++++++ 1 file changed, 480 insertions(+) create mode 100644 src/content/docs/r2/tutorials/summarize-pdf.mdx diff --git a/src/content/docs/r2/tutorials/summarize-pdf.mdx b/src/content/docs/r2/tutorials/summarize-pdf.mdx new file mode 100644 index 000000000000000..c2e61dc1ac79d1d --- /dev/null +++ b/src/content/docs/r2/tutorials/summarize-pdf.mdx @@ -0,0 +1,480 @@ +--- +title: Use event notification to summarize PDF files on upload +pcx_content_type: tutorial +content_type: 📝 Tutorial +products: + - Queues + - Workers + - Workers AI +difficulty: Intermediate +updated: 2024-10-11 +languages: + - TypeScript +--- + +import { Render, PackageManagers, Details } from "~/components"; + +In this tutorial, you will learn how to use [event notifications](/r2/buckets/event-notifications/) to process a PDF file when it is uploaded to an R2 bucket. You will use [Workers AI](/workers-ai/) to summarize the PDF and store the summary as a text file in the same bucket. + +## Prerequisites + +To continue, you will need: + +- A [Cloudflare account](https://dash.cloudflare.com/sign-up/workers-and-pages) with access to R2. +- Have an existing R2 bucket. Refer to [Get started tutorial for R2](/r2/get-started/#2-create-a-bucket). +- Install [`Node.js`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). + +
    + Use a Node version manager like [Volta](https://volta.sh/) or + [nvm](https://github.com/nvm-sh/nvm) to avoid permission issues and change + Node.js versions. [Wrangler](/workers/wrangler/install-and-update/), discussed + later in this guide, requires a Node version of `16.17.0` or later. +
    + +## 1. Create a new project + +You will create a new Worker project that will use [Static Assets](/workers/static-assets/) to serve the front-end of your application. A user can upload a PDF file using this front-end, which will then be processed by your Worker. + +Create a new Worker project by running the following commands: + + + + + +Navigate to the `pdf-summarizer` directory: + +```sh frame="none" +cd pdf-summarizer +``` + +## 2. Create the front-end + +Using Static Assets, you can serve the front-end of your application from your Worker. To use Static Assets, you need to add the required bindings to your `wrangler.toml` file. + +```toml +[assets] +directory = "public" +``` + +Next, create a `public` directory and add an `index.html` file. The `index.html` file should contain the following HTML code: + +
    + +To view the front-end of your application, run the following command and navigate to the URL displayed in the terminal: + +```sh +npm run dev +``` + +```output + ⛅️ wrangler 3.80.2 +------------------- + +⎔ Starting local server... +[wrangler:inf] Ready on http://localhost:8787 +╭───────────────────────────╮ +│ [b] open a browser │ +│ [d] open devtools │ +│ [l] turn off local mode │ +│ [c] clear console │ +│ [x] to exit │ +╰───────────────────────────╯ +``` + +When you open the URL in your browser, you will see that there is a file upload form. If you try uploading a file, you will notice that the file is not uploaded to the server. This is because the front-end is not connected to the back-end. In the next step, you will update your Worker that will handle the file upload. + +## 3. Handle file upload + +To handle the file upload, you will first need to add the R2 binding. In the `wrangler.toml` file, add the following code: + +```toml +[[r2_buckets]] +binding = "MY_BUCKET" +bucket_name = "" +``` + +Replace `` with the name of your R2 bucket. + +Next, update the `src/index.ts` file. The `src/index.ts` file should contain the following code: + +```ts title="src/index.ts" +export default { + async fetch(request, env, ctx): Promise { + // Get the pathname from the request + const pathname = new URL(request.url).pathname; + + if (pathname === "/api/upload" && request.method === "POST") { + // Get the file from the request + const formData = await request.formData(); + const file = formData.get("pdfFile") as File; + + // Upload the file to Cloudflare R2 + const upload = await env.MY_BUCKET.put(file.name, file); + return new Response("File uploaded successfully", { status: 200 }); + } + + return new Response("incorrect route", { status: 404 }); + }, +} satisfies ExportedHandler; +``` + +The above code does the following: + +- Check if the request is a POST request to the `/api/upload` endpoint. If it is, it gets the file from the request and uploads it to Cloudflare R2 using the [Workers API](/r2/api/workers/). +- If the request is not a POST request to the `/api/upload` endpoint, it returns a 404 response. + +Since the Worker code is written in TypeScript, you should run the following command to add the necessary type definitions. While this is not required, it will help you avoid errors. + +```sh +npm run cf-typegen +``` + +You can restart the developer server to test the changes: + +```sh +npm run dev +``` + +## 4. Create a queue + +:::note + +You will need a [Workers Paid plan](/workers/platform/pricing/) to create and use [Queues](/queues/) and Cloudflare Workers to consume event notifications. + +::: + +Event notifications capture changes to data in your R2 bucket. You will need to create a new queue `pdf-summarize` to receive notifications: + +```sh +npx wrangler queues create pdf-summarizer +``` + +Add the binding to the `wrangler.toml` file: + +```toml title="wrangler.toml" +[[queues.consumers]] +queue = "pdf-summarizer" +``` + +## 5. Handle event notifications + +Now that you have a queue to receive event notifications, you need to update the Worker to handle the event notifications. You will need to add a Queue handler that will extract the textual content from the PDF, use Workers AI to summarize the content, and then save it in the R2 bucket. + +Update the `src/index.ts` file to add the Queue handler: + +```ts title="src/index.ts" +export default { + async fetch(request, env, ctx): Promise { + // No changes in the fetch handler + }, + async queue(batch, env) { + for (let message of batch.messages) { + console.log(`Processing the file: ${message.body.object.key}`); + } + }, +} satisfies ExportedHandler; +``` + +The above code does the following: + +- The `queue` handler is called when a new message is added to the queue. It loops through the messages in the batch and logs the name of the file. + +For now the `queue` handler is not doing anything. In the next steps, you will update the `queue` handler to extract the textual content from the PDF, use Workers AI to summarize the content, and then add it to the bucket. + +## 6. Extract the textual content from the PDF + +To extract the textual content from the PDF, the Worker will use the [unpdf](https://github.com/unjs/unpdf) library. The `unpdf` library provides utilities to work with PDF files. + +Install the `unpdf` library by running the following command: + +```sh +npm install unpdf +``` + +Update the `src/index.ts` file to import the required modules from the `unpdf` library: + +```ts title="src/index.ts" ins={1} +import { extractText, getDocumentProxy } from "unpdf"; +``` + +Next, update the `queue` handler to extract the textual content from the PDF: + +```ts title="src/index.ts" ins={4-15} +async queue(batch, env) { + for(let message of batch.messages) { + console.log(`Processing file: ${message.body.object.key}`); + // Get the file from the R2 bucket + const file = await env.MY_BUCKET.get(message.body.object.key); + if (!file) { + console.error(`File not found: ${message.body.object.key}`); + continue; + } + // Extract the textual content from the PDF + const buffer = await file.arrayBuffer(); + const document = await getDocumentProxy(new Uint8Array(buffer)); + + const {text} = await extractText(document, {mergePages: true}); + console.log(`Extracted text: ${text.substring(0, 100)}...`); + } +} +``` + +The above code does the following: + +- The `queue` handler gets the file from the R2 bucket. +- The `queue` handler extracts the textual content from the PDF using the `unpdf` library. +- The `queue` handler logs the textual content. + +## 7. Use Workers AI to summarize the content + +To use Workers AI, you will need to add the Workers AI binding to the `wrangler.toml` file. The `wrangler.toml` file should contain the following code: + +```toml title="wrangler.toml" +[ai] +binding = "AI" +``` + +Execute the following command to add the AI type definition: + +```sh +npm run cf-typegen +``` + +Update the `src/index.ts` file to use Workers AI to summarize the content: + +```ts title="src/index.ts" ins={7-15} +async queue(batch, env) { + for(let message of batch.messages) { + // Extract the textual content from the PDF + const {text} = await extractText(document, {mergePages: true}); + console.log(`Extracted text: ${text.substring(0, 100)}...`); + + // Use Workers AI to summarize the content + const result: AiSummarizationOutput = await env.AI.run( + "@cf/facebook/bart-large-cnn", + { + input_text: text, + } + ); + const summary = result.summary; + console.log(`Summary: ${summary.substring(0, 100)}...`); + } +} +``` + +The `queue` handler now uses Workers AI to summarize the content. + +## 8. Add the summary to the R2 bucket + +Now that you have the summary, you need to add it to the R2 bucket. Update the `src/index.ts` file to add the summary to the R2 bucket: + +```ts title="src/index.ts" ins={8-14} +async queue(batch, env) { + for(let message of batch.messages) { + // Extract the textual content from the PDF + // ... + // Use Workers AI to summarize the content + // ... + + // Add the summary to the R2 bucket + const upload = await env.MY_BUCKET.put(`${message.body.object.key}-summary.txt`, summary, { + httpMetadata: { + contentType: 'text/plain', + }, + }); + console.log(`Summary added to the R2 bucket: ${upload.key}`); + } +} +``` + +The queue handler now adds the summary to the R2 bucket as a text file. + +## 9. Enable event notifications + +Your `queue` handler is ready to handle incoming event notification messages. You need to enable event notifications with the [`wrangler r2 bucket notification create` command](/workers/wrangler/commands/#notification-create) for your bucket. The following command creates an event notification for the `object-create` event type for the `pdf` suffix: + +```sh +npx wrangler r2 bucket notification create --event-type object-create --queue pdf-summarizer --suffix "pdf" +``` + +Replace `` with the name of your R2 bucket. + +An event notification is created for the `pdf` suffix. When a new file with the `pdf` suffix is uploaded to the R2 bucket, the `pdf-summarizer` queue is triggered. + +## 10. Deploy your Worker + +To deploy your Worker, run the [`wrangler deploy`](/workers/wrangler/commands/#deploy) command: + +```sh +npx wrangler deploy +``` + +In the output of the `wrangler deploy` command, copy the URL. This is the URL of your deployed application. + +## 11. Test + +To test the application, navigate to the URL of your deployed application and upload a PDF file. Alternatively, you can use the [Cloudflare dashboard](https://dash.cloudflare.com/) to upload a PDF file. + +To view the logs, you can use the [`wrangler tail`](/workers/wrangler/commands/#tail) command. + +```sh +npx wrangler tail +``` + +You will see the logs in your terminal. You can also navigate to the Cloudflare dashboard and view the logs in the Workers Logs section. + +If you check your R2 bucket, you will see the summary file. + +## Conclusion + +In this tutorial, you learned how to use R2 event notifications to process an object on upload. You created an application to upload a PDF file, and created a consumer Worker that creates a summary of the PDF file. You also learned how to use Workers AI to summarize the content of the PDF file, and upload the summary to the R2 bucket. + +You can use the same approach to process other types of files, such as images, videos, and audio files. You can also use the same approach to process other types of events, such as object deletion, and object update. + +If you want to view the code for this tutorial, you can find it on [GitHub](https://github.com/harshil1712/pdf-summarizer-r2-event-notification). From 7e1e81727f7e395eb249fb9150c8bbade663f3ae Mon Sep 17 00:00:00 2001 From: netgusto Date: Mon, 21 Oct 2024 15:59:24 +0200 Subject: [PATCH 106/110] [Vectorize] Clarify accuracy/performance trade-off (#17669) * [Vectorize] Clarify accuracy/performance trade-off * Update src/content/docs/vectorize/best-practices/query-vectors.mdx --------- Co-authored-by: Yevgen Safronov --- src/content/docs/vectorize/best-practices/query-vectors.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/content/docs/vectorize/best-practices/query-vectors.mdx b/src/content/docs/vectorize/best-practices/query-vectors.mdx index 3c6552ba1cda158..11599965553d6c1 100644 --- a/src/content/docs/vectorize/best-practices/query-vectors.mdx +++ b/src/content/docs/vectorize/best-practices/query-vectors.mdx @@ -70,9 +70,9 @@ Refer to [Vectorize API](/vectorize/reference/client-api/) for additional exampl ## Control over scoring precision and query accuracy When querying vectors, you can specify to either use high-precision scoring, thereby increasing the precision of the query matches scores as well as the accuracy of the query results, or use approximate scoring for faster response times. -Using approximate scoring, returned scores will be an approximation of the real distance/similarity between your query and the returned vectors. +Using approximate scoring, returned scores will be an approximation of the real distance/similarity between your query and the returned vectors; this is the query's default as it's a nice trade-off between accuracy and latency. -High-precision scoring is enabled by setting `returnValues: true` on your query; this tells Vectorize to fetch and use the original vector values for your matches, which enables the computation of exact scores of matches, increasing the accuracy of the results. +High-precision scoring is enabled by setting `returnValues: true` on your query. This setting tells Vectorize to use the original vector values for your matches, allowing the computation of exact match scores and increasing the accuracy of the results. Because it processes more data, though, high-precision scoring will increase the latency of queries. ## Workers AI From cbb7eb66b78ceebd019d2513652a8638cf9c9f46 Mon Sep 17 00:00:00 2001 From: daisyfaithauma Date: Mon, 21 Oct 2024 15:12:01 +0100 Subject: [PATCH 107/110] [AIG]Vercel changelog (#17630) * Vercel changelog * added redirects * Update public/_redirects Co-authored-by: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> --------- Co-authored-by: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> --- public/_redirects | 5 +++-- src/content/changelogs/ai-gateway.yaml | 5 +++++ .../{integration => integrations}/aig-workers-ai-binding.mdx | 0 .../docs/ai-gateway/{integration => integrations}/index.mdx | 2 +- .../{integration => integrations}/vercel-ai-sdk.mdx | 0 5 files changed, 9 insertions(+), 3 deletions(-) rename src/content/docs/ai-gateway/{integration => integrations}/aig-workers-ai-binding.mdx (100%) rename src/content/docs/ai-gateway/{integration => integrations}/index.mdx (81%) rename src/content/docs/ai-gateway/{integration => integrations}/vercel-ai-sdk.mdx (100%) diff --git a/public/_redirects b/public/_redirects index b49653c91e2fa1f..903e3e3c58c2547 100644 --- a/public/_redirects +++ b/public/_redirects @@ -93,14 +93,15 @@ /ai/ /use-cases/ai/ 301 # AI Gateway - /ai-gateway/get-started/configuring-settings/ /ai-gateway/get-started/ 301 /ai-gateway/get-started/connecting-applications/ /ai-gateway/get-started/ 301 /ai-gateway/get-started/creating-gateway/ /ai-gateway/get-started/ 301 /ai-gateway/pricing/ /ai-gateway/reference/pricing/ 301 /ai-gateway/observability/evaluations/ /ai-gateway/evaluations/ 301 /ai-gateway/observability/evaluations/set-up-evaluations/ /ai-gateway/evaluations//set-up-evaluations/ 301 - +/ai-gateway/integration/vercel-ai-sdk/ /ai-gateway/integrations/vercel-ai-sdk/ 301 +/ai-gateway/integration/aig-workers-ai-binding/ /ai-gateway/integrations/aig-workers-ai-binding/ 301 +/ai-gateway/integration/ /ai-gateway/integrations/ 301 # analytics /analytics/migration-guides/zone-analytics/ /analytics/graphql-api/migration-guides/zone-analytics/ 301 diff --git a/src/content/changelogs/ai-gateway.yaml b/src/content/changelogs/ai-gateway.yaml index 849e1a64056b0bc..0306da3fe1ea166 100644 --- a/src/content/changelogs/ai-gateway.yaml +++ b/src/content/changelogs/ai-gateway.yaml @@ -5,6 +5,11 @@ productLink: "/ai-gateway/" productArea: Developer platform productAreaLink: /workers/platform/changelog/platform/ entries: + - publish_date: "2024-10-17" + title: Vercel SDK + description: |- + Added [Vercel AI SDK](https://sdk.vercel.ai/). The SDK supports many different AI providers, tools for streaming completions, and more. + - publish_date: "2024-09-26" title: Persistent logs description: |- diff --git a/src/content/docs/ai-gateway/integration/aig-workers-ai-binding.mdx b/src/content/docs/ai-gateway/integrations/aig-workers-ai-binding.mdx similarity index 100% rename from src/content/docs/ai-gateway/integration/aig-workers-ai-binding.mdx rename to src/content/docs/ai-gateway/integrations/aig-workers-ai-binding.mdx diff --git a/src/content/docs/ai-gateway/integration/index.mdx b/src/content/docs/ai-gateway/integrations/index.mdx similarity index 81% rename from src/content/docs/ai-gateway/integration/index.mdx rename to src/content/docs/ai-gateway/integrations/index.mdx index 1574b2332fd9809..2b2a4eeaa26434c 100644 --- a/src/content/docs/ai-gateway/integration/index.mdx +++ b/src/content/docs/ai-gateway/integrations/index.mdx @@ -1,6 +1,6 @@ --- pcx_content_type: configuration -title: Integration +title: Integrations sidebar: group: hideIndex: true diff --git a/src/content/docs/ai-gateway/integration/vercel-ai-sdk.mdx b/src/content/docs/ai-gateway/integrations/vercel-ai-sdk.mdx similarity index 100% rename from src/content/docs/ai-gateway/integration/vercel-ai-sdk.mdx rename to src/content/docs/ai-gateway/integrations/vercel-ai-sdk.mdx From 2a528ea6f0524cd214934ca7432c1dbe43ff3875 Mon Sep 17 00:00:00 2001 From: Cameron Date: Mon, 21 Oct 2024 07:28:57 -0700 Subject: [PATCH 108/110] fixed typo (#17655) changed windows to macOS --- .../warp/user-side-certificates/install-cert-with-warp.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/install-cert-with-warp.mdx b/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/install-cert-with-warp.mdx index 62df532d8a1280f..94660a758c33a4f 100644 --- a/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/install-cert-with-warp.mdx +++ b/src/content/docs/cloudflare-one/connections/connect-devices/warp/user-side-certificates/install-cert-with-warp.mdx @@ -63,7 +63,7 @@ The certificate is also placed in `%ProgramData%\Cloudflare\installed_cert.pem` ### macOS -To access the installed certificate in Windows: +To access the installed certificate in macOS: 1. Open Keychain Access. 2. In **System Keychains**, go to **System** > **Certificates**. From e2107c49fb17f3ea75fdd9933679946f27d743d0 Mon Sep 17 00:00:00 2001 From: angelampcosta <92738954+angelampcosta@users.noreply.github.com> Date: Mon, 21 Oct 2024 15:46:57 +0100 Subject: [PATCH 109/110] [Cache] Updates cache keys options per plan (#17668) * Updates cache keys options per plan * Update src/content/docs/cache/how-to/cache-keys.mdx Co-authored-by: Rebecca Tamachiro <62246989+RebeccaTamachiro@users.noreply.github.com> --------- Co-authored-by: Rebecca Tamachiro <62246989+RebeccaTamachiro@users.noreply.github.com> --- src/content/docs/cache/how-to/cache-keys.mdx | 2 + src/content/plans/index.json | 63 ++++++++++++++++++-- 2 files changed, 61 insertions(+), 4 deletions(-) diff --git a/src/content/docs/cache/how-to/cache-keys.mdx b/src/content/docs/cache/how-to/cache-keys.mdx index 2bb6c63c261d343..95f757e5b79a3c8 100644 --- a/src/content/docs/cache/how-to/cache-keys.mdx +++ b/src/content/docs/cache/how-to/cache-keys.mdx @@ -136,6 +136,8 @@ User feature fields add features about the end-user (client) into the Cache Key. ## Availability +Cache keys options availability varies according to your plan. + ## Limitations diff --git a/src/content/plans/index.json b/src/content/plans/index.json index 7304875da1d9cf6..2c82f802de5d116 100644 --- a/src/content/plans/index.json +++ b/src/content/plans/index.json @@ -216,14 +216,69 @@ "title": "Cache keys", "link": "/cache/how-to/cache-keys/", "properties": { - "availability": { - "title": "Availability", - "summary": "Enterprise-only", + "deception_armor": { + "title": "Cache deception armor", + "free": "Yes", + "pro": "Yes", + "biz": "Yes", + "ent": "Yes" + }, + "device_type": { + "title": "Cache by device type", + "free": "Yes", + "pro": "Yes", + "biz": "Yes", + "ent": "Yes" + }, + "ignore_query_string": { + "title": "Ignore query string", + "free": "Yes", + "pro": "Yes", + "biz": "Yes", + "ent": "Yes" + }, + "sort_query_string": { + "title": "Sort query string", + "free": "Yes", + "pro": "Yes", + "biz": "Yes", + "ent": "Yes" + }, + "query_string": { + "title": "Query string", "free": "No", "pro": "No", "biz": "No", "ent": "Yes" - } + }, + "headers": { + "title": "Headers", + "free": "No", + "pro": "No", + "biz": "No", + "ent": "Yes" + }, + "cookie": { + "title": "Cookie", + "free": "No", + "pro": "No", + "biz": "No", + "ent": "Yes" + }, + "host": { + "title": "Host", + "free": "No", + "pro": "No", + "biz": "No", + "ent": "Yes" + }, + "user": { + "title": "User features", + "free": "No", + "pro": "No", + "biz": "No", + "ent": "Yes" + } } }, "cache_level": { From 527f0bb30531af23b1f8b981089c9524da4b09fc Mon Sep 17 00:00:00 2001 From: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> Date: Mon, 21 Oct 2024 16:12:41 +0100 Subject: [PATCH 110/110] [Page Shield] New page about PCI DSS v4 (#17671) --------- Co-authored-by: Maddy <130055405+Maddy-Cloudflare@users.noreply.github.com> --- .../docs/page-shield/reference/csp-header.mdx | 2 +- .../page-shield/reference/page-shield-api.mdx | 2 +- .../docs/page-shield/reference/pci-dss.mdx | 17 +++++++++++++++++ .../reference/roles-and-permissions.mdx | 3 +-- .../page-shield/reference/script-statuses.mdx | 19 +++++++------------ 5 files changed, 27 insertions(+), 16 deletions(-) create mode 100644 src/content/docs/page-shield/reference/pci-dss.mdx diff --git a/src/content/docs/page-shield/reference/csp-header.mdx b/src/content/docs/page-shield/reference/csp-header.mdx index a5d8ad9cfcd9904..12d261b10f57a3b 100644 --- a/src/content/docs/page-shield/reference/csp-header.mdx +++ b/src/content/docs/page-shield/reference/csp-header.mdx @@ -3,7 +3,7 @@ pcx_content_type: reference type: overview title: CSP HTTP header format sidebar: - order: 4 + order: 10 --- import { GlossaryTooltip } from "~/components"; diff --git a/src/content/docs/page-shield/reference/page-shield-api.mdx b/src/content/docs/page-shield/reference/page-shield-api.mdx index 2e966c008a4bdba..3081d4f07c4e323 100644 --- a/src/content/docs/page-shield/reference/page-shield-api.mdx +++ b/src/content/docs/page-shield/reference/page-shield-api.mdx @@ -2,7 +2,7 @@ pcx_content_type: reference title: Page Shield API sidebar: - order: 6 + order: 12 --- import { GlossaryTooltip } from "~/components"; diff --git a/src/content/docs/page-shield/reference/pci-dss.mdx b/src/content/docs/page-shield/reference/pci-dss.mdx new file mode 100644 index 000000000000000..d8853ce99dd24f6 --- /dev/null +++ b/src/content/docs/page-shield/reference/pci-dss.mdx @@ -0,0 +1,17 @@ +--- +title: PCI DSS compliance +pcx_content_type: reference +sidebar: + order: 4 +head: + - tag: title + content: Page Shield and PCI DSS compliance +--- + +You can use Page Shield for PCI DSS v4's client-side security requirements (items 6.4.3 and 11.6.1). + +Refer to the [PCI DSS v.4.0 Evaluation](https://cfl.re/4dhk8Gx) whitepaper for details on how you can use Cloudflare Page Shield to meet the new v4 requirements. + +:::note +To help with PCI DSS requirements, Page Shield requires you to have an Enterprise plan with a paid add-on. Refer to [Availability](/page-shield/#availability) for details on what is included in each plan. +::: diff --git a/src/content/docs/page-shield/reference/roles-and-permissions.mdx b/src/content/docs/page-shield/reference/roles-and-permissions.mdx index d0c7ff1ceaf0efb..32e63e1a94d0ed0 100644 --- a/src/content/docs/page-shield/reference/roles-and-permissions.mdx +++ b/src/content/docs/page-shield/reference/roles-and-permissions.mdx @@ -2,8 +2,7 @@ title: Roles and permissions pcx_content_type: reference sidebar: - order: 5 -head: [] + order: 11 description: User roles and API token permissions required to access and configure Page Shield. --- diff --git a/src/content/docs/page-shield/reference/script-statuses.mdx b/src/content/docs/page-shield/reference/script-statuses.mdx index 88cfedc395a530c..4b153a700cf8bb8 100644 --- a/src/content/docs/page-shield/reference/script-statuses.mdx +++ b/src/content/docs/page-shield/reference/script-statuses.mdx @@ -1,33 +1,28 @@ --- pcx_content_type: reference -title: Statuses +title: Script and connection statuses sidebar: order: 2 -head: - - tag: title - content: Script and connection statuses - + label: Statuses --- Cloudflare classifies scripts and connections (also known as resources) according to the following: -* The number of times a script/connection was reported. -* Whether the script/connection is considered malicious or not. +- The number of times a script/connection was reported. +- Whether the script/connection is considered malicious or not. Use Page Shield's dashboards to review the scripts loaded in your domain and the connections they make. For more information, refer to [Monitor resources and cookies](/page-shield/detection/monitor-connections-scripts/). ## Available statuses -* **Infrequent**: There are less than three reports for the script/connection. If there are no reports for a script/connection with *Infrequent* status for five days, then Page Shield will delete all the information about the script/connection. Scripts with *Infrequent* status appear only in the All Reported Scripts dashboard, and connections with *Infrequent* status appear only in the All Reported Connections dashboard. -* **Active**: There are more than three reports for the script/connection. -* **Inactive**: A previously active script/connection was not reported in the last seven days. If the script/connection is reported again later, its status will change back to *Active*. If the script/connection is not reported for 30 days, Page Shield will delete all the information about it. Scripts with *Inactive* status appear only in the All Reported Scripts dashboard, and connections with *Inactive* status appear only in the All Reported Connections dashboard. +- **Infrequent**: There are less than three reports for the script/connection. If there are no reports for a script/connection with _Infrequent_ status for five days, then Page Shield will delete all the information about the script/connection. Scripts with _Infrequent_ status appear only in the All Reported Scripts dashboard, and connections with _Infrequent_ status appear only in the All Reported Connections dashboard. +- **Active**: There are more than three reports for the script/connection. +- **Inactive**: A previously active script/connection was not reported in the last seven days. If the script/connection is reported again later, its status will change back to _Active_. If the script/connection is not reported for 30 days, Page Shield will delete all the information about it. Scripts with _Inactive_ status appear only in the All Reported Scripts dashboard, and connections with _Inactive_ status appear only in the All Reported Connections dashboard. :::note - All scripts and connections considered malicious will appear in the Monitors dashboard, regardless of their status. Malicious script/connection detection is only available to Enterprise customers with a paid add-on. - :::
    + +Select to view the HTML code + + +```html + + + + + + PDF Summarizer + + + +
    +
    +

    Upload PDF File

    +
    + + +
    +
    +
    + +
    + + + + +``` + +

    @%NOX#H3 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